生成式AI入門與AWS實戰 Generative AI on Aws: Building Context-Aware Multimodal Reasoning Applications

[美] 克裡斯·弗雷格利(Chris Fregly),[德] 安特耶·巴特(Antje Barth),[美] 舍爾比·艾根布羅德(Shelbee Eigenbrode)

  • 生成式AI入門與AWS實戰-preview-1
  • 生成式AI入門與AWS實戰-preview-2
生成式AI入門與AWS實戰-preview-1

商品描述

本書是專註於如何在AWS上開發和應用生成式AI的實用指南,旨在為技術領導者、機器學習實踐者、應用開發者等提供深入瞭解和應用生成式AI的策略與方法。本書首先介紹了生成式AI的概念及其在產品和服務中的應用潛力,然後詳細闡述了生成式AI項目的完整生命周期。作者探討了多種模型類型,如大語言模型和多模態模型,並提供了通過提示工程和上下文學習來優化這些模型的實際技巧。此外,本書討論瞭如何使用LoRA技術對模型進行微調,以及如何通過RLHF使模型與人類價值觀對齊。書中還介紹了RAG技術,以及如何利用LangChain和ReAct等開發agent。最後,本書介紹瞭如何使用Amazon Bedrock構建基於生成式AI的應用程序。基於該強大的平臺,讀者可以實現自己的創新想法。

本書適合對生成式AI感興趣的學生和研究人員、在AWS上開發AI應用程序的軟件開發人員和數據科學家、尋求利用AI技術優化業務流程的企業決策者以及對技術趨勢保持好奇心的科技愛好者閱讀。

作者簡介

Chris Fregly,AWS生成式AI首席解决方案架构师,也是O'Reilly图书Data Science on AWS的合著者。

Antje Barth,AWS生成式Al首席开发倡导者,也是O'Reilly图书Data Science on AWS的合著者。

Shelbee Eigenbrode,AWS生成式AI首席解决方案架构师。她在多个技术领域获得了超过35项专利。

目錄大綱

前言 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