Skip to main content
QUICK REVIEW

[论文解读] TensorFlow: Large-Scale Machine Learning on Heterogeneous Distributed Systems

Martı́n Abadi, Ashish Agarwal|arXiv (Cornell University)|Mar 14, 2016
Parallel Computing and Optimization Techniques参考文献 42被引用 9,726
一句话总结

TensorFlow 是一个接口和实现,用于表达可以在移动设备到大规模分布式系统上运行的机器学习算法,使用数据流图并支持训练与推断;它在 Apache 2.0 下开源。

ABSTRACT

TensorFlow is an interface for expressing machine learning algorithms, and an implementation for executing such algorithms. A computation expressed using TensorFlow can be executed with little or no change on a wide variety of heterogeneous systems, ranging from mobile devices such as phones and tablets up to large-scale distributed systems of hundreds of machines and thousands of computational devices such as GPU cards. The system is flexible and can be used to express a wide variety of algorithms, including training and inference algorithms for deep neural network models, and it has been used for conducting research and for deploying machine learning systems into production across more than a dozen areas of computer science and other fields, including speech recognition, computer vision, robotics, information retrieval, natural language processing, geographic information extraction, and computational drug discovery. This paper describes the TensorFlow interface and an implementation of that interface that we have built at Google. The TensorFlow API and a reference implementation were released as an open-source package under the Apache 2.0 license in November, 2015 and are available at www.tensorflow.org.

研究动机与目标

  • 强调需要一个统一的系统,能够覆盖从移动端到集群的 ML 模型部署。
  • 描述 TensorFlow 的编程模型、实现方式和系统架构。
  • 展示 TensorFlow 如何在多样化硬件上实现可扩展的训练与推断。
  • 展示用于提升性能与灵活性的扩展与优化。
  • 突出在研究与生产场景中的实际部署与使用。

提出的方法

  • 引入带有有状态节点和控制依赖的数据流式计算图模型。
  • 描述单机与分布式执行架构,包括设备放置和通过 Send/Receive 节点进行的跨设备通信。
  • 解释自动梯度计算及其在计算图中的整合。
  • 展示扩展如部分执行、设备约束、控制流、输入操作、队列和容器。
  • 详细说明优化,如常见子表达式消除、内存与通信感知的调度,以及异步内核。
  • 讨论分布式环境中的容错、检查点和恢复。

实验结果

研究问题

  • RQ1一个框架如何在异构硬件上表达和执行广泛的 ML 算法?
  • RQ2数据流图表示如何实现可扩展的分布式训练与推断?
  • RQ3如何处理设备放置、跨设备通信和内存管理以最大化性能与可扩展性?
  • RQ4哪些扩展(控制流、输入处理、队列、容器)能提高 ML 工作负载的易用性与效率?
  • RQ5哪些优化和容错机制对大规模 ML 系统有效?

主要发现

  • TensorFlow 提供了一个灵活的编程模型,将数据流图映射到 CPU、GPU 以及其他设备上,支持研究实验和生产部署。
  • 该系统支持单机与分布式执行,具备可扩展的节点放置、通过 Send/Receive 节点实现的跨设备通信,以及对变量的容错性检查点。
  • 自动梯度计算内置于计算图中,使常见的 ML 优化方法如梯度下降成为可能。
  • 各种扩展(部分执行、控制流、输入管道、队列、容器)提升了 ML 工作负载的易用性和性能。
  • 优化包括常见子表达式消除、用于减少内存和通信开销的 ASAP/ALAP 调度,以及对异步内核的支持。
  • TensorFlow 于 2015 年 11 月在 Apache 2.0 下开源,已在多领域用于研究与生产,包括在数百台机器上具有数百亿参数的大型深度网络。

更好的研究,从现在开始

从论文设计到论文写作,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。