首頁>科技>

自2017年誕生以來,位元組跳動機器學習平臺從一開始的幾十臺物理GPU開發機,到現在支援著萬級GPU排程,持續降低機器學習的算力和開發門檻,幫助我們內部平臺和外部客戶深入發展自己的AI的能力。

——易百忍 | 位元組跳動AI Lab機器學習平臺軟體工程師

從建設位元組跳動機器學習平臺

2017年位元組跳動人工智慧實驗室(AI Lab)正式成立,為實現更完善的資源管理目標,位元組跳動開始著手構建機器學習平臺。這幾年,隨著資源池不斷擴充套件,團隊逐漸發展,機器學習平臺從一開始僅有的幾十臺物理GPU開發機,到現在支援著萬級GPU排程,僅單一叢集就有著幾百臺GPU機器。

在這幾年的建設歷史中,位元組跳動機器學習平臺經歷的不僅是發展,還有著種種難題:

機器環境配置不一,管理運維成本高。機器配置不一,不同專案對於環境的依賴也有自己的需求,作為平臺方,管理運維的成本非常高。程式碼、依賴庫版本管理複雜,訓練結果難以復現。研發過程中的模型訓練,存在著程式碼以及依賴庫的版本管理問題,例如依賴環境變動,或自己遺忘程式碼的改動,最終導致結果難以復現。部分訓練任務時間長,需要分散式訓練加速。部分訓練任務的時間比較長,只在單機上跑,最多僅能用到4卡或者8卡的規模,需要透過分散式訓練加速。

為解決上述難題,機器學習平臺展開了長期的技術最佳化。在架構上,我們確定了“高效能+雲原生”的機器學習平臺建設目標:底層物理資源池中,一個叢集就是一個高效能叢集;要兼顧多個團隊的需求,透過雲原生基座進行資源調配與排程。

為完成這一架構目標,位元組跳動機器學習平臺進行了多個實踐。

模型訓練平臺:模型訓練底層資源池選擇了NVLink V100+100G RDMA網路,以加速分散式訓練任務,確保不同團隊智慧模型開發、運維工作流的高效敏捷。模型推斷平臺:提供服務上線、水平伸縮、灰度釋出等能力,以打通模型訓練管道。

最核心的資源排程,我們同樣進行了特別的最佳化:透過容器雲進行排程任務,映象打包模型程式碼,分散式儲存資料集;多卡、分散式的訓練任務將優先滿足機內匯流排和叢集網路拓撲;推斷服務支援多個小服務共享同一塊GPU,GPU成本進一步降低;推斷資源池能在閒時拆借資源,用於訓練任務,有效實現潮汐資源排程,GPU利用率得到極大提高。

此外,對於整個機器學習的核心——軟硬體效能的最佳化,位元組跳動技術團隊還在幾年機器學習平臺建設過程中沉澱出了兩個開源專案:加速分散式訓練框架BytePS、加速BERT線上推理服務Effective Transformer

丨BytePS

BytePS是一種高效能的通用分散式訓練框架,透過一個可以被各種通用框架引用的抽象層,實現了同時支援Tensorflow、PyTorch、MXNet等行業主流訓練框架,並且可以在TCP和RDMA網路上執行。

BytePS提供了TensorFlow、PyTorch、MXNet以及Keras的外掛,使用者只要在程式碼中引用BytePS的外掛,就可以獲得高效能的分散式訓練。

另外,BytePS在很大程度上優於現有的開源分散式訓練框架。例如,在進行BERT大型訓練時,BytePS可以使用256個GPU實現約90%的縮放效率,這比Horovod + NCCL高得多。

丨Effective Transformer

Effective Transformer基於NVIDIA FasterTransformer,具有許多高階最佳化功能。

在做推BERT理服務時,進入模型的文字可能出現長短不一的情況,雖然限定的最大值為8個詞,但實際情況可能是進入4個、5個。按照傳統思路,例如NVIDIA Faster Transformer,都是先做補齊至8個詞,再換成GPU做運算。

這種情況下,雖然形狀規整了,但補齊部分是無效的。按照經常看到的行程,僅達到最長長度的60%-70%,這意味著浪費了30%以上的算力。

Effective Transformer則是透過字首做轉換,不僅把補齊了形狀,還可以把詞往上進行填充。在大批次訓練的情況下,Effective Transformer可以顯著減少執行時間和記憶體消耗,平均降低30%無效訓練量。

經過幾年的發展,位元組跳動機器學習平臺現在管理著數萬塊GPU,持續為內外部提供AI能力,而在其底部的基礎設施平臺,也已經在技術最佳化、資源融合、彈性伸縮、統一編排、平臺安全和資料安全等層面經歷了大規模驗證,支撐著數EB資料、千萬級QPS、數十億月活App。

丨基礎設施平臺

研發中臺介於機器學習平臺和基礎設施平臺之間,起承上啟下的作用,主要提供服務治理能力,例如叢集管理、儲存管理、微服務、多租戶管理等。

在內部,研發中臺主要提供彈性微服務治理的能力,如在大規模場景下資源的管控,異構資源的管理等。

在資源管控、彈性應對大流量、安全自主可控等上層應用場景中,研發中臺都具有著核心優勢,例如改變人力運維為主的傳統運維方式,透過大流量的自動化管理、高業務連續性,提供自動化運維水平;為技術中臺單體應用改造提供彈性支撐,實現新功能的敏捷上線、迅速迭代。

丨機器學習平臺

一站式、端到端:集資料匯入與處理、模型開發、訓練與評估、服務上線於一體,提供一站式深度學習建模流程,加快業務迭代。高效率:高效管理和分配硬體資源,支援模型訓練和模型服務的統一排程。無需繁瑣配置:配置簡單,快速上手,無需使用者運營和管理軟硬體配置。支援多框架:全面支援TensorFlow、PyTorch、Caffe、MXNet等多種深度學習和機器學習框架。

小結

19
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 記一次亞馬遜“違規操作”