成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

雅虎BigML團隊開源大數據分布式深度學習框架TensorFlowOnSpark

開發 開發工具 分布式 Spark
在雅虎,我們發現,為了從海量數據中獲得洞察力,需要部署分布式深度學習。現有的深度學習框架常常要求為深度學習單獨設定集群,迫使我們要為一個機器學習流程(見下圖 1)創建多個程序。

近幾年,深度學習發展的非常迅速。在雅虎,我們發現,為了從海量數據中獲得洞察力,需要部署分布式深度學習。現有的深度學習框架常常要求為深度學習單獨設定集群,迫使我們要為一個機器學習流程(見下圖 1)創建多個程序。

設定獨立的集群則需要我們轉移大數據集,帶來了不必要的系統復雜性和端到端的學習延遲。

去年我們通過開發和公開 CaffeOnSpark 解決了 scaleout 的問題,我們開源的框架支持在相同的 Spark 和 Hadoop 集群上進行分布式深度學習和大數據處理。我們在雅虎內部使用 CaffeOnSpark 改善了我們的 NSFW 圖像檢測,自動從實況錄像中識別電競比賽片段等等。在社區大量有價值的反饋和貢獻下,CaffeOnSpark 已經得到了更新,現在可以支持 LSTM,有了一個新的數據層,可以訓練與測試交錯,有了一個 Python API,和 Docker container 的部署。這些都提升了我們的用戶體驗。但是那些使用 TensorFlow 框架的人怎么辦?于是我們效仿了之前的做法,開發了 TensorFlowOnSpark。

TensorFlow 公開后,谷歌于 2016 年 4 月就開放了一個帶有分布式學習功能的增強版 TensorFlow。2016 年 10 月,TensorFlow 開始支持 HDFS。然而在谷歌云之外,用戶仍然需要一個 TensorFlow 應用的專用集群。TensorFlow 程序無法在現有的大數據集群上部署,這樣一來,那些想大規模使用這個技術的人就需要花更多的成本和時間。

為了打破這個限制,幾個社區項目將 TensorFlow 連接到 Spark 集群上。SparkNet 讓 Spark 執行器獲得了可以運行 TensorFlow 網絡的能力。DataBricks 提出 tensorframe,用來使用 TensorFlow 程序操縱 Apache Spark 的數據幀。雖然這些方法都朝著正確的方向邁出了一步,但是我們檢查他們的代碼后發現,我們無法讓多個 TensorFlow 過程直接相互溝通,我們也無法實現異步分布式學習,并且我們需要在遷移現有的 tensorflow 程序上花大功夫。

TensorFlowOnSpark

我們的新框架,TensorFlowOnSpark(TFoS),支持 TensorFlow 在 Spark 和 Hadoop 上的分布式運行。如上圖(圖 2)所示,TFoS 與 SparkSQL、MLlib 以及其他的 Spark 庫一起在一個項目或線程(pipeline)中運行。

TFoS 支持所有類型的 TensorFlow 程序,能實現同步和異步的訓練與推理。并且支持模型和數據的平行處理,以及 TensorFlow 工具(如 TensorBoard)在 Spark 群集上使用。

任何 TensorFlow 程序都能夠很容易通過修改實現在 TFoS 上運行的。通常情況下,只需要修改少于 10 行的 Python 代碼。很多在雅虎平臺上使用 TensorFlow 的開發者,已經輕松將 TensorFlow 項目轉移到 TFoS 上執行了。

TFoS 支持張量(tensor)在 TensorFlow 處理過程中(計算節點和參數服務節點)信息的直接溝通。過程到過程(Process-to-process)的直接溝通機制使 TFoS 項目很容易在增加的機器上進行擴展。如圖 3 所示,TFoS 不需要 Spark 驅動器(driver)參與到張量溝通中來,因此也就與具備類似于獨立 TensorFlow 群集的擴展能力。

TFoS 提供兩種不同模式來「吞入」用于訓練和推理的數據 :

1. TensorFlow QueueRunners:TFoS 利用 TensorFlow 的文件讀取(file readers)和 QueueRunners 來直接從 HDFS 文件中讀入數據。在數據獲取過程中不需要 Spark 參與。

2. Spark 供給:Spark RDD 數據將會被傳輸至每一個 Spark 執行器里,Spark 執行器會進一步將數據傳入 TensorFlow 圖(通過 feed_dict 參數)。

圖 4 展示了 Inception 圖像分類網絡中同時進行的分布式訓練如何在 TFoS 中通過 QueueRunners 的一個簡單設置進行擴展:將每個計算節點設置為 1 個 GPU,一個讀入(reader)以及批處理數為 32。四個 TFoS 的任務同時進行以用于訓練 10 萬步。兩天多后,當這些任務完成時,top-5 精確度(accuracy)分別為 0.730, 0.814, 0.854,0.879。0.730 的精確度需要單計算節點運行 46 小時得到,雙計算節點需要 22.5 個小時,4 計算機點需要 13 小時,8 計算節點需要 7.5 個小時。在 Inception 模型訓練上,TFoS 幾乎能達到線性擴展。這是很鼓舞人心的,雖然 TFoS 在不同模型和超參數上的擴展能力不同。

用于分布式 TensorFlow 的 RDMA

在雅虎的 Hadoop 集群上,GPU 節點通過以太網和無線寬帶相互連接。無線寬帶提供了高速的連接,并支持在 RDMA 中直接訪問其他服務器的存儲。然而目前 TensorFlow 僅支持在以太網上使用 「gRPC」 的分布式學習。為了加速分布式學習,我們增強了 TensorFlowC++層,實現了無線寬帶上的 RDMA。

為了結合我們發布的 TFoS,我們在 default「gRPC」協議之外,引進了一個新的 TensorFlow 服務器協議。任何分布式 tensorflow 程序都能通過指定 protocol=「grpc_rdma」in tf.train.ServerDef()or tf.train.Server() 來使用我們的增強版的 TensorFlow。

有了這個新協議后,就需要一個 RDMA 匯集管理器(rendezvous manager)來確保張量直接寫入遠程服務器的內存。我們最大限度地減少張量緩沖的創建:張量緩沖器在開始時分配一次,然后在一個 TensorFlow 工作任務的所用訓練步驟中重復使用。從我們早期的大型模型實驗,比如 VGG-19 開始,我們的就已經證明了,與現有的 gRPC 相比,我們的 RDMA 實現在訓練時間上帶來了顯著的提速。

由于 RDMA 支持對性能要求很高(見 TensorFlow issue#2916),我們決定讓我們現有的實現版本作為一個預覽版向 TensorFlow 社區開放。在未來的幾周內,我們將會進一步優化我們的 RDMA 實現,并分享一些基準結果細節。

簡單的 CLI 和 API

TFoS 程序是通過標準的 ApacheSpark 命令 spark-submit 運行的。如下所示,用戶可以在 CLI 中指定 Spark 執行器的數目,每個執行器所用的 GPU 數目以及參數服務節點數。用戶還可以表明愿意使用 TensorBoard(–tensorboard)還是 RDMA(–rdma)。

  1. spark-submit –master ${MASTER} \  
  2.      ${TFoS_HOME}/examples/slim/train_image_classifier.py \  
  3.      –model_name inception_v3 \ 
  4.      –train_dir hdfs://default/slim_train \  
  5.      –dataset_dir hdfs://default/data/imagenet \ 
  6.      –dataset_name imagenet \ 
  7.      –dataset_split_name train \ 
  8.      –cluster_size ${NUM_EXEC} \ 
  9.      –num_gpus ${NUM_GPU} \ 
  10.      –num_ps_tasks ${NUM_PS} \ 
  11.      –sync_replicas \ 
  12.      –replicas_to_aggregate ${NUM_WORKERS} \ 
  13.      –tensorboard \ 
  14.      –rdma   

TFoS 提供高層次的 Python API(在 Python notebook 的范例中有顯示):

  • TFCluster.reserve()... 從 Spark 執行器構建一個 TensorFlow 群集
  • TFCluster.start()... 在執行器上加載 TensorFlow 程序
  • TFCluster.train() or TFCluster.inference() …將 RDD 數據傳入 TensorFlow 處理
  • TFCluster.shutdown() …在執行器中結束 TensorFlow 的運行

開源

【本文是51CTO專欄機構機器之心的原創文章,微信公眾號“機器之心( id: almosthuman2014)”】

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2022-03-01 08:40:34

StormHadoop批處理

2017-01-19 11:36:28

英特爾大數據分析BigDL

2018-08-28 15:47:03

人工智能深度學習機器學習

2021-09-09 15:45:17

機器學習人工智能Ray

2010-06-03 19:46:44

Hadoop

2020-11-09 10:50:19

微軟谷歌深度學習

2017-08-22 11:10:44

大數據分布式調度

2015-06-01 10:31:43

微軟開源rDSN

2015-05-12 13:03:54

開源分布式存儲HDFS

2023-03-26 12:43:31

數據庫KeyValue

2023-04-19 16:51:54

分布式Primus開源

2010-04-08 10:29:54

TwitterGizzard數據存儲

2023-12-28 11:04:06

2019-07-22 09:35:23

RedisSentinel

2011-12-22 09:21:04

云計算Hadoop大數據

2013-04-27 11:43:19

大數據全球技術峰會

2021-08-26 08:03:30

大數據Zookeeper選舉

2015-10-15 14:05:51

StormSparkMapReduce

2023-06-26 00:14:28

Openjob分布式任務

2022-05-31 07:58:49

TiDB數據庫開源
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品久久久一区二区三区 | 搞黄视频免费看 | www久久久 | 精品国产乱码久久久久久闺蜜 | 国产精品久久久久久久久图文区 | 日日爱视频| 日韩精品一区二区三区老鸭窝 | 久久天天躁狠狠躁夜夜躁2014 | 欧美视频在线播放 | 水蜜桃久久夜色精品一区 | 91视频在线观看 | 欧美视频一区二区三区 | 亚洲国产成人精品久久久国产成人一区 | 国产精品一区视频 | 久久精品伊人 | 中文字幕a√ | 国产一区二区三区视频 | 看片wwwwwwwwwww| 国产精品久久久久一区二区三区 | 91久久夜色精品国产网站 | 精品国产一区二区三区性色 | 欧美一区二区久久 | 日本成人二区 | 涩涩视频在线观看 | 美女久久视频 | 人人爽人人草 | 午夜国产 | 亚洲一区亚洲二区 | 国产精品日日摸夜夜添夜夜av | 国产美女黄色片 | 91一区二区三区 | 国产高清在线观看 | www.一级毛片 | 一区视频| 日韩欧美中文字幕在线观看 | 天天操妹子 | 欧美在线视频一区二区 | 久久国产精品72免费观看 | 国产日韩精品在线 | 久久久久久网站 | 久久久久欧美 |