讓AI好好說話! 從頭打造LLM實戰秘笈

讓AI好好說話! 從頭打造LLM實戰秘笈

Build a Large Language Model From Scratch

出版日期:
2025/01/20
79
680537
查詢門市庫存
用自己的電腦也能從零開始建構 LLM 模型!

內容簡介


內容介紹:

  用自己的電腦也能從零開始建構 LLM 模型!

LLM 的參數真的非常多~ 動輒就數千億個參數,一般家用電腦是跑不動的;再加上 LLM 模型架構、注意力機制的運作都非常複雜,要深入理解也有不小的門檻。

★ 機器學習專家 Sebastian Raschka 特別規劃了一整套的教練式教學,透過較小型的資料集,讓您能在一般電腦上跟著步驟實作,並逐步理解大型語言模型的架構與技術!
- 本書涵蓋了建構 LLM 的完整過程,包括處理資料集、實作模型架構、注意力機制、使用無標籤的資料進行預訓練,以及針對特定任務的微調技術 (分類任務微調與指令微調)。
- 書中每一步驟都有清楚的文字、圖解和程式範例,帶著你從零開始撰寫一個基礎模型,並將其進化為文本分類工具,最終創建一個能夠理解並回應對話指令的聊天機器人。

★ 經驗豐富的開發者與初學者,都可以學習到如何一步步建構一個 GPT,掌握創建 LLM 所需的基本概念與實作技巧!
- 如果是具備基礎機器學習知識、中階 Python 技能的讀者,作者提供了許多額外資源,包含完整程式碼範例 (GitHub 儲存庫)、參考文獻與延伸閱讀 (像是如何應用更大規模的模型參數)、優化訓練迴圈與進階的 LoRA 微調方法,讓您可以再進一步深入學習,持續往專家邁進!
- 對於初學者來說,作者在附錄中有提供 PyTorch 基礎知識與安裝解說,而小編則在內文中適當添加註解,幫助讀者能更好地理解內容。另外,旗標更準備了 Colab 線上資源,讓您理論、實作都能暢通無阻。就算是程式語言小白,初入門也能無痛學習、打好 LLM 的基礎~

一起提前起跑,搶佔 LLM 理論知識與 GPT 模型實作的先機,為自己投資一個無限的未來!

本書特色:

  「親手實現LLM,就能破解AI落地應用的層層關卡!」——溫怡玲|人工智慧科技基金會 執行長

▌專業推薦 ▌
林筱玫|台灣人工智慧協會 執行長
馬偉雲|中央研究院 資訊科學研究所 副研究員
郭興安|永豐餘投控 資安長暨元信達資訊 總經理
黃逸華|美商WSP集團 臺灣區分公司 策略長
蕭安助|和碩聯合科技 人工智慧發展處 副總經理

● 長年 4.5 顆星好評並翻譯成多國語言的暢銷書《Python Machine Learning》作者 Sebastian Raschka 又一最新力作
● 本書於 Amazon 上獲 4.7 顆星好評,並榮登排行榜(人工智慧相關類別)第一名
● 作者在 Github 儲存庫上提供的本書學習資源,到目前為止已獲得 36,600 顆 ★ 關注
● 作者於 YouTube 上介紹本書的影片,已超過 7 萬點閱人次
● 從零開始實作,讓您能逐步理解 LLM 的架構與關鍵技術
● 每一個實作過程都有清楚的圖解與程式範例,清楚講解建構 LLM 模型的基礎組件
● 在本書中,您可以學習到~
✔ 使用小型資料集,用自己的電腦就能實作出專屬自己的 GPT 模型
✔ 透過自定義的 Tokenizer、Dataloader 等,了解 LLM 模型的基礎概念與技術
✔ 逐步引領注意力機制(自注意力、因果注意力、多頭注意力)的概念與實作
✔ 自行準備適合用來訓練的資料集,並嘗試預訓練模型
✔ 學習載入 OpenAI 公開的預訓練權重,降低預訓練成本
✔ 針對特定任務進行微調(分類微調、指示微調),以及評估模型效能

展開看更多

產品目錄

目錄:
▌第 1 章 理解大型語言模型
1.1 什麼是 LLM?
1.2 LLM 的應用
1.3 建構與使用 LLM
1.4 Transformer 架構介紹
1.5 大型資料集的運用
1.6 深入探討 GPT 架構
1.7 建構大型語言模型 (LLM)
1.8 重點回饋

▌第 2 章 處理文本資料
2.1 詞嵌入 (Word Embedding,或稱詞向量)
2.2 文本斷詞 (Tokenize)
2.3 將 token 轉換為 token ID
2.4 添加特殊 token
2.5 字節對編碼 (Byte Pair Encoding, BPE)
2.6 使用滑動視窗法 (Sliding Window) 進行資料取樣
2.7 創建 token 嵌入 (Embedding)
2.8 位置資訊的編碼
2.9 重點回顧

▌第 3 章 實作注意力機制
3.1 長序列建模的問題
3.2 使用注意力機制捕捉資料依賴關係
3.3 利用自注意力機制,關注輸入序列中的不同位置
- 3.3.1 簡化的自注意力機制 (不使用可訓練權重)
- 3.3.2 計算所有輸入 token 的注意力權重
3.4 使用「可訓練權重」實作自注意力機制
- 3.4.1 逐步計算注意力權重
- 3.4.2 實作一個精簡的自注意力 Python 類別
3.5 使用因果注意力遮蔽未來的字詞
- 3.5.1 應用因果注意力遮罩
- 3.5.2 用 dropout 遮蔽額外的注意力權重
- 3.5.3 實作一個精簡的因果注意力類別
3.6 將單頭注意力擴展至多頭注意力
- 3.6.1 堆疊多個單頭注意力層
- 3.6.2 實作具有權重切分的多頭注意力
3.7 重點回顧

▌第 4 章 從零實作 GPT 模型以生成文本
4.1 撰寫 LLM 架構
- 4.1.1 指定模型配置
- 4.1.2 實作 GPT 佔位架構
- 4.1.3 斷詞處理
- 4.1.4 將批次資料輸入到模型
4.2 將輸出進行層歸一化
- 4.2.1 檢查指定維度的輸出平均值和方差
- 4.2.2 層歸一化處理
4.3 實作具有 GELU 激活函數的前饋神經網路
4.4 增加捷徑連接 (Shortcut Connection)
4.5 在 Transformer 模組中連結注意力與線性層
4.6 撰寫 GPT 模型
4.7 生成文本
4.8 重點回顧

▌第 5 章 使用無標籤的資料集進行預訓練
5.1 評估文本生成品質
- 5.1.1 使用 GPT 來生成文本
- 5.1.2 計算文本生成損失
- 5.1.3 計算訓練和驗證損失
5.2 訓練 LLM
- 5.2.1 預訓練 LLM 的主要函式
- 5.2.2 啟動預訓練
5.3 運用文本生成策略 (解碼策略) 來控制隨機性
- 5.3.1 溫度縮放 (Temperature Scaling)
- 5.3.2 Top-k 取樣
- 5.3.3 修改文本生成函式
5.4 在 PyTorch 中載入和儲存模型權重
5.5 從 OpenAI 載入預訓練權重
5.6 重點回顧

▌第 6 章 分類任務微調
6.1 常見的 2 種微調類型
6.2 準備資料集
- 6.2.1 下載資料集
- 6.2.2 平衡資料集
- 6.2.3 轉換為整數類別標籤
- 6.2.4 分割資料集
6.3 建立資料載入器
- 6.3.1 使用 作為填充 token
- 6.3.2 進行斷詞與填充處理
- 6.3.3 實例化資料載入器
6.4 使用預訓練權重初始化模型
6.5 將輸出層更換為分類輸出層
- 6.5.1 檢查模型架構
- 6.5.2 凍結模型
- 6.5.3 替換輸出層,並指定特定層為可訓練狀態
- 6.5.4 只需微調最後一列 token
6.6 計算分類損失與準確率
- 6.6.1 將最後一個 token 轉換為類別標籤的預測值
- 6.6.2 計算各個資料集的分類準確度
- 6.6.3 使用交叉熵損失判斷模型的準確度
6.7 使用監督資料 (Supervised Data) 來微調模型
- 6.7.1 微調模型的訓練函式
- 6.7.2 啟動訓練
- 6.7.3 透過繪製損失函數,判斷模型學習效果
- 6.7.4 計算模型分類任務的準確度
6.8 使用 LLM 做為垃圾訊息分類器
6.9 重點回顧

▌第 7 章 指令微調
7.1 指令微調概述
7.2 準備監督式指令微調的資料集
- 7.2.1 下載資料集
- 7.2.2 將資料集套用提示詞格式
- 7.2.3 分割資料集
7.3 將資料分成多個訓練批次
- 7.3.1 斷詞處理
- 7.3.2 允許不同批次擁有不同序列長度的 collate 函式
- 7.3.3 創建能讓模型學習預測的目標 token ID
- 7.3.4 將填充 token 指定為一個特殊值
7.4 為指令資料集建立資料載入器
- 7.4.1 提升模型訓練效率的 device 設置
- 7.4.2 設置資料載入器
7.5 載入預訓練的 LLM
- 7.5.1 載入現有的 GPT 模型
- 7.5.2 評估預訓練好的模型性能
7.6 使用指令資料集來微調 LLM
- 7.6.1 計算損失
- 7.6.2 訓練模型,將損失最小化
- 7.6.3 檢視訓練與驗證損失曲線
7.7 取得模型生成的回應
- 7.7.1 人工檢查 (肉眼判斷) 模型回應的品質
- 7.7.2 指令微調有多種模型評估方法
- 7.7.3 使用 AlpacaEval 方法前的準備步驟
7.8 評估微調後的 LLM
- 7.8.1 下載 Llama3 模型並啟動 Ollama
- 7.8.2 測試並確保 Ollama 正確運行
- 7.8.3 對微調模型的回應進行評分
7.9 總結
- 7.9.1 未來方向
- 7.9.2 持續學習、掌握脈動
- 7.9.3 結語
7.10 重點回顧

【附錄電子書】
▌附錄 A PyTorch 簡介
A.1 什麼是 PyTorch?
A.2 張量簡介
A.3 以運算圖 (Computation Graph) 來理解模型
A.4 自動微分功能簡介
A.5 實作多層神經網路
A.6 建立高效的資料載入器
A.7 典型的訓練迴圈
A.8 儲存與載入模型
A.9 使用 GPU 優化訓練效能
A.10 重點回顧

▌附錄 B 參考文獻與延伸閱讀

▌附錄 C 練習題解答

▌附錄 D 優化訓練迴圈的方法
D.1 預熱學習率 (Learning Rate Warmup)
D.2 餘弦衰減 (Cosine Decay)
D.3 梯度分割 (Gradient Clipping)
D.4 修改後的訓練函式

▌附錄 E 使用 LoRA 進行參數高效微調 (Parameter-Efficient Fine-tuning)
E.1 LoRA 簡介
E.2 準備資料集
E.3 初始化模型
E.4 使用 LoRA 進行參數高效微調

作者介紹

作者簡介:
Sebastian Raschka 博士,擁有超過十年的機器學習與人工智慧領域的工作經驗。目前任職 Lightning AI 的資深研究工程師,專注於實作與訓練大型語言模型。除了身為研究人員,Sebastian 對教育亦充滿熱情,以暢銷書籍《Python 機器學習 (Machine Learning with Python)》以及對開源社群的貢獻而聞名。且在進入產業界之前,曾任職於美國威斯康辛大學麥迪遜分校統計系,擔任助理教授一職,其專業領域為深度學習。如需了解更多關於 Sebastian 的資訊,歡迎造訪作者的個人網站:https://sebastianraschka.com。

規格

誠品貨碼 / 2682822424004
ISBN13 / 9789863128236
ISBN10 /
EAN貨碼 / 9789863128236
頁數 / 352
注音版 / 否
裝訂 / P:平裝
語言 / 1:中文/繁體
尺寸 / 17X23X2.3CM
級別 / N:無
重量(g) / 776
提供維修 / 無

退貨說明

退貨須知:

  1. 依照消費者保護法的規定,您享有商品貨到次日起七天猶豫期(含例假日)的權益(請注意!猶豫期非試用期),辦理退貨之商品必須是全新狀態(不得有刮傷、破損、受潮)且需完整(包含全部商品、配件、原廠內外包裝、贈品及所有附隨文件或資料的完整性等)。
  2. 請您以送貨廠商使用之包裝紙箱將退貨商品包裝妥當,若原紙箱已遺失,請另使用其他紙箱包覆於商品原廠包裝之外,切勿直接於原廠包裝上黏貼紙張或書寫文字。若原廠包裝損毀將可能被認定為已逾越檢查商品之必要程度,本公司得依毀損程度扣除回復原狀必要費用(整新費)後退費;請您先確認商品正確、外觀可接受,再行拆封,以免影響您的權利;若為產品瑕疵,本公司接受退貨。

依「通訊交易解除權合理例外情事適用準則」,下列商品不適用七日猶豫期,除產品本身有瑕疵外,不接受退貨:

  1. 易於腐敗、保存期限較短或解約時即將逾期。(如:生鮮蔬果、乳製品、冷凍冷藏食材、蛋糕)
  2. 依消費者要求所為之客製化給付。(如:客製印章、鋼筆刻字)
  3. 報紙、期刊或雜誌。
  4. 經消費者拆封之影音商品或電腦軟體。
  5. 非以有形媒介提供之數位內容或一經提供即為完成之線上服務,經消費者事先同意始提供。(如:電子書)
  6. 已拆封之個人衛生用品。(如:內衣褲、襪類、褲襪、刮鬍刀、除毛刀等貼身用品)
  7. 國際航空客運服務。

若您退貨時有下列情形,可能被認定已逾越檢查商品之必要程度而須負擔為回復原狀必要費用(整新費),或影響您的退貨權利,請您在拆封前決定是否要退貨:

  1. 以數位或電磁紀錄形式儲存或著作權相關之商品(包含但不限於CD、VCD、DVD、電腦軟體等) 包裝已拆封者(除運送用之包裝以外)。
  2. 耗材(包含但不限於墨水匣、碳粉匣、紙張、筆類墨水、清潔劑補充包等)之商品包裝已拆封者(除運送用之包裝以外)。
  3. 衣飾鞋類/寢具/織品(包含但不限於衣褲、鞋子、襪子、泳裝、床單、被套、填充玩具)或之商品缺件(含購買商品、附件、內外包裝、贈品等)或經剪標或下水或商品有不可回復之髒污或磨損痕跡。
  4. 食品、美容/保養用品、內衣褲等消耗性或個人衛生用品、商品銷售頁面上特別載明之商品已拆封者(除運送用之包裝外一切包裝、包括但不限於瓶蓋、封口、封膜等接觸商品內容之包裝部分)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  5. 家電、3C、畫作、電子閱讀器等商品,除商品本身有瑕疵外,退回之商品已拆封(除運送用之包裝外一切包裝、包括但不限於封膜等接觸商品內容之包裝部分、移除封條、拆除吊牌、拆除貼膠或標籤等情形)或已非全新狀態(外觀有刮傷、破損、受潮等)與包裝不完整(缺少商品、附件、原廠外盒、保護袋、配件紙箱、保麗龍、隨貨文件、贈品等)。
  6. 退貨程序請參閱【客服專區→常見問題→誠品線上退貨退款】之說明。
付款/配送