目 录
第1章 引言 1
1.1 GenAI应用和大语言模型概述 1
1.1.1 大语言模型的崛起 1
1.1.2 神经网络、Transformer及其未来发展 2
1.1.3 GenAI与LLM的区别 6
1.1.4 GenAI应用的三层架构 8
1.2 将GenAI应用投入生产的途径 11
1.3 成本优化的重要性 15
1.3.1 模型推理组件的成本评估 16
1.3.2 向量数据库组件的成本评估 24
1.3.3 大语言模型组件的成本评估 31
1.4 本章小结 35
第2章 微调技术与成本优化 37
2.1 微调和可定制性 37
2.2 参数高效微调方法 41
2.2.1 适配器的内在机制 42
2.2.2 低秩适配 54
2.3 PEFT方法的成本和性能影响 57
2.4 本章小结 60
第3章 推理成本的优化技巧 61
3.1 推理技术简介 61
3.2 提示工程 62
3.2.1 提示工程对成本的影响 62
3.2.2 清晰直接的提示词 66
3.2.3 提供上下文 75
3.2.4 明确所需的回答格式 80
3.3 使用向量存储进行缓存 84
3.3.1 向量存储的概念 84
3.3.2 使用向量存储实现缓存 85
3.3.3 结论 87
3.4 长文档的链式处理 88
3.4.1 链的概念 88
3.4.2 实现链式处理 89
3.5 摘要 98
3.6 高效推理的批量提示 100
3.6.1 批量推理 100
3.6.2 批量提示 106
3.7 模型优化方法 107
3.7.1 量化 108
3.7.2 代码示例 109
3.7.3 最新进展:GPTQ 110
3.8 参数高效微调方法 110
3.8.1 PEFT方法回顾 111
3.8.2 代码示例 112
3.9 成本和性能影响 113
3.10 本章小结 114
3.11 参考文献 114
第4章 模型选择及替代方案 115
4.1 模型选择入门 115
4.2 启发性案例:两类模型的故事 115
4.3 紧凑灵活模型的作用 117
4.4 小型模型的成功案例 118
4.4.1 量化:打造性能强大的小型模型 118
4.4.2 用Mistral 7B模型做文本生成 120
4.4.3 Zephyr 7B与对齐的小型模型 121
4.4.4 用于语言-视觉多模态的CogVLM模型 124
4.4.5 应用于细粒度文本评估的Prometheus模型 125
4.4.6 Orca 2模型:教会小模型做推理 128
4.4.7 Gemini和Phi对传统缩放定律的突破 129
4.4.8 Phi系列模型 130
4.4.9 Gemini模型 132
4.5 领域专用模型 135
4.5.1 第一步:训练你自己的分词器 136
4.5.2 第二步:训练你自己的领域专用模型 138
4.6 通用模型提示工程的威力 154
4.7 本章小结 156
第5章 基础设施与部署调优策略 157
5.1 调优策略概述 157
5.2 硬件利用率和批处理调优 157
5.2.1 GPU内存占用率 160
5.2.2 在显存中容纳更大模型的策略 163
5.2.3 KV缓存 164
5.2.4 PagedAttention 166
5.2.5 AlphaServe 168
5.2.6 S3:基于推测的序列调度 171
5.2.7 带有注意力汇聚点的流式大型语言模型 173
5.2.8 批次大小的调优 178
5.2.9 自动寻找最佳的推理配置 188
5.3 推理加速工具 198
5.3.1 TensorRT和GPU加速工具 199
5.3.2 CPU加速工具 200
5.4 监控和可观测性 201
5.5 本章小结 206
第6章 结语 207
6.1 平衡性能与成本 207
6.2 权衡分析 208
6.3 对生态环境的影响 209
6.4 组建GenAI团队的重要性 210
6.4.1 GenAI团队理想的结构 211
6.4.2 维持团队所需成本 213
6.4.3 通过GenAI来辅助组建GenAI团队 215
6.5 生成式人工智能应用的未来趋势 216
6.5.1 趋势1:混合专家模型 216
6.5.2 趋势2:多模态模型 219
6.5.3 趋势3:智能体 222
6.6 本章小结 228
