序言
撰寫背景
以ChatGPT為代表的大語言模型一經問世,便立即吸引了全世界的目光。大語言模型不僅能理解人類語言,還能掌握語言中蘊含的知識,能夠輕鬆地與人類進行深入交談,並高效完成各種任務。在許多場景中,如果將系統的互動介面隱藏起來,我們甚至很難分辨它和真人之間的差異。尤其引人注目的是,大語言模型不時展現出自我意識,這引發了人們對人工智慧的廣泛討論。一些人甚至開始感到恐慌,擔心人工智慧將逐漸取代作為碳基生物的人類,成為主導地球的新型矽基生物。
人工智慧對人類社會的影響難以準確預測,就如同在網際網路最初興起時,人們難以想像它將如何改變我們的生活。毫無疑問,人工智慧帶來的衝擊將是巨大的,甚至可能超越網際網路,與電的發明相媲美,引發第四次工業革命(前三次工業革命分別由機械化、電氣化、資訊技術主導)。從目前已知的發展趨勢來看,人工智慧至少會徹底改變人與電腦的互動方式。
對技術人員而言,大語言模型能夠自動生成大部分基礎程式,從而降低傳統程式設計的門檻。這雖然帶來了諸多便利,但就像汽車取代馬車一樣,也可能減少相關職務的數量,使部分技術人員面臨失業的風險,這只是硬幣的一面。另一方面,隨著人工智慧的廣泛應用,現有系統將按照人工智慧的方式進行改造或重新建構,這必然會帶來新的需求。為了抓住時代的紅利,技術人員必須對人工智慧技術有深刻的理解。
對非技術人員而言,人工智慧的應用使他們能夠繞開撰寫程式,直接透過自然語言與電腦互動,顯著提升他們駕馭電腦的能力。除生成程式外,大多數基礎工作,如撰寫報告和製作PPT等,人工智慧同樣能夠勝任。面對這樣一個高效、無須休息且掌握大量知識的競爭者,非技術人員也需要認真思考哪些工作是無法被機器取代的。
投資大師巴菲特曾戲言,「大多數經濟學家在思想上最經濟,他們把在所究所學生院學到的東西用一輩子」。然而,即將迎來人工智慧時代的我們並沒有如此幸運,因為理解和掌握人工智慧將成為必不可少的技能。大語言模型雖處於人工智慧的前端,但相關的最新資料分散在各種學術期刊上,其中有些內容過於注重數學細節,顯得晦澀難懂。因此,筆者撰寫本書的初衷和目標十分清晰:以從零開始複刻ChatGPT為導向,搜集人工智慧的相關資料,將其以更優雅的形式呈現出來,旨在幫助讀者更進一步地理解大語言模型。
本書內容
相比於同類圖書,本書在理論基礎和工程實現方面都頗具特色。在理論基礎方面,人工智慧知識涉及多個學科,包括統計分析、機器學習、計量經濟學等。雖然同一模型在不同的學科中有不同的側重點,但由於學科之間的割裂,很少有資料對它們進行融合和深入討論。本書致力於打通這些學科之間的隔閡,透過類比的方式展示它們之間的連結。此外,本書在架設大語言模型的過程中參考了許多經典模型的最佳實踐經驗,因此使用了較大篇幅來討論和講解相關模型的架設技巧及發展歷程,以幫助讀者更進一步地掌握其中的精髓。
在工程實現方面,對於本書涉及的經典模型,第三方開放原始碼工具已經提供了封裝良好的實現,使用起來並不複雜。然而,若僅限於使用這些開放原始碼工具,對模型的理解可能流於表面。此外,出於工程化的考慮,這些開放原始碼工具的程式引入了過多的封裝和細節,即讓讀者有意深入閱讀這些開放原始碼工具的原始程式,也難以理解模型的核心結構。因此,本書偏重於重新實現模型的核心部分,以幫助讀者更進一步地理解模型。有時,使用人類的語言描述一些精妙的演算法細節需要花費較大篇幅,而且效果並不盡如人意。相比之下,直接閱讀程式則更加直觀清晰。
在章節安排上,本書分為三個主要部分。
第一部分深入討論人工智慧領域最基礎的線性迴歸模型和邏輯迴歸模型,詳見第2 ∼ 5章。這兩個模型被認為是神經網路的基石,許多複雜模型的設計理念都源於它們。因此,深刻理解二者中的設計細節和訓練方式可謂至關重要。這兩個模型足夠簡單,我們正好可以透過它們來探討一些人工智慧的通用問題,如過擬合和懲罰項等。此外,這兩個模型的理論基礎涉及統計分析和計量經濟學,這些學科也能為人工智慧的發展提供啟示和參考。
第二部分介紹神經網路的相關內容,詳見第6 ∼ 12章。本書以模型的最佳化演算法為起點,詳細解析了神經網路的基石—反向傳播演算法,並在此基礎上,逐一討論經典神經網路的核心結構。在這個過程中,常用的訓練最佳化方法也是重點內容之一,這些方法可以幫助模型更快地收斂。隨後,本書將展開對大語言模型的討論:從零開始實現GPT-2 模型,繼而深入研究如何將GPT 演進為ChatGPT。這一過程將涉及模型微調和強化學習等內容。
第三部分簡介一些與神經網路相關的經典模型,詳見第13章。這些內容旨在為讀者拓寬視野,以便於更深入地理解神經網路技術的起源和演進過程。
建議和回饋
在撰寫本書的過程中,筆者已努力追求完美,但由於個人水準有限,書中難免存在一些瑕疵。誠邀各位讀者不吝賜教,請將您的寶貴意見和批評發送至筆者電子郵件tgbaggio@hotmail.com或本書編輯電子郵件zhangshuang@phei.com.cn。
讀者的回饋對於完善和提升本書的品質非常重要,我們期待著您的建議,也感謝您對本書的支援!
致謝
首先,我想將這本書獻給我的妻子劉曉帆女士!儘管她並非技術人員,也許都不是本書的讀者,但身為作者,我有一點點特權,可以將自己的書獻給我最珍視的人。
同時,對於父母和岳父母在本書撰寫過程中給予的支援和鼓勵,我深表感激。此外,特別感謝梁啟鴻先生,他在行文和內容上的指導意見對完善本書有著至關重要的作用。感謝韓家煒教授、彭健教授、楊衛東教授、周海洋先生、周輝先生對我的無私幫助。我還要對我的初中數學老師吳獻女士表示深深的謝意,她的諄諄教誨讓我終身難忘。
最後,由衷感謝電子工業出版社的張爽女士為本書的順利出版所付出的辛勤努力。本書的完成離不開每一位在我背後默默提供支援和付出努力的人。雖然此處未一一列舉,但我對你們每個人的幫助都懷有深深的感激之情。
唐亘
2024 年4 月