內容簡介
本書是專注於如何在AWS上開發和套用生成式AI的實用指南,旨在為技術領導者、機器學習實踐者、套用開發者等提供深入了解和套用生成式AI的策略與方法。本書首先介紹了生成式AI的概念及其在產品和服務中的套用潛力,然後詳細闡述了生成式AI項目的完整生命周期。作者探討了多種模型類型,如大語言模型和多模態模型,並提供了通過提示工程和上下文學習來最佳化這些模型的實際技巧。此外,本書討論了如何使用LoRA技術對模型進行微調,以及如何通過RLHF使模型與人類價值觀對齊。書中還介紹了RAG技術,以及如何利用LangChain和ReAct等開發agent。最後,本書介紹了如何使用Amazon Bedrock構建基於生成式AI的應用程式。基於該強大的平台,讀者可以實現自己的創新想法。
本書適合對生成式AI感興趣的學生和研究人員、在AWS上開發AI應用程式的軟體開發人員和數據科學家、尋求利用AI技術最佳化業務流程的企業決策者以及對技術趨勢保持好奇心的科技愛好者閱讀。
圖書目錄
前言 1
第 1章 生成式AI用例、基礎知識和項目生命周期 5
1.1 生成式AI用例和任務 5
1.2 基礎模型和模型中心 8
1.3 生成式AI項目生命周期 8
1.4 AWS上的生成式AI 11
1.5 為什麼選擇基於AWS構建生成式AI 13
1.6 在AWS上構建生成式AI應用程式 14
1.7 小結 16
第 2章 提示工程與上下文學習 17
2.1 提示與補全 17
2.2 token 18
2.3 提示工程 18
2.4 提示結構 19
2.4.1 指令 20
2.4.2 上下文 20
2.5 通過少樣本推理進行上下文學習 22
2.5.1 零樣本推理 23
2.5.2 單樣本推理 23
2.5.3 少樣本推理 23
2.5.4 上下文學習出錯 24
2.5.5 上下文學習實踐 25
2.6 提示工程實踐 26
2.7 推理配置參數 31
2.8 小結 36
第3章 大語言基礎模型 37
3.1 大語言基礎模型簡介 37
3.2 分詞器 39
3.3 嵌入向量 40
3.4 Transformer 41
3.4.1 輸入token上下文視窗 42
3.4.2 嵌入 42
3.4.3 編碼器 42
3.4.4 自注意力層 43
3.4.5 解碼器 44
3.4.6 Softmax輸出 44
3.5 基於Transformer的基礎模型的類別 45
3.6 預訓練數據集 48
3.7 縮放定律 48
3.8 計算最優模型 50
3.9 小結 51
第4章 顯存和計算最佳化 53
4.1 顯存容量挑戰 53
4.2 數據類型和數值精度 55
4.3 量化 57
4.3.1 fp16 57
4.3.2 bfloat16 59
4.3.3 fp8 60
4.3.4 int8 61
4.4 最佳化自注意力層 63
4.4.1 FlashAttention 63
4.4.2 分組查詢注意力 64
4.5 分散式GPU集群計算 64
4.5.1 分散式數據並行 65
4.5.2 全分片數據並行 66
4.5.3 FSDP與DDP的性能比較 68
4.6 基於AWS的分散式計算 69
4.6.1 通過Amazon SageMaker進行全分片數據並行 69
4.6.2 AWS Neuron SDK與AWS Trainium 71
4.7 小結 72
第5章 微調和評估 73
5.1 指令微調簡介 73
5.1.1 Llama 2 74
5.1.2 Falcon 74
5.1.3 FLAN-T5 74
5.2 指令數據集 74
5.2.1 多任務指令數據集 75
5.2.2 FLAN:示例多任務指令數據集 75
5.2.3 提示模板 77
5.2.4 將自定義數據集轉換為指令數據集 78
5.3 指令微調的過程 80
5.3.1 Amazon SageMaker Studio 80
5.3.2 Amazon SageMaker JumpStart 81
5.3.3 將Amazon SageMaker Estimator用於Hugging Face 82
5.4 評估 84
5.4.1 評估指標 84
5.4.2 基準測試和數據集 85
5.5 小結 86
第6章 參數高效微調 87
6.1 全量微調與PEFT 87
6.2 LoRA和QLoRA 89
6.2.1 LoRA基礎 90
6.2.2 秩 91
6.2.3 目標模組和網路層 91
6.2.4 套用LoRA 92
6.2.5 將LoRA適配器與原始模型合併 93
6.2.6 維護獨立的LoRA適配器 94
6.2.7 全量微調與 LoRA 性能比較 94
6.2.8 QLoRA 95
6.3 Prompt Tuning和軟提示 96
6.4 小結 99
第7章 基於人類反饋的強化學習微調 101
7.1 與人類價值觀對齊:有用的、誠實的、無害的 101
7.2 強化學習概述 102
7.3 訓練自定義獎勵模型 104
7.3.1 通過人機互動收集訓練數據集 104
7.3.2 供人類標註者參考的示例指令 105
7.3.3 通過Amazon SageMaker Ground Truth進行人工標註 105
7.3.4 為訓練獎勵模型準備排序數據 107
7.3.5 訓練獎勵模型 110
7.4 現有獎勵模型:Meta有害性檢測器模型 111
7.5 通過人類反饋進行強化學習微調 113
7.5.1 使用獎勵模型進行RLHF 113
7.5.2 近端策略最佳化強化學習算法 114
7.5.3 通過PPO進行RLHF微調 115
7.5.4 緩解獎勵破解 117
7.5.5 通過RLHF進行PEFT 118
7.6 評估RLHF微調模型 119
7.6.1 定性評估 119
7.6.2 定量評估 120
7.6.3 載入評估模型 120
7.6.4 定義評估指標聚合函式 120
7.6.5 比較套用RLHF之前和之後的評估指標 121
7.7 小結 122
第8章 模型部署最佳化 125
8.1 模型推理最佳化 125
8.1.1 剪枝 126
8.1.2 通過GPTQ進行訓練後量化 128
8.1.3 蒸餾 129
8.2 大型模型推理容器 131
8.3 AWS Inferentia:專為推理而打造的硬體 132
8.4 模型更新和部署策略 134
8.4.1 A/B測試 135
8.4.2 影子模型部署 136
8.5 指標和監控 137
8.6 自動伸縮 138
8.6.1 自動伸縮策略 139
8.6.2 定義自動伸縮策略 139
8.7 小結 140
第9章 通過RAG和agent實現基於上下文推理的應用程式 141
9.1 大語言模型的局限性 142
9.1.1 幻覺 142
9.1.2 知識截斷 143
9.2 RAG 143
9.2.1 外部知識源 144
9.2.2 RAG工作流 145
9.2.3 文檔載入 146
9.2.4 分塊 147
9.2.5 檢索數據和重新排序 147
9.2.6 提示增強 149
9.3 RAG編排和實現 150
9.3.1 文檔載入和分塊 151
9.3.2 嵌入向量存儲和檢索 152
9.3.3 檢索鏈 155
9.3.4 通過MMR進行重新排序 157
9.4 agent 159
9.4.1 ReAct框架 160
9.4.2 PAL框架 162
9.5 生成式AI應用程式 165
9.6 FMOps:實施生成式AI項目生命周期 170
9.6.1 試驗注意事項 171
9.6.2 開發注意事項 172
9.6.3 生產部署注意事項 173
9.7 小結 174
第 10章 多模態基礎模型 177
10.1 用例 178
10.2 多模態提示工程實踐 178
10.3 圖像生成和增強 179
10.3.1 圖像生成 180
10.3.2 圖像編輯和增強 181
10.4 圖像補全、圖像外部填充和depth-to-image 186
10.4.1 圖像補全 186
10.4.2 圖像外部填充 187
10.4.3 depth-to-image 188
10.5 圖像描述和視覺問答 190
10.5.1 圖像描述 191
10.5.2 內容審查 191
10.5.3 視覺問答 192
10.6 模型評估 197
10.6.1 文生圖任務 197
10.6.2 圖生文任務 199
10.6.3 非語言推理任務 200
10.7 擴散模型架構 201
10.7.1 前向擴散簡介 201
10.7.2 反向擴散簡介 202
10.7.3 U-Net簡介 203
10.8 Stable Diffusion 2架構 204
10.8.1 文本編碼器 205
10.8.2 U-Net和擴散過程 206
10.8.3 文本條件控制 207
10.8.4 交叉注意力 208
10.8.5 採樣器 208
10.8.6 圖像解碼器 209
10.9 Stable Diffusion XL架構 209
10.9.1 U-Net和交叉注意力 209
10.9.2 精修模型 209
10.9.3 條件控制 210
10.10 小結 211
第 11章 通過Stable Diffusion進行受控生成和微調 213
11.1 ControlNet 213
11.2 微調 218
11.2.1 DreamBooth 219
11.2.2 DreamBooth與PEFT-LoRA 221
11.2.3 文本反演 222
11.3 通過RLHF進行人類偏好對齊 226
11.4 小結 228
第 12章 Amazon Bedrock:用於生成式AI的託管服務 229
12.1 Bedrock基礎模型 229
12.1.1 Amazon Titan基礎模型 230
12.1.2 來自Stability AI公司的Stable Diffusion基礎模型 230
12.2 Bedrock推理API 230
12.3 大語言模型推理API 232
12.3.1 生成SQL代碼 233
12.3.2 文本摘要 233
12.3.3 使用Amazon Bedrock生成嵌入 234
12.4 通過Amazon Bedrock進行微調 237
12.5 通過Amazon Bedrock創建agent 239
12.6 多模態模型 242
12.6.1 文生圖 243
12.6.2 圖生圖 244
12.7 數據隱私和網路安全 246
12.8 治理和監控 247
12.9 小結 247