↑點選藍字 關注我們

2017 年 12 月,加州大學伯克利分校 RISE 實驗室的 Robert Nishihara、Phillip Moritz 等人釋出了一篇論文 ——Ray: A Distributed Framework for Emerging AI Applications(Ray:一個新興人工智慧應用的分散式框架)。
這是第一個專為擴充套件 ML 和 AI 工作負載量身定製的統一分散式計算框架,Ray 開始為業內所關注。
這兩年,隨著 AI 技術的爆發,越來越多的 AI 應用開始基於 Ray 構建。就連 OpenAI 的 ChatGPT,也要依賴 Ray。
OSCHINA 開源中國採訪了螞蟻金服資深技術專家潘臻軒 (泰初),請他給我們講講 Ray 是什麼,有什麼特別之處,並談談 Ray 未來的發展。

潘臻軒 (泰初)
1. 請您先介紹一下自己。重點談一談,您是什麼時候開始接觸分散式計算,經歷了怎樣的過程?當前關注的方向是什麼?
我叫潘臻軒,花名泰初,目前負責螞蟻 AI 線上服務團隊,主要涵蓋搜推廣的引擎基建、大模型推理、異構叢集和 Ray 的相關工作。
我是 2011 年開始接入分散式計算相關的工作,次年加入阿里集團,從事第一代即時計算相關的引擎研發工作,經歷了流計算在阿里的迅猛發展。
2016 年加入螞蟻集團,先後從事即時計算和圖計算的相關工作,基於 Ray 構建了業界首個工業級的流圖計算引擎,並推動圖計算在螞蟻的大規模應用。
從 2023 年開始,負責 AI 線上服務團隊,主要基於 Ray 體系之上,圍繞搜推廣工程基建和大模型離線上推理,打造統一 AI 服務框架和離線上一體的推理服務,並支援螞蟻全站的搜尋、推薦、推理相關的業務。
2. 什麼是 AI 分散式計算框架?當前有哪些框架可供選擇?你們在專案 / 業務中為什麼最終選擇了 Ray?Ray 有什麼特別之處?
AI 的分散式計算框架,主要是提供面向 AI 場景的分散式計算能力。目前業界也有一些其他的框架,比如基於 Spark、Flink 進行面向 AI 場景的資料處理,以及模型推理 KServe 等。
我們在專案中最終選擇 Ray,主要是考慮 Ray 提供一整套分散式底座、良好的程式設計介面和豐富的 AI 生態整合,能夠實現離線、線上推理的能力。Ray 主要包含高效能分散式引擎 Ray Core、面向 AI 場景的資料處理(Ray Data)、基於 Ray 的分散式訓練框架 Ray Train 和基於 Ray 的線上推理服務 Ray Serve 等。
3. Ray 在 2017 年就對外開源了。為什麼等到這兩年,業內才對 Ray 的討論明顯更多?
這裡我個人認為主要有幾點變化。
一方面是 Ray 整體的生態越來越完備,從早期的 Ray Core 到 Ray AI Libraries,Ray 技術棧方便快捷地提供了面向機器學習平臺統一的計算執行時環境。如 Ray Data、Ray Train 和 Ray Serve, 可以用於構建機器學習完整的工作流程,提供資料預處理、模型訓練和推理服務。
另一方面,隨著 Ray 的價值越來越被大家認識到,更多的 AI 應用開始基於 Ray 構建,比如大模型推理引擎 vLLM 就基於 Ray Core 及 Ray Serve 構建分散式推理能力,從而進一步豐富 Ray 的 AI 生態整合,形成了良好的飛輪效應。
最後,由於 Ray 在 AI 生態上的優勢逐步體現,以及標杆性企業 OpenAI 對 Ray 的使用也讓大家進一步看到 Ray 的價值,促進了更多的公司開始關注 Ray、使用 Ray。
4. Databricks 和 Anyscale 聯合創始人、伯克利計算機科學高階教授 Ion Stoica 表示,ML 訓練需求每 18 個月增加十倍,但個人計算機的 GPU 功能不足以滿足訓練模型的需求,所以才需要 Ray 來處理負載。那麼,Ray 在其中的作用是什麼?
Ray 提供了一整套的 AI 庫,使用者可以快速的應用到 ML Pipeline 的多個階段。
在模型訓練時,使用者可以基於 Ray Train 構建自己的分散式訓練任務。基於 Ray Train 可以將單機模型訓練程式碼擴充套件到雲端的機器叢集,同時遮蔽分散式計算的複雜性。這樣使用者既可以享受到單機研發的高效和便利,又能充分的利用分散式算力。同時 Ray Train 還提供了訓練過程中的容錯方案,幫助使用者實現分散式訓練任務的可靠性。
5. 如何將 Ray 用在一個具體的 AI 產品 / 平臺上?有什麼典型案例?
可以將 Ray 整合到使用者自己的 AI 研發平臺,構建完整的 AI 研發流水線,也可以使用 Ray 的部分關鍵能力與企業內部現有體系進行協同。
在螞蟻,我們主要把 Ray 應用於離線上的推理服務和統一的 AI 服務應用。這裡以離線上推理服務為例,使用者在模型訓練完成之後,可以選擇基於 Ray Data 進行批次資料集的離線推理,也可以選擇基於 Ray Serve 構建線上的推理服務。
6. 歷史上 Ray 釋出的各個版本中,你認為有哪些重大更新?這些關鍵更新產生了什麼樣的影響?
從我們的視角來看,Ray 有幾個重要的版本迭代對整體 Ray 的發展產生一定的影響。
第一個是 2020 年 Ray 釋出了 1.0 版本,其中引入了 Placement Group 的特性,該特性增加了使用者自定義任務編排的靈活性,該特性應用於後來的 Ray AI Libraries 以及大家所熟知的 vLLM 中。
第二個是 2021 年的 Ray 1.5 版本,該版本釋出了 Ray Data Alpha 版本釋出,隨著 AI 生態的發展,AI 生態相關的資料處理和離線推理的訴求越來越多,該特性更好的彌補了 Ray 在該領域的空白,目前 Ray Data 在 AI 資料處理方面的應用也越來越廣泛。
第三個是 2022 年 Ray 2.0 版本,該版本引入了 Ray AIR (Ray AI Runtime) 的概念,從通用分散式計算框架聚焦 AI 生態,這讓 Ray 後續的發展更加聚焦和明確,同時引入 Ray AIR 之後,使用者也可以基於 Ray AIR 快速構建自己的 AI 基建。
第四個是 2023 年 Ray 2.9 版本,該版本引入了 Streaming Generator ,該特性更加圍繞生成式大模型,原生支援流式推理能力,更好地支援大模型場景。
最後一個 2024 年 Ray 2.32 版本,該版本引入了 Ray DAG,該特性進一步讓 Ray 更好地支援 AI 場景下帶來的異構裝置之間的通訊。
7. 這個以機器學習 (ML) 聞名的開源框架,被亞馬遜用來替換 Apache Spark,管理大資料智慧分析 (BI) 資料集。我們也看到,Ray 也常常被用來與 Spark、Flink、MARS 或 Dask 等資料處理框架相比。那麼未來 Ray 有可能取代這些框架嗎?
個人的觀點,Ray 和當前的這些資料處理框架不是同一個緯度的比較,比如 Ray 提供了 Ray Train、Ray Tune、Ray Serve 等都不侷限於通用的資料處理,而是面向 AI 場景的核心能力。
單純到資料處理上,Ray Data 可能更適合和以上的框架對比,就從我個人的理解 Ray Data 和這些框架之間並不會是取代的關係,而是在各自的場景發揮各自的優勢。比如就今天大資料場景而言,Spark 主要用於做批處理、Flink 主要用於流式計算。而 Ray Data,更偏向 AI 場景下的資料預處理,以及基於 Ray Data 構建離線推理等,所以他們之間並不是簡單的取代關係。
8. 您能否結合分散式計算面臨的挑戰,來談談 Ray 未來的發展?
隨著大型機器學習模型的快速發展,分散式計算領域正面臨一系列新的挑戰,尤其是在處理非結構化資料和進行大模型的分散式推理方面。Ray,作為一個專為 AI 和 Python 生態系統設計的分散式計算框架,不僅與 Python 的生態完美融合,而且在分散式系統的構建和管理方面表現出色,有效地應對了這些挑戰。因此,在大型模型的應用場景中,Ray 展現出了巨大的潛力和發展空間。
Ray 的靈活性和高效性,使其成為處理大規模非結構化處理的理想選擇。它能夠支援複雜的資料處理流程,包括資料的預處理和離線推理等,這些流程在大型模型中尤為重要。Ray 透過其分散式執行引擎,能夠最佳化資源利用,加速計算任務,從而提高整體的計算效率。
同時,AI 的價值日益凸顯,企業對於構建一個統一的 AI 技術平臺的需求也越來越迫切。這樣的平臺可以提高企業的工作效率和效能,降低開發和運營成本。基於 Ray Core 和 Ray AI Libraries 構建的 AI 技術棧,提供了一個強大的、可擴充套件的解決方案,它不僅能夠支援現有的 AI 工作流程,還能夠適應未來技術的發展和變化。
Ray Core 作為 Ray 的核心元件,提供了分散式任務排程和執行的能力,而 Ray AI Libraries 則擴充套件了 Ray 的生態,使其能夠更好地支援 AI 模型的構建、訓練和部署。透過這樣的技術棧,企業可以構建一個端到端的 AI 解決方案,從而實現從資料預處理到模型推理的全流程自動化和最佳化。
展望未來,隨著 AI 技術的不斷進步和應用場景的不斷擴充套件,基於 Ray 構建的統一 AI 技術棧將為企業帶來更大的競爭優勢。它不僅能夠提高資料處理和模型訓練的效率,還能夠加快新模型的部署速度,幫助企業快速響應市場變化,實現業務的快速增長。因此,Ray 及其相關技術在未來的 AI 領域中無疑將扮演越來越重要的角色。
潘臻軒 (泰初)螞蟻金服資深技術專家。2016 年加入螞蟻集團,參與了螞蟻集團即時計算從 0 到 1 的演進,並圍繞 Ray 構建了螞蟻即時圖計算體系。目前負責螞蟻 AI 線上服務 (搜尋、推薦、推理) 和統一 AI 分散式計算框架,圍繞 Ray 構建分散式 AI 計算體系。
END
熱門文章


↓分享、在看與點贊~Orz