
程戈
內容簡介 這是一本深入闡述ChatGPT等大模型的工作原理、運行機制、架構設計和底層技術,以及預訓練、遷移、微調和中間件編程的著作。它將幫助我們從理論角度全面理解大模型,從實踐角度更好地應用大模型,是作者成功訓練並部署大模型的過程覆盤和經驗總結。 第1章介紹了ChatGPT等大模型的發展歷程、技術演化和技術棧等基礎知識; 第2~5章深入講解了Transformer的架構原理,並從GPT-1的生成式預訓練到GPT-3的稀疏注意力機制詳細描述了GPT系列的架構演進; 6~8章從底層技術實現的角度講解了大語言模型的訓練策略、數據處理方法,以及如何利用策略優化和人類反饋來進一步提升模型的表現; 第9~10章首先詳細講解了大語言模型在垂直領域的低算力遷移方法,並給出了醫療和司法領域的遷移案例,然後講解了大模型的中間件編程; 第11章對GPT的未來發展趨勢進行預測,探討數據資源、自迴歸模型的侷限性,以及大語言模型時代具身智能的可行路線。
整理了一下本書的基本脈絡,還算是較爲系統地,按照大模型的各個發展階段介紹了其主要的核心技術。 【第一章】是大模型的基本介紹,概括類的基礎知識,有基礎的同學可跳過。 【第二章】是大模型的基礎——Transformer的介紹。 Transformer的組成:多頭注意力機制、前饋神經網絡、殘差連接、層歸一化、位置編碼。 1、多頭注意力機制:多頭注意力機制是自注意力機制的擴展(自注意力機制負責計算輸入序列中每個元素與其他元素之間的關係),多頭注意力機制使模型能夠同時關注輸入序列中的多個不同上下 文信息。 2、前饋神經網絡在Transformer中,由兩個線性層和一個活函數組成 3、殘差連接與層歸一化是爲了加速訓練並提高模型性能,殘差連接是將輸入序列與經過自注意力和前饋神經網絡處理後的序列進行元素級別的相加,形成一個新的的序列。層歸一化則是將這個新序列在各個維度上進行歸一化,以便更快地進行訓練。 【第三到五章】是介紹了GPT-1到3中的核心技術 【第三章】主要介紹GPT(生成式預訓練),其核心思想在於對大規模文本數據進行預訓練,從而學習語言模型的生成概率分佈,再將這些預訓練的模型應用於多種下游任務。 1、GPT的訓練流程可被劃分爲兩個主要階段:無監督預訓練和有監督微調。通過在大規模無標籤文本數據上進行無監督預訓練,ChatGPT得以掌握豐富的語言表示。進入有監督微調階段,ChatGPT可以針對特定任務進行優化,從而提高在該特定領域的性能。 2、爲了確保模型在生成文本時僅依賴於已經觀察到的上下文,而不依賴於未來的信息,GPT模型採用了一種被稱爲掩碼自注意力的機制。掩碼自注意力的基本理念是,在計算自注意力權重時,模型只能關注當前位置及前面的位置。 3、GPT模型與原始的Transformer模型的區別: (1)原始的Transformer模型中,編碼器的自注意力機制並未進行掩碼處理,但在生成式預訓練任務中,沒有掩碼可能會導致生成的文本依賴於未來的信息,違反自然語言的生成規律。 (2)原始的Transformer模型中,編碼器和解碼器都是必需的部分,生成式預訓練任務的目標是學習語言的通用表示,而不是將輸入序列映射到目標序列。因此,GPT模型選擇了只採用解碼器部分的設計方式。 【第四章】介紹了GPT-2模型中的Transformer架構的變化,以及無監督多任務與零樣本學習的概念。 首先,在訓練數據集的規模上大幅超過了GPT-1。 第二,GPT-2每個Transformer層的輸入和輸出都添加了層歸一化層,以實現輸入和輸出的歸一化。 第三,GPT-2採用了一種可學習的相對位置編碼(Learnable Relative Positional Encoding)策略,以精確地捕捉輸入序列中的位置信息。 第四,GPT-2的多任務學習則通過無監督學習,生成與訓練數據相似的文本。旨在通過學習大量自然語言文本,獲取多個任務的共享知識和特徵,從而提高模型的泛化能力和適應性。 第五,GPT-2的零樣本學習能力來源於預訓練階段的無監督多任務學習。零樣本學習允許GPT-2在沒有特定任務標籤的情況下處理各種NLP任務。多任務學習和零樣本學習在GPT-2中並不矛盾。這意味着模型在預訓練階段學到的知識能夠泛化到各種NLP任務上,而無須進行鍼對性的有監督微調。 【第五章】介紹了GPT-3的稀疏注意力模式、元學習和基於內容的學習等技術。 1、GPT-3在注意力模式上做了重大改進,在Transformer的解碼器層中交替使用密集和局部帶狀稀疏注意力模式 2、GPT-3的模型規模遠超GPT-2,具有1750億的參數,而GPT-2的參數量爲15億 3、GPT-3仍然沿用了GPT-2的正交初始化、層歸一化和可逆的分詞方法 4、GPT-3的主要學習策略是元學習和基於內容的學習(因爲GPT-3參數規模龐大,已經無法對所有參數微調了) (1)元學習是指在大量的文本數據上訓練一個模型,使其掌握自然語言生成的能力,以及獲取廣泛的知識和語言理解能力 (2)基於內容的學習,模型採用了零樣本(Zero-shot)、單樣本(One-shot)和少樣本(Few-shot)學習策略,突破了傳統微調方法的限制。 【第六章】介紹了大語言模型的預訓練數據集和數據處理方法,和分佈式訓練的技術路線。 1、GPT-3.在預訓練階段主要使用了維基百科、各類書籍、互聯網爬取的網頁(如Common Crawl)、WebText2等數據集。 2、GPT-3.5引入了GitHub等代碼數據集、StackExchange等對話論壇和視頻字幕數據集。 3、訓練超大語言模型主要有兩條技術路線:一是Google主導的,基於TPU+XLA+TensorFlow/JAX的技術路線,這種方案由於TPU和Google自家的雲平臺深度綁定;二是由NVIDIA、Meta、Microsoft等大廠支持的,基於GPU+PyTorch+Megatron-LM+DeepSpeed的技術路線,這是開源方案中最成熟的技術路線,實現了大規模預訓練模型的並行策略 4、基於Lingvo開發的神經網絡訓練庫GPipe、微軟的研究成果PipeDream、英偉達的Megatron-LM、Meta的FairScale、微軟的DeepSpeed ZeRO,以及Google的Pathways等 【第七八章】介紹人類反饋強化學習的微調數據集、PPO算法原理、PPO在InstructGPT中的應用 1、InstructGPT的訓練流程主要包括三個階段:監督微調、獎勵建模和強化學習。這三個階段分別對應三個數據集:SFT數據集、RM數據集和RL數據集。 2、推測ChatGPT在訓練數據集構成方面與InstructGPT有兩個主要的不同之處:一是提高了對話類任務的比例;二是將提示的形式轉變爲問答形式,如果要獲取更準確的描述,需要等待ChatGPT的論文、源代碼等更詳細的資料的公開。 3、有監督微調階段:這個經過微調的GPT-3模型被稱爲SFT模型,作爲基線模型的基本預測能力。微調過程採用了餘弦學習率衰減策略,並進行了16個訓練週期。 4、獎勵建模階段:InstructGPT選擇了一個相對較小的60億參數的GPT-3微調模型SFT模型來訓練獎勵模型 5、強化學習階段:基於PPO算法,利用RM的輸出作爲標量獎勵對有監督策略進行微調,以優化這個獎勵 6、在人類反饋強化學習訓練的三個步驟中,訓練獎勵模型與PPO微調階段可以持續迭代,收集當前最佳策略的更多比較數據,然後用於訓練新的獎勵模型和新的策略。 【第九章】探討了大語言模型在低算力環境中的應用策略。降低成本可從兩個方面考慮:一是人類反饋的標註成本,二是訓練和部署的計算成本。 1、指令自舉標註作爲一種低成本數據標註的解決方案,成爲開源大模型低成本遷移中標註數據解決方案的範式 2、原則人工智能(Constitutional AI,CAI)利用人工智能系統的理解和生成能力獲得標註數據。 3、通過對權重矩陣進行分解,並調整部分權重,就可以顯著降低微調過程中的參數數量,從而降低大語言模型更新預訓練數據或微調的成本。 4、通過降低權重值的表示精度,採用較低的精度數值代替高精度的數值。 5、SparseGPT是一種大規模近似稀疏迴歸算法,旨在有效地解決此問題。 【第十章】介紹了在大語言模型開發中涉及的中間件編程技術。 1、LangChain是一套強大且多元化的工具和組件集合,目標在於簡化基於大語言模型應用程序的過程。 2、ViperGPT、VisualGPT和HuggingGPT將大語言模型作爲智能代理,以管理並調度各類AI模型,從而實現多模態任務處理 3、AutoGPT充分發揮了大語言模型在任務規劃和智能代理方面的能力。其自治能力依賴於大語言模型的任務規劃能力和智能代理能力,以及對任務目標或任務執行反饋的處理。這構成了一種自我迭代的自治能力。
不是人工智能專業方向的人可以挑着看,沒必要全懂! 也不可能全懂。但對於瞭解GPT等LLMs,足夠了,做爲進入人工智能領域的指路燈,我人覺得收穫良多
《ChatGPT原理與架構:大模型的預訓練、遷移和中間件編程》 G:generative 生成式 P:pretrained 預訓練 T:transformer 轉換器 chatgpt是基於gpt模型構建的聊天機器人,其原理和架構涉及到大模型的預訓練、遷移和中間件編程方面。 ChatGPT這類大語言模型正逐漸成爲一種基礎架構,其技術棧由衆多組件組成,包括容器化、性能監控、商業智能、事件處理、雲服務、微服務及分析工具等。大語言模型的技術棧自下而上可以劃分爲5個層次: 基礎架構層: 這一層就像是大語言模型的“地基”和“動力源”。它提供訓練和推理所需的基礎設施,比如公有云、私有云以及計算硬件。現在很多大語言模型的計算工作主要在雲平臺的 GPU 或 TPU 上進行,不管是模型的開發者還是使用模型的企業都依賴這個。自從 GPU 替代 CPU 成爲主要的人工智能計算硬件後,又出現了新問題,計算能力不夠用了,這是近十年來的一個新挑戰。 框架層: 這裏有各種深度學習框架和分佈式訓練框架,就像建造大語言模型的“工具包”。比如大家熟知的 PyTorch、TensorFlow 等深度學習框架,還有 Pathway、Megatron - LM、DeepSpeed Zero 等分佈式訓練框架。它們是用來訓練和部署模型的。 模型層: 這一層有很多不同的模型,有開源的也有非開源的。它主要爲上面的應用層或者中間件層提供功能支持,一般是通過 API(應用程序接口)來實現的。 中間件層: 這一層就像是一個“橋樑”或者“翻譯官”。它把大語言模型的接口進行封裝和優化,還能引入外部知識以及連接其他第三方工具。而且,根據用戶不同的工作流程需求,它還能提供有長期記憶和代理能力的服務。這樣可以分解工作流,把應用層和模型層連接起來,讓開發者更容易和模型交互,降低大語言模型在實際應用中的使用難度。 應用層: 這一層就是直接面向用戶的啦。很多企業通過中間件層或者直接調用大語言模型,把它們集成到自己的客戶端應用程序或者搜索引擎裏,讓產品像微軟的 New Bing 那樣具備大語言模型的智能協作和生成能力。 部署 ChatGPT 大模型的成本很昂貴: 據國盛證券報告《ChatGPT 需要多少算力》估算,GPT-3 訓練一次的成本約爲 140 萬美元,對於一些更大的 AI 模型,例如 ChatGPT,據估算一次訓練成本介於 200 萬美元至 1200 萬美元之間(約合人民幣 1560 萬至 9360 萬)。 以 GPT-3 爲例,其耗電量高達 1287 兆瓦時,可爲一個普通美國家庭供電 120 年。半導體研究公司 Semianalysis 的首席分析師 Dylan Patel 在接受 IT 外媒 The Information 採訪時表示,使用 ChatGPT 撰寫求職信、制定課程計劃和重做約會資料使 OpenAI 每天可能要花費高達 70 萬美元。這主要是由於其運行所依賴的技術基礎設施成本高昂,其中大部分成本來自所需的昂貴服務器。他還提到目前運營成本可能更高,因爲其初步估計基於 OpenAI 的 GPT-3 模型,而公司最新的模型 GPT-4 運行起來會更燒錢。 調研機構 Trendforce 在一份報告中提到,OpenAI 訓練 GPT-3 時大概用到了 2 萬個英偉達 A100 GPU 左右的算力,A100 芯片現今的售價約 1 萬美元。ChatGPT 商業化後所需的 GPU 數量將達到 3 萬個以上,另外還需要搭載芯片的數千臺服務器和 500 個標準機櫃,初期估計投入約爲 8 億美元(約合 62.4 億港元)。 有媒體在 2023 年 8 月報道稱,如果如果 OpenAI 繼續以當時的速度燒錢,極有可能會在 2024 年底破產。因爲在運營成本每日高達 70 萬美元的情況下,ChatGPT 流量卻在持續下降,2022 年 OpenAI 總計損失達到了 5.4 億美元,而其產生的收入只有 2800 萬美元。 部署chatgpt大模型的一般流程是: 一、需求分析與規劃 1. 明確應用場景:確定你希望將 ChatGPT 大模型應用於哪個具體領域,如智能客服、內容創作、智能助手等。不同的應用場景對模型的性能和功能要求可能會有所不同。 2. 評估資源需求:考慮部署模型所需的計算資源、存儲資源和網絡帶寬等。這包括選擇合適的服務器硬件、確定是否需要使用雲計算服務以及預估數據存儲和傳輸的需求。 3. 制定項目計劃:根據應用場景和資源需求,制定詳細的項目計劃,包括時間表、里程碑和任務分配等。確保項目團隊成員對整個部署過程有清晰的瞭解。 二、環境準備 1. 選擇服務器或雲平臺:根據資源需求和預算,選擇合適的服務器或雲服務提供商。如果選擇雲平臺,可以考慮使用具有強大計算能力和高可用性的服務,如亞馬遜 AWS、微軟 Azure 或谷歌 Cloud。 2. 安裝必要的軟件和工具:在服務器或雲平臺上安裝所需的軟件和工具,包括深度學習框架(如 PyTorch 或 TensorFlow)、編程語言環境(如 Python)、數據庫管理系統等。確保這些軟件的版本與 ChatGPT 大模型的要求相匹配。 3. 配置網絡和安全設置:設置網絡連接,確保服務器可以與外部系統進行通信。同時,配置安全設置,如防火牆、訪問控制和數據加密等,以保護模型和數據的安全。 三、模型獲取與準備 1. 獲取 ChatGPT 大模型:可以從官方渠道或可靠的第三方來源獲取 ChatGPT 大模型的文件或預訓練權重。確保你獲得的模型是合法的、安全的,並且與你的應用場景相適應。 2. 檢查模型兼容性:確認模型文件的格式和架構與你選擇的深度學習框架兼容。如果需要,可能需要進行一些格式轉換或調整。 3. 數據準備:如果需要對模型進行微調或特定任務的訓練,準備好相應的數據集。數據應該具有高質量、多樣性,並經過適當的預處理,如清洗、標註等。 四、模型部署 1. 加載模型到服務器:將 ChatGPT 大模型文件加載到服務器的內存或存儲中。根據深度學習框架的要求,進行模型的初始化和加載操作。 2. 配置模型參數和環境變量:根據應用場景和性能要求,設置模型的參數,如 batch size、學習率等。同時,配置環境變量,如路徑、端口號等,以便模型能夠正確運行。 3. 啓動服務:運行模型的服務程序,使其對外提供接口。可以選擇使用 RESTful API 或其他通信協議,以便其他應用程序能夠與模型進行交互。 五、測試與優化 1. 功能測試:使用一些測試數據對部署的 ChatGPT 大模型進行功能測試,確保模型能夠正確回答問題並滿足預期的性能要求。可以使用自動化測試工具或手動測試來驗證模型的功能。 2. 性能優化:根據測試結果,進行性能優化。這可能包括調整服務器配置、優化模型參數、使用緩存等技術手段,以提高模型的響應速度和吞吐量。 3. 安全審計:對部署的系統進行安全審計,確保模型和數據的安全。檢查是否存在潛在的安全漏洞,並採取相應的措施進行修復。 六、上線與維護 1. 上線部署:在經過充分的測試和優化後,將 ChatGPT 大模型部署上線,使其正式爲用戶提供服務。確保上線過程平穩,避免對用戶造成影響。 2. 監控與維護:建立監控機制,實時監測模型的性能指標,如響應時間、準確率等。及時發現並解決可能出現的問題。定期對模型進行更新和維護,以確保其始終保持良好的性能和功能。 總之,部署 ChatGPT 大模型需要經過需求分析、環境準備、模型獲取與準備、模型部署、測試與優化以及上線與維護等多個步驟。每個步驟都需要仔細規劃和執行,以確保模型能夠成功部署併爲用戶提供高質量的服務。 現在,大語言模型的低算力領域遷移主要是指將原本需要高算力才能運行的大語言模型,通過一系列技術手段使其能夠在低算力的設備或環境中得以應用。 這一概念的出現是爲了解決在一些計算資源有限的場景下,如邊緣設備、移動設備或資源受限的企業和組織中,仍然能夠利用大語言模型的強大能力。 例如,通過指令自舉標註、人工智能反饋、低秩自適應、量化和剪枝算法等技術,可以降低模型的計算複雜度、參數數量和存儲需求,從而使模型能夠在低算力的環境中運行,實現更廣泛的應用和部署。 而今各個企業都開始了自己的ai(人工智能)融入到自家的app中。開始了中間件編程,在大語言模型和實際應用之間構建橋樑。 就像是一個 “翻譯官” 和 “協調者”。它位於大語言模型(如 ChatGPT 等)與各種應用程序之間。一方面,它能理解來自應用程序的請求,並將其轉化爲大語言模型能夠處理的格式。另一方面,它又能把大語言模型生成的複雜結果進行處理和優化,以適應應用程序的需求。 例如,在一個智能客服系統中,中間件可以接收用戶的問題,將其整理成適合大語言模型理解的輸入格式,然後把大語言模型給出的回答進行適當的調整和格式化,再返回給智能客服系統展示給用戶。 對於開發者來說,中間件編程提供了一套標準化的接口和工具,使得他們無需深入瞭解大語言模型的複雜內部結構和算法,就能夠輕鬆地調用大語言模型的能力。這大大降低了開發難度,提高了開發效率。 開發者可以專注於應用程序的業務邏輯,而把與大語言模型的交互交給中間件來處理。這樣可以加快開發進度,縮短項目的開發週期。 不同的應用場景對大語言模型的需求可能各不相同。中間件可以根據具體的應用需求進行定製和擴展,滿足各種複雜的業務需求。 例如,在一個多語言的應用中,中間件可以添加語言翻譯功能,使得大語言模型能夠處理不同語言的輸入和輸出。或者在一個需要實時處理大量請求的應用中,中間件可以實現負載均衡和緩存機制,提高系統的性能和穩定性。 中間件編程可以實現大語言模型與其他模態的數據(如圖像、音頻、視頻等)的融合。這爲開發更加豐富和智能的應用提供了可能。 比如,在一個智能圖像識別應用中,中間件可以將圖像識別算法與大語言模型結合起來,實現對圖像內容的描述和分析,並與用戶進行自然語言交互。 中間件編程使得大語言模型能夠更好地適應不同的行業和領域,促進其在各個領域的廣泛應用。 無論是金融、醫療、教育還是電商等領域,中間件都可以根據行業特點和需求,將大語言模型與現有的業務系統進行整合,爲用戶提供更加智能和高效的服務。 中間件編程在大語言模型的應用中起着至關重要的作用。它不僅提高了開發效率,增強了系統的靈活性和可擴展性,還促進了多模態融合,推動了大語言模型的廣泛應用。
《ChatGPT原理與架構:大模型的預訓練、遷移和中間件編程》是一本深入探討大語言模型技術的權威著作。作者以紮實的理論基礎和豐富的實踐經驗,系統剖析了ChatGPT的核心技術,包括Transformer模型、注意力機制和生成式預測等關鍵概念。書中不僅詳細介紹了模型的預訓練和遷移學習方法,還探討了低算力部署和人機交互等實際問題。通過圖文並茂的方式,作者將複雜的技術原理講解得通俗易懂,使讀者能夠輕鬆掌握大模型的內在機制。無論是AI領域的研究者還是開發者,都能從本書中獲得寶貴的知識和啓發,爲未來的技術創新奠定堅實基礎。
比較系統的介紹了大模型的原理還有發展,尤其提到了世界模型,這也許是下一個人工智能的風口
懂的不太需要看,不懂的看不太懂。
相比其他一些專業性很強的書籍,這本書趕緊相對來說沒有那麼的枯燥難讀,對gpt感興趣的還是值得讀一讀的。
2024.No34: 24年第12本技術書,第三本大模型相關書籍。跟《BERT基礎教程:Transformer大模型實戰》一樣,但很多原理性的東西都看不太懂。
太粗糙了,內行人不需要,外行人也不需要
通過本書瞭解了Ai大模型的知識,很受用