☆大型語言模型的白話文介紹
☆大型語言模型技術有什麼?
☆預訓練資料的建立(語料庫)
☆大型語言模型從頭來 – 預訓練
☆挖掘大型語言模型潛能:有監督微調
☆大型語言模型強化學習對齊
☆大型語言模型的評測標準
☆大型語言模型的重要應用
☆動手做大型語言模型
☆自己訓練一個7B的大型語言模型
本書涵蓋大型語言模型的全貌,從基礎概念到實際應用。第一章介紹大型語言模型的基本概念。第二章深入解析其基礎技術,包括自然語言資料表示、Transformer架構以及BERT和GPT等預訓練模型,並以InstructGPT和LLaMA系列為例展示實用成果。第三章探討預訓練資料的類別、來源和處理方式。第四章詳細介紹大型語言模型的預訓練過程,包括不同架構和訓練策略。第五章解釋有監督微調的定義、用途和應用場景,以及微調資料建構和技巧。第六章介紹強化學習的基礎知識及在大型語言模型中的應用,特別是基於人類回饋的強化學習(RLHF),並展望其未來發展。第七章介紹大型語言模型的評測方法,包括微調後的對話能力和安全性評測,並探討通用人工智慧的評價。第八章展示提示詞技術在引導大型語言模型方面的應用,介紹搜索增強生成技術和推理協作技術,使模型能逐步分解並解決問題。第九章探討從訓練到任務完成的專案最佳化技術和實作案例,以提高模型的效率和可擴充性。第十章提供微調大型語言模型的關鍵步驟和程式範例,便於實際應用。
作者簡介:
楊青
度小滿技術委員會執行主席、數據智能應用部總經理,碩士畢業於清華大學計算機系,曾就職於百度、阿里巴巴,從事自然語言處理、搜索、推薦、大數據架構等相關方向的研發工作。
2018年初加入度小滿,組建數據智能部,從0到1建設度小滿的智能引擎核心算法,深耕計算機視覺、自然語言處理、圖模型、機器學習、因果推斷等技術領域,多篇文章被EMNLP、ACL、CIKM等國際頂會收錄,「智能化徵信解讀中台」工程榮獲吳文俊人工智能科技進步獎。相關技術廣泛應用於度小滿營銷、經營、風控、反欺詐全流程業務場景,為上千萬客戶提供穩定、安全的金融服務。
目前,專注於AIGC相關研究及產品落地工作,基於度小滿模型即服務(MaaS)的模式積極探索文生圖、數字人與生成式大模型的應用轉化。已於2023年年初帶領團隊發布中國首個千億中文大模型「軒轅」,2023年9月,「軒轅-70B」大模型在C-Eval和CMMLU兩大權威榜單上位列所有開源模型榜首。
作者序
前言
緣起:為什麼要寫這本書
OpenAI 的ChatGPT 自推出以來,迅速成為人工智慧領域的焦點。ChatGPT在語言理解、生成、規劃及記憶等多個維度展示了強大的能力。這不僅表現在對特定任務的高效處理上,更重要的是,它在處理多樣化任務和複雜場景中的靈活性顯著,甚至能在一定程度上模擬人類的思考方式。這種能力的展現,標誌著人工智慧從專注於單一任務的傳統模型向通用人工智慧轉變,其強大的能力將對千行百業產生深遠影響,尤其在最佳化業務流程和重塑組織結構方面。
然而,在研究和實作過程中,我們遇到了一個主要挑戰:市場上缺乏大型語言模型在實際應用方面的資料。現有的資料多聚焦於理論研究,而具體的實作方法多被保密,難以獲得實際操作的指導。為了填補這一空白,我們歷經一年的實作和探索,決定分享我們的經驗和成果,旨在為大型語言模型的初學者和實作者提供快速入門和應用的途徑。
為應對技術的快速演進和資訊的日新月異,我們建立了一個GitHub 社區(https://github.com/Duxiaoman-DI/XuanYuan),用於持續更新我們的技術成果和見解。我們期望透過這種方式,促進讀者對大型語言模型的深入理解和廣泛應用,推動整個領域的持續發展和創新。
本書特色
本書旨在揭開大型語言模型的神秘面紗,透徹地解讀其內在機制和應用實作。書中不僅介紹理論知識,更介紹了深入這一技術領域的具體訓練過程,目的是為讀者提供一個全面、深入且系統化的角度,以揭示大型語言模型的精妙之處。
本書的一大特色表現在其知識系統的系統性。我們從資料處理的基礎工作(如資料清洗與去重)講起,逐步深入,探討預訓練、微調技術和強化對齊技術等核心技術環節。同時,書中對大型語言模型評估策略及其應用技術架構,包括推理引導技術和動態互動技術,進行了全面且深入的探討,確保讀者能夠從理論和技術角度全面理解大型語言模型。
本書的另一大特色是對實作性的重視。我們精心設計了從零開始的教學章節,提供大型語言模型微調的詳細指導,逐步引領讀者掌握關鍵技能。這不僅有助初學者迅速上手,也為有經驗的開發者提供了深入學習的機會。
作為真正的大型語言模型實作者,我們擁有十億、百億、千億等不同參數規模大型語言模型的訓練經驗。在本書中,這些經驗都被毫無保留地融入其中,確保本書內容的實用性和深度。本書是理論與實作經驗的精華,好料滿滿,絕不是空談。
本書結構
本書共10 章,下面是各章的主要內容概述。
第1 章:解鎖大型語言模型
本章勾勒大型語言模型的全貌,並介紹大型語言模型的基礎概念。
第2 章:大型語言模型基礎技術
本章旨在深度解析組成大型語言模型的基礎知識和核心技術。先回顧自然語言的基礎資料表示方法,為理解複雜模型奠定基礎;再詳盡地探討自然語言處理中的預訓練架構——Transformer,以揭示其內在工作機制;接著介紹如BERT和GPT 這樣的標桿性預訓練模型;最後以InstructGPT 和LLaMA 系列為例,為讀者呈現大型語言模型的初步實用成果。
第3 章:預訓練資料建構
本章將深入探討預訓練資料的常見類別、來源和前置處理方式,以及建構訓練資料的重點和困難。
第4 章:大型語言模型預訓練
本章將深入探討大型語言模型預訓練的各個方面。首先解析不同的大型語言模型架構和不同模組的選擇;同時對大型語言模型的訓練過程介紹,包括資料選擇和配比策略、模型訓練等。
第5 章:挖掘大型語言模型潛能:有監督微調
本章將從定義、用途和應用場景3 個方面解釋有監督微調;同時講解如何建構有針對性的微調資料,以及大型語言模型微調的各種技巧。
第6 章:大型語言模型強化對齊
本章先介紹強化學習的基礎知識、兩類主流深度強化學習演算法,重點介紹大型語言模型中基於人類回饋的強化學習(Reinforcement Learning from Human Feedback,RLHF)技術,然後介紹強化學習常用的訓練框架和平臺,以及RLHF 實作過程中的常見問題;最後介紹RLHF 中的困難及目前存在的問題,對RLHF 將來可能的技術發展做進一步展望。
第7 章:大型語言模型的評測
本章首先介紹大型語言模型的評測,如基座模型的評測方式等。然後重點講解微調之後具有對話能力的模型的評測方式,包括SFT 階段全維度的對話能力評測和RLHF 階段模型以安全性為主的能力評測。最後探討如何評價一個通用人工智慧(Artificial General Intelligence,AGI)。
第8 章:大型語言模型的應用
本章將展示提示詞技術對大型語言模型的引導能力。首先從最簡單的零樣本提示開始介紹,這些技術使大型語言模型擁有逐步推理的能力。然後介紹搜索增強生成技術、推理和行動協作技術,利用這兩個技術,大型語言模型可以獲得在與環境的互動中逐步分解並解決問題的能力。
第9 章:專案實作
本章將深入探討大型語言模型從訓練到完成任務的各個環節所涉及的專案最佳化技術和相關實作案例。這些技術和實作旨在提高模型的效率、性能和可擴充性,從而滿足實際應用中的需求。
第10 章:一步步教你訓練7B 大型語言模型
本章將介紹微調大型語言模型的關鍵步驟和程式範例,以便更直接地應用這些技術。
透過閱讀本書,讀者可以獲得全面且深入的大型語言模型的知識框架。無論您是研究人員、工程師,還是產品經理,都能從中獲得有價值的知識。大型語言模型已經在各個領域展現出了巨大的潛力,本書將幫您更進一步地掌握和應用這一技術。
說明
本書包含與大型語言模型的對話範例。為了真實地展示大型語言模型的對話能力,對話內容中難免會出現用詞不規範、敘述不通順甚至錯誤的情況。在此,懇請各位讀者包涵。
致謝
在本書的創作旅程中,感激所有給予我們支持的人。感謝我的團隊成員,他們對技術的信仰和對卓越的追求為本書注入了靈魂;感謝行業內的所有貢獻者,他們的研究和實作成果為我們提供了寶貴的參考和靈感;感謝電子工業出版社鄭柳潔編輯和整個出版團隊,他們的專業技能和對細節的關注,確保了這本書能夠完美地呈現給讀者們。感謝所有直接或間接參與本書創作的人,是你們讓這一切成為可能。
楊青
前言
緣起:為什麼要寫這本書
OpenAI 的ChatGPT 自推出以來,迅速成為人工智慧領域的焦點。ChatGPT在語言理解、生成、規劃及記憶等多個維度展示了強大的能力。這不僅表現在對特定任務的高效處理上,更重要的是,它在處理多樣化任務和複雜場景中的靈活性顯著,甚至能在一定程度上模擬人類的思考方式。這種能力的展現,標誌著人工智慧從專注於單一任務的傳統模型向通用人工智慧轉變,其強大的能力將對千行百業產生深遠影響,尤其在最佳化業務流程和重塑組織結構方面。
然而,在研究和實作過程中,我們遇到了一個主要挑戰:市場上缺乏大型...
目錄
第1 章 解鎖大型語言模型
1.1 什麼是大型語言模型
1.2 語言模型的發展
1.3 GPT 系列模型的發展
1.4 大型語言模型的關鍵技術
1.5 大型語言模型的湧現能力
1.6 大型語言模型的推理能力
1.7 大型語言模型的縮放定律
參考文獻
第2 章 大型語言模型基礎技術
2.1 語言表示介紹
2.1.1 詞表示技術
2.1.2 分詞技術
2.2 經典結構Transformer
2.2.1 輸入模組
2.2.2 多頭自注意力模組
2.2.3 殘差連接與層歸一化
2.2.4 前饋神經網路
2.2.5 解碼器
2.3 預訓練語言模型
2.3.1 Decoder 的代表:GPT 系列
2.3.2 Encoder 的代表:BERT
2.4 初探大型語言模型
2.4.1 InstructGPT
2.4.2 LLaMA 系列
參考文獻
第3 章 預訓練資料建構
3.1 資料的常見類別及其來源
3.1.1 網頁資料
3.1.2 書籍資料
3.1.3 百科資料
3.1.4 程式資料
3.1.5 其他資料
3.2 資料的前置處理方式
3.2.1 正文提取
3.2.2 品質過濾
3.2.3 檔案去重
3.2.4 資料集淨化
3.3 常用資料集的完整建構方式
3.3.1 C4
3.3.2 MassiveText
3.3.3 RefinedWeb
3.3.4 ROOTS
3.4 困難和挑戰
3.4.1 資料收集的局限性
3.4.2 資料品質評估的挑戰
3.4.3 自動生成資料的風險
參考文獻
第4 章 大型語言模型預訓練
4.1 大型語言模型為什麼這麼強
4.2 大型語言模型的核心模組
4.2.1 核心架構
4.2.2 組成模組選型
4.3 大型語言模型怎麼訓練
4.3.1 訓練目標
4.3.2 資料配比
4.4 預訓練還有什麼沒有解決
參考文獻
第5 章 挖掘大型語言模型潛能:有監督微調
5.1 揭開有監督微調的面紗
5.1.1 什麼是有監督微調
5.1.2 有監督微調的作用與意義
5.1.3 有監督微調的應用場景
5.2 有監督微調資料的建構
5.2.1 有監督微調資料的格式
5.2.2 有監督微調資料的自動化建構
5.2.3 有監督微調資料的選擇
5.3 大型語言模型的微調方法
5.3.1 全參數微調
5.3.2 轉接器微調
5.3.3 首碼微調
5.3.4 提示微調
5.3.5 低秩調配
5.4 大型語言模型的微調和推理策略
5.4.1 混合微調策略
5.4.2 基於上下文學習的推理策略
5.4.3 基於思維鏈的推理策略
5.5 大型語言模型微調的挑戰和探索
5.5.1 大型語言模型微調的幻覺問題
5.5.2 大型語言模型微調面臨的挑戰
5.5.3 大型語言模型微調的探索與展望
參考文獻
第6 章 大型語言模型強化對齊
6.1 強化學習基礎
6.1.1 強化學習的基本概念
6.1.2 強化學習中的隨機性
6.1.3 強化學習的目標
6.1.4 Q 函數與V 函數
6.2 DQN 方法
6.2.1 DQN 的結構
6.2.2 DQN 訓練:基本思想
6.2.3 DQN 訓練:目標網路
6.2.4 DQN 訓練:探索策略
6.2.5 DQN 訓練:經驗重播
6.2.6 DQN 訓練:完整演算法
6.2.7 DQN 決策
6.3 策略梯度方法
6.3.1 策略網路的結構
6.3.2 策略網路訓練:策略梯度
6.3.3 策略網路訓練:優勢函數
6.3.4 PPO 演算法
6.4 揭秘大型語言模型中的強化建模
6.4.1 Token-level 強化建模
6.4.2 Sentence-level 強化建模
6.5 獎勵模型
6.5.1 獎勵模型的結構
6.5.2 獎勵模型的訓練
6.5.3 獎勵模型損失函數分析
6.6 RLHF
6.6.1 即時獎勵
6.6.2 RLHF 演算法
6.7 RLHF 實戰框架
6.8 RLHF 的困難和問題
6.8.1 資料瓶頸
6.8.2 硬體瓶頸
6.8.3 方法瓶頸
參考文獻
第7 章 大型語言模型的評測
7.1 基座語言模型的評測
7.1.1 主要的評測維度和基準概述
7.1.2 具體案例:LLaMA 2 選取的評測基準
7.2 大型語言模型的對話能力評測
7.2.1 評測任務
7.2.2 評測集的建構標準
7.2.3 評測方式
7.3 大型語言模型的安全性評測
7.3.1 評測任務
7.3.2 評測方式和標準
7.4 行業大型語言模型的評測:以金融業大型語言模型為例
7.4.1 金融業大型語言模型的自動化評測集
7.4.2 金融業大型語言模型的人工評測集
7.5 整體能力的評測
7.6 主流評測資料集及基準
參考文獻
第8 章 大型語言模型的應用
8.1 大型語言模型為什麼需要提示工程
8.1.1 人類和大型語言模型進行複雜決策的對比
8.1.2 提示工程的作用
8.2 什麼是提示詞
8.2.1 提示詞的基礎要素
8.2.2 提示詞設計的通用原則
8.3 推理引導
8.3.1 零樣本提示
8.3.2 少樣本提示
8.3.3 思維鏈提示
8.3.4 自我一致性提示
8.3.5 思維樹提示
8.4 動態互動
8.4.1 檢索增強生成技術
8.4.2 推理和行動協作技術
8.5 案例分析
8.5.1 案例介紹
8.5.2 工具設計
8.5.3 提示詞設計
8.5.4 案例執行
8.6 侷限和發展
8.6.1 目前的侷限
8.6.2 未來的發展
參考文獻
第9 章 專案實作
9.1 大型語言模型訓練面臨的挑戰
9.2 大型語言模型訓練整體說明
9.2.1 資料並行
9.2.2 模型並行
9.2.3 ZeRO 並行
9.3 大型語言模型訓練技術選型技巧
9.4 大型語言模型訓練最佳化秘笈
9.4.1 I/O 最佳化
9.4.2 通訊最佳化
9.4.3 穩定性最佳化
9.5 大型語言模型訓練專案實作
9.5.1 DeepSpeed 架構
9.5.2 DeepSpeed 訓練詳解
9.5.3 DeepSpeed 訓練優化實作
9.6 強化學習專案實作
9.6.1 DeepSpeed-Chat 混合引擎架構
9.6.2 DeepSpeed-Chat 訓練詳解
9.6.3 DeepSpeed-Chat 訓練優化實作
9.7 大型語言模型推理工程
9.7.1 提升規模:模型量化
9.7.2 提高並行度:張量並行
9.7.3 推理加速:運算元最佳化
9.7.4 降低計算量:KV-Cache
9.7.5 推理工程綜合實作
參考文獻
第10 章 一步步教你訓練7B 大型語言模型
10.1 自動化訓練框架
10.1.1 自動化訓練框架介紹
10.1.2 主要模組介紹
10.2 動手訓練7B 大型語言模型
10.2.1 語料前置處理
10.2.2 預訓練實作
10.2.3 指令微調實作
10.3 小結
第1 章 解鎖大型語言模型
1.1 什麼是大型語言模型
1.2 語言模型的發展
1.3 GPT 系列模型的發展
1.4 大型語言模型的關鍵技術
1.5 大型語言模型的湧現能力
1.6 大型語言模型的推理能力
1.7 大型語言模型的縮放定律
參考文獻
第2 章 大型語言模型基礎技術
2.1 語言表示介紹
2.1.1 詞表示技術
2.1.2 分詞技術
2.2 經典結構Transformer
2.2.1 輸入模組
2.2.2 多頭自注意力模組
2.2.3 殘差連接與層歸一化
2.2.4 前饋神經網路
2.2.5 解碼器
2.3 預訓練語言模型
2.3.1 Decoder 的代表:GPT 系列
2.3.2 Encoder 的代表:BER...