《Datafun:2025生成式AI實戰手冊(148頁).pdf》由會員分享,可在線閱讀,更多相關《Datafun:2025生成式AI實戰手冊(148頁).pdf(148頁珍藏版)》請在三個皮匠報告上搜索。
1、掃碼關注公眾號 免費下載資料頁碼:1/148掃碼關注公眾號 免費下載資料頁碼:2/148目錄目錄.2Al Agent-大模型時代重要落地方向.3大模型微調方案設計和能力整合.15大模型分布式訓練的第四種境界.29面向 2026 年的推薦算法前瞻.53NVIDIA 大語言模型落地的全流程解析.72小布助手閑聊生成式算法.94大模型的高效訓練和部署技術卷出新高度!.120掃碼關注公眾號 免費下載資料頁碼:3/148Al Agent-大模型時代重要落地方向導讀:隨著大語言模型的日趨成熟,各類基于大語言模型的 AI Agent 逐漸走入人們的視野。本文將梳理大語言模型 Agent 的相關知識點,并對大
2、模型時代 AIAgent 的重要落地方向進行探討。今天的介紹會圍繞下面五點展開:1.LLM-based Agent 整體架構2.LLM-based Agent 重點&難點問題3.基于大語言模型的用戶行為模擬智能體4.基于大語言模型的多智能體軟件開發5.LLM-based Agent未 來 方向分享嘉賓陳旭博士 中國人民大學 準聘副教授編輯整理王吉東內容校對李瑤出品社區DataFun01LLM-based Agent 整體架構掃碼關注公眾號 免費下載資料頁碼:4/148大語言模型 Agent 的構成,主要分為以下 4 個模塊:1.畫像模塊:主要描述 Agent 的背景信息下面介紹畫像模塊的主要內
3、容和生成策略。(1)畫像內容,主要基于 3 種信息:人口統計信息、個性信息和社交信息。(2)生成策略:主要采用 3 種策略來生成畫像內容:手工設計方法:自行通過指定的方式,將用戶畫像的內容寫入大模型的prompt 中;適用于 Agent 數量比較少的情況;大模型生成方法:首先指定少量畫像,并將其作為示例,進而使用大語言模型生成更多的畫像;適用于大量 Agent 的情況;數據對齊方法:需要根據事先指定的數據集中人物的背景信息作為大語言模型的 prompt,進而做相應的預測。2.記憶模塊:主要目的是記錄 Agent 行為,并為未來 Agent 決策提供支撐掃碼關注公眾號 免費下載資料頁碼:5/14
4、8(1)記憶結構統一記憶:僅考慮短期記憶,不考慮長期記憶;混合記憶:長期記憶和短期記憶相結合(2)記憶形式:主要基于以下 4 種形式語言數據庫向量表示列表(3)記憶內容:常見以下 3 種操作:記憶讀取記憶寫入記憶反思3.規劃模塊無需反饋的規劃:大語言模型在做推理的過程中無需外界環境的反饋。這類規劃進一步細分為三種類型:基于單路的推理,僅使用一次大語言模型就可以完整輸出推理的步驟;基于多路的推理,借鑒眾包的思想,讓大語言模型生成多個推理路徑,進而確定最佳路徑;借用外部的規劃器。帶有反饋的規劃:這種規劃方式需要外界環境提供反饋,而大語言模型需要基于環境的反饋進行下一步以及后續的規劃。這類規劃反饋的
5、提供者來自三個方面:環境反饋、人類反饋和模型反饋。4.動作模塊動作目標:有些 Agent 的目標是完成某個任務,有些是交流,有些是探索。掃碼關注公眾號 免費下載資料頁碼:6/148動作生成:有些 Agent 是依靠記憶回想生成動作,有些是按照原有計劃執行特定的動作。動作空間:有些動作空間是工具的集合,有些是基于大語言模型自身知識,從自我認知的角度考慮整個動作空間。動作影響:包括對環境的影響、對內在狀態的影響,以及對未來新動作的影響。以上是 Agent 的整體框架,更多內容可參考下述論文:Lei Wang,Chen Ma,Xueyang Feng,Zeyu Zhang,Hao Yang,Jing
6、sen Zhang,Zhiyuan Chen,Jiakai Tang,Xu Chen,Yankai Lin,Wayne Xin Zhao,ZheweiWei,Ji-Rong Wen:A Survey on Large Language Model based AutonomousAgents.CoRR abs/2308.11432(2023)02LLM-based Agent 重點&難點問題掃碼關注公眾號 免費下載資料頁碼:7/148當前大語言模型 Agent 的重點和難點問題主要包括:1.如何提升 Agent 的角色扮演能力Agent 最重要的功能是通過扮演某種角色,來完成特定的任務,或者完
7、成各種各樣的模擬,因此 Agent 的角色扮演能力至關重要。(1)Agent 角色扮演能力定義 Agent 角色扮演能力分為兩個維度:角色和 Agent 行為關系角色在環境中演化機制掃碼關注公眾號 免費下載資料頁碼:8/148(2)Agent 角色扮演能力評估定義了角色扮演能力之后,接下來要對 Agent 角色扮演能力,從以下兩個方面進行評估:角色扮演評估指標角色扮演評估場景(3)Agent 角色扮演能力提升在評估的基礎上,需要進一步對 Agent 的角色扮演能力進行提升,有如下兩種方法:通過 Prompt 提升角色扮演能力:該方法本質是通過設計 prompt 來激發原有大語言模型的能力;通過
8、微調提升角色扮演能力:該方法通常是基于外部的數據,重新對大語言模型進行 finetune,來提升角色扮演能力。2.如何設計 Agent 記憶機制Agent 和大語言模型最大的不同在于,Agent 能夠在環境中不斷進行自我演化和自我學習;而這其中,記憶機制扮演了非常重要的角色。從 3 個維度來分析Agent 的記憶機制:(1)Agent 記憶機制設計常見有以下兩種記憶機制:基于向量檢索的記憶機制基于 LLM 總結的記憶機制(2)Agent 記憶能力評估對 Agent 記憶能力的評估,主要需要確定以下兩點:掃碼關注公眾號 免費下載資料頁碼:9/148評估指標評估場景(3)Agent 記憶機制演化最
9、后需要對 Agent 記憶機制演化進行分析,包括:記憶機制的演化記憶機制的自主更新3.如何提升 Agent 推理/規劃能力(1)Agent 任務分解能力子任務定義和拆解任務執行最優順序(2)Agent 推理和外界反饋融合設計推理過程中外界反饋的融入機制:讓 Agent 和環境形成互相交互的整體;提升 Agent 對外界反饋的響應能力:一方面需要 Agent 真實應對外界環境,另一方面需要 Agent 能夠對外界環境提出問題并尋求解答方案。4.如何設計多 Agent 高效協同機制(1)多 Agents 合作機制Agents 不同角色定義Agents 合作機制設計(2)多 Agents 辯論機制A
10、gents 辯論機制設計Agents 辯論收斂條件確定掃碼關注公眾號 免費下載資料頁碼:10/14803基于大語言模型的用戶行為模擬智能體下面會舉幾個 Agent 的實際案例。首先是基于大語言模型的用戶行為模擬智能體。該智能體也是大語言模型智能體與用戶行為分析相結合的早期工作。該工作中,每個 Agent 分為三個模塊:1.畫像模塊對不同的 Agent 指定不同的屬性,比如 ID、姓名、職業、年齡、興趣以及特征等。2.記憶模塊記憶模塊包括三個子模塊(1)感受記憶(2)短期記憶掃碼關注公眾號 免費下載資料頁碼:11/148將客觀觀測到的 raw observation 進行處理后,生成信息量更高的
11、觀測,將其存放到短期記憶中;短期記憶內容的存儲時間比較短(3)長期記憶短期記憶的內容經過反復的觸發和激活后,會自動傳入到長期記憶中長期記憶內容的存儲時間比較長長期記憶的內容會根據現有的記憶進行自主的反思以及升華提煉。3.動作模塊每個 Agent 可以執行三種動作:Agent 在推薦系統中的行為,包括看電影、查找下一頁以及離開推薦系統等;Agent 之間的對話行為;Agent 在社交媒體發帖的行為。在整個模擬過程中,一個 Agent 在每一輪動作中均可自由地、不受外界干預地選擇三種動作;我們可以看到不同 Agent 之間會相互對話,也會在社交媒體或者推薦系統中自主地產生各種各樣的行為;通過多輪模
12、擬之后,可以觀察到一些有趣的社會現象,以及用戶在網絡上行為的規律。更多內容可參考下述論文:Lei Wang,Jingsen Zhang,Hao Yang,Zhiyuan Chen,Jiakai Tang,ZeyuZhang,Xu Chen,Yankai Lin,Ruihua Song,Wayne Xin Zhao,Jun Xu,Zhicheng Dou,Jun Wang,Ji-Rong Wen:When Large Language Modelbased Agent Meets User Behavior Analysis:A Novel User SimulationParadigm掃碼關注
13、公眾號 免費下載資料頁碼:12/14804基于大語言模型的多智能體軟件開發下一個 Agent 的例子是使用多 Agent 進行軟件開發。這篇工作也是早期多Agent 合作的工作,其最主要的目的是利用不同 Agent 開發一款完整的軟件。因此可將其看作一個軟件公司,不同的 Agent 會扮演不同的角色:一部分Agent 負責設計,包括 CEO、CTO、CPO 等角色;一部分 Agent 負責編碼,還有一部分 Agent 主要負責測試;此外,還會有一部分 Agent 負責撰寫文檔。這樣,不同 Agent 負責不同的工作;最后再將 Agent 之間的合作機制,通過交流的方式進行協同和更新,最終完成一
14、個軟件完整的開發過程。05LLM-based Agent 未來方向掃碼關注公眾號 免費下載資料頁碼:13/148大語言模型的 Agent 目前可以分為兩大方向:解決特定任務,如 MetaGPT、ChatDev、Ghost、DESP 等這類 Agent 最終應是一個和人類正確價值觀對齊的“超人”,其中有兩個“限定詞”:對齊正確的人類價值觀;超越常人能力。模擬現實世界,如 Generative Agent、Social Simulation、RecAgent等這類 Agent 所需要的能力,和第一類是截然相反的。允許 Agent 呈現多樣的價值觀;希望 Agent 盡量符合普通人,而不是超越常人。
15、此外,目前大語言模型 Agent 存在以下兩個痛點:幻覺問題由于 Agent 需要跟環境進行不斷交互,因此每個步驟的幻覺都會被累加,即會產生累積效應,讓問題變得更加嚴重;因此大模型的幻覺問題在這里需要得到進一步的重視。其解決辦法包括:掃碼關注公眾號 免費下載資料頁碼:14/148設計高效的人機協作框架;設計高效的人類干預機制。效率問題在模擬過程中,效率是個非常重要的問題;下表總結了不同 Agent 在不同API 數量下的耗時。掃碼關注公眾號 免費下載資料頁碼:15/148大模型微調方案設計和能力整合導讀:本文將介紹大模型應用開發相關的知識地圖。主要包括以下三大部分:1.總述2.核心要素3.應用
16、案例分享嘉賓侯容 知乎 艦橋平臺研發 Leader姚經緯 知乎 內容理解研發 Leader編輯整理高敏內容校對李瑤出品社區DataFun01掃碼關注公眾號 免費下載資料頁碼:16/148總述1.技術架構在構建大型模型應用時,技術架構的規劃至關重要。整體架構可被劃分為四個層次:基礎設施層、模型工具層、模型引擎層及大模型應用層。(1)基礎設施層:涵蓋了數據服務、云平臺及開源社區等多個方面,為應用開發提供堅實的基礎。數據服務:大規模模型對數據的要求極高,廠商可通過自主標注數據或采購外部數據的方式滿足需求。云平臺:大規模模型的訓練和推理過程對算力資源的需求也十分龐大,擁有自身基礎架構的廠商可自行采購裸
17、金屬或利用現有云平臺所提供的 PaaS服務來構建計算平臺。開源社區:活躍度極高,眾多優秀的開源模型如 LLama、micheal 等不斷涌現,為訓練和推理提供了高效的工具。企業通常通過整合開源模型、數據掃碼關注公眾號 免費下載資料頁碼:17/148和代碼方案,以迅速建立自身的模型能力和推理訓練能力。(2)模型工具層:是模型訓練與部署的平臺,構建于基礎設施層之上,涵蓋了從數據構建、模型訓練到模型部署的全過程。數據構建:涵蓋了數據清洗、分類和管理等工作。模型訓練:涵蓋了模型預訓練、微調和評估等工作。模型部署:涵蓋了模型轉換、量化和裁剪等工作。(3)模型引擎層:主要作用是實現路由和編排,將不同的模型
18、能力進行整合和協調。模型包括文本模型、視覺模型、多模態模型以及分類判別模型等,然而單一的模型并不能直接為最外層的應用提供所需的所有功能,需要根據各種模型能力進行編排,從而提供更加精準和高效的服務,包括但不限于檢索、存儲、安全、代碼、審計等工具能力的集合。舉個例子,在智能問答的應用中,不僅僅需要依賴一個生成模型,同時也需要結合內容檢索和安全性識別的能力。(4)大模型應用層:是整個架構的最高層,這些應用包括智能問答系統、寫作助手、觀點提取、智能助教、標題生成以及文本總結等。對于規模較大的企業,可能需要建設好這四層。但對于小規模的企業和創業團隊來說,許多開源平臺和云平臺都提供了包含模型引擎、模型工具
19、和基礎設施的服務。因此只需要利用現有的資源,針對具體的業務場景,專注于做好路由和編排相關的工作,或者偶爾準備少量數據,進行少量模型微調,就能以相對較低的成本實現需求。2.應用開發生命周期掃碼關注公眾號 免費下載資料頁碼:18/148當具備相應技術能力時,開發大型模型應用需遵循一般項目開發的生命周期,包括需求定義、方案設計、方案開發以及部署&迭代等四個主要環節。需求定義與方案設計階段,主要從兩個方向進行考量:首先,明確業務范疇與交互場景。這要求界定產品功能中哪些部分依賴大模型支持并確定其交互邊界。以聊天功能為例,需要界定大模型在其中的作用范圍和交互限制,通常大模型與用戶的交互界面是一個聊天框,因
20、此,交互設計應以聊天為主,并支持流式輸出,這是設計過程中需考慮的第一個方面。其次是關注業務目標。以聊天為例,若產品屬性為工具類,如智能助手,業務目標應為用戶需求達成率,衡量這一目標,可觀察用戶點贊數量或正反饋數量;若產品屬性為情感陪伴,則應關注對話輪次和對話次數,在這一場景下,期望 AI 與用戶進行盡可能多的交流和陪伴,因此數據埋點需相應調整。方案開發階段,也包括兩個方向:模型選擇是關鍵步驟,需要依據不同應用場景挑選最合適的模型。例如,針對多輪對話場景,更傾向于選擇對話效果更優的模型,如 LLaMA chat 等模型;在知識問答方面,更傾向于選擇具有高檢索能力和安全性的工具。在此基礎上進行效果
21、調優,包括 PE、模型微調以及強化學習等。調優完成后,將對模型本身的效果進行評估,評估每個階段的效果均達到預期后,還需對掃碼關注公眾號 免費下載資料頁碼:19/148整體效果進行綜合評估。另一方面是選擇相應的工具,通過流程編排來實現整體的互動效果。最后考慮到大模型具有較高的參數量和推理成本,需要對最終方案進行嚴格的性能壓測,如基于線上流量等因素測試,以確保線上服務不會因性能問題而影響效果。方案開發完成后,就進入了部署&迭代階段,同樣包括兩方面:一方面是與現有其他產品模塊的集成測試和上線等工作。另一方面是構建大模型的持續迭代和持續學習能力,包括對線上數據進行回收,以及對線上案例進行分析。02核心
22、要素1.模型調優 提示詞工程掃碼關注公眾號 免費下載資料頁碼:20/148提示詞工程是大模型應用的重要基礎,具有控制力更強、反饋更快速、迭代更靈活、可復用等優勢,進而可以有效降低訓練和運行成本。接下來,分三個部分詳細介紹提示詞工程:編寫一條優秀的提示詞或指令對這些指令進行調優,并通過流程編排使其最大限度地滿足業務需求評估提示詞是否滿足實際業務需求(1)編寫一條優秀的提示詞或指令指令應具備的要素:應當明確模型需要扮演的角色、要解決的問題、目標場景、相應的邊界條件、解決問題需要滿足的要求和相應的風格。指令編寫原則:提供簡潔、正確、清晰且普適的描述,正確引用相關資料。這些原則有助于提升指令的質量,確
23、保大型模型應用的有效性和準確性。超參數設置:調整超參數,如采樣策略、輸出長度和返回格式等。掃碼關注公眾號 免費下載資料頁碼:21/148(2)指令調優和編排調優的主要技巧包括:Few Shot:除了描述要做什么以外,還為模型舉了一些例子。優點是可以讓模型快速適應新任務,而不需要大量數據,但需要精心設計例子來引導模型。StepByStep:將復雜任務分解為更小、更簡單的步驟。其缺點顯而易見,就是需要調多次,過程繁瑣。思維鏈:首先給出一個指導性的問題,模型會自動完成思考并提供答案。接著,這個答案和思考過程被分割處理,再補充指導信息,指示模型基于此問題及其思考和答案提出下一個問題。這一過程持續進行,
24、逐步引導模型達到最終結果。這個過程能有效增強模型推理能力,但也存在繁瑣的缺點。另外還可以通過流程編排來進行調優:ReAct&Langchain:首先將業務工具封裝成小函數;其次是詢問模型以確定函數調用順序,最后按此順序調用函數,將結果反饋給模型。RAG(Retrieval-augmented Generation):檢索式模型,通過外部知識庫增強模型在典型場景下的表現。因為模型訓練完成后,知識庫固定于某個掃碼關注公眾號 免費下載資料頁碼:22/148時間點。模型通過搜索能力,如提出問題并搜索相關資料,將這些資料提供給問題處理模型,從而準確回答問題。檢索式模型的優點在于,額外信息可增加其回答的準
25、確性。然而,該模型的缺點是仍然依賴于外部知識庫的質量以及檢索過程的效率。策略組合:這實際上是一種面向未來的方法。以 OpenAI 去年發布的一個項目為例,該項目基于狀態機和決策模型,核心理念在于通過模型對各個操作節點進行深入思考與評估,探詢最佳問題解決策略。在執行過程中,模型通過調用特定接口以應對問題。問題解決后,模型會再次評估,決定下一步行動。這一過程循環進行,直至問題徹底解決并輸出結果。(3)評估方法基于以上這些方面,我們能夠快速構建出大模型應用。然而,如何評估這些應用的價值和效果呢?上圖中對比了不同的模型評估方法的優缺點。在實際生產環境中,面臨的問題種類繁多,涉及算數計算、方程解答、語言
26、翻譯等多種類型。為了解決這些問題,可以引入前置分析模型,該模型能夠對問題的本質進行深入剖析。根據模型分析的結論,若問題適宜通過算數計算解決,則將激活相應的計算流程;反之,若問題更適合以翻譯方式處理,則將啟動翻譯流程。通過這種策略,即可實現問題處掃碼關注公眾號 免費下載資料頁碼:23/148理的合理分流,提高問題解決的效率和準確性。2.模型調優-微調模型微調,即給基礎模型提供特定的下游任務數據,使得模型在預訓練權重上繼續訓練,直至滿足下游任務性能標準。模型微調與提示詞工程的本質區別在于,提示詞工程主要是向模型提供一個下游任務的要求標準,并讓模型理解這個標準后執行相應操作;而模型微調則是通過提供具
27、體的數個乃至成百上千個示例,讓模型自行歸納并實現預期的效果,這一過程減輕了人工總結的工作量。掃碼關注公眾號 免費下載資料頁碼:24/148需要進行模型微調的情況主要有三種:通過提示詞工程無法得到滿意的效果;線上有很多 bad case,無法有效處理;在參數量大的模型中取得了較好的效果,但希望壓縮成本,可以用大模型來造數據,讓小模型進行學習,這樣在較小的參數量,較低的成本下也能夠取得和大模型類似的效果。模型微調與提示詞工程相比的劣勢主要在于,提示詞所見即所得,而模型微調反饋的鏈路是比較長的,也在無形中延長了迭代周期。另一方面,模型微調需要調整參數,產生新的模型,因此開發、部署成本也會更高。模型微
28、調的分類如圖,其中參數高效微調,其原理在于,在訓練過程中,固定了絕大多數的參數,只對少量的參數進行訓練。理論上其效果是最優的。但劣勢是消耗資源與預訓練相當,難以規?;?。另外可控性較差,容易引發災難性遺忘等掃碼關注公眾號 免費下載資料頁碼:25/148問題。另外一種是參數高效微調(PEFT),只訓練少量參數,可以降低訓練成本,也能降低災難性遺忘的風險。PEFT 又包括Adapter-tuning、Prefix-tuning 和LoRA。具體優勢和劣勢如上圖中所示,不再贅述。3.迭代要素好的模型調優是建立在好的提示詞工程基礎之上的,需要使用前文中提到的相關技巧,獲得一個較好的效果,在此基礎上再結合
29、優質的數據和科學的觀測、評估和 scaling,才能訓練出一個好的模型。要構造高質量的樣本,需要滿足如上圖所示的一些要求。訓練過程中需要及時觀測、評估并進行相應的調整,包括數據的 scaling 和超參的 scaling。掃碼關注公眾號 免費下載資料頁碼:26/1484.方案設計&能力整合為了使效果更為顯著,在模型訓練完畢并篩選出表現優異的模型后,需將這些模型融入原子能力體系,該體系包括模型類能力,模型通常作為獨立的單點應用存在。這些原子能力與其他增強類能力和操作類能力相結合,通過上游流程的編排,最終實現大模型應用的開發。流程編排工具主要分為兩大類:一是固定編排流程,二是模型自定義流程。固定編
30、排流程的邏輯是預先設定好的,以 RAG 為例,流程是人工編寫并編排好的,模型實際上只參與整個流程中的一個環節。另一種模型自定義流程模式,以OpenAI 的 Assistant 接口為例,在接收到用戶請求后,模型能夠自主決策后續步驟。5.評估掃碼關注公眾號 免費下載資料頁碼:27/148評估(詳見上圖)在整個人工智能大模型應用開發過程中占據著非常重要的地位,評估主要包括大模型通用的能力評估、模型綜合能力評估(開源社區提供的,供各類預訓練模型進行打榜)、業務應用能力評估(特定的應用場景)。針對不同的任務應該選擇適當的評估方法。03掃碼關注公眾號 免費下載資料頁碼:28/148應用案例大模型的應用主
31、要有兩種,一種是應用相關的,一種是 inference 相關的。應用相關的主要包括 AI 搜索、工作副手和對話助手。Inference 相關的包括:中間件,主要用于任務編排;基礎工具,致力于向量檢索和數據檢索等;模型工具,提供基礎的模型能力,如文生圖、文生視頻。隨著大模型應用的持續推進,未來在千行百業都會融入 AI,應用場景一定會更加豐富。掃碼關注公眾號 免費下載資料頁碼:29/148大模型分布式訓練的第四種境界導讀:本文將分享大模型分布式訓練面臨的挑戰和相關技術體系。主要內容包括:1.歷史背景2.分布式訓練挑戰3.分布式訓練技術體系4.未來挑戰5.Q&A分享嘉賓段石石 上海壁仞智能科技有限公
32、司 技術總監編輯整理王超內容校對李瑤出品社區DataFun01歷史背景掃碼關注公眾號 免費下載資料頁碼:30/148自 2019 年以來,大語言模型發展迅猛,不斷有新的研究成果涌現,包括各類預訓練模型及其應用,如 LLM Infra 等相關技術工作,這些成果令人振奮。然而,對于從事相關基礎設施建設的人員來說,這樣的發展趨勢也帶來了諸多挑戰。人們將當前大語言模型領域的機遇與淘金熱時期相類比,眾所周知其中蘊藏著巨大的價值,但如何有效發掘則是一個問題。在過去淘金需要鏟子,而現在在大語言模型時代,則需要更高級別的工具挖掘機。這一比喻實際上揭示了對基礎掃碼關注公眾號 免費下載資料頁碼:31/148設施建
33、設提出的更高要求。這意味著不僅要有掌握操作挖掘機技術的專業人才,即具備處理和利用大語言模型技能的專業人員,同時還需要配套完善的基礎設施,例如,確保挖掘機能夠從一個地方轉移到另一個地方的運輸鏈路,以及足夠的燃料儲備。將當前大模型所需的計算能力建設比作淘金熱時期所需工具的升級是非常生動貼切的。02分布式訓練所面臨的挑戰1.大語言模型對算力的巨大需求第一個關鍵挑戰在于大語言模型對算力的巨大需求。盡管業界普遍認為大模型需要龐大的算力支持,但具體需求量級往往沒有被清晰理解。這里提供一個簡單的估算公式:模型所需算力大致等于模型參數數量乘以訓練時使用的 token 數量的六倍。掃碼關注公眾號 免費下載資料頁
34、碼:32/148例如,GPT-3 擁有約 1750 億個參數,在通用預訓練階段使用了 3000 億個token,通過計算可知其所需的算力達到了 10 的 23 次方的量級。同樣地,我們可以用這個公式估算其他大型模型如 LLM-65B 以及谷歌的相關模型所需要的算力,這些模型所需的算力甚至能達到 10 的 24 次方級別,這是一個極為巨大的數字。達到這樣的算力規模后,我們可能會觀察到大模型的涌現能力,雖然這一概念仍存在一定的爭議。當模型算力提升至這種水平時,通常會顯著提高模型的各項指標性能。對于如此龐大的算力要求,可以直觀地聯想到其高昂的成本。參考北京資源大會上獲取的信息,以 LLM-65B 模
35、型為例,單次有效訓練或者說找到一個較為優秀的模型可能需要花費四千萬到五千萬人民幣以上。這足以說明大語言模型對算力的需求之大,即使當前算力成本相對降低,但仍處于高位。2.大模型規模與顯存之間的沖突第二個挑戰是大模型規模與顯存之間的沖突問題。目前硬件設備尚未完全突破工業制造上的限制,導致在現有統計數據顯示下,即便算力不斷提升,但受限于顯掃碼關注公眾號 免費下載資料頁碼:33/148存容量,我們仍然難以充分利用這些算力資源進行高效的大模型訓練。在引用的相關數據中,大約每 3.9 個月模型的大小就會翻一番,這對應著顯存消耗的巨大需求。當前,一個規模達到 5400 億參數的大模型可能需要接近 2T 的顯
36、存,其成本極其高昂。同時,盡管單設備算力經常有所提升,但整體算力需求增長速度更快,在過去 18 個月內,算力需求甚至增加了約十倍,從 10 的 23 次方到 10 的24 次方量級。掃碼關注公眾號 免費下載資料頁碼:34/148然而,GPU 和 TPU 等計算設備的算力發展遠低于這一需求增速,隨著時間推移,供需差距將進一步擴大。對于技術人員而言,單卡算力難以滿足如此大規模的訓練需求。以目前最大的算力需求為參照,假設使用單卡 A100 峰值算力312tFLOPs,若要充分利用所有算力,理論上需要約 254 年才能完成訓練。3.構建分布式系統構建分布式系統可以顯著縮短這一時間,例如擁有 2048
37、個 GPU 時,根據計算效率(r)的不同,訓練所需時間可降至若干天。掃碼關注公眾號 免費下載資料頁碼:35/148上圖右側表格顯示了模型參數規模與單設備硬件利用率之間的關系。通常,模型參數規模越大,硬件利用率越高,因為需要進行更多計算,從而促使利用率得到提升。但在 3000 億參數規模下,整體利用率僅約為 53%,像 Meta Lab 的LLM-65B 模型估計利用率可能在 42%左右。面對這些挑戰,我們需要關注模型在整個集群中的定位、計算流程及其復雜性。深度學習過程主要包括前向傳播、反向傳播和優化器計算,在大規模集群環境下,掃碼關注公眾號 免費下載資料頁碼:36/148網絡拓撲結構、硬件間的
38、通信帶寬以及不同層級的訪問速度都成為設計的關鍵考量因素。此外,如何優化 CPU 與 GPU 協同工作,提高數據讀取預處理和off-load 任務的效率,以及解決多層交換機下的節點間通訊復雜性,都是分布式大規模訓練的重大技術難題。03分布式訓練技術體系接下來介紹分布式訓練的技術體系,這里分享的內容主要基于公開文獻和團隊過往的學習積累。1.分布式機器學習的基本概念分布式機器學習的發展歷史并不長,只有十來年的時間,但早期的一些關鍵點如AlexNet 對現今研究仍具有重要啟示意義。實際上,從計算機視覺(CV)的角度看,深度學習首次被引入并取得突破是在掃碼關注公眾號 免費下載資料頁碼:37/148Ima
39、geNet 圖像識別挑戰賽中,顯著提升了圖像識別性能。在這個領域和方向上,更值得關注的是早期使用兩張 GPU 顯卡來處理計算密集型任務,這在當時是開創性的嘗試。同時,在工業界,百度鳳巢系統先前就已開始采用大規模深度神經網絡(DNN)進行相關工作。隨著深度學習框架如 TensorFlow 的流行以及分布式訓練框架的發展,解決大模型問題的方法也在不斷演變。初期可能主要聚焦于稀疏場景下的分布式訓練優化,之后百度美顏項目將高性能計算(HPC)中的 All-Reduce 技術引入分布式機器學習,用于加速數據并行處理。再后來,諸如 Word2Vec、DDP 等經典操作的出現推動了這一領域的進步。到了 20
40、18 年,谷歌提出了將計算圖與數據處理平臺(如 Spark)中的數據流圖概念相結合,通過合理分配資源到各個設備上實現大規模模型訓練任務的拆分。Transformer 等高效且易于并行化的模型結構的提出,進一步推動了監督學習算法在自然語言處理(NLP)等領域內的顯著提升,同時分布式訓練技術也同步快速發展。在此過程中,英偉達等公司提出了 MegaPipe 等相關工作以實現大規模流水線式訓練,并關注張量并行等方面的研究,這些技術近年來愈發成熟并逐步從科研走向實際應用。2.數據并行掃碼關注公眾號 免費下載資料頁碼:38/148接下來的重點為數據并行層面,比如微軟推出的 DeepSpeed 框架,其核心
41、技術旨在解決大規模分布式訓練時的顯存占用問題。研究人員發現,顯存瓶頸主要包括兩大部分:一是參數服務器存儲的模型參數、梯度及優化器狀態;二是零冗余優化(Zero Redundancy Optimization,ZeRO)相關的顯存占用,包括激活函數計算過程中的臨時顯存分配。由于 GPU 或 CPU 在進行數據處理和顯存分片時必須按照一定的規則快速分配,這就導致了大量臨時存儲碎片的產生。DeepSpeed 通過科學分析,以及針對性地優化這兩部分顯存占用,有效提升了計算效率。在 Zero-DP(數據并行零冗余優化)方面,它將顯存優化劃分為三個階段。首先,在 Stage 1 中,研究發現優化器狀態無需
42、每個計算節點都存儲完整的備份,而是僅需保存屬于自身部分的 n 分之一。例如,在擁有 8 張 GPU 卡的情況下,每個設備僅需存儲其對應的 0 到 1/8 的數據部分,以此類推。通過這種策略,在前向和反向傳播計算過程中,只需在通信同步時進行特定操作,即使只保存 n 分之一的備份,也能確保邏輯上的數據并行正確性。掃碼關注公眾號 免費下載資料頁碼:39/148其次,在 Stage 2 中,梯度同樣可以僅保留 n 分之一,計算過程中實時與其他節 點 交 換 不 屬 于 自 身 保 存 范 圍 內 的 梯 度 部 分,采 用 類 似All-Reduce 或Ring-Reduce 的方式來完成梯度聚合。進
43、一步深入,在 Stage 3 中,模型參數也可以沿用同樣的思路,即在前向傳播時臨時獲取所需的部分,以通信時間換取顯存空間。DeepSpeed 框架中的 Zero-DP 實現展現了這一系列思想,盡管實現復雜度較高,但已成為深度學習社區中的一項重要技術突破,并廣泛應用于大規模模型訓練,如語言模型等場景。其中,Recompute 策略是解決激活函數顯存占用問題的關鍵手段,即在反向傳播時重新計算必要的激活值,而非一直保存它們,從而提高顯存利用率。此外,隨著對 optimizer、梯度和參數切分方法的深入探討,業界開始考慮是否能將這些數據從 GPU 顯存遷移到內存甚至硬盤中存儲,這是一種更為激進的方法,
44、旨在進一步釋放 GPU 顯存資源,優化大規模模型訓練過程。然而,這種方法會帶來額外的時間成本,目前行業普遍認為前向計算與反向計算的時間比例約為 1:2,因此完全重復前向計算可能會導致大約 20%至30%的時間開銷增加。在資源有限的情況下,可以通過 off-load 技術將計算圖的部分放到內存或硬盤中,以減少損耗并支持更大規模的模型訓練。這一方法雖然會增加訓練時間(例如,從百毫秒到數秒,增幅至少十倍以上),但對于擁有較充裕時間但硬件資源有限的研究者來說,可以嘗試采用這種技術來訓練模型。3.流水線并行另一個關鍵領域是流水線并行(pipeline parallelism),這一概念近年來在分布式訓練
45、的研究中得到了廣泛應用。實際上,在 CPU 操作系統的任務調度層面,掃碼關注公眾號 免費下載資料頁碼:40/148流水線并行是一個經典的工作原理,而這里主要聚焦于其在分布式訓練中的應用。流水線并行可以大致劃分為兩個部分:同步流水線和異步流水線。同步流水線的核心思想是保持與單機訓練行為一致,無論最終并行度如何設置,即每個計算階段的行為都如同在一單一設備上進行訓練時那樣,包括前向傳播、反向傳播及通信等操作。這是一個基本的同步流水線概念,通過將計算圖劃分成多個 stage,比如這張圖展示了四個 stage,并將每個 stage 分配給不同的設備執行,例如 device3 負責某個 stage。按照從
46、輸入到輸出的順序,首先在 device0 上完成計算,然后將產生的激活值(activation)傳遞給下一個計算節點,以此類推,每個節點在收到前一個節點的激活值后進行相應的計算,并生成新的激活值繼續向下傳遞。在反向傳播過程中同樣遵循這一邏輯,梯度信息會沿著相反的方向流動。然而,當我們將這樣的流程以圖形方式展示給上級或老板時,他們可能會對資源利用效率表示不滿,因為在這種同步流水線模式下,所有設備只有在接收到前一掃碼關注公眾號 免費下載資料頁碼:41/148階段的數據之后才能開始工作,而在等待數據傳輸的過程中,部分設備可能處于空閑狀態,無法實現充分利用。通過將計算圖劃分為多個 stage,并分配到
47、不同的設備上執行,每完成一個stage 后就將激活值傳遞給下一個 stage 進行計算。當設備等待接收上一階段計算結果(activation 或 gradients)時,會出現空轉,這意味著即使擁有大量資源的集群,其實際并行工作比例可能只有四分之一或八分之一,降低了整體利用率,這顯然是不可接受的。為了解決這一問題,谷歌早期的一項研究提出了一種名為“pipeline”的優化思路。該思路通過將每次計算任務切分成更小的部分,并確保計算完成后能迅速傳遞給下一個設備進行處理,同時當前設備又能立即開始處理來自上一個設備的新任務。具體而言,這種方法是將 mini-batch 樣本進一步細分為 micro-b
48、atch 維度,例如原本可能是 64 個 patch,現在可以按 16 個 patch 細分,即每個樣本的 micro-batch 數量變為 16。這樣操作后,在某些維度上,設備的利用率會有所提高,盡管仍然存在空洞時間(idle time),但在很多情況下,這種時間會被顯著縮短。掃碼關注公眾號 免費下載資料頁碼:42/148在討論分布式訓練中的顯存管理問題時,阿里巴巴經過一系列科學研究提出了一項名為1F1B的工作。盡管隨著模型并行度(micro-batch 數)的增加,中間臨時保存的副本數量也會增多,導致 GPU 顯存峰值持續增長,但這項工作指出通過科學可控的調度策略可以改善這一情況。具體來說
49、,采用“來一個前向計算一個后向”的方式,使得整體顯存占用量與設備數量和單個 micro-batch 所占用 的激 活 值大 小 相關,而非micro-batch 的 數量。這樣 一 來,即 使增 大micro-batch 大小,也不會增加顯存峰值。掃碼關注公眾號 免費下載資料頁碼:43/148此外,英偉達提出了改進型的工作,在1F1B的基礎上提出了精細化切分 stage的方法。不同于先前按連續幾層劃分 stage 的做法,新的思路是采用 RoundRobin 的方式更為細致地分配任務,例如將 8 層網絡分為兩部分,第一部分從L1 到 L5,并且在完成一層計算后立即推進至下一設備進行后續計算,從
50、而提高了設備利用率,這種技術被稱作交錯式(1F1B)流水線方法。掃碼關注公眾號 免費下載資料頁碼:44/148國防科技大學的一項研究則結合了 recompute 技術,發現在流水線并行中的最后一個 stage 無需保存激活值,可以直接進行反向傳播計算,通過提前調度相關節點可縮短關鍵路徑,有效提高訓練效率。盡管這項工作可能具有一定的局限性,但其帶來的性能提升顯著,值得深入研究。在同步訓練方面,還有更為激進的方法,例如某位華裔學生的研究,嘗試解決一個與傳統思路不同的問題,即在考慮時序圖時,并不局限于從零到一或從一到零掃碼關注公眾號 免費下載資料頁碼:45/148的單向順序執行。例如,在處理 mic
51、ro-batch 時,同時利用兩個方向進行數據傳輸和計算,就像在一個雙向通道上操作一樣。具體來說,設想在設備間構建一個雙向通信鏈路,以 micro-batch 為例子,可以實現數據既從 device 這一端流入流出,也能從另一個方向傳遞。這樣,在對時序進行合理安排、優化 stage編排時,比如將原本的階段細分為四個部分,就能夠進一步提升整個系統的利用率,包括壓縮 pipeline 空間占用的時間,從而實現更高效地運行。關于流水線并行中的異步變形部分,這里不作詳細展開。早期在處理 P 問題時,我們同樣面臨抉擇:是在所有節點的梯度都準備好之后進行一輪整體參數更新(同步),還是只要有部分節點完成就立
52、刻更新參數(異步)。此外,還有諸如ASP、BSP 和 SSP 等不同版本的同步/異步策略。在流水線并行中,有一種工作模式是當數據到達后立即執行反向計算,這就要求保存多個副本以應對版本差異問題,確保在異步計算場景下,即使顯存使用增多,也能保證充分利用設備算力,并盡量減少顯存開銷。理論上,這種邏輯能夠充分利用所有資源,但在實際應用中,由于中間計算過程存在的參數版本差異,可能掃碼關注公眾號 免費下載資料頁碼:46/148導致與單卡訓練效果存在一定的差距。Tensor 運算優化的一項經典工作m in,強調在處理大規模矩陣計算時(例如數千萬個值的矩陣),為了充分挖掘計算能力,可以將矩陣切分并在不同的設備
53、上并行計算。雖然文章沒有明確提到這一點,但實際在 m 的實現中,會對embedding 部分也進行相應的切分處理,以便于后續的 MLP(多層感知機)和 Attention 機制等大矩陣乘法操作。通過合理地在不同設備上分配 tensor并適時引入通信邏輯,在恰當的時間點進行通訊與結果復用,從而實現對 tensor變形問題的有效解決。實際上,在實際工作中,很多人并未充分關注到如何更合理地在不同設備上分配和切分矩陣以優化計算的問題。這里分享一項研究工作,其目標是通過一個創新的通信策略來解決這一問題。該策略主張從二維維度對矩陣進行切分,并基于此對樣本進行區分處理。掃碼關注公眾號 免費下載資料頁碼:47
54、/148具體來說,研究者提出了一種類似于 GR=2 的方法,將矩陣在兩維空間內劃分,并且對權重采用二乘二的方式進行切分,每次僅傳輸四分之一的數據,在所有切片都完成計算后進行一次整合通信。盡管這個基本概念看似直觀且合理,但在實踐中,需要在較早階段就實現同步通信以確保各個設備能拿到相應結果。以一個假設為例,若在一個設備上將任務劃分為八層,那么是否可以在不進行額外通信的情況下,在這八層內部連續進行計算呢?研究指出這是可能的。設想這掃碼關注公眾號 免費下載資料頁碼:48/148樣一個場景:當完成某一層計算后,當前設備只持有數據的一部分(即一半),然后繼續處理下一部分數據,直到最后與其它顯卡進行通信時才
55、增加通信邏輯。這樣一來,原本輸入數據就形成一個斜角,只需要通過對權重進行轉置操作,理論上便能在單個設備上連續進行計算,直至必須與其它設備通訊為止。這種技術訓練方法旨在通過精細化的任務切分與通信策略優化,提高分布式計算環境下的資源利用率和效率。04未來挑戰最后分享我們在實際工作中關注到的幾個關鍵點。首先,面對當前工業界中復雜且難以通過單一程序、語言或圖像清晰表達的問題,我們意識到需要開發一種高度直觀且功能豐富的工具。類似于騰訊報道中所展示的那種可視化工具,在深度學習框架推出后起到了重要作用。在現階段,我們也急需開發出訓練過程可視化以及優化調度等方面的輔助工具,這將極大助力于我們的科研團隊和同行們
56、的工作進展。第二點是關于自動變形這一領域的研究,尤其是智能并行相關的技術。值得注意的是,現有的學術研究成果往往更多關注于圖(graph)結構本身或設備層面,而忽視了如何處理大量動態信息等實際問題。在前文中提到為了確保算力的有效利用,我們需要考慮如何動態地調整喂給模型的樣本數量以及 max-size 等參數,并且要充分應對計算設備內部的異構性問題,包括但不限于計算設備本身的異構性和網卡的異構性。這些因素都可能帶來諸多挑戰。掃碼關注公眾號 免費下載資料頁碼:49/148此外,在模型結構演進方面,從 Transformer 到當前一些新型模型結構,我們觀察到存在變革的需求,例如出現了 WW-KV 這
57、類新型結構。過去的分布式框架主要針對 Transformer 結構進行優化,但在面對其它類型的模型或硬件切換時,原有的策略可能無法有效解決所有問題,甚至于模型結構本身也可能需要適應性改變。對于 Transformer 結構優化是否轉向其它結構方向的問題,確實已有相關研究,但 我 們 所 做 的 工 作 還 遠 遠 不 夠。目 前 了 解 到 的 一 些 研 究 不 僅 局 限 于 優 化Transformer 結構本身,還在探索結合其它結構的可能性,比如參考 CN 等早期和最新的研究成果。05Q&AQ1:針對于 transformer 結構的優化,有沒有想往其它結構的方向優化?A1:有一個雙向
58、工作的概念,這是一個非常有趣的工作思路,尤其在處理大規模數據和不同設備場景時,其關注點和選型考量都有所區別。例如,當模型規模達到千億級別時,可能需要采用更細致、更具針對性的方法來優化資源使用和計算流程。由于政策原因,GPU 相關的問題在此不便詳細回答,請大家諒解。Q2:在較小規模的場景下,如何高效利用顯存和計算時間?A2:可能會通過一些微調策略來平衡二者,但這通常會導致一定程度上的顯存額外損耗。不存在既能最大化利用資源又不違背基本物理限制的方法。例如,我們可以運用像 recompute 這樣的經典優化技術,在某些層面上進行更細致的優化,掃碼關注公眾號 免費下載資料頁碼:50/148雖然這會增加
59、一定的計算耗時(如 10%以內),但其適用范圍有限,往往僅適用于特定的產品或場景。Q3:關于 Machin 與 DeepSpeed 這兩套框架哪個使用更為廣泛的問題。A3:Machin 主要專注于 3D 并行,尚未實現 z20 和 z23 那樣的特性;而DeepSpeed 則主要采用 zero+off-load 的技術。從我的角度來看,這兩者的定位并不特別清晰。舉例來說,DeepSpeed 自身并未強調獨特的并行機制,可能借鑒或復用了 Machin 等其他技術的一些工作成果。至于哪個框架使用得更多,則需要根據具體應用場景來判斷,我個人認為它們各有其適用范圍和優缺點。在大模型訓練過程中,我們可以
60、將其大致分為預訓練(pre-tuning)和微調(alignment)兩個階段。對于預訓練階段,當模型參數規模龐大,計算設備上載入和訓練復雜度較高時,往往會選擇使用像 Machin-Deps Pet 等工具進行優化,同時科大訊飛以及其他類似平臺如 GPT-3 也采用類似的解決方案來應對這一挑戰。而在微調或具體應用任務中,比如運用 70 億參數級別的模型進行指令生成任務時,DeepSpeed 可能更為常用。原因在于 DeepSpeed 目前集成了多種高效技術,例如 Hugging Face 的集成模塊 night,以及國內一些類似于 HuggingFace 的平臺功能,并且其對模型和平臺的集成程
61、度相當高。然而,從代碼質量和架構角度來看,Machin-Deps Pet 與 DeepSpeed 之間存在相互交叉和借鑒的現象,可以說是你中有我、我中有你,這并非貶低它們的意思,而是反映了這兩種工具在發展過程中由于需求和技術迭代所形成的必然聯系。Q4:自動并行策略的搜索如何進行?A4:這是一個頗具挑戰性的問題。在自動并行領域中,搜索有效的并行方案雖是掃碼關注公眾號 免費下載資料頁碼:51/148難題之一,但相較于模型結構搜索(如 NAS)而言,其難度尚不至那么突出。我認為關鍵在于如何合理地表示和處理 IR(中間表示),比如 DPT-PPP 這樣的并行模式,以及如何描述硬件設備狀態與動態信息,例
62、如根據計算資源利用率、同步樣本數量等動態調整參數。隨著計算任務需求的增長,尤其是當面臨越來越多的計算資源時,資源復用和共享成為必然趨勢,這會帶來一系列新的問題。對于高性能 AI 容器的相關思路,我目前并不清楚提問的具體含義。關于 Zero Stage 3 和 Tensor Parallelism 的區別:Zero Stage 3 優化涉及到將 optimizer 的狀態分片,但它并非作用于操作符級別。舉例來說,在一個包含兩層網絡結構的例子中,第一層為 w0 乘以 x0,第二層為 w1 乘以 y0。在Stage 3 中,時間 步長的 切分 不會深 入到 權重w0 內部。而TensorParall
63、elism 則是針對大規模權重矩陣(如千萬級或億級別的 w)進行切分,并分配到不同的硬件上進行并行計算。Q5:Softmax 運算與其他操作之間是否存在并行的可能性?A5:在 Tensor 變形時,M 模型的實現涉及到 Softmax 操作。在進行分布式計算時,Softmax 層會被劃分為多個設備處理,這會引入兩次通信過程。首先,需要通過 All-Reduce Max 通信來確保每個設備知道全局的最大指數值,以便后續對所有設備上的指數進行平均化處理,這樣可以防止因大規模密集計算導致溢出問題。例如,如果有 1 億個數值都在 1998 或 999 附近,直接相加 1000次確實容易溢出,但通過減去
64、最大值并求和后再平均,最終結果將是等價的。第一個通信步驟就是傳遞這個最大指數值,第二個通信則是整合各個設備上完成的部分計算結果,以實現最終輸出的一致性。這里需要注意的是,我們不是按照掃碼關注公眾號 免費下載資料頁碼:52/148Stage 維度或者 Line 維度切分,而是從參數維度出發,將模型參數分成 n 份,每個設備負責其中的 1/n 部分,并在該設備上進行完整的前向和反向計算。這種情況下,即使是在流水線并行中,每個設備僅處理整個模型的 n 分之一,但仍然能保證數據并行,即模型分布在不同設備上,每個設備獨立處理不同的數據樣本,而在最后階段通過通信整合結果。這樣的設計具有很高的工程挑戰性,尤
65、其是在處理只有 R、只有 1 和只有 2 這類細粒度差異時。對于對此感興趣的人,建議查看 Deep Speed 的相關實現代碼,它提供了一個巧妙的數據并行解決方案。掃碼關注公眾號 免費下載資料頁碼:53/148面向 2026 年的推薦算法前瞻導讀:常規的推薦系統范式已經逐漸走入瓶頸,原因是在當前固定化的問題描述下模型和系統幾乎已經發展到極限。當前的主要范式在模型上為召回+排序+重排,系統上為樣本挖掘+特征工程+線上打分預估能力建設。一線大廠在上述領域已經把空間挖掘殆盡。同時可以看到,我們的用戶對當前推薦系統的滿意度仍然未達到理想狀態。推薦系統是一個非常面向于用戶滿意度的平臺系統,而用戶滿意是一
66、個永遠存在不同理解的問題,一千個用戶眼里有一千種對好的推薦系統的理解。構建更好的推薦系統需要我們重新定義“什么是好的推薦系統”。這并不是學術界的“強行挖坑”或者“繼續填坑”,而是不同層面上都在呼喚新的定義。事實上,新的推薦系統已經零散地在學術界和工業界展現星星之火。為何本文主題提出 2026 呢?是因為當前無論在業務上還是技術上都有一些亟待解決的問題,希望在未來 3 年能找到好的解法。本次分享主要包含以下內容:1.留存提升2.用 戶 增長3.內 容 生態4.多目標帕累托最優5.時 間-長 期 價值 預 估6.空 間-全 站 優化7.交 互 式推 薦 系 統(IRS)掃碼關注公眾號 免費下載資料
67、頁碼:54/1488.千 人 千模9.當 作 決策 問 題 的 推 薦算 法10.推 薦 大模 型 的 可 行 路徑-多 源 信息 融 合OneRec11.參 考 文獻12.Q&A分享嘉賓肖玄基 Shopee Inc 內容電商算法負責人編輯整理徐亞楠內容校對李瑤出品社區DataFun01留存提升對于所有 APP 來說,留存是第一生命力,APP 留下多少用戶,DAU 多高,決定著公司的估值和市值。業界和留存相關的課題主要有以下三種:通過相關性分析、因果推斷找出影響留存的因素。比如愛奇藝、騰訊視頻和優酷等平臺。對于長視頻平臺,影響留存的最大因子是熱播劇,在騰訊視頻中我們會發現假如有熱播劇上線,那么
68、當季的留存和 DAU 會提升很多。但如果一個熱播劇下線,DAU 就會降低很多,這就要求平臺不斷提供爆款的熱播劇,熱播劇因素跟平臺的留存非常相關。留存拆分為多個子目標建模,再綜合排分。建模多天的收益來逼近留存的概念。如果是次日留存,對用戶的正反饋,不掃碼關注公眾號 免費下載資料頁碼:55/148要建模為一次點擊或者觀看 30 秒,而要建模為 48 小時的總體消費指標,這樣更能夠逼近留存。下圖中展示了兩個項目:一是留存與一刷 tag 熵的關系,例如今天有 n 個用戶來到平臺,明天 m 個用戶留下,留存就是 m 除以 n,這是次日留存的概念。tag 熵是指內容多樣性,我們發現如果用戶看的內容比較多樣
69、,在當時場景下留存率是比較高的。二是基于強化學習的分析,我們希望逼近 30 分鐘建模,即用戶在短視頻平臺看30 分鐘的總價值。02用戶增長這里使用的是狹義的用戶增長定義,如何把一個新的不活躍的消費者變成平臺的活躍用戶。掃碼關注公眾號 免費下載資料頁碼:56/148平臺僅依靠巨大的人口紅利獲得持續發展的時代已經過去,很多平臺進入存量競爭。在新平臺新 APP 上線的階段,更是用戶增長能力決定生死的關鍵階段。相關的課題:用戶分層優化,預估 high value action。舉個例子,比如有些用戶狀態能夠很好地區分用戶的等級,我們會利用這些關鍵的動作把用戶分層2。二是營銷手段建模 uplift 和推
70、薦算法的分人群。營銷的手段主要就是物質獎勵,推薦算法就是更精準的匹配,針對不同層次的用戶,有不同推薦算法的目標。用戶的知識融合,一個中小型 APP 其實非常缺乏數據,無法建模用戶偏好,我們希望能夠從外部融合一些數據,來彌補數據不足34。03內容生態內容生態的定義是平臺供給側繁榮程度,它是平臺的 B 面,好的內容生態應該掃碼關注公眾號 免費下載資料頁碼:57/148能充分反映用戶的需求,而且自身應該有比較好的生長發育衰退機制,就像一片森林或者是一個社會的經濟系統,這也是其稱為生態的一個原因。內容生態非常重要,是平臺真正的護城河,很多時候平臺經濟的護城河其實不在于 C 端,更多在于 B 端。例如淘
71、寶的服飾類、拼多多的機制供應鏈競爭、抖音很大程度上靠優質內容供給來搞定前期用戶。相關的課題:內容生態的指標:建立調性控制生態自身的繁榮程度計劃經濟:建立保量系統,達到運營調控的目標部分的計劃經濟:建立創作者的分級成長、內容生命周期管理,利用 PID 算法、帶約束優化以及流量博弈等。平臺供給&消費是否匹配:從用戶出發設計供需機制。理解用戶平臺內容側的需求是什么。預估主播內容的潛力+主播內容質量的建模,進行有計劃地分發。通過預估增長程度指導內容生產,我們可以知道生產 X 個某種內容到底能讓用戶側產生怎樣的反應。掃碼關注公眾號 免費下載資料頁碼:58/14804多目標帕累托最優要實現更加精細地優化用
72、戶滿意度,目標越充足越好,我們希望用戶在所有指標上都有增長,即多目標帕累托最優,比如觀看、下單、點贊、評論、分享等。user_satisfaction=max click,order,interaction,.這個問題很重要,因為用戶滿意也是平臺的終極目標之一。只有用戶滿意,平臺才能夠存活。在缺乏大規模問卷調查的情況下,目前很多公司采用的就是優化多目標滿意,一般是點擊率、轉化率、觀看時長等指標。帕累托最優5可能難以達到,因為有些目標是相沖的,這時的帕累托最優是在相沖的情況下最優的一種情況。例如下圖中紅色的線,被認為是帕累托最優的前沿,這條線代表已經到達臨界值。臨界值指的是在不損害某一個指標的情
73、況下,是無法提升其他指標的,這被稱為帕累托前沿。我們的目標就是找到帕累托最優前沿,在不同指標間進行 trade off。相關課題包括:提升多個目標-超參數尋優算法。在多目標無法共同提升情況下,如何取舍。掃碼關注公眾號 免費下載資料頁碼:59/14805時間-長期價值預估接下來介紹建立時間維度的長期價值預估。當前的推薦系統比較專注于瞬時價值,缺乏對更長期價值的預估,而長期價值更加接近 DAU 目標。短期價值優化容易出現很多問題,比如標題黨、軟色情等,導致平臺失敗。相關課題包括:優化 session 的總價值,將 session 定義為一個用戶一次不間斷的跟 APP的交互。優化多個場景之間的總價值
74、,比如淘寶現在是雙列流,用戶在雙列流進行瀏覽,但又可能點進去某一個具體詳情繼續瀏覽。雙列流可能會具有多樣性,單列流則更偏向于單類目。雙列流跟單列流之間也會存在此消彼長的效應,需要進行調和。掃碼關注公眾號 免費下載資料頁碼:60/148session 總價值可以用馬爾可夫過程建模成一個多輪交互。這里引用微軟謝幸老師在微軟新聞上的一個工作6,他把推薦系統稱為一個智能體,把用戶稱為環境,智能體推薦給用戶一些新聞,根據用戶是否點擊作為反饋來建模。另一個是騰訊視頻的一個工作1,通過優化 session 價值,使 VV、GTR 等提高了兩個點。06空間-全站優化APP 通常有多個場景滿足不同需求,比如首頁
75、猜你喜歡滿足發現性、相似推薦滿足對于某個點的深入消費、購物車頁面滿足搭配需求。需要聯動所有場景,在典型用戶行為鏈路上進行全局優化。單場景優化會出現抵消效應,所以要對用戶的典型鏈路進行分析。利用用戶行為鏈路信息作為建模約束可以更好地實現單場景優化。掃碼關注公眾號 免費下載資料頁碼:61/148相關課題包括:用戶典型鏈路分析,比如逛、比價、分享等。多場景聯合建模/觀察影響-使用基于共享和博弈的強化學習等。07交互式推薦系統(IRS)個性化問答助手逐漸商用,并在未來的人類生活中被寄予厚望?;谌祟愔苯诱Z言交互的推薦系統,能夠更加滿足用戶意圖,并且更加便捷。目前有兩種 IRS 系統,隱式對話和顯式對話
76、。前者已經在大廠初步展示了價值,后者隨著 chatGPT 熱度再起,但是當前仍不成熟。相關課題包括:顯示的對話式推薦,GPT 加推薦算法以及意圖識別等。隱式交互式推薦-意圖生成,知識圖譜,列表式推薦(Exact-K),下圖所示是當掃碼關注公眾號 免費下載資料頁碼:62/148時提出的騰訊視頻的心向標項目。08千人千模人類的理解能力很強,基于極少的信息描述,就能夠很好地理解一個人。在主流平臺上,單個用戶的信息、行為多達上千上萬條。是否有可能為每一個人建立一個模型以提升準確度呢?雖然我們現在的推薦算法就是千人千面,但其實pattern 是被大部分主流人群主導的,對于長尾用戶表現得并不理想。在排序算
77、法中,預估精度是永恒的追求,大公司通過分類別分群建模以進一步提升效果,如果能夠在機器負載允許情況下為每一個用戶建立一個模型,那么將會實現真正的千人千面。目前相關課題包括:如何進行系統和算法的聯合設計節省資源。掃碼關注公眾號 免費下載資料頁碼:63/148如何逼近千人千模分群學習,工業界其實很難給每個用戶建立模型,比如淘寶有 10 億的用戶,如果每個用戶建一個模型,那么機器負載消耗是巨大的。但我們可以采用一些逼近方法,比如多任務學習或 Meta learning。單個人建?;蛱嵘P偷挠洃浤芰?。主流排序算法模型+千人千模。如下圖所示,Gate 特征與 CTR 模型融合來校準學習8。09當作決策問
78、題的推薦算法工業界推薦的本質不是一個常規的回歸/分類,而是一個決策問題。平臺通過感知用戶并決策給到用戶在不同時刻想要的東西,從而希望用戶能夠喜歡這個平臺最終停留下去。同時用戶反饋(比如點不點)也是一個決策問題,里面含有不確定性。從決策角度看,推薦不同于 CV/NLP 等問題,更加類似于 AI。當前的解法基本上把推薦當作分類問題,這是存在缺陷的。掃碼關注公眾號 免費下載資料頁碼:64/148為什么推薦是決策且不確定性問題?平臺給用戶推薦視頻,用戶的反饋、用戶的狀態都具有一定不確定性。所以我們將其視為決策問題。相關課題:針對平臺調性的留存建模。運營挑選的熱門物品根本不匹配用戶興趣,但是用戶卻喜歡上
79、了平臺,比如拼多多首頁。把推薦當作多輪交互的 MDP 過程。用戶決策僅僅是興趣匹配嗎?其實決策不僅僅是興趣匹配,還包括多樣性、精細度、時效性、用戶疲勞度等,這些都對用戶決策起到了作用。10OneRec-推薦融合大模型3大模型和推薦的共同點是參數量都很大,其實在大模型問世之前,淘寶等主掃碼關注公眾號 免費下載資料頁碼:65/148流平臺的推薦模型也都達到千億參數規模。大模型的優勢在于深度語義理解和廣度世界知識,它能夠根據上下文做出比較精準的推斷。具備廣度世界知識是因為大模型學習了很多不同領域的信息。然而大模型也有其局限性,推薦模型是高度專有化的,大模型在單獨某個任務的精度不容易超越傳統模型。大模
80、型會不會取代推薦模型?比如 GPT 是否會取代推薦算法?一是取決于人機交互的進化,從應用的角度來看,近二三十年大的互聯網變革都是從交互方式發生的。從 PC 時代、移動互聯網時代,再到當前的 GPT 時代,交互方式是第一生產力。如果 GPT 控制終端入口,那么推薦將被迫作為 GPT的子模塊,所以整體取決于人類更喜歡的前端交互形態是什么樣的。二是 GPT 是否會成為推薦的入口。當大模型內置于手機等智能終端后,消費者的使用習慣如果一直傾向于通過提問來獲取物料,那么推薦就有可能成為 GPT的一個后端。但如果消費者的習慣沒有改,還是喜歡刷淘寶、抖音,那么 GPT 就不會取代傳統推薦系統。三是推薦算法不會
81、消失,因為推薦算法的準確度非常高,最差的情況下它也會作為一種 backend 內嵌于大模型當中。后續的演進方向:交互性。chatGPT 類催生新的業務場景,比如基于問答的推薦場景,類似于淘寶問答中的答案生成和推薦。深度語義理解,大模型對內容理解能力的提升。當前推薦建模依賴大量離散特征以及統計后驗特征,如果未來能通過大模型的內容理解能力,直接匹配用戶理解,這樣端到端的新范式會重塑推薦系統的發展線路。廣度知識,改善長尾。掃碼關注公眾號 免費下載資料頁碼:66/148生成能力。需要得到 chatGPT 類模型,當前難度較大。下圖中的 case 就是對比一些大模型和原來 Facebook 的 DLIM
82、 模型,可以看到大模型的參數集中在 FC 層,而推薦集中在 embedding 層,FC 層模型有更好的語義理解,集中在 embedding 層模型就有更好的記憶?;谝陨系呐袛?,我們并沒有把大模型和推薦系統直接結合起來,而是先開發了OneRec 項目,試圖融入各種各樣的更廣闊的業務知識,從而拿到業務效果。在我們可以靈活有效地進行多信號信息融合基礎上,探索統一的大模型之路。從 2019 年我們開始關注多種信息的萃取融合,提出了 OneRec 算法3,希望通過平臺或外部各種各樣的信息來進行知識集成,打破數據孤島,極大擴充推薦的“Extra World Knowledge”。我們認為這是當下非???/p>
83、行的推薦大模型演進方向。已實踐的算法包括行為數據、內容描述、社交信息、知識圖譜等。在 OneRec,每種信息和整體算法的集成是可插拔的,一方面方便大家在自己的業務數據下靈活組合各種信息,另一方面方便開源共建,大家集成自己的各種算法。相關代碼掃碼關注公眾號 免費下載資料頁碼:67/148和論文已經開源,項目地址:https:/ 年,OneRec 第二期仍在火熱進行中,包括四個方向:社交信息和行為信息融合、搜索和推薦融合、多模態融合、跨業務場景融合。歡迎大家聯系我們,加入微信群(聯系方式:),加入團隊進行開源共建。掃碼關注公眾號 免費下載資料頁碼:68/14811參考文獻1On Modeling
84、Long-Term User Engagement from Stochastic FeedbackG Zhang,X Yao,X Xiao掃碼關注公眾號 免費下載資料頁碼:69/148in the proceedings of The Web Conference 2023,Oral Presentation(4 in20+2STAN:Stage-Adaptive Network for Multi-Task Recommendation byLearning User Lifecycle-Based RepresentationW Li,W Zheng,X Xiao,S Wangin th
85、e Proceedings of the 17th ACM Conference on recommender systems3OneRec:一個專注在多源信息融合的推薦算法庫,https:/ Based Enhancement for the Long-Tail Ranking Problem inVideo Rank ModelsZ He,X Xiao,Y Zhouin the proceedings of ACM SIGKDD CONFERENCE ON KNOWLEDGEDISCOVERY AND DATA5A pareto-efficient algorithm for multip
86、le objective optimization ine-commerce recommendationX Lin,H Chen,C Pei,F Sun,X Xiao,H Sun,Y Zhang,W Ou,P Jiangin the Proceedings of the 13th ACM Conference on recommender systems,20-286ADeepReinforcementLearningFrameworkforNewsRecommendationZheng,Guanjie and Zhang,etc.The Web Conference 2018,Lyon,F
87、rance,Apr.2018掃碼關注公眾號 免費下載資料頁碼:70/1487LearningtoCollaborate:Multi-ScenarioRankingviaMulti-AgentReinforcement Learning-Jun Feng,Heng Li,etc.8CTR 2023 最新進展:Calibration based MetaRec CTR,湯其超、楊浩強、肖玄基等,202312Q&AQ1:在用戶增長部分提到 42 秒,這里分析很細致。請問這個 42 秒的來源是什么?A1:對于 high value action 可以選 41 或 40 秒。42 秒是經過統計分析和模型
88、預估最終得出的結果。大于 42 秒的用戶跟小于 42 秒的用戶的長期價值差別非常大。比如大于 40秒的用戶大概平均每年能買 3 單,如果小于 40 秒的用戶平均能買 1 單,那么 DIFF 就是兩單。再來看為什么不選 40 秒,大于 40 秒的用戶可能平均每年只買兩單,小于 42 秒的用戶可能每年只買 1 單,他們的 DIFF 是 1 單。我們認為 42 秒更能區分用戶,他們的 deep 更大,這就是我們選 42 秒的原因。Q2:內容生態部分提到計劃經濟會用到 PID 控制,它的約束和優化目標是什么?A2:對于 PID 控制算法,舉個例子,比如我們現在引入了 1 萬個網紅,是跟MCN 機構簽約
89、的,假設我是其他平臺競爭方,我們從那邊挖過來 1 萬個網紅,掃碼關注公眾號 免費下載資料頁碼:71/148那么每天要給他們 1 萬個 view,這是我們跟他們協議的一部分。要達到這 1 萬 view 量,就由 PID 算法來保證的。比如可能一小時給他 1 萬view,按照每分鐘給予數量相同的 view。帶約束優化則是更進階的算法,在做計劃經濟的時候我們經常會對原來的市場經濟算法的自然分發造成效果的損失。那么如何調節兩個 PID 呢?我們可以將其轉換為一個帶約束的優化問題,描述為最大化 C 端的收益,比如說 Max CTR(最大化點擊率)??梢蕴砑右粋€超參數 Pij,Pij 代表對于這個用戶這次
90、要不要推薦這個短視頻或直播,I 代表這個用戶,j 代表直播間。比如在當下要不要推薦這個直播,我們自然流量分發的目標是 CTR,約束就是比如每小時給的量不要大于 12000,也不要少于 8000,這樣將其變成一個帶約束的固化問題。Max CTR*Pij,subject 這個約束指的是,我們給的量,比如 Pij sum 要大于 8000,小于等于 12000,這樣可能是一個更好的描述形態,但這個問題可能是非凸的。Q3:大模型和推薦系統的主要區別是什么?A3:推薦的最大優勢是在單個問題上,比如 CTR 建模上,推薦系統精度非常高。但大模型做不到高精度。大模型的優勢是有深度的語義理解,還有廣度的世界知
91、識。掃碼關注公眾號 免費下載資料頁碼:72/148NVIDIA 大語言模型落地的全流程解析導讀:本文將分享 NVIDIA 在大語言模型領域的解決方案。包括三部分內容:1.第一部分是關于 NeMo Framework。NeMo Framework 是 NVIDIA 大語言模型的全棧解決方案,它通過不同組件完成生成式 AI 各個環節的任務,包括數據預處理、分布式訓練、模型微調、模型推理加速及部署(TensorRT-LLM 及Triton)、檢索增強生成(RAG)、護欄技術(Guardrails)等等。2.第二部分是關于 TensorRT-LLM。TensorRT 從 2016 年推出以來,一直在不
92、 斷 發 展。隨 著 進 入AI 2.0大 語 言 模 型 時 代,NVIDIA隆 重 推 出 了TensorRT-LLM。在 TensorRT 的基礎上,TensorRT-LLM 對 LLM 部分進行了相應的封裝和增強。一個令人振奮的消息是,TensorRT-LLM 是開源的,采用Apache-2.0 開源協議,對用戶非常友好。3.第三部分是關于 RAG(Retrieval Augmented Generation),即檢索增強生成。在使用大語言模型時,存在一個問題,即模型在某些未掌握領域可能出現胡言亂語。為了解決這個問題,NVIDIA 引入了 RAG 技術,用于增強和輔助實際大模型的應用。
93、分享嘉賓Jack He(何成杰)NVIDIA 資深解決方案架構師編輯整理吳葉國內容校對李瑤出品社區DataFun掃碼關注公眾號 免費下載資料頁碼:73/14801NeMo Framework 首先來介紹 NeMo Framework。1.NeMo Framework Overview這一輪生成式 AI 浪潮涵蓋的范圍非常廣泛,除了大家熟知的大語言模型之外,還包括文生圖、科學研究,和最近備受關注的多模態及不同模態切換等方面。生成式 AI 不僅僅局限于大語言模型,還涵蓋了與深度神經網絡相關的部分以及更廣泛的內容。掃碼關注公眾號 免費下載資料頁碼:74/148聚焦于大語言模型領域,NVIDIA 推出
94、的 NeMo Framework 涵蓋了大語言模型的開發、部署以及使用的全流程。整體包括六大部分,如上圖所示,其中前三部分涉及模型開發,后三部分涉及企業應用部署。數據處理和清洗,以形成高質量數據集。分布式訓練,其中涉及諸多技術,后文中會詳細討論。模型定制化,針對不同的場景或行業進行相應的適配工作。推理加速。在這方面,NVIDIA 有兩個非常重要的產品,一個是用于單個模型優化加速的 TensorRT-LLM,另一個是用于直接進行模型部署的 Triton。RAG(Retrieval Augmented Generation),召回和增強生成部分。涉及知識庫、向量庫以及 Agent,與大模型的最終落
95、地息息相關。Guardrails,主要充當守門員的角色。對于一些常見的問題,比如對時政等問題首先進行過濾。掃碼關注公眾號 免費下載資料頁碼:75/148NeMo Framework 不僅僅用于大模型的訓練和推理過程,也可以適配其他模態,比如語音轉文字等不同場景。2.NeMo Framework Key Components接下來介紹 NeMo Framework 的核心組件。首先是數據處理部分,這是一個關鍵環節。在實際場景中,原始數據集通常需要經過多次處理。典型的處理步驟包括去重、清除一些低質量的數據等。掃碼關注公眾號 免費下載資料頁碼:76/148對于去重,通常使用基于規則的方法。例如,如果
96、發現某條數據中同一個詞語重復出現超過一定的頻率,我們就會將其視為不合適或低質量的數據,這就是基于規則的過濾方法。此外,我們還可以通過各種手段,包括訓練模型的方式,來區分低質量和高質量的數據。通過這一系列手段對數據進行處理的過程稱為數據預處理。這一部分非常重要,因為數據的質量直接影響到最終模型的訓練效果,我們必須注意確保數據預處理的質量。如上圖所示,經過一些處理,比如去重、Quality filtering,通過對數據進行高質量的處理,模型效果得到了顯著的提升。右側梯度圖表示對數據進行了不同處理后的效果,例如,經過去重和基于規則的數據清洗,訓練效果有了明顯的提升。目前,NeMo 提供了一個專門的
97、工具 NeMo Data Curator,讓用戶評估并提高數據集的質量。掃碼關注公眾號 免費下載資料頁碼:77/148完成數據處理后,接下來就要進行模型訓練。NeMo 底層使用了 NVIDIA Megatron Core 技術,對訓練進行了很多加速操作。因為在大語言模型的預訓練階段,性能要求相當高,訓練所需的資源和時間都是相當龐大的,加速訓練非常必要。在加速方面,有三種方法:第一種是 Tensor 和 Pipeline 的并行。這意味著將模型的每一層 Tensor做劃分,并讓每個 GPU 分別計算其中一部分 Tensor,以加速計算過程。第二種是 Sequence 的并行,因為 Dropout
98、 和 LayerNorm 并不依賴完整 reduce 后的結果,所以可以拆分到不同 GPU 上運行,以加速計算過程。第三種是選擇性重計算或稱為選擇性激活重計算。對于激活函數并不需要每次都進行重計算。激活層占用大量顯存,這一方法通過精心的選擇性計算一部分激活函數,可以顯著減少顯存使用和重復計算,提高效率。這些方法都是 Nemo 框架在訓練中用來提升效率的手段。掃碼關注公眾號 免費下載資料頁碼:78/148NeMo Framework 還提供了一個自動選擇參數的工具,叫 Auto-Configurator。這個工具的使用非常簡便,用戶只需要提供一些訓練時的限制,比如訓練的時間限 制、訓 練 規 模
99、 的 設 定 等。將 這 些 限 制 寫 入 一 個 文 件 中 作 為 輸 入,通 過Auto-Configurator 工具能夠自動生成合理的訓練參數表。用戶可以使用輸出參數表進行后續的訓練,因此這個工具非常實用。大 模 型 訓 練 可 以 分 為 不 同 的 類 型。在 上 圖 中,從 左 到 右 分 別 是Prompt掃碼關注公眾號 免費下載資料頁碼:79/148Engineering、Prompt Learning、Parameter Efficient Fine-Tuning、FineTuning。這幾種訓練類型在資源消耗和對參數的改變等方面都存在很大差異,效果也有很大的不同。Ne
100、Mo Framework 對這四種類型的 Tuning 都是支持的。這里特別提一下,SFT 和 RLHF 會對模型所有參數都進行改變。在這四種微調中,SFT 和 RLHF所需要的資源是最大的。上圖中提到了 LoRA 技術。該技術通過矩陣的分解,將一個大的參數矩陣分解成兩個矩陣相乘。其中大矩陣保持不變,而小矩陣在訓練時進行改變。這樣就能以最小的參數代價達到最佳效果。3.NeMo Framework Deployment Practice下面介紹在使用 NeMo Framework 時的一些最佳實踐。一般來說,訓練一個模型需要經過幾個步驟。第一步,使用 NeMo Data Curator 對數據集
101、進行清洗。第二步,配置參數。配置好參數后,可以直接使用 NeMo Framework Launcher。掃碼關注公眾號 免費下載資料頁碼:80/148這個 Launcher 實際上是由許多腳本或者 E2E recipes 組成的。這些 recipes中,訓練參數可以進行自定義設置,比如需要運行多少步,每多少步保存一次checkpoint 等。配置好這些參數后,只需啟動相應的腳本,訓練就會開始。模型訓練過程,可參見上圖。中間的框圖描述了 NeMo 在整個訓練過程中的步驟。尤其是最耗時的 Pre-Train 過程。第三步,Pre-Train 結束后會進入模型效果對齊(aligner)階段,比如與場
102、景相關的 align,以及一些類似強化學習的模型調整,NeMo 平臺也會提供支持。不管是 SFT、PEFT、Reward Model 還是 RLHF,NeMo 都可以通過 NeMoFramework Launcher 啟動不同的腳本,使用不同的參數選擇不同的階段來完成訓練或者微調。這里提到了 NeMo Training Container,NeMo Framework Launcher 實際上是一套腳本,通過參數配置控制 NeMo Training Container 容器進行訓練。在容器化后,可以很方便地進行單節點多卡、單節點多 Pod,甚至多節點多卡等擴縮容。尤其在擴容方面非常方便,因為訓
103、練通常需要大量資源,可以由 NeMoFramework Launcher 進行調配組織和協調容器資源。當訓練過程結束后,就涉及到 Inference 階段。對于 Inference,NeMo 也提供了 Inference Container。這個容器將運行 Triton 和 TensorRT-LLM,完成推理工作。通常情況下,NeMo Training Container 運行在 Slurm 或者是 K8S 集群上。K8S 目前也是支持的,但可能會有一些限制,Slurm 集群是比較主流的選擇。但推理部署通常是基于 K8S 的。掃碼關注公眾號 免費下載資料頁碼:81/148通常來說,訓練可以分為
104、三種類型。首先是預訓練(Pre-training),其次是監督微調(Supervised Fine Tuning,SFT),最后是提示學習(Prompt Learning)。這三種訓練需要的資源是大相徑庭的。預訓練(Pre-training)是一種從頭開始訓練的方式 Training from scratch,因此它需要的資源是最多的。通常情況下,它涉及到多個節點,每個節點可能有 8 張顯卡,使用大規模集群來進行訓練。監督微調(Supervised Fine Tuning,SFT)相對來說資源需求較少,通常情況下不需要多節點,但會使用多張顯卡進行訓練。提示學習(Prompt Learning)
105、,只需要較少的資源,一般單卡的或者較小規模的資源就能夠完成訓練。02TensorRT-LLM掃碼關注公眾號 免費下載資料頁碼:82/1481.TensorRT-LLM Optimizing LLM Inference訓 練 完 成 后,將 進 入 一 個 非 常 重 要 的 步 驟,即 推 理 部 分。下 面 就 來 介 紹TensorRT-LLM。TensorRT-LLM 的作用主要在于推理加速。簡而言之,推理加速主要關注兩個方面:延遲和吞吐。延遲指的是輸入一定數量的字符后,返回字符所需的時間;吞吐則涉及一次性輸入多個句子并返回推理結果的能力。因此,推理加速的目標是盡量減少延遲,同時提高吞吐
106、能力。掃碼關注公眾號 免費下載資料頁碼:83/148目前,TensorRT-LLM 已經在 Github 上開源,我們也提供了詳盡的文檔,大家可以通過相關鏈接學習和使用。在 NeMo 生態中,Triton Inference Server 主要負責整個模型的部署,而TensorRT-LLM 主要負責模型推理的加速,使模型推理能夠更加高效。掃碼關注公眾號 免費下載資料頁碼:84/148這里介紹下 TensorRT-LLM 和 TensorRT 之間的關系。TensorRT-LLM 實際上是基于 TensorRT 的,它對 LLM(語言模型)相關的一些操作進行了一些優化,但是很多 CUDA ker
107、nel 仍然來自于 TensorRT。TensorRT-LLM 增加的優化部分包括:KV Caching,每次計算中,KV Caching 始終是一個較大的部分,因為這部分有很多無需進行重復計算的內容,需要將之前的計算結果保存在 Caching 中,這是一個非常重要的優化。其次,對于 MHA(Multi-Head Attention)kernels,也就是多頭注意力的 CUDAkernel,TensorRT-LLM 也做了增強。除此之外,TensorRT-LLM 有 Inflight Batching。語言模型接收的每句話長度都不同,對于比較短的話,很快就結束了,是否可以在運行時插入后面一句話
108、進行推理呢?這是語言模型的一個特點,與視覺不同,視覺推理的每個請求基本上都具有相對固定的維度,正因為語言模型存在每句話的長度都不同的特點,因此需要 Inflight Batching 特性。掃碼關注公眾號 免費下載資料頁碼:85/148對于大型語言模型,即使在推理階段,也可能涉及到多個 GPU、多個節點等,因此 TensorRT-LLM 還擁有 Multi-GPU、Multi-Node 等功能。除了這些特性之外,TensorRT-LLM 剩下的部分與 TensorRT 是一致的,它也會借用到非常多 TensorRT 原有的 CUDA kernel。以矩陣運算為例,MHAkernel 實際上最終
109、會退化到矩陣運算層,因此,最終它仍然會使用 TensorRT中的 GEMM 運算,因為這些都是通用的。TensorRT-LLM 使用的流程如下:首先 TensorRT-LLM 將整個網絡模型以及參數加載進來,然后進行 engine 的構建。構建 engine 的過程實際上是為了選擇最快的計算過程,這包括對模型圖的重構,比如層的融合以及各種圖操作等。然后選擇運算最快的 CUDA kernel。最終,將最優 CUDA kernels 固定為一個新的 engine,以后每次運行這個模型都會通過這種方式來加載運行。整個流程與 TensorRT 是一致的。掃碼關注公眾號 免費下載資料頁碼:86/148一
110、般都會按照以下步驟進行:首先是構建,包括加載模型和加載權重;接著,建立一個 engine;然后嘗試運行這個構建好的 engine,并測試效果。TensorRT-LLM 的工作流程借鑒了之前我們所采用的 Fast Transformer 的流程,隨著時間推移,這些 FT kernel 的數量會逐漸增多,包括我們自己編寫的一些 plugin,所有這些都會被集成到 TensorRT-LLM 中。此外,在 TensorRT中有一個編譯器,它會從 pattern 的角度來進行 kernel 優化。掃碼關注公眾號 免費下載資料頁碼:87/148因為對于大型語言模型,可能會牽涉到卡間通信,甚至節點間通信的問
111、題,因此也需要將 NCCL 部分納入考慮。2.Key Feature Overview首先來看一下 Inflight Batching。在我們的語言模型中,每一句話的長度可能各不相同,為了解決這個問題,我們采取了一些措施,以確保整個計算過程不會因為長度的不同而導致計算不充分或浪費資源。我們會將后續的內容插入其中,掃碼關注公眾號 免費下載資料頁碼:88/148使得整個計算塊都能夠被充分利用,如上圖所示。Inflight Batching 在運行過程中實施了動態的 Batching,因此被稱為 Inflight Batching。TensorRT-LLM 對多種attention 類型提供支持。我
112、們知道,Multi-HeadAttention 實際上還有其他類型的變體,例如有Multi-Query Attention、Group-Query Attention 等,這些都是為了減少 attention 計算量而進行的一些優化,但這些方法也導致了 attention 計算過程的差異,因此針對這些不同的計算過程,需要有一些 CUDA kernel 來進行優化支持。這里的 optimizeattention 主要指的是對不同類型的 attention 進行支持的優化。掃碼關注公眾號 免費下載資料頁碼:89/148TensorRT-LLM 目前已支持多種模型的量化過程,上圖中顯示了對不同模型的
113、支持情況。目前,TensorRT-LLM 正在迅速加入多 GPU 以及多節點的支持。一些尚未支持的部分正在不斷擴展支持,在這方面需要處理的問題包括如何進行 Tensor 并行以及各種并行操作、如何處理卡間通信比如 NCCL 相關的問題等。掃碼關注公眾號 免費下載資料頁碼:90/14803RAG(Retrieval-Augmented Generation)下面介紹 RAG(Retrieval-Augmented Generation)。RAG 的主要目標是處理大型語言模型由于專業領域知識不足以及其他一些原因掃碼關注公眾號 免費下載資料頁碼:91/148導致的幻覺問題。大語言模型不可能一直進行訓
114、練和微調,因為那樣的代價相當大,所以訓練和微調通常是周期性而不是一直進行的。在這些周期之間,如何確保大語言模型能夠迅速適應專業領域知識呢?RAG 就是用來解決這個問題的。首先將我們的 Knowledge Base,也就是與專業領域相關的整個文獻,輸入到系統中,作為其知識輸入。這樣,我們就為大語言模型提供了專業領域的知識。然后,輸入查詢(query),經過一系列的處理過程,在處理完畢后,再輸入我們的問題??梢暂斎胍粋€相對專業的問題,比如詢問 NVIDIA 的 Grace 芯片有多少個 CPU core,顯然,對于一個預訓練模型來說,它的回答肯定是不準確的,因為它沒有這方面的知識。但由于剛剛輸入了
115、 Knowledge Base 對其進行了增強,現在大語言模型就能夠更清楚地回答這個問題了,它有 200 個核心。這個示例直觀地展示了 RAG 的作用。上圖展示了應用 RAG 的過程,圖的右邊展示了 RAG 過程中涉及的模塊或參與的組件。左側展示了 RAG 的過程,這里將 Knowledge Base 文件作為輸入,經過預處理模塊進行處理,主要包括特征提取等操作,我們使用了 LlamaIndex,掃碼關注公眾號 免費下載資料頁碼:92/148當然也有很多其它工具可以在這個步驟中發揮作用。處理完的數據進入 Embedding model,在這個產品中我們使用了 E5 模型。將剛才提到的 Know
116、ledge Base 作為模型的輸入,進行微調。微調完成后,將embedding 結果作為向量數據庫的輸入。向量數據庫使用的是 Milvus,而RAFT 是用于加強當前數據庫搜索過程的工具,主要引入了 GPU 加速的功能。接下來是大語言模型 LLM,這里使用的是 Llama 2 模型。通過這樣的流程來回答我們的問題,相當于在經過大語言模型之前,先在 prompt 之外添加了一個上下文,使得大語言模型的反饋更準確。這就是 RAG 的過程。上圖完整展示了大語言模型 LLM 的服務過程以及 RAG 在其中的位置,以便大家更好地理解 RAG。系統首先通過 Nvidia 相應的工具來進行 RAG 的處理
117、,然后結合大型模型進行推理。接著,將結果反饋給用戶的查詢或提示,這使得我們的大語言模型能夠真正朝著實用方向發展,不會出現幻覺或者在處理專業領域知識時無法精確匹配的問題。掃碼關注公眾號 免費下載資料頁碼:93/148下面概述一下 RAG 的過程:第一步,對輸入的 Knowledge Base 進行分塊分片,因為輸入的數據通常有一定的格式,需要將其處理成類似于問答對或其他固定格式長短的數據,以便進一步處理。第二步,對Embedding 模型基于剛才輸入的Knowledge Base 進行Fine-tune,并進行其他處理,如索引等。第三步,訪問數據庫。第四步,進行 Top K 的選擇,選出最符合條
118、件的多條 chunk。第五步,將這些 chunk 作為輸入,與 prompt 一起傳遞給大語言模型,得到更加精準且匹配的反饋和回答。這樣大語言模型就能夠真正實現落地,更貼近于當前的使用場景。掃碼關注公眾號 免費下載資料頁碼:94/148小布助手閑聊生成式算法導讀:今天分享的主題是小布助手在生成式聊天方面的探索和實踐。主要內容包括以下幾個方面:1.研發背景2.業界生成式方案3.小布助手業務實踐4.總結與展望分享嘉賓:張超 OPPO 高級 NLP 算法工程師編輯整理:王旭 北明軟件出品平臺:DataFunTalk01掃碼關注公眾號 免費下載資料頁碼:95/148研究背景首先和大家介紹下小布助手的研
119、發背景1.小布助手業務簡介(1)小布助手是誰小布助手是 OPPO 智能手機和 IoT 設備上內置的 AI 助手,主要包括語音、建議、指令、識屏和掃一掃 5 大功能模塊。截至 2021 年 8 月,小布助手覆蓋用戶數達 2.5 億,月活躍用戶逾 1.3 億,月交互次數超 20 億次。(2)小布聊天技能小布聊天技能作為小布助手數百個技能里面第一大技能,提供有趣、有溫度、智能的聊天體驗,具備智趣單輪、技能引導、話題多輪、情緒感知等基礎能力。智趣單輪:提供很多有意思的單輪語料,包含了很多緊跟時代潮流的熱梗;技能引導:根據用戶的 query 去判斷他當時所處場景,智能推薦一些有趣的技能,比如用戶說我好無
120、聊,就會問他,要不要我給你講個笑話,他說好的,然后直接就給他講笑話;掃碼關注公眾號 免費下載資料頁碼:96/148話題多輪:針對線上比較高頻的一些多輪話題而構建,比如說我想蹦迪,然后我們說你準備好了嗎?他說好了,此時我們就已經知道他是說他已經準備好去蹦迪,接著我們就會告訴他你是整個舞池最靚的仔;情緒感知:在與用戶交互的整個過程中,持續感知用戶的情感狀態,通過語料或表情與用戶進行一些情感上的共鳴。比如用戶說我失戀了,我們就會給他一些安慰的話和表情。2.小布聊天建設歷程按照建設的時間順序,我們的聊天算法演進經歷了:檢索式聊天,規則式聊天,生成式聊天。檢索式聊天剛開始采用的是檢索式聊天,主要解決一些
121、頭部 query 應答問題,解答一些小布人設相關的問題,結果相對安全可控,可以通過語料的增減快速上線。規則式聊天規則式聊天主要解決檢索式聊天中一些解決不了的問題,它有一定的規律,但是掃碼關注公眾號 免費下載資料頁碼:97/148又不可窮舉,比如說我叫什么名字這種問題,因為名字不可窮舉,通過寫語料的方式是寫不完的。我們就針對這一類問題去做一些規則,在做規則應答的時候,識別用戶 query 里面的槽位并根據槽位生成一些比較定制化的語料。通過這種規則應答也是比較安全可控的。但是當規則的數量大了之后,它的維護成本還是很高的。生成式聊天最后我們建設的是生成式聊天,主要解決長尾 query 的應答。它應答
122、的范圍比較廣,但最大的問題就是生成的內容不可控,容易產生一些安全性的問題,針對這一問題我們也做了一些優化。3.小布生成式聊天背景我們為什么要做生成式聊天?因為小布助手的聊天場景是開放多輪的,傳統的檢索式問答很難滿足這種應用場景。從開放域來說,用戶會跟我們無話不聊,從感情到蹦迪到動畫片,到節假日到數字貨幣等等。如果通過寫手去寫這種語料,成本是非常高的。掃碼關注公眾號 免費下載資料頁碼:98/148另外,用戶在跟我們聊天過程中期望我們有多輪聊天的能力。如果通過檢索式方案去做,就需要有一些上下文理解能力,我們要去構建一個多輪語料庫,成本相當高,跟單輪相比是一個指數級增長。而且這種上下文理解和指代消解
123、的任務本身也是很難的,在中文領域,這種任務訓練數據又非常的少,所以做起來是非常困難的。谷歌的 Meena 和 Facebook 的 Bleeder,這些大規模端到端的神經會話模型讓我們看到了生成式端到端模型的發展空間,在這種開放多輪的場景中將有很好的應用前景?;诖?,我們進行了一些探索和實踐。02業界生成式方案接下來介紹我們調研的一些業界常用方案。1.生成式建模與挑戰生成式建模方案基于語言模型來建模,根據 context 上文以及前面的預測結果掃碼關注公眾號 免費下載資料頁碼:99/148持續地預測下一個 word 的生成結果,直到生成一個答案。語言模型的建模注重的是上下文是否符合語言邏輯,表
124、述是否通順,但對其他方面可能欠考慮,比如上下文是否一致,生成的答案有沒有安全性問題,對常識的理解,還有一些情感化共鳴等等。2.生成式模型介紹下面介紹一下業界常用的一些生成式模型。(1)RNN-based seq2seq最基礎的端到端生成式模型 RNN-based seq2seq 模型,發表于 2014 年。初期,該模型主要應用在翻譯領域,后來在很多文本生成任務中得到了應用,包括生成式聊天。該模型包含兩個模塊:encoder 和decoder。encoder 對context 通過RNN-based 模型去做編碼表征,然后在 decoder 的時候使用 context 表征以及上一個預測結果去預
125、測下一個 word 結果,是一個持續的過程。在解碼過程中,每一個 word 所采用的 context 是一樣的,不會動態變化,這樣生成的掃碼關注公眾號 免費下載資料頁碼:100/148效果并不好。2015年 提 出 了Seq2Seq+Attention的 模 型 結 構。這 個 模 型 結 構 除 了encoder 和 decoder 部分之外,還增加了 attention 模塊。在當前時刻,該模塊會計算上一個時刻的狀態和 context 狀態,對 context 里狀態加權,融合到狀態表征里,預測下一個 word 的概率分布情況。這種結構更好地利用了context的 信 息,也 取 得 了
126、更 好 的 效 果。在 很 長 一 段 的 時 間 內,Seq2Seq+Attention 都是業界主流的方案。(2)tensor2tensor直 到2017年,谷 歌 發 表 文 章 Attention is all you need ,提 出 了tensor2tensor 框架。該框架的不同點在于 encoder 和 decoder 不再使用 RNN-based 模型,而是使用 self-attention 方式進行建模表征。encoder 使用雙向語言模型建模,使用全“1”的 self-attention mask。decoder使用單向語言模型建模,使用下三角矩陣的 self-atte
127、ntion mask。掃碼關注公眾號 免費下載資料頁碼:101/148解 碼 時,計 算decoder 與encoder 之 間cross attention 權 值,使 用encode 最后一層表示。在業務實踐當中,通常 encode 的層數設置比較少,decode 層數設置比較多,decode 層數增加效果較好。Google Menna 和 Facebook 的 Blender 均基于這種模型的結構來進行優化。(3)GPT 模型2018 年,OpenAI 提出 GPT 模型。該模型跟前面的 tensor2tensor 不一樣的是,它只采用了 tensor2tensor 的 decoder
128、部分,使用單向語言模型建模。每次預測時,使用當前詞的表征去預測下一個 word 的概率分布。GPT 最大的改進是采用預訓練任務,通過對模型預訓練,使模型學到很多通用知識,進而大幅度提升生成的效果。OpenAI 也發表了很多 GPT 系列的模型,比如說 GPT2、GPT3,均是基于這種模型去建模優化。(4)Unilm 模型掃碼關注公眾號 免費下載資料頁碼:102/1482019 年,微軟提出 Unilm 模型,該模型跟 GPT 一樣采用 tensor2tensor 的decoder 部分,不一樣的地方是它的 context 部分,采用雙向語言模型建模,使用全“1”mask。response 部分
129、采用單向的語言模型,使用下三角 mask。同樣也是基于當前詞最終狀態去預測下一個詞。和 GPT 不同的是,它使用單向或者雙向的預訓練任務,因此訓練效果也比較好。百度的 plato 系列是基于這種模型結構進行優化。(5)模型對比掃碼關注公眾號 免費下載資料頁碼:103/148上圖是對幾種模型的對比。3.生成式 decode 方案介紹(1)searchsearch 通常有兩種方案:greedy search 和 beam search。greedy search,這是最簡單的方法。它是局部最優算法。每一步 search 的時候,都是選當前概率最大的值作為最終輸出結果,這樣很容易陷入局部最優。另一方
130、面,在實踐當中我們發現,它生成的答案往往都是通用無意義的,比如說像“好的”、“沒有”等等這種無意義的答案。還有就是生成的結果很容易前后答案重復,體驗不佳。beam search,這是一種近似全局最優的算法。它每一步解碼的時候,保存一個 top-k 值,即它的 beam size,這個值是可設的。到最終也會輸出 top結果,可以根據一定的策略去進行優選,或者直接選擇最大的路線。在實踐的過程中,我們發現 beam 內答案多樣性也不夠,同樣容易生成一些通用無意義和前后重復的答案。當然業界也有很多優化方案,比如 beam 分組,掃碼關注公眾號 免費下載資料頁碼:104/148還有不同維度的懲罰等等。這
131、里就不展開介紹了。(2)sampling另一種業界常用的是 sampling decode 方案。sampling 就是采樣,常用采樣方法有兩種:top-k 采樣和 top-p 采樣。top-k 采樣,是對最終概率值做降序排列,從 top k 結果里隨機采樣,采到的就是最終使用結果。top-k 采樣方法,其隨機性較強,生成的答案多樣性比較好。但有時候也會出現不太好的 case。比如說像上圖中 top-k 部分第二幅圖的情況,前面幾個概率值都特別大,top-k 里面可能會存在一些概率值很低的字,如果采樣采到了這些字,可能生成的結果并不理想,存在不通順等情況。top-p 采樣,在一定程度上能夠緩解
132、上述問題。top-p 算法與 top-k 一樣,首先會對每個字生成概率做降序排列,去計算累計概率,設定一個累計概率門線,對在門線內的詞進行隨機采樣,然后把采樣結果當做最終的結果。通過這種算法,其生成的多樣性比較好,隨機性也強,生成的答案一般也都比掃碼關注公眾號 免費下載資料頁碼:105/148較通順。雖然也會存在低概率被采樣到的情況,但相對來說會少一些。4.生成式答案選擇方案介紹前面介紹如何去采樣生成結果,下面介紹對生成的多個結果怎么排序。(1)RCE rank 算法業界最簡單的排序算法就是 RCE rank 的算法,即 response 和 context 的相關性預測。做預測最簡單的方法是
133、去訓練一個分類任務,通過不同的 context 和response 去判斷是否相關。為了提升效果,也可以在response 里面加入MLM 任務。訓練的時候通過同時訓練兩個任務提升整個模型效果。前面講到一些采樣不佳的 case,通過這種排序可以很有效的把它們過濾掉,從而保證最終采樣到的結果都是比較合理的。(2)MMI rank 算法掃碼關注公眾號 免費下載資料頁碼:106/148第二種使用比較多的是 MMI rank 算法。生成式的任務是通過一個 context 去生成一個 response,每個 response 有一個生成概率。MMI 算法是反向來做,訓練的時候用 response 去生成
134、 context,在排序的時候有多個 response,context 固定之后用多個 response 去生成 context,然后去計算能夠生成的概率。最后排序的時候,使用前項跟后項的這兩個概率做一個連立,作為最終排序的依據。通過這種方法,可以有效地降低那些通用無意義的 query 的得分。5.生成式聊天評估方案掃碼關注公眾號 免費下載資料頁碼:107/148目前生成式評估分為兩種方案:人工評估和自動化評估。(1)人工評估迭代效率比較慢,對于模型迭代來說不利,但是它可能跟我們真實的體驗效果比較一致?,F在業界對于生成式的評估沒有一個統一的標準,每個公司會提出一些自己的想法。比如谷歌提的 SS
135、A 就是回復的合理性,回復內容是否是萬能答案,對兩者做平均。facebook 也有自己一套方案,都是通過人,一種是讓一個人同時跟兩個chatbot 的去聊,判斷哪個更好;第二種是讓兩個 chatbot 自己聊,人去判斷哪個更好。在中文領域,百度也提了一種評估方案,包含四個方面評估,回答的內容是否跟上下文相關,是否包含一定的信息量,內容的新穎性,還有回復內容跟正常人說話是否相似。(2)自動化評估在生成式任務里面有各種各樣的指標,但是這種自動化指標跟我們真實的用戶體驗之間是有一定 gap 的。所以在自動化指標里面評估的效果比較好,在真實體掃碼關注公眾號 免費下載資料頁碼:108/148驗的時候并不
136、一定就會好。03小布助手業務實踐下面來介紹一下小布助手的業務實踐。1.整體方案與流程(1)小布聊天整體應答流程當 query 出現之后,首先我們會去判斷這是否是首輪的 query。如果是首輪的 query,我們會優先用檢索去應答。如果檢索沒有生成答案的話,我們就用規則去應答。如果規則沒有答案,我們就會用生成式應答。如果不是首輪的 query,我們就會去判斷它是不是上下文相關的。如果上下文不相關的話,我們認為它還是一個獨立的 query,那么我們還是像首輪的 query一樣處理。如果它是上下文相關的,那么我們優先會用生成式去答,如果生成式有結果,就直接返回,如果沒有結果就進行兜底。這主要是因為生
137、成式在建模的掃碼關注公眾號 免費下載資料頁碼:109/148時候是考慮了這種上下文的理解能力的。(2)小布生成式聊天流程一個 query 過來,首先會做一個 query 的安全檢測,安全檢測通過之后,就會去做生成式模型,然后結合一些解碼策略去生成答案。答案生成后,我們就會去答案做選擇,選擇排序之后對答案做一個 QA 的安全檢測,確保我們生成的答案是安全可靠的。2.模型設計與優化(1)模型選型模型選型參考的是百度 plato two 的模型方案,使用了兩階段式的訓練。第一階段 1V1 訓練在訓練生成式任務的時候,相同的 context 會有多個 response。因為同樣說一句話,別人去答的時候
138、可能有多種多樣的回答方法。但是對于模型來說,我們給一個 context 然后生成多個不一樣的 response,模型學習起來是困難的。就相當于一個 query 有多個標簽。為了降低學習的復雜度,我們首先 1V1 訓掃碼關注公眾號 免費下載資料頁碼:110/148練,對相同 context 的多個答案進行隨機抽取,抽取出一個答案來進行訓練,這樣的話就降低了整個學習的難度。整個模型的選型用的是 Unilm 的模型結構,使用 bert-base 對這個模型來進行初始化,并且引入了一些預訓練的知識。第二階段 1VN 訓練使用全量的語料來進行訓練。針對前面一對多的情況做了一個處理,首先會把context
139、、response 和隱狀態同時輸入到雙向的語言模型里面來,然后利用這個隱狀態來做一個分類,相當于去判斷 response 跟 context 它們到底屬于哪個類別的回復。在預測的時候使用不同的 latent,根據 context 去生成,在相同的 context 的情況下,就可以合理地去生成不同的 response。這樣做還有一個好處,就是在預測的時候,隱狀態是可以人為輸入的,不同的輸入可以生成更多種答案,可以很好地提高生成的多樣性。Latent 的狀態個數也可以根據我們語料的情況去設置。(2)模型輸入模型輸入除了普通的 token embedding 之外,我們加了一個 context m
140、ask,掃碼關注公眾號 免費下載資料頁碼:111/148主要去提示哪一部分是單向的語言模型,哪一部分是雙向的語言模型。還有一個role embedding 去提示當前 query 是哪個人物說的。目前支持兩個角色的對話。Context 支持的最大長度是 128,支持的最大的對話輪數是 10 輪。(3)訓練配置上圖是我們模型訓練的一些配置。(4)decode 方案在 decode 方面,我們使用的是 sampling rank 的方法,采樣的方法用的是掃碼關注公眾號 免費下載資料頁碼:112/148top-p 的算法。beam search 中,一個 query 可以 search 出多個 an
141、swer。采樣的時候,都是一個query 能采樣一個結果。為了同時生成多個結果,我們會把相同的query 組裝成一個 batch,同時輸入進去做預測。query batch 越大,生成的答案可能就越多,多樣性就越好。但是 batch 大了之后整體性能就會有很大問題,所以我們設置 batch size 為10,最大生成長度 15。采樣的時候,在隨機性放的比較大的時候,可能會采到一些不太好的結果,因此我們可以將一些 query 的隨機性設少一點,一些隨機性設大一點,這樣哪怕采樣采到一些不太好的結果,仍有隨機性小的那些答案來保底,確保有一個合適的結果,兼顧生成結果的多樣性與可靠性。(5)答案選擇方案
142、在答案選擇方面,我們使用的是 RCE 算法,bert-base 的模型。第一階段生成式模型來對模型做初始化,訓練時使用 MLM 任務。正樣本基本上都使用的是掃碼關注公眾號 免費下載資料頁碼:113/148生成式的訓練語料,負樣本有的是隨機采樣,有的是一些規則生成的。在答案選擇方面,除了純模型的打分,我們還引入了很多別的變量進來。比如本來 query 生成不同的 response,會有一個生成的概率,這也是我們一個參考因素。我們還會做一些規則去做沖突檢測,如果當前 query 跟上文有明確的沖突,我們就把它的分值給降低。我們也會去對判斷 query 是不是有意義的,如果無意義也會把它分值降低。除
143、此之外,我們還會去做對 query 本身以及跟上下文的重復檢測,把這個結果也納入到我們最終的排序里面來。這就是我們最終的排序的結果分數的計算方法。(6)query 安全檢測我們在安全方面也做了很多的工作。一個 query 要進入到生成式模型,會經過三個漏斗的步驟,第一步會做一個系統級的安全檢測,然后閑聊業務會對 query再做一個安全檢測,包括一些關鍵詞、長度或者一些特殊字符等等。最后還設置了一個安全模型,來提高敏感 query 的召回率。我們做了一個線上的統計,線上 query 從源頭到能夠過生成式模型,通過率大掃碼關注公眾號 免費下載資料頁碼:114/148概是 85%。query 的安全
144、檢測模型,最開始是用我們的線上的日志去訓練了一個 bert-base的模型。為了提升效率,我們又用 bert-base 去蒸餾了一個四層的 bert,在線上用 T4 卡一次預測大概是三毫秒。使用 query 檢測模型,相對于從策略去檢測的話,識別準確率提升了 7%,召回率也有 12%的明顯提升。(7)query-answer 安全檢測有的 query 本身是不敏感的,但 query 和 answer 組合起來不太好。針對這種情況,我們基于 bert-base 來建模。這個模型相對于前面純 query 檢測來說難度更大一些,為了保證效果,這里我們就用了一個 bert-base 的模型,沒有再去做
145、蒸餾。通過使用這種 QA 檢測模型,線上敏感 query 下降了 7.8%。3.應答安全方案掃碼關注公眾號 免費下載資料頁碼:115/148除了以上策略和模型方面的工作,我們在安全方面還對訓練數據做了一些處理。首先我們對原始的訓練數據進行安全識別,對于不合理的數據,我們考慮兩種策略,一種是直接移除,另外一種是通過一些萬能回復或者引導回復來進行替換,最終讓模型看到的數據都是安全的干凈的數據,這樣就可以在很大程度上避免模型去生成一些不太合適的 query。4.性能分析與優化(1)性能優化掃碼關注公眾號 免費下載資料頁碼:116/148基于預訓練的生成式任務,還有一個很大的挑戰,就是性能問題。生成式
146、任務是一個自回歸任務,需要一個字一個字地去生成,所以它調用模型的次數是非常大的。針對性能優化,我們也做了一些工作:動態 batch:前面講過為了去使用 sample rank 的方法,我們會做一個batch 去輸入,在一個 batch 去預測的時候,我們發現有的已經生成完了,再讓它繼續輸入進去做預測,其實已經沒有意義了。所以我們動態地把這些已經生成完了的去掉,在預測的過程中 batch size 不斷地減少,這樣就能達到性能優化的結果。用onnx runtime 的方式來進行模型的預測:首先我們從一個checkpoint 固化到 Pb,然后轉到 onnx,用 onnx 去做加速。使用 onnx
147、 進行加速后,單次預測耗時下降了 20%。我們還嘗試使用 FP16 去進行加速,但是生成的結果不太符合預期。(2)性能分析生成式為了去提高預測的性能,往往都會去做一個 cache 機制。在做某一次預掃碼關注公眾號 免費下載資料頁碼:117/148測的時候,預測完了之后我們會把這一次預測的一些中間結果保存起來,而在下一次預測的時候,只需要把上一次預測出來的結果當成輸入去獲得它的一個embedding,然后通過這個 embedding 和上一步存的中間結果進行交互的計算,直接來計算下一個預測的概率,就可以避免很多重復計算。當然,在第一次預測時沒有 cache,這樣預測耗時相對會長一些,后面基本上就
148、比較穩定了。我們用我們的模型在 T4 卡上也做了一些測試。batch_size=10,seq_len=10的時候,第一次預測大概是 15 毫秒,后面每一次預測大概是 9 毫秒。整個生成式模型全鏈路算下來,也就是 query 安全檢測+第 1 次預測+第 N 次預測*(max_len-1)+QA 安全檢測,計算下來大概是 152 毫秒左右。5.效果分析與展示(1)效果評估我們對訓練的模型做了效果評估,包括兩個方面:自動化評估:使用 selfchat 的方式來進行評估,就是讓兩個自己去聊,然后我們去采他們的對話數據來進行評估。評估的自動化指標是多樣性。上圖掃碼關注公眾號 免費下載資料頁碼:118/
149、148(左)可以看到我們和業界其他一些方案的對比。人工評估:讓三方評測團隊對我們進行盲評,使用了 5000 多條線上的query。評估的標準主要包含安全性、相關性、豐富性和通順性。打分的話,不合適是 0 分,還可以是 0.5 分,達到預期的是 1 分。小布助手得分為 0的情況遠遠少于標桿產品,得分 0.5 和 1 的遠超標桿產品,最后綜合滿意度接近 85%。(2)效果展示接下來展示一下我們生成式的效果。從上圖可以看出,內容生成的相關性是非常好的。結合我們線上的業務,我們也做了一些專門的優化,有時候線上的業務可能會存在有一些模糊意圖,像是幫我打,我們針對這種模糊意圖構建了很多的引導澄清的 ans
150、wer,然后通過使用模型來進行優化。掃碼關注公眾號 免費下載資料頁碼:119/148上圖是多輪的效果展示,整個聊天體驗還是非常順暢的。04總結與展望通過我們的實踐,還有業界的一些方案,我們看到了端到端生成式是有一定的可行性的。當然也會存在有一些不足,從工業界落地的角度看,這種大規模的生成式方案在性能上還存在一定挑戰,耗時還比較高。除此之外,我們的模型與產品人設結合時,也存在一定的困難,我們也仍在不斷地探索當中。還有一些業界普遍存在的問題,比如安全性、一致性、合理性和情感化存在的一些問題。除了端到端純文本的生成式方面,我們團隊后續也會在多模態的生成式問答方面進行持續投入,如果大家感興趣的話,也歡
151、迎隨時加入我們,一起交流。掃碼關注公眾號 免費下載資料頁碼:120/148大模型的高效訓練和部署技術卷出新高度!導讀:隨著 Chat-GPT 的普及,如今大模型已成為不可阻擋的趨勢。本文從Colossal-AI 這個行業軟件入手,介紹如何提高大規模 AI 訓練、微調和部署的效率。今天的介紹會圍繞下面五點展開:1.大模型訓練的挑戰2.N 維并行系統3.高效內存管理系統4.杰出性能和應用案例5.Q&A分享嘉賓尤洋博士 新加坡國立大學 校長青年教授、潞晨科技 創始人兼董事長編輯整理王吉東內容校對李瑤出品社區DataFun01大模型訓練的挑戰1.大模型發展現狀及問題掃碼關注公眾號 免費下載資料頁碼:1
152、21/148上圖中展示了大模型的發展歷程,其中縱坐標是 AI 模型的參數量。在過去幾年間,AI 大模型的參數量飛速增長,大約每 18 個月時間就會增長 40 倍。例如2016 年,世界最好的大模型 ResNet-50,參數量約為 2000 萬;而到 2020 年的 GPT-3 模型,參數量已達到 1750 億;到今天,根據 OpenAI 透露的消息,MOE 混合專家系統這種架構的大模型參數量大約1.7 萬億;2021 年初Google 的 Switch Transformer 模型采用了相同的混合專家系統架構,參數量已達到 1.6 萬億。近來,OpenAI 在訓練的 GPT-5 模型,預計將達
153、到 100 萬億參數。此外,Inception 等創業公司甚至認為未來模型的參數量將超過 GPT-5 模型 100 倍。隨著模型規模的指數級增長,未來可能需要使用成千甚至上萬個 GPU。因此,背后的軟件基礎設施至關重要,不管是 AI 框架還是分布式系統,都將起到關鍵作用。未來的 AI 訓練,其核心在于擴展性和高效性。所謂擴展性,即從 1 個 GPU 擴展到 10 個、100 個、1000 個、1 萬個甚至更多的 GPU,而在保證擴展性的掃碼關注公眾號 免費下載資料頁碼:122/148同時能否始終保持百分之八九十的擴展性效率?這就是所謂的擴展性和高效性。2.Why Do We Believe i
154、n Large Models?我們投入了大量精力去完善基礎設施,就是為未來 AI 大模型而準備的。從源頭上說,我們之所以看好大模型的發展,原因主要有兩點:其一,在模型更大的情況下,確實能夠獲得更優的性能,其 AI 智能程度也更高;其二,大模型的“大”字其實很難定義(今天,100 億參數屬于大模型,明天,可能 1 萬億參數才是大模型),但是有一點是肯定的,那就是未來的小模型也會呈現指數級上升。比如我們今天覺得 Bert 已經成為了一個小模型,兩年之后可能 GPT-3 也變成了我們眼中的小模型;再過三年,可能今天的 GPT 子版本 ChatGPT 也變成小模型了。掃碼關注公眾號 免費下載資料頁碼:
155、123/148如上圖所示,橫坐標為時間,縱坐標為模型參數量。例如 2015 年,中小型企業一般會使用 LeNet;到 2016 年,中小型企業已經能用 ResNet-50 了;到2020 年的時候,中小型企業甚至可以使用 Bert、GPT-2 等模型;預計到明年,中小型企業會陸續使用 LLAMA 這類模型(參數量大約 700 億)。如上文所說,小模型實際上也在指數級上升。因此所有 AI 模型的訓練和微調都需要分布式,因為至少需要幾十甚至上百張GPU。近期,英偉達的 GH 200 通過將 CPU 和 GPU 連接在一起,使用更高速的網絡將其串聯。未來,GPU 訓練會更加便捷,就像今天的服務器一樣
156、,廠家自行采購一套實體服務器或云端服務器,即可實現大模型的訓練。大模型的訓練往往需要很高的并行度,那么如何提高模型訓練的效率呢?掃碼關注公眾號 免費下載資料頁碼:124/148首先可以關注云上計算的價格。如上圖,橫坐標是時間,縱坐標是單位美元能買到的浮點數計算次數(T flops 次數)。從圖中可以看出,從 2015 年到 2020年,該次數呈指數級上升了 45 倍。因此,絕對的算力實際上是在變便宜的,即單位美元買到的浮點數計算次數是呈指數上升的。因此,如果能將算力挖掘出來,預計到 2026 年,GPT-3 的訓練成本將從現在的 300 萬美金降低到 7 萬美金左右。如果進一步優化模型的并行訓
157、練效率,設計出更好的算法,使其收斂速度變得更快,這個訓練成本可能會降低至兩三萬美金(甚至可能會降到 1 萬美金以下)。3.大模型的挑戰掃碼關注公眾號 免費下載資料頁碼:125/148然而現在,訓練成本仍然是很高的,例如谷歌的 PaLM 模型,按照云上的價格,需要 900 萬美金。另一方面,如果一個公司想從零開始訓練一個大模型,至少需要投入五六十個人,帶來了較高的人力成本,增加了模型落地的困難。對于大部分的業務型企業,企業本身希望快速實現對大模型的訓練、部署和微調,這些對大模型的落地是非常關鍵的因素,而上述現狀對大模型工作在這類企業的開展就會變得非常困難。4.Colossal-AI基于上述原因,
158、我們打造了 Colossal-AI 這個工具,希望幫助更多企業實現大模型的快速訓練、微調和部署。掃碼關注公眾號 免費下載資料頁碼:126/148Colossal-AI 包括三個部分:高效的內存管理系統N 維分布式系統低延遲推理系統利用以上三個部分,三位一體地實現大模型的高效訓練。不管用戶使用什么樣的編程接口或者框架,通過 Colossal-AI 的內核都可以在 CPU、GPU、NPU 上獲得最好的性能。掃碼關注公眾號 免費下載資料頁碼:127/148上圖回顧了Colossal-AI 開源社區發展的情況,橫坐標是時間,縱坐標是Github 星數,可以看出 Colossal-AI 目前的增長速度已
159、經遠遠超過了同時期的Spark、ClickHouse、MongoDB、Kafka 等。其背后的原因,除了 Colossal-AI 自身優秀的開源設計,還在于這一波 AI 的浪潮預計比上一波大數據的浪潮更大,未來 AI 的價值可能會貫穿到企業的整個生命周期,因此未來的機會是非常大的,降低模型的訓練難度和訓練成本,是非常重要的一件事情。上圖是 Colossal-AI 的用戶分布圖,可以看出,目前在中國、美國、歐洲、印度、東南亞都有很多的用戶。掃碼關注公眾號 免費下載資料頁碼:128/148同時,很榮幸,Colossal-AI 被收錄到很多國際頂尖 AI 會議的官方教程,如今年的 Neural NI
160、PS(之前叫 NIPS,該會議是目前 AI 的第一技術峰會,每年OpenAI、谷歌等頂尖技術人員,包括像圖靈獎得主等,都會到該會議上演講),Colossal-AI 很榮幸成為該會議的官方教程。此外,Colossal-AI 曾被收錄進了AAAI、CVPR 等頂尖 AI 會議的官方教程。目前,MLPerf 是衡量 AI 芯片的公認指標,是英偉達、英特爾、谷歌、阿里巴巴等公司共同發起的基準,現在稱為mlcomments?,F在MLPerf 的官方掃碼關注公眾號 免費下載資料頁碼:129/148Github 也依賴 Colossal-AI,因此 Colossal-AI 也很榮幸地成為了 MLPerf標準
161、的一部分。此外,在全球 AI 生態系統中,目前 Colossal-AI 也處于非常理想的位置。例如,目前世界第一大 AI 生態 PyTorch,其官方生態直接依賴于 Colossal-AI的分布式;此外,世界第二大 AI 生態 Hugging Face 的很多應用也是基于Colossal-AI 的。目 前 開 源AI 大 模 型 由Facebook 所 主 導,LLAMA 和PyTorch 都是 Facebook 開發的,目前 Facebook 官方大模型 OPT 有一個鏈接就指向了 Colossal-AI。掃碼關注公眾號 免費下載資料頁碼:130/14802N 維并行系統未來大模型的訓練,會
162、涉及處理成百上千個 GPU 集群內部的關系問題,即如何把并行效率提升到極致。未來使用 AI 超級計算機(如使用 256 個 GH 200 組裝而成),雖然其帶寬很高,通訊傳輸效率很高,但仍然需要足夠的并行度才能將算力發揮出來。對于其他科技巨頭,如華為,使用類似英偉達的 GH 200 這種超級計算機,其在并行計算方面,主要使用的方式包括數據并行、流水線并行和張量并行,而第一個實現這項技術的還是英偉達。掃碼關注公眾號 免費下載資料頁碼:131/148GPT-3 模型是 2020 年 6 月份訓練出來的。在隨后的 GTC 峰會上,英偉達黃總介紹了他們是如何訓練 GPT-3 的,當時提出 3-D 并行
163、這一概念。他們用了 3072 個 GPU(每個服務器有 8 個 GPU),每個服務器內使用 Tensorparallelism 進行張量并行,然后 64 個服務器形成一個小組,小組內部使用流水線并行,而 6 個小組之間使用數據并行,這樣就是 8x64x6=3072。這樣的配置,主要考慮的核心點就是張量并行的通信代價太高,因此在服務器內部使用流入線并行的方式,通信代價相對較低。在服務器之間,為了擴展到更大,又引入了數據并行的方式。而未來 GH200 組成的超級計算機,其網絡帶寬可能會非常高,芯片之間可以直接交換,這樣就可以直接使用張量并行的方式(雖然通信代價高,但如果網絡傳輸非常好,則可以很好地
164、解決這個問題)?;氐浇裉?,對于張量并行,最開始實現的是英偉達的 microtrain,然而其并沒有把張量并行優化到極致。張量的本質就是矩陣,矩陣的切片是非常靈活且容易實現的。然而理論上每個機器都需要跟其他所有機器打交道,這里就會涉及到 global synchronization,掃碼關注公眾號 免費下載資料頁碼:132/148而 我 們 的 想 法 是 能 不 能 用 更 多 的local synchronization 來 取 代globalsynchronization,這樣會獲得指數級的速度增長。因此我們提到了 2 維張量并行、3 維張量并行,甚至 2.5 維張量并行,其實質就是上述思
165、想。第二點,回顧大模型的變化趨勢會發現,2016 年的 Resnet 50 模型,有 2000萬參數,包含 50 層;到 2020 年,GPT-3 模型有將近 2000 億參數,只包含不到 100 層;而今天的 GPT-4 模型也只有 120 層。模型的參數規模越來越大,而層數卻沒有大的變化,說明模型的層變得更寬了。在這樣的趨勢下,未來對張量并行的要求將會更高,因此張量并行未來仍有很大的優化空間。對于流水線并行,其好處在于通訊代價很低,但是它總是有 bubble 的開銷,會限制并行的效率,其 pipeline parallelism 只能在一定規模內使用,無法無限擴展。第三點,我們需要新的并行
166、 sequence parallelism。以對話類大模型為例,比如 ChatGPT,其 sequence Lens(contact Lens)是 8000(Bert 是 128512)。GPT 的核心原理是使用上下文信息去預測下一個詞,因此,contact lens(即sequel less)越長,預測的下一個單詞就越準確。有些創業公司甚至想把 contactlens 做到 100 萬,然而這樣會帶來巨大的內存開銷壓力(后文會介紹這一部分的優化)。國內的一些通用大模型公司在 AI 基礎設施這部分的關注點主要在于從千卡擴展到萬卡。然而隨著 GPU 數量的擴展,系統穩定性會下降,即使 OpenA
167、I、微軟這樣的公司,其萬卡集群的利用率也只有 30%左右。如果能把穩定性的問題解決好,下一步就是擴展性的問題。從 100 卡擴展到 1000 卡,已經帶來了很大的困難,其效率可能會從 70%直接降到 30%左右。而從 1 千卡到 1 萬卡,如果沒有足夠的并行計算效率,掃碼關注公眾號 免費下載資料頁碼:133/148其訓練可能會變得更慢。這就引出了另一個問題:要將 AI 訓練的基礎設施增長到萬卡訓練的規模,哪方面是欠缺的?首先 pipeline parallelism 只能在局部使用,因此無法擴展到萬卡;如果再加上 tensor parallelism 以及 sequence paralleli
168、sm,未來還需要進一步優化數據并行。數據并行的好處是,base size 增大 10 倍,epoch 數盡量固定,則計算量也是恒定的。如果 epoch 數量能夠固定下來,batch size 增大 10 倍,則循環次數就減少 10 倍;如果同時實現數據并行,其通信就是梯度加和求平均,這樣單次通信量又減少 10 倍;因此數據并行在萬卡訓練中也會發揮出更大的作用。假如把 batch size 擴大 10 倍,在保證 accuracy 的基礎上從千卡擴展到萬卡,其通信量會減少 10 倍,因此會更加高效。2017 年曾有一篇論文training ImageNet in one hour,使用一小時訓練
169、ImageNet。這一篇論文可以認為是整個分布式 AI 訓練的開山之作。如今我們可能會覺得他的技術很簡單,但其是第一個使用百卡來訓練深度神經網絡的一個高效案例。當時只用了數據并行,而設備也只是 Ethernet,甚至沒有使用 Infinity band,但其擴展性也能超過 90%,這說明 data parallelism 的通信效率還是非常高的。因此,對于未來的萬卡訓練,這個 data parallelism 也會非常關鍵。此外,我們仍然需要少部分的 pipeline parallelism、比較高效的 tensor parallelism 以及 sequence parallelism,也需
170、要更大的 data parallelism。掃碼關注公眾號 免費下載資料頁碼:134/148前文提到的 data parallelism,只要將 epoch 數恒定,將 batch size 增大 10倍,循環數就會減少 10 倍,而通信就是梯度加和求平均,因此還是非常 robust的。假如使用 1000 個機器進行訓練,即使有 5-10 個機器崩潰,也不會影響data pair reserve 結果的一致性,因為只要樣本分布在統計學上接近正態分布或其他較理想的分布,那么使用 1000 個 T5 加權平均和用 995 個 T5 加權平均的結果不會相差太大。實際上 DIP LSM 業務存在一些自
171、身問題,當 batch side 開得過大時,循環次數反而增長更大(例如 by side 增大了 1000 倍,循環次數增長了 2000 倍)。這就需要在 1/1000 的循環內尋找局部最優解,所以變得更具挑戰性。因為這種情況下很容易陷入 sharp minimum,導致 accuracy 下降嚴重,從而得不償失。因此 data parallelism 的挑戰就是要設計出更好的優化方法。掃碼關注公眾號 免費下載資料頁碼:135/148Colossal-AI 中 loss 和 lamb 也做了很好的實現:首先在保持 icon 的情況下,以 VIP 為例,把 batch size 從 128 擴到
172、 32K,同時計算時間從 733 小時降低到 40 分鐘,因此可以看出其擴展性也是線性的。掃碼關注公眾號 免費下載資料頁碼:136/148之前我們的一些方法曾幫助騰訊、索尼、谷歌、富士通等公司將音頻拆下來,訓練時間從一小時縮短到了一分鐘,并且曾幫助谷歌把 batch 訓練時間從 3 天縮至 76 分鐘。Data parallelism 可能在未來的萬卡訓練中發揮出更大作用。下面介紹 pipeline parallelism 和 tensor parallelism。掃碼關注公眾號 免費下載資料頁碼:137/148Megatron 一維的方法非常簡潔,但是其通信代價較高,因為其本質是 globa
173、lsynchronization,每一層都做的話計算量是非??植赖?;這一點不同于 dataparallelism,后者是算完一層后直接同步去通信。而 Tensor parallelism 則是算完這一層才進行下一層,因此沒有 overlap 的機會,導致每個層內都使用 together or reduce 的代價變得過高。掃碼關注公眾號 免費下載資料頁碼:138/148因 此 前 文 提 到 使 用 更 多 的localsynchronization取 代globalsynchronization。以 2D 方法為例,將每個機器視為一個網格,每次訓練都先和同列的機器打交道,這樣只需要跟根號 p
174、 個機器打交道即可。同理,3D 方法就是將其分成三個維度,每次只和同個維度的機器打交道。掃碼關注公眾號 免費下載資料頁碼:139/148從上圖可以看出,2D 方法的效率還是挺高的,且規模越大,其效果越好。上圖可以看出,參數內存的開銷是差不多的。在通信層面,bandwidth latency 開銷,可以看出維度的增加確實提高了通信效率。掃碼關注公眾號 免費下載資料頁碼:140/148未來的長序列也非常有挑戰性,現在訓練大模型的內存開銷已經很高了,假如訓練一個大概 2000 億參數的 AI 模型(如 GPT-3),假定使用 LP32,則需要200 乘以 10 的 9 次方;假如每個參數是 LP32
175、 化,就是 4 個 Byte,則參數首先就會耗費 1000G 的內存(梯度優化器同理)。因此,在模型開始訓練之前就需要上 T 的內存,而 GPU 一般只有 100G 的內存。該問題的嚴重性在于,如果使用更長的序列,則序列中每兩個 token 之間都要計算 attention score,會產生很多中間內存的需求。因此序列越長,內存開銷就越大,當達到一定的臨界值之后,將會呈指數級上升。因此,直觀上,需要將序列劃分成若干個不同的部分,將每一部分分配給不同GPU 上不同的服務器,進而控制其內存開銷上限。然而,在不同的 GPU 存放不同的 token,每個 token 都需要和其他 token 計算
176、attention score,這樣會帶來 p2的通信操作,造成非常高的通信代價?;诖?,我們提出了 RingSelf-Attention 方法。掃碼關注公眾號 免費下載資料頁碼:141/148該方法基于百度的 ring or reduce,其核心思想如下:比如 50 個人,每個人抱了一大包零食,現在需要每個人都嘗一下其他所有人的零食,這樣將會需要2500 次的重新傳輸,但是如果大家手拉手圍成一個圈,每次從左手邊獲得一包零食,再將其傳給右手邊的一個人,這樣只需要批檢一次自操作即可。Ring Self-Attention,每次從左邊鄰居獲得一個 key,再將其傳遞給右邊鄰居,進而計算出一個 te
177、nsion score,循環往復,這樣只需批檢一次重新操作,即可算出所有信息。掃碼關注公眾號 免費下載資料頁碼:142/148上圖中展示了一些很直觀的比較,可以看出,throughput 相比之前的方法要快50%左右,能夠同時在同樣設備下訓練的 sequence 長度比之前增長 5%。03高效內存管理系統現在的 AI 架構主要還是基于 GPU 服務器去做訓練,每個 GPU 的內存非常有掃碼關注公眾號 免費下載資料頁碼:143/148限,因為內存只有 100G 左右,而訓練一個千億參數的模型至少需要上 T 的內存。CPU 上也有很多內存,GPU 放不下就放 CPU,再放不下就放 NVMe。然而這
178、樣帶來的問題就是會嚴重降低效率,因為 GPU 內的計算遠快于 GPU 和CPU 之間,以及 CPU 和 NVMe 之間的傳輸。因此使用這種多級的內存就需要最小化 GPU 和 CPU 之間,以及與 CPU 和 NVMe 之間的數據移動。我們的方案是將參數分成了塊狀,每次選取有用的塊,暫時用不上的塊先存放到CPU 上,通過這種方式動態地進行存儲,將效率提到最高。使用這種方式,只掃碼關注公眾號 免費下載資料頁碼:144/148要有一塊內存,都會放滿最常用的參數或者梯度。04杰出性能和應用案例與 PyTorch 相比,Colossal-AI 可以訓練 20 倍大小的模型,在同樣設備條件下可以獲得 3
179、倍的加速。從下圖的比較可以看出,在相同設備條件下,可訓練的參數量呈指數級上升。從Throughput的 圖 可 以 看 出,Colossal-AI與DeepSpeed相 比,throughput 也是更高的。例如,在 Stable Diffusion 上可以獲得約 6 倍的加速。同樣在 inference 上打 Colossal-AI 的話也可以獲得 40%左右的加速,而加速之后,其內存得到了大幅的下降,但是對圖的質量是沒有任何影響的。掃碼關注公眾號 免費下載資料頁碼:145/148從上圖可以看出,Stable Diffusion 的出圖效果還是比較理想的。首先跟PyTorch DDP 相比,
180、Colossal-AI 在推理上可以獲得 40%左右的加速,在訓練上可以獲得 7 倍左右的加速。在同樣的設備條件下,可以存放 10 倍大小的模型。最近 Colossal-AI 也對 LLAMA 模型進行了優化,特別是在訓練環節,獲得了2 倍左右的加速。掃碼關注公眾號 免費下載資料頁碼:146/148以上是 Colossal-AI 訓練平臺的介紹,可以實現一站式的 AI 模型訓練、微調和部署。如果感興趣,歡迎下載并查看 Colossal-AI 的開源代碼,同時歡迎關注公眾號,并加入微信群。05Q&A掃碼關注公眾號 免費下載資料頁碼:147/148Q1:大模型場景中,不同模型的結構差別比較大。以
181、Transformer 結構為例,包括 encoder-decoder 聯合架構,也有純 encoder 或純 decoder的架構。那么在訓練優化和推理優化的過程中,每一種模型可能都需要進行specific 的優化;如何看待 overhead 呢?A1:對于 overhead,常會聽到抱怨模型太多了。我們這個優化每種優化只能對到某個模型上,然后做像 confusion 這種。這個情況其實是往好的方向發展,因為近期逐漸都收斂到了 LLAMA、GPT、Falcon 這幾種常見的模型,上述模型彼此間的相似度較高。例如未來 GPT-4 將相當于 GPT 加上 MOE;而加上MOE 之后,對算子的下方
182、是沒有任何影響的。正因為未來大模型的試錯成本越來越高,反而會導致未來收斂成少數常見的大模型,這是有利的地方?;氐竭@個問題,如何通用地解決這類問題,其實個人感覺并沒有太好的辦法,只能盡量將通用的需求做好,在此基礎上做優化。并且更嚴重的一個問題就是現在國產芯片有很多力量,就是想想未來布局一些新的事情,這種條件下我們可能就需要更多的優化。我覺得短期之內假如說有一個新的芯片或者有一個新的模型,讓它直接跑起來,還是有挑戰性的,所以說可能還真的需要一些優化。Q2:相較于應用層,在模型框架層優化過程中,遇到最大的困難點是什么?A2:近期全球算力緊張,受限于算力,只能通過和企業合作,幫助企業訓練模型來驗證框架
183、的穩定性,這樣反而不利于這個框架的發展。因此,算力資源對模型框架的發展是非常關鍵的。Q3:和 deep speed Metro LM 相比,Colossal-AI 最大的技術優勢是什么?A3:每個團隊的技術背景都不太一樣,例如 deep speed 主要 做 sharding掃碼關注公眾號 免費下載資料頁碼:148/148Zero 內存優化方面的工作,而 Megtron 是英偉達在芯片背景條件下進行的整體優化。潞晨科技以前是做高性能計算的,因此會認為 AI 模型的分布式訓練本質上就是數據移動的優化,因此核心思路在于通信的優化,從而實現上百、上千個 GPU 具有良好的擴展性。由于不同團隊的基礎背景不一樣,因此對同一問題的看法也會不一樣。