定價: | ||||
售價: | 94元 | |||
庫存: | 已售完 | |||
LINE US! | 詢問這本書 團購優惠、書籍資訊 等 | |||
此書籍已售完,調書籍需2-5工作日。建議與有庫存書籍分開下單 | ||||
付款方式: | 超商取貨付款 |
![]() |
|
信用卡 |
![]() |
||
線上轉帳 |
![]() |
||
物流方式: | 超商取貨 | ||
宅配 | |||
門市自取 |
為您推薦
類似書籍推薦給您
【簡介】 用自己的電腦也能從零開始建構 LLM 模型! LLM 的參數真的非常多~ 動輒就數千億個參數,一般家用電腦是跑不動的;再加上 LLM 模型架構、注意力機制的運作都非常複雜,要深入理解也有不小的門檻。 ★ 機器學習專家 Sebastian Raschka 特別規劃了一整套的教練式教學,透過較小型的資料集,讓您能在一般電腦上跟著步驟實作,並逐步理解大型語言模型的架構與技術! - 本書涵蓋了建構 LLM 的完整過程,包括處理資料集、實作模型架構、注意力機制、使用無標籤的資料進行預訓練,以及針對特定任務的微調技術 (分類任務微調與指令微調)。 - 書中每一步驟都有清楚的文字、圖解和程式範例,帶著你從零開始撰寫一個基礎模型,並將其進化為文本分類工具,最終創建一個能夠理解並回應對話指令的聊天機器人。 ★ 經驗豐富的開發者與初學者,都可以學習到如何一步步建構一個 GPT,掌握創建 LLM 所需的基本概念與實作技巧! - 如果是具備基礎機器學習知識、中階 Python 技能的讀者,作者提供了許多額外資源,包含完整程式碼範例 (GitHub 儲存庫)、參考文獻與延伸閱讀 (像是如何應用更大規模的模型參數)、優化訓練迴圈與進階的 LoRA 微調方法,讓您可以再進一步深入學習,持續往專家邁進! - 對於初學者來說,作者在附錄中有提供 PyTorch 基礎知識與安裝解說,而小編則在內文中適當添加註解,幫助讀者能更好地理解內容。另外,旗標更準備了 Colab 線上資源,讓您理論、實作都能暢通無阻。就算是程式語言小白,初入門也能無痛學習、打好 LLM 的基礎~ 一起提前起跑,搶佔 LLM 理論知識與 GPT 模型實作的先機,為自己投資一個無限的未來! 【目錄】 ▌第 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 使用 <|endoftext|> 作為填充 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 進行參數高效微調