sherry颖 2018-03-26
使用新开发的SNAP机器学习(SNAP ML)框架和Power9/ V100 GPU服务器,IBM研究人员能够击败Google过去的在线广告应用程序培训基准。
该应用程序是一种逻辑回归分类器,它使用由Criteo实验室编制的在线广告点击日志数据集来预测用户在特定场景下点击广告的机会。该数据集包含42亿训练示例,每个训练示例记录用户是否在各种条件下点击了在线广告。谷歌以前曾使用TensorFlow和CPU驱动的云服务器,使用相同的数据集对应用程序进行了培训,用了70分钟的运行时间。使用SNAP ML框架和四台AC922服务器,IBM仅通过91.5秒的培训就可以在模型上实现相同的准确性。每台服务器都配备了两个Power9 CPU和四个NVIDIA V100 GPU。
人们可能会将IBM运行的46x加速技术归功于GPU的使用,但这只是一部分原因。谷歌显然没有使用GPU作为基准,因为他们发现使用它们并没有导致该培训应用程序性能的大幅提升。这是因为数据集非常大,以至于花费大量时间将数据移入和移出本地GPU内存,事实上,处理器长时间处于闲置状态,等待内存副本完成。
IBM以两种方式解决这个问题。首先,SNAP ML代码旨在优化GPU内存中的数据局部性,以尽可能避免数据传输开销。这使得更容易将这些大型数据集切片成小块,供GPU进行工作。其次,通过使用Power9 CPU及其使用NVLink作为V100的通信链接的能力,往返于GPU的存储器拷贝速度可比PCIe快六倍。
这种软件/硬件方法的结果是执行训练计算部分所需的时间现在比数据传输所用的时间更长,这意味着数据复制和计算可以在没有处理器停顿的情况下重叠。(请参阅下图了解具体情况。)。 IBM表示,与没有NVLink增强功能的Xeon-V100服务器相比,Power9-V100组合的总培训时间大约快3.5倍,即通过PCIe连接GPU。
据IBM介绍,能够处理具有挑战性的数据环境也使得SNAP ML成为实时或接近实时应用程序的良好选择,其中模型必须通过流数据进行即时训练。该框架也被认为擅长集合学习,其中多个求解器被用于对给定问题形成共识。
此外,除了像这种点击率应用这样的逻辑回归问题之外,SNAP ML还专门针对线性回归和支持向量机类型的问题进行了优化。对于非数学家而言,这三者听起来有些模糊,但它们涵盖了大量有用的实际应用,包括检测信用卡欺诈,确定信贷是否应该扩展客户,预测销售额以及预测股票波动等。
已经发展两年的SNAP ML库仍在IBM Research的实验室中。该计划将在今年晚些时候作为PowerAI预览的一部分在试用期间提供给客户。