- 從零開始大模型開發與微調:基于PyTorch與ChatGLM
- 王曉華
- 3540字
- 2024-12-31 17:37:07
前言
我們處于一個變革的時代!
提出一個常識問題,讓一個有著本科學歷的成年人回答這個問題,似乎是一件非常簡單的事情。然而將同樣的內容輸送給計算機,讓它通過自己的能力流暢地回答這個常識問題,這在不久以前還是一件不可能的事。
讓計算機學會回答問題,這是一個專門的研究方向——人工智能大模型正在做的工作。隨著人工神經網絡和深度學習的發展,近年來人工智能在研究上取得了重大突破。通過大規模的文本訓練,人工智能在自然語言生成上取得了非常好的效果。
而今,隨著深度學習的發展,使用人工智能來處理常規勞動、理解語音語義、幫助醫療診斷和支持基礎科研工作,這些曾經是夢想的東西似乎都在眼前。
寫作本書的原因
PyTorch作為最新的、應用最為廣泛的深度學習開源框架,自然引起了廣泛的關注,它吸引了大量程序設計和開發人員進行相關內容的開發與學習。掌握PyTorch程序設計基本技能的程序設計人員成為當前各組織和單位熱切尋求的熱門人才。他們的主要工作就是利用獲得的數據集設計不同的人工神經模型,利用人工神經網絡強大的學習能力提取和挖掘數據集中包含的潛在信息,編寫相應的PyTorch程序對數據進行處理,對其價值進行進一步開發,為商業機會的獲取、管理模式的創新、決策的制定提供相應的支持。隨著越來越多的組織、單位和行業對深度學習應用的重視,高層次的PyTorch程序設計人員必將成為就業市場上緊俏的人才。
與其他應用框架不同,PyTorch并不是一個簡單的編程框架,深度學習也不是一個簡單的名詞,而是需要相關研究人員對隱藏在其代碼背后的理論進行學習,掌握一定的數學知識和理論基礎的。特別是隨著PyTorch 2.0的推出,更好、更快、更強成為PyTorch 2.0所追求的目標。
研究人員探索和發展深度學習的目的是更好地服務于人類社會,而人工智能的代表——清華大學開發的ChatGLM是現階段人工智能最高端的研究成果,它可以模擬人類智能的某些方面,例如語言理解、智能問答、自然語言處理等。相較于其他人工智能產品,ChatGLM有著更加強大的算法、更多的數據基礎以及更強的訓練和優化,使得ChatGLM可以實現更加準確和高效的決策和預測,為人類社會帶來巨大的價值。
在醫療領域,ChatGLM可以幫助醫生更準確地診斷疾病,提高治療的效果和效率。在交通領域,ChatGLM可以輔助駕駛員進行駕駛決策,減少交通事故的發生。在金融領域,ChatGLM可以幫助銀行和證券公司進行風險控制和投資決策。在教育領域,ChatGLM可以根據學生的學習情況和興趣愛好,提供個性化的學習方案和資源。
在這個人工智能風起云涌的時代,借由PyTorch 2.0與ChatGLM推出之際,本書為了滿足廣大人工智能程序設計和開發人員學習最新的PyTorch程序代碼的需要,對涉及深度學習的結構與編程技巧循序漸進地做了介紹與說明,以深度學習實戰內容為依托,從理論開始介紹PyTorch程序設計模式,多角度、多方面地對其中的原理和實現提供翔實的分析;同時,以了解和掌握最強的人工智能模型ChatGLM,進行可靠的二次開發和微調為目標,使讀者能夠在開發者的層面掌握ChatGLM程序設計方法和技巧,為開發出更強大的人工智能大模型打下扎實的基礎。
本書的優勢
· 本書基于PyTorch 2.0框架對深度學習的理論、應用以及實戰進行全方位的講解,市面上鮮有涉及。
· 本書手把手地從零開始向讀者講解大模型的構建方法,從最基礎的深度學習模型搭建開始,直到完成大模型的設計、應用與微調工作。
· 本書并非枯燥的理論講解,而是大量最新文獻的歸納和總結。在這點上,本書與其他編程書籍有本質區別。本書的例子都是來自現實世界中對深度學習有實戰應用的模型,通過介紹這些實際應用示例,可以使讀者更進一步地了解和掌握其應用價值和核心本質。
· 本書作者有長期的研究生和本科生教學經驗,通過通俗易懂的語言,深入淺出地介紹深度學習與神經網絡理論體系的全部知識點,并在程序編寫時使用PyTorch 2.0最新框架進行程序設計,幫助讀者更好地使用PyTorch模型框架,理解和掌握PyTorch程序設計的精妙之處。
· 作者認為,掌握和使用深度學習的人才應在掌握基本知識和理論的基礎上,重視實際應用程序開發能力和解決問題能力的培養。特別是對于最新的大模型技術的掌握。本書結合作者在實際工作中應用的實際案例進行講解,內容真實,場景逼真。
本書的內容
本書共18章,所有代碼均采用Python語言編寫,這也是PyTorch 2.0框架推薦使用的語言。
第1章介紹人工智能的基本內容,初步介紹深度學習應用與大模型的發展方向,介紹最強的人工智能大模型——清華大學ChatGLM的應用前景,旨在說明使用深度學習和人工智能實現大模型是未來科技的發展方向,也是必然趨勢。
第2章介紹PyTorch 2.0的安裝和常用的類庫。Python是易用性非常強的語言,可以很方便地將公式和愿景以代碼的形式表達出來,而無須學習過多的編程知識。還將手把手地向讀者演示第一個深度學習模型的完整使用示例。
第3章演示使用PyTorch框架進行手寫體識別的實際例子,完整地對MNIST手寫體項目進行分類,同時講解模型的標簽問題以及本書后期常用的損失函數計算等內容。
第4章系統介紹深度學習的基礎知識——反向傳播神經網絡的原理和實現。這是整個深度學習領域最為基礎的內容,也是最為重要的理論部分。本章通過獨立編寫代碼的形式為讀者實現這個神經網絡中最重要的算法。
第5章介紹卷積神經網絡的使用,主要介紹使用卷積對MNIST數據集進行識別。這是一個入門案例,但是包含的內容非常多,例如使用多種不同的層和類構建一個較為復雜的卷積神經網絡。同時也介紹了一些具有個性化設置的卷積層。
第6章主要講解PyTorch 2.0數據處理與模型訓練可視化方面的內容,這是本書中非常重要的基礎,也是數據處理中非常重要的組成部分,通過編寫相應的程序來實現模型對輸入數據的處理,能夠使得讀者更加深入地了解PyTorch框架的運行原理。
第7章介紹卷積神經網絡的核心內容,講解基于Block堆積的ResNet模型的構建方法,這為后面搭建更多基于模塊化的深度學習模型打下基礎。
第8和第9章是PyTorch自然語言處理的基礎部分,從詞向量開始,到使用卷積和循環神經網絡完成自然語言處理的情感分類項目,循序漸進地引導讀者使用深度學習完成自然語言處理實戰。
第10章介紹深度學習另一個重要的模塊——注意力模型,本章的理論部分非常簡單,講解得也很清晰,但其內容對整個深度學習模型具有里程碑意義。
第11和第12章是自然語言處理的補充內容,分別介紹使用現有的預訓練模型進行自然語言處理以及自然語言處理解碼器的部分。第12章和第10章相互銜接,主要是對當前的新模型Transformer進行介紹和說明,分別從其架構入手,對編碼器和解碼器進行詳細介紹。同時,第12章還介紹各種ticks和小的細節,有針對性地對模型優化做了說明。
第13~15章是對強化學習部分的講解,同時詳細講解深度學習中具有開創性質的GPT-2模型的構成架構和源碼設計,并基于以上兩部分完成了一個簡化版的ChatGPT設計,這是為后續進行語言模型微調打下基礎。
第16~18章是本書有關大模型的核心內容。第16章講解人工智能大模型ChatGLM的使用與自定義方法。第17章講解ChatGLM高級定制化應用,包括專業客服問答機器人、金融信息抽取實戰以及一些補充內容;其中金融信息抽取使用了基于知識鏈的多專業跨領域文檔挖掘的方法,這是目前ChatGLM甚至是自然語言處理大模型方面最為前沿的研究方向。第18章講解ChatGLM模型的本地化處理和ChatGLM的高級微調方法,極具參考價值。
本書的特點
· 本書不是純粹的理論知識介紹,也不是高深的技術研討,完全是從實踐應用出發,用最簡單、典型的示例引申出核心知識,并指出進一步學習人工智能大模型的道路。
· 本書沒有深入介紹某一個知識塊,而是全面介紹PyTorch涉及的大模型的基本結構和上層程序設計,系統地講解深度學習的全貌,使讀者在學習過程中把握好方向。
· 本書在寫作上淺顯易懂,沒有深奧的數學知識,而是采用較為形象的形式,使用大量圖示來描述應用的理論知識,讓讀者輕松地閱讀并掌握相關內容。
· 本書旨在引導讀者進行更多技術上的創新,每章都會以示例的形式幫助讀者更好地理解本章要學習的內容。
· 本書代碼遵循重構原理,避免代碼污染,幫助讀者寫出優秀、簡潔、可維護的代碼。
配套示例源代碼、PPT課件下載
本書配套示例源代碼、PPT課件,需要用微信掃描下面的二維碼獲取。如果閱讀中發現問題或疑問,請聯系booksaga@163.com,郵件主題寫“從零開始大模型開發與微調”。

本書適合人群
本書適合人工智能、大模型、深度學習以及PyTorch框架等方向的初學者和開發人員閱讀,也可以作為高等院校相關專業的教材。
建議讀者在學習本書內容的過程中,理論聯系實際,獨立進行一些代碼的編寫工作,可能的情況下采取開放式的實驗方法,即讀者自行準備實驗數據和實驗環境,解決實際問題,最終達到理論聯系實際的目的。
本書作者
本書作者為高校計算機專業教師,教授人工智能、大數據分析與挖掘、Java程序設計、數據結構等多門本科生及研究生課程,研究方向為數據倉庫與數據挖掘、人工智能、機器學習,在研和參研多項科研項目。作者在本書寫作過程中,得到了家人和朋友的大力支持,以及本書編輯王葉的熱情幫助,在此對他們一并表示感謝。
作 者
2023年8月