天天看點

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

作者:DataFunTalk

導讀 本次分享題目為從模型到服務:阿裡雲機器學習 PAI 一站式模型開發和部署實戰。

全文目錄:

1. 影響模型開發效率的問題

2. 預訓練模型與開源模型社群

3. Demo:PAI一站式模型開發實戰

4. 總結與展望

分享嘉賓|羅義雲,阿裡巴巴 資深技術專家

編輯整理|river

出品社群|DataFun

01

影響模型開發效率的問題

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

1.機器學習流程

整個機器學習流程可以分為三個階段:資料準備、模型開發和模型部署。接下來,我們從更細顆粒度對這三個階段進行拆解與分析,從每個階段的主要工作内容與主要參與者進行介紹。

  • 資料準備:資料準備是機器學習的第一步。該階段主要有資料采集、資料标注和資料預處理,為模型開發做好準備工作。主要參與者是資料科學家。
  • 模型開發:模組化(模型、算法實驗)、模型訓練、模型評估。主要參與者是算法科學家。
  • 模型部署:模型在離線部署、監控算法效果與性能等。主要參與者是開發和運維工程師。

接下來,我們将重點聚焦在模型開發階段。

2.模型開發階段面臨的問題

模型開發階段主要面臨三大問題:難上手、效果差、不經濟。

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

其具體表現在:

  • 難上手:深度學習網絡門檻較高,開發環境搭建比較困難,訓練任務容易出錯,而且出錯問題難以排查
  • 效果差和不經濟:如果需要追求算法效果,則需要更大資料集,更深網絡結構,更多的疊代次數,勢必會增加計算資源,訓練時間更長。考慮到實際成本,不得不犧牲算法品質。

上述問題會導緻模型開發效率的低下,會影響算法上線的時效性,最終會導緻使用者的業務問題遲遲無法得到很好解決。

3.使用者痛點

2020年algorithmia公司開展的一項調研發現約70%的使用者需要耗時超過一個星期才能将一個模型部署到生産環境中,其中40%的使用者需要花費一個月甚至更長。那麼該問題是否有解決方案呢,其實是有的,接下來我們看下解決方案——預訓練模型與開源模型社群。

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

02

預訓練模型與開源模型社群

1.預訓練模型與開源模型簡介

如果問現在AI領域最火的是什麼,首先想到就是chatGPT。時間往前推一兩年,比較火的應該是HuggingFace。HuggingFace的價值在于提供大量開源預訓練模型,以及配套的transformers庫,使得AI開發進入平民化時代。在2022年11月的雲栖大會上,阿裡巴巴達摩院也重磅推出了中文開源模型社群ModelScope。

預訓練模型和開源模型社群深刻的改變了使用者模型開發的範式。在預訓練模型出現之前,算法科學家訓練一個模型,需要從構造深度神經網絡開始,一步步進行搭建。預訓練模型出現之後,使用者隻需要提供資料集進行微調訓練,即fine-tune就可以了。其結果是,使用者可以以較低成本得到比較理想的模型。

開源模型社群将SOTA模型聚集在一起,友善使用者查找,同時提供了友好的程式設計接口,進一步提高了模型開發效率。

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

同時,我們注意到,以預訓練模型作為模型開發的起點,不僅僅是開源模型社群在推動,一些雲廠商也早已入局,比如AWS、Azure等。AWS SageMaker的Jumpstart就為HuggingFace、Pytorch Hub等開源模型社群的模型提供了一站式開發和部署的功能,而AzureML近期也與HuggingFace合作,提供了将其中的模型一鍵部署成Azure Endpoints線上服務的功能。

阿裡雲敏銳的意識到大模型時代的到來,在整體上做了布局,我們來看下阿裡雲是如何進行大模型開發和應用的。

2.阿裡靈傑

阿裡靈傑大圖如下圖所示,阿裡靈傑是建構于阿裡雲基礎設施之上的大資料+AI一體化平台,大模型從開發到應用的全流程,都可以在阿裡靈傑上得到相應的支援。阿裡靈傑不僅支援大模型的模型和部署,也通過對外開放服務、行業模版和解決方案等多種透出方式來賦能不同行業的客戶:

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

阿裡靈傑有4大特點:Scale、Simplicity、Speed、Scenario,具體如下:

  • Scale:大資料、大規模、大應用
  • Simplicity:标準,像調用函數般易用
  • Speed:極緻的運作、開發和運維效率
  • Scenario:向場景而生,支援不同場景的需求

作為阿裡靈傑的智能化底座,機器學習平台PAI很好支援了大模型的訓練和部署。接下來,我們具體看PAI是如何做到這一點的。

3.PAI預訓練模型開發架構

阿裡雲機器學習平台PAI的整體架構如下圖:

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

從PAI架構圖中我們可以看到PAI由4個子產品組成:機器學習架構與雲計算基礎設施、PAI核心引擎、PAI預訓練模型開發和AI應用層。

  • 機器學習架構與雲計算基礎設施:該部分主要是PAI依賴的雲計算基礎設施和機器學習架構。首先是基礎硬體(CPU/GPU)、容器服務(ACK)和計算資源(ECS)部分,往上是雲原生AI基礎平台(DLC),再之上是機器學習架構。PAI支援目前的主流機器架構,如Tensorflow、Pytorch、EasyTransfer、Transformers等。
  • PAI核心引擎:PAI大規模并行分布式訓練引擎(PAI-Whale/EPL)和PAI推理加速(PAI-Blade)與線上預測服務(PAI-EAS)
  • PAI預訓練模型開發:基于上述核心能力,PAI支援大模型的訓練和部署。首先,從公共模型倉庫找到預訓練大模型,提供資料集進行fine-tune,訓練得到的模型可以通過對應接口注冊到PAI模型庫中,然後将其部署到EAS上,提供離線推理或者線上服務功能。
  • AI應用層:最後,通過AI開發和AI應用對客戶提供相應的支援。

如果引入大模型開發流程會更完整一些,接下來我們看下引入了大模型開發流程之後的詳細開發架構。

4.PAI預訓練模型開發架構詳解

PAI預訓練模型開發架構如下圖:

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

該圖中,最上面一條鍊路就是大模型開發的流程。

首先,我們通過靈傑的大資料引擎,高效地讀取超大規模的訓練資料集,接下來用PAI大規模分布式訓練引擎PAI-Whale進行高效、低成本的訓練,得到預訓練大模型,然後該模型就可以供下遊fine-tune任務使用。預訓練模型的fine-tune和部署之前已經介紹過了,這裡就略過了。

需要指出的是,在預訓練模型的訓練和fine-tune支援上,PAI采用的是完全相同的架構,提供了相同的程式設計接口和使用者體驗,并且提供了業界領先的規模和效率。

5.PAI控制台詳解

之前提到,大模型的訓練和部署主要是靠PAI的三駕馬車來實作的:互動式模組化DSW、容器訓練DLC和模型線上服務EAS。PAI的控制台截圖如下:

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實
  • DSW:提供小資料量、較少疊代次數的快速實驗能力,可以讓使用者在較短時間内看到效果,以此可以判斷代碼或者邏輯的正确性。
  • DLC:支援使用者進行全量資料、更多疊代次數的分布式訓練,高效低成本得到最終模型。
  • EAS:提供模型部署和線上服務的能力。

接下來,我們用一個實際案例來示範PAI如何做到預訓練模型的訓練與部署的全流程支援的。

03

Demo:PAI一站式模型開發實戰

我們回到之前介紹的ModelScope,在ModelScope上找到PALM2.0中文文本生成預訓練模型,通過fine-tune獲得對聯生成模型,并通過EAS進行部署。

首先我們在ModelScope上擷取到預訓練模型,并且下載下傳好對聯資料集。接下來,我們進入到PAI控制台,整個流程涉及到PAI的三個子子產品:

  • 首先,在小資料量下用互動式模組化DSW編寫代碼
  • 其次,用容器訓練DLC運作全量資料的分布式訓練任務
  • 最後通過模型線上服務EAS進行部署。

1.測試預訓練模型對聯生成的效果

在fine-tune之前,我們先在互動式模組化DSW中編寫代碼,測試預訓練模型的效果。

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

預訓練模型對聯生成的結果如下,我們可以看到結果是比較差的:

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

接下來,我們用對聯資料集對其進行fine-tune訓練。測試結果如下,可以發現fine-tune之後的效果大大提升了:

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

2.用容器訓練運作全量資料的訓練任務

該部分我們将資料集改成全量資料,在容器訓練(DLC)中配置好參數,然後點選送出。

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

3.模型部署

該部分我們采用模型線上服務(EAS)對訓練好的模型進行部署,并提供線上服務。之後使用者可以調用該服務,比如,通過釘釘機器人以對話方式體驗模型線上服務。在ModelScope上,除了文本生成預訓練模型外,還有文生圖等預訓練模型。

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

4.MLOPS:以模型為中心的機器學習中心管理

我們回到第一部分的機器學習流程,來看看要提升機器學習端到端的效率,還有哪些需要解決的問題:

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實
  • 資料準備:資料集管理、資料品質分析、資料集加速
  • 模型開發:依賴管理,實驗管理、Debugging、模型評估
  • 模型部署:模型打包、A/B Testing、模型監控

上述問題可以通過提供一系列開發流程的最佳實踐來解決,也需要配套一些效率工具,最終目标讓機器學習流程更加順暢,更加絲滑,更加自動化。讓資料科學家專注資料準備,算法科學家專注模型開發,工程的問題交給平台就好了。這些最佳實踐和效率工具的組合就是Machine Learning Ops(MLOps)。用一句話來概括,MLOps就是以模型為中心的機器學習生命周期管理。

從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實
從模型到服務:阿裡雲機器學習PAI一站式模型開發和部署實

總結與展望

PAI作為AI工程平台,是聯通算法創造力和業務生産力之間的橋梁。我們願意将該橋梁搭建好,一方面支援算法快速創新,另一方面也支援應用快速落地。

今天的分享就到這裡,謝謝大家。

繼續閱讀