作者簡介
張愛玲
本科畢業於清華大學電子工程系,後在美國伊利諾伊大學香檳分校獲得計算機科學碩士學位,是AI系統工程領域的資深技術專家。作為深度學習框架PyTorch核心團隊成員,參與了多個關鍵組件的研發與優化工作。同時,她作為技術負責人主導了PyTorch/XLA和Taichi編譯器等多個具有廣泛影響力的開源項目。目前在工業界專註於大規模語言模型訓練的基礎設施開發與性能優化工作。
楊占略
清華大學本科,哥倫比亞大學碩士,資深技術專家。曾先後任職於蘋果、百度、太極圖形公司,分別從事深度學習推理框架、訓練框架PaddlePaddle以及Taichi編譯器的開發。現就職於大疆公司,聚焦於端側模型優化、推理部署相關工作。
序言
2022年底,由OpenAI 發佈的ChatGPT 展現了人工智慧(Artificial Intelligence,AI)與人類進行流暢對話和問答的專業能力,剛一發佈就引發了巨大關注。作為生成式AI 領域的第一個現象級產品,ChatGPT 已經在搜尋、程式設計、客服等多個領域顯著提升了人類的工作效率。人們不僅對AI 模型目前的能力感到驚訝,更對其跨行業多領域的應用潛力感到振奮,許多人甚至認為一個由人工智慧驅動的第四次工業革命已經拉開序幕。
ChatGPT 的成功不僅歸功於其出色的模型架構,還得益於其在工程方面的極致最佳化—這個龐大的模型基於巨量網際網路文字資料,在由超過一萬張GPU 組成的計算集群上進行了數月的訓練。這不僅需要在穩定性和性能方面對分散式訓練策略進行極致最佳化,還充分挑戰了當前軟體和硬體的極限,成為了AI 工程領域的里程碑。
AI 系統工程(AI Systems Engineering)是AI 演算法與系統的交叉領域。從訓練到部署,所有涉及軟體和計算叢集的部分幾乎都可以劃為AI 系統工程的範圍,包括持續最佳化的GPU 硬體架構、建立高速互聯的GPU 資料中心、開發使用者友善且可擴充的AI 框架等。目前市面上有許多關於AI 演算法和模型架構方面的書籍和課程,但關於AI 系統工程的資料卻非常缺乏。這些工程實踐技巧通常散落在使用者手冊、專家部落格,甚至GitHub 問題討論中,由於覆蓋面廣且基礎知識分散,新入行的工程師在系統性建構AI 系統工程知識
系統時面臨諸多挑戰。
因此,本書致力於實現以下兩個目標:
• 從深度學習訓練的角度講解AI 工程中必要的軟硬體元件,幫助讀者系統性地了解深度學習性能問題的根源。詳盡分析硬體參數和軟體特性對訓練效果的影響,並提供了一套從定位問題、分析問題到解決問題的流程。
• 深入探討應對資料和模型規模快速增長的具體策略。從顯示記憶體最佳化到訓練加速,從單機單卡到分散式訓練的最佳化,系統地介紹提升模型訓練規模和性能的多種途徑。我們希望讀者能夠理解這些策略各自的優勢與侷限,並根據實際情況靈活應用。
本書將透過PyTorch 程式實例演示不同的特性和最佳化技巧,儘量避免使用晦澀難懂的公式,透過簡單的例子講清問題的來龍去脈。然而,AI 系統工程是個非常寬泛的交叉領域,無論是書籍的篇幅還是筆者的實際經驗都有一定的局限性,因此本書很難面面俱到地涵蓋所有內容,比如:
• 本書不涉及模型架構的演算法講解。我們假定讀者已經對要解決的問題和可能使用的模型架構有所了解,甚至已經有一些可執行的雛形程式,以此作為性能或顯示記憶體最佳化的基礎。
• 本書通常不會介紹PyTorch 等工具的API 介面和參數設置細節,除非這些資訊與最佳化直接相關。這類資訊在各工具的官方文件中已有詳盡的描述和豐富的程式範例,且可能隨版本更新發生變化。如果讀者在使用這些介面時遇到問題,建議直接參考相關文件。本書的目標並不是成為這些文件的中文版本,而是闡釋其中的原理和想法,讓讀者能夠更靈活地使用這些工具。
• 本書不涵蓋專門針對推理部署設計的演算法、性能最佳化和專用加速晶片等知識。模型推理的技巧通常與特定應用緊密相關,有時為了追求極致的性能,甚至需要採用一些非常規的技巧。因此,模型推理不是本書的重點,我們將聚焦於更具通用性的訓練部分。
• 本書在討論自訂運算元時會簡要提及CUDA 語言,但不會深入講解如何使用CUDA 撰寫高性能運算元。CUDA 身為專業性很強的程式語言,需要對GPU 硬體架構和平行計算有深入了解。然而,即使沒有CUDA相關背景,也不影響對本書內容的理解和應用。希望深入研究CUDA的讀者,可以在網上找到大量高品質的書籍和教學。
致謝
在本書的寫作和審閱過程中,我們獲得了許多朋友的寶貴幫助和支援。在此,特向他們表示誠摯的感謝。在技術內容方面,羅雨屏對全書進行了全面的審閱和指導;張雲明對第1章和第2章提出了寶貴的建議;劉家愷對第1章至第6章提出了寶貴的意見;蘭海東細緻審閱並修改了第2、3、6、7章;王宇軒對第2章進行了細緻的審閱和最佳化;許珈銘對第2章和第6章提供了具有建設性的建議;路浩對第3章和第4章進行了細緻的修訂;嚴軼飛對第4章進行了詳細的校訂,確保內容準確;蔣毓和田野為第5章提供了寶貴的回饋和審閱;王雨順對第7章進行了深入的改進;申晗對第7章至第9章提出了建設性的修改建議;與PrithviGudapati 的討論修正了書中設置PyTorch隨機數種子的方法。
在圖書策劃方面,姚麗斌、申美瑩和欒大成在全書的策劃和編輯過程中給予了寶貴的建議;王承宸為本書生成了清晰美觀的程式圖;戴國浩提供了實驗用的機器,確保了實驗的順利進行。
此外,在本書的寫作過程中,筆者借助了ChatGPT 進行大量文字潤色工作,大大提升了寫作效率。書中的圖表主要使用Keynote和FigJam進行製作,程式範例使用基於Carbon的命令列工具carbon-now-cli生成,非常感謝社區提供的這些工具程式。
最後,本書的寫作時間以及筆者的經驗有限,書中如有錯誤和疏漏,懇請讀者批評指正。
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。