《大模型Agent应用开发》深入探讨了LLM的核心概念、前沿技术和实际应用,最终为扩展AI能力边界的大型基础模型(Large Foundation Models,LFM)的崛起铺平道路。
本书开篇详细介绍了LLM的基本原理,随后探讨了多种主流架构框架,既涵盖专有模型(如GPT-3.5/4),也分析开源模型(如Falcon LLM)的独特优势与差异。接下来,我们以基于Python的轻量级框架LangChain为核心,引导读者逐步构建智能体。这些智能体能够从非结构化数据中提取信息,并利用LLM和强大工具包与结构化数据交互。此外,本书还将深入探索LFM领域——该类模型融合了视觉、音频等多态能力,可以覆盖更广泛的AI任务。
无论你是经验丰富的AI专家,还是初入该领域的新人,本书都将为你提供解锁LLM全部潜力的路线图,助力开创智能机器的新纪元。
第1章 大规模语言模型简介 1
1.1 大型基础模型和大规模语言模型定义 2
1.1.1 人工智能范式转变——基础模型简介 2
1.1.2 大规模语言模型简介 5
1.2 最流行的基于transformer架构的大规模语言模型 10
1.2.1 早期实验 11
1.2.2 transformer架构 11
1.3 训练和评估大规模语言模型 16
1.3.1 训练大规模语言模型 16
1.3.2 模型评估 19
1.4 基础模型与定制模型 21
1.5 小结 23
1.6 参考文献 23
第2章 面向人工智能应用的大规模语言模型 25
2.1 大规模语言模型如何改变软件开发 25
2.2 Copilot系统 26
2.3 引入人工智能编排器,将大规模语言模型嵌入应用程序 30
2.3.1 人工智能编排器的主要组成部分 31
2.3.2 LangChain 33
2.3.3 Haystack 35
2.3.4 语义内核 36
2.3.5 如何选择框架 38
2.4 小结 39
2.5 参考文献 40
第3章 为应用选择大规模语言模型 41
3.1 市场上最有前途的大规模语言模型 41
3.1.1 专有模型 42
3.1.2 开源模型 51
3.2 语言模型之外 56
3.3 选择正确大规模语言模型的决策框架 60
3.3.1 考虑因素 60
3.3.2 案例研究 62
3.4 小结 63
3.5 参考文献 63
第4章 提示工程 65
4.1 技术要求 65
4.2 提示工程的定义 66
4.3 提示工程原则 66
4.3.1 明确的指令 66
4.3.2 将复杂任务划分为子任务 69
4.3.3 询问理由 71
4.3.4 生成多个输出,然后使用模型挑选最佳输出 73
4.3.5 结尾处的重复指令 74
4.3.6 使用分隔符 76
4.4 高级技术 78
4.4.1 少样本方法 78
4.4.2 思维链 81
4.4.3 ReAct 83
4.5 小结 86
4.6 参考文献 87
第5章 在应用程序中嵌入大规模语言模型 88
5.1 技术要求 88
5.2 LangChain的简要说明 89
5.3 开始使用LangChain 90
5.3.1 模型和提示 91
5.3.2 数据连接 93
5.3.3 记忆 99
5.3.4 链 101
5.3.5 智能体 105
5.4 通过Hugging Face Hub使用大规模语言模型 107
5.4.1 创建Hugging Face用户访问令牌 107
5.4.2 在.env文件中存储密钥 110
5.4.3 启用开源大规模语言模型 110
5.5 小结 112
5.6 参考文献 112
第6章 构建会话应用程序 113
6.1 技术要求 113
6.2 会话应用程序入门 114
6.2.1 创建普通机器人 114
6.2.2 添加记忆 116
6.2.3 添加非参数知识 119
6.2.4 添加外部工具 122
6.3 使用Streamlit开发前端 125
6.4 小结 129
6.5 参考文献 129
第7章 使用大规模语言模型的搜索引擎和推荐引擎 130
7.1 技术要求 130
7.2 推荐系统简介 131
7.3 现有推荐系统 132
7.3.1 K最近邻 132
7.3.2 矩阵因式分解 133
7.3.3 神经网络 136
7.4 大规模语言模型如何改变推荐系统 138
7.5 实现由大规模语言模型驱动的推荐系统 139
7.5.1 数据预处理 140
7.5.2 在冷启动场景中构建QA推荐聊天机器人 143
7.5.3 构建基于内容的推荐系统 149
7.6 使用Streamlit开发前端 153
7.7 小结 156
7.8 参考文献 156
第8章 使用结构化数据的大规模语言模型 157
8.1 技术要求 157
8.2 结构化数据的定义 158
8.3 关系数据库入门 159
8.3.1 关系数据库简介 160
8.3.2 Chinook数据库概述 161
8.3.3 如何在Python中使用关系数据库 162
8.4 使用LangChain实现DBCopilot 166
8.4.1 LangChain智能体和SQL智能体 167
8.4.2 提示工程 170
8.4.3 添加更多工具 173
8.5 使用Streamlit开发前端 176
8.6 小结 179
8.7 参考文献 180
第9章 使用大规模语言模型生成代码 181
9.1 技术要求 181
9.2 为代码选择合适的大规模语言模型 182
9.3 代码理解和生成 183
9.3.1 Falcon LLM 184
9.3.2 CodeLlama 187
9.3.3 StarCoder 190
9.4 像算法一样行动 194
9.5 利用代码解释器 200
9.6 小结 206
9.7 参考文献 206
第10章 使用大规模语言模型构建多模态应用 208
10.1 技术要求 208
10.2 为什么是多模态 209
10.3 使用LangChain构建多模态智能体 211
10.4 方案1:使用Azure AI服务的开箱即用工具包 211
10.5 方案2:将单一工具整合到一个智能体中 225
10.5.1 YouTube工具和Whisper 225
10.5.2 DALL-E和文本生成 227
10.5.3 将所有工具整合在一起 229
10.6 方案3:使用序列链的硬编码方法 233
10.7 三种方案的比较 236
10.8 使用Streamlit开发前端 237
10.9 小结 239
10.10 参考文献 239
第11章 微调大规模语言模型 240
11.1 技术要求 241
11.2 微调定义 241
11.3 何时微调 244
11.4 开始微调 245
11.4.1 获取数据集 245
11.4.2 词元化数据 246
11.4.3 微调模型 249
11.4.4 使用评估指标 250
11.4.5 训练和保存 253
11.5 小结 256
11.6 参考文献 257
第12章 负责任的人工智能 258
12.1 什么是负责任的人工智能,为什么需要它 258
12.2 负责任的人工智能架构 260
12.2.1 模型层 260
12.2.2 元提示层 263
12.2.3 用户界面层 264
12.3 有关负责任的人工智能的法规 267
12.4 小结 268
12.5 参考文献 269
第13章 新兴趋势和创新 270
13.1 语言模型和生成式人工智能的最新发展趋势 270
13.1.1 GPT-4V 271
13.1.2 DALL-E 3 272
13.1.3 AutoGen 273
13.1.4 小型语言模型 274
13.2 拥抱生成式人工智能技术的公司 275
13.2.1 Coca-Cola 275
13.2.2 Notion 275
13.2.3 Malbek 276
13.2.4 微软 277
13.3 小结 278
13.4 参考文献 279