一、公司介紹
九章云極DataCanvas以創造智能探索平臺為使命,懷揣著助力全球企業智能升級的愿景,是中國人工智能基礎軟件領域的佼佼者。公司專注于自主研發的人工智能基礎軟件產品系列和解決方案,為用戶提供全面的人工智能基礎服務,旨在幫助用戶在數智化轉型過程中輕松實現模型和數據的雙向賦能,以低成本高效率的方式提升企業決策能力,從而實現企業級 AI 的規模化應用。
二、AIFS(AI Foundation Software)
在大模型時代,我們需要更高效的算力基礎設施,并對其他基礎設施和資源進行管理。為了應對這些挑戰,九章云極DataCanvas搭建了一個完整的軟件體系AIFS(AI Foundation Software),包括模型工具、大模型能力、人工智能基礎平臺、算力管理四層。
第一層是算力層。當前國產 GPU 也正在迅速崛起,華為等廠商在大模型領域,以及 GPU 領域取得巨大進展。在算力基礎設施之上,我們構建 GPU Cloud,可以統一管理異構的 GPU 資源,包括英偉達和國產 GPU。通過這種方式降低工程化成本,并提高資源利用率。
第二層以公司自研的DingoDB多模向量數據庫和人工智能開發工具為主。DingoDB是大模型時代的必備軟件,作為一個分布式向量數據庫,存儲多模態的任意大小的數據,具備高并發、低延遲的實時分析能力,處理多模數據,通過 SQL 實現結構化和非結構化數據的 ETL。在DingoDB之上,產品提供了APS Fast Label、APS LMB、 APS Lab、APS Inference人工智能開發工具。
通過這個完整的人工智能技術平臺,用戶可以高效地應對大模型時代的挑戰,快速實現 AI 應用的落地。
第三層包括九章云極DataCanvas發布的DataCanvas Alaya九章元識大模型,其支持視頻、圖片、文本等多種數據格式。此外,還具備構建小模型的能力,提供包括算法庫、場景庫、特征庫和指標庫的“四庫全書”。
最后,構建大模型,我們提供了一整套模型構建工具——LMOPS,包括 Prompt Manager(提示管理器)、Large Model Training(大模型訓練)和 Large Model Serving(大模型服務)。
AIFS是一款行業領先的人工智能應用構建基礎設施平臺,可以支持大模型和小模型的構建。AIFS 涵蓋了大模型的訓練、精調、壓縮、部署、推理和監控,以及小模型的全生命周期過程。它支持多種模式的建模,可以滿足數據科學家、開發人員以及業務專家不同的建模需求。例如,數據科學家可以按照自己的建模習慣進行建模,開發人員可以從工程的角度去構建大模型,而業務專家則可以從業務的角度出發,在平臺上構建自己的大模型和小模型。
此外,AIFS 平臺上的不同角色人員可以相互協作,輕松處理數據,并使用這些數據來開發、訓練和部署任何規模的模型。這意味著,無論是數據科學家、應用程序開發人員還是業務專家,都可以在 AIFS 平臺上找到適合自己的建模方式,并與其他角色人員協作,共同構建人工智能應用。
三、模型構建工具鏈
在 AIFS 中,有一套完整的工具鏈,旨在賦能大模型和小模型的構建。首先,從數據準備的角度來看,數據可能包括通用數據、行業數據、私域數據以及指令數據等。在數據接入后,需要進行數據處理,如數據清洗、數據變換和數據增強,針對不同類型的數據采取不同類型的處理方式。數據處理完成后,可以進行數據標注,包括人工標注和智能標注。
數據準備完成后,進入模型開發階段。在模型開發中,首先需要進行模型選型,如常見的 LLAMA 模型,最近開源的 LLAMA2,以及 Falcon 和 Bloom 等。選定模型后,可以使用前期準備的數據進行訓練,以及使用預訓練權重進行繼續訓練等。
訓練完成后,可以進行模型微調,如對齊操作。對于中小企業,可能會面臨 CPU 資源有限的問題,此時可以利用開源的 PEFT 工具進行高效微調。模型微調對齊完成后,需要對模型進行評估,可以使用如LMS評估工具進行評估。常見的評估指標包括 Ceval 和 MMLU 等。
如果現有的 Benchmark 無法涵蓋模型的能力,可以基于 AIFS 構建自己的任務或 Benchmark 進行自定義評估。評估完成后,將模型部署到 LMS 中,進行模型的部署和推理。首先,可能需要對模型進行壓縮,如量化剪枝、蒸餾轉換等操作。模型壓縮完成后,進行部署,支持單機單卡和單機多卡的部署方式。
模型上線后,需要進行模型服務的上線,使用 Prompt Manager 進行模型應用。
1、LMB(Large Model Builder)
LMB(Large Model Builder)是一款專為 AI 工程師打造的大規模預訓練模型訓練工具,旨在幫助他們快速構建訓練流程并實現高效穩定的大模型訓練。該工具包括數據準備、分布式訓練、斷點重訓、任務監控、模型評估幾個主要模塊。
通過這些模塊,LMB可以有效地幫助 AI 工程師在大規模預訓練過程中快速構建訓練流程,并實現高效穩定的大模型訓練。
LMB的功能架構從下到上分為幾個層次。首先是 GPU Cloud,這是 AIFS 人工智能平臺的最后一層,也是抹平基礎設施的關鍵組件。在 GPU Cloud 之上,實現了一層分布式任務調度,包括異構算力的統一管理和調度、資源編排、環境分發、任務分發以及任務監控等功能。再往上,有一鍵式分布式訓練環境,支持多種流行的分布式訓練環境預置,如 DeepSpeed、Megatron 和 FSDP 等。
此外,LMB還提供了多種并行方式、梯度累積、混合精度等高效策略,涵蓋了包括斷點、重新啟動等功能。可視化的 FromScratch 界面,讓用戶能夠輕松構建自己的大模型。無論是業務人員還是工程開發人員,都可以通過這個界面選擇所需的模型、數據,以及高級或簡潔模式等參數,進行訓練。訓練成功后,用戶還可以通過可視化評估功能對模型進行評估。
2、LMT(Large Model Tuning)
LMT,即Large Model Tuning,大模型微調工具,主要幫助 AI 工程師在預訓練模型的基礎上進行模型的繼續訓練、微調和評估等工作。通過可視化界面,用戶可以設定私域數據、預訓練模型以及相應的訓練參數,進行記憶訓練,并且可以選擇性擴充詞表,避免災難性遺忘,提高模型推理精度。
在模型微調方面,LMT 支持專家模式進行設計,同時也提供簡潔模式。通過專家模式,用戶可以實現一鍵式的高效 PEF指令微調,包括 LoRA 等多種PEFF 方法以及可視化的 RLHF 訓練。
對于模型評估,LMT 支持開源的 Benchmark 自動評估,用戶也可以進行自定義評估。用戶按照平臺規范構建數據集,設定評估方法,就可以進行一些自定義評估。同時,用戶也可以手動進行專家評估。最后,LMT 可以將自定義模型和開源模型進行對比,生成一個評估效果的 LeaderBoard。
簡而言之,LMT可以為整個大模型調整流程提供支持,從數據準備到繼續訓練,到指令精調,再到人工對齊、RLHF,最終生成一個 final model。
LMT與LMB 有相似的底層架構,比如 GPU Cloud。與 LMB相比,PEFT 在進行指令微調時的資源需求沒有那么高,但它仍然需要一些強大的硬件設施,因此在底層也需要有一個 GPU Cloud 這樣的算力支持,來平衡技術設施的投入成本。
再往上的架構與 LMB 相似,提供了一個一鍵式分布式訓練環境,包括DeepSpeed、Megatron、MosaicML等多種分布式訓練環境,以及圖優化、梯度累積等關鍵要素。
在這個架構中,入口是數據管理,包括數據標注和 SFT 數據增強。例如,企業客戶安裝了 LMT 后,可以管理私域數據,并基于這些數據進行 SFT 數據增強。SFT 數據增強有很多方式,比如使用我們的 self instruct 工具進行數據蒸餾,以獲得更好的模型。
現在,許多開源的大型模型都是基于英文的,有些可能會支持多語言,但中文的支持相對較少,因此需要對這些模型進行詞表擴充。我們的詞表擴充有兩種方式:一種是在改變 embedding 層后再進行 PFT訓練,第二種是使用中英平衡數據進行全量微調。
在完成訓練后,可以進行 SFT,可以通過全量微調或 PEFT 微調來實現。在進行人工對齊(如 RLHF)之前,需要先訓練出獎勵模型,再通過獎勵模型訓練 SFT 模型,以獲得最終的模型。在整個訓練過程中,會輸出一個 train revert 報告,以幫助大家了解獎勵模型在訓練 SFT 過程中的表現。
最后,LMT的架構還包括一個任務管理系統,可以監控和調度所有的任務,包括評估任務和三個階段的訓練任務。
3、LMS(Large Model Serving)
LMS(Large Model Serving),即大模型運行工具。所謂運行工具,就是在模型訓練和對齊(如人工對齊)完成后,要通過Prompt Manager 消費模型,因此需要將模型提供為一項服務,并通過 HTTP API 或 SDK 進行訪問。LMS 主要面向工程技術人員,旨在幫助他們快速、高質量地交付大模型,同時降低運維和運營成本。
在 LMS 的功能流程中,首先涉及到模型管理。啟動后,用戶可以導入模型,支持通過界面操作和命令操作完成導入。成功導入模型后,可以進行模型壓縮,如量化和剪枝操作。接著進行模型評估,評估完成后進行部署,將模型上線為一個服務。
在服務上線后,可以對服務進行監控,包括服務調用次數、調用成功率,以及調用消耗的總時長和平均時長等指標。同時,還需要監控資源消耗情況,例如 CPU 資源、GPU 資源(尤其是GPU 資源的利用率、顯存占用率)以及內存占用率等資源指標。通過這些監控,確保大模型服務的穩定性和性能。
接下來,將深入探討 LMS 的架構。參見上圖,左側是模型管理 Model Store 模塊。在 Model Store 中,可以對已導入的模型進行全方位管理,如編輯元信息、評估模型性能等。模型評估涵蓋了自動評估和自定義評估等多個方面。在對模型進行壓縮之后,可以將其部署并上線。當然,也可以在導入模型后直接在 Model Service 中上線,跳過評估環節。
在 Model Service 中,搭建一個復雜且完善的對外模型服務架構,包括 REST API、gRPC 及其它 API。這些 API 可供 Prompt Manager 調用,同時也支持客戶第三方業務系統直接訪問。在 Model Service 中,首層為 Server 的 Gateway,主要負責路由不同模型。當某個模型實例面臨壓力較大或延遲較高時,會根據業務需求進行實例伸縮。
在每個模型實例中,有兩個關鍵要素:交互式推理記憶和 kernel 級加速。交互式推理記憶用于處理與大型模型的多輪交互。例如,向大模型詢問推薦食譜,用戶可能需要與模型進行多輪對話,而大模型需要保存歷史會話,以保持上下文。交互式推理記憶就是用來緩存歷史問話,以便在第二次對話時減少 GPU 推理延遲,提高模型服務速度。
另一個關鍵要素是 kernel 級加速。熟悉底層開發的人員應該都知道,在調用模型底層 API 時,可能會多次調用 kernel。通過 kernel 級加速,可以對 kernel 進行合并操作(把幾次請求組成一個tensor),以及操作合并(把兩次kernel操作合并成一次操作),從而提高性能。
在消費模型時,可以借助 Prompt Manager 訪問知識庫,獲取相關上下文信息,再訪問大模型。
4、Prompt Manager
Prompt Manager是一個提示詞設計和構建工具,旨在幫助用戶創建更優秀的提示詞,引導大模型生成更加準確、可靠且符合預期的輸出內容。該工具可以同時面向技術人員和非技術人員,為技術人員提供開發工具包,同時也為非技術人員提供直觀易用的人機交互操作模式。
在 Prompt Manager 中,包含了幾個核心要素:場景管理、模板管理、提示詞開發以及提示詞應用。這些要素共同構成了 Prompt Manager 的功能體系,為用戶提供了全方位的支持,使其能夠更好地利用大模型生成所需的輸出內容。
上圖展示了 Prompt Manager 的功能架構。自下而上來介紹,首先,在底層,Prompt Manager可以管理大模型服務。通過 LMS 部署的模型對外提供的接口可以配置到 Prompt Manager 中,供提示工程使用。此外,還可以與其它工具(如DingoDB、搜索引擎等)進行集成。
在提示工程方面,包括 single prompt、multiple prompt 和 prompt flow 等開發方式。假設企業內部有一個業務需要多次訪問大模型,可以采用兩種方式:第一種是在業務系統中將整個流程串起來,每次與大模型的交互后,再進行業務處理;第二種方式是將整個流程封裝成一個 prompt flow,這樣在第一次訪問大模型并獲取結果后,可以進行相應處理,然后將結果傳遞給第二次訪問大模型,以 flow 的形式展現整個過程。
此外,Prompt Manager還提供了模板場景、角色定義(如協作作家、程序員等)、prompt開發(包括單個 prompt 和多個 prompt 開發方式)等功能。
最終,可以將 prompt(無論是 prompt flow、single prompt 還是 multiple prompt)提供為一個 prompt 服務,供模型消費。這樣,用戶可以通過對外開放接口或 SDK 直接訪問 prompt 服務。
四、DataCanvas APS 機器學習平臺
DataCanvas APS機器學習平臺,為數據科學家、應用程序開發人員和業務專家提供一整套工具,以便自主輕松地處理多源異構數據,并快速、高效地開發、訓練和部署任何規模的機器學習模型,打通企業級大模型和小模型應用的最后一公里。
此外,DataCanvas APS機器學習平臺還具備模型管理功能,構建了智能應用工具包,以便更好地為企業提供模型服務。
DataCanvas APS機器學習平臺的關鍵特性包括:異構多引擎融合架構;支持大數據分析;全分位的開放式;高性能分布式訓練解決方案;模型全生命周期管理;領先的自動化機器學習(AutoML)技術。
該平臺實現了數據科學家、開發人員和業務專家三位一體的融合建模方式,為數據科學家提供了友好的編碼建模環境,為數據工程師提供可視化的拖拽建模工具,而對于業務分析師,即使他們對代碼不甚了解,也可以通過自動建模工具進行模型構建。三個角色可以跨團隊、跨項目進行合作,實現高效的模型開發。