当前最热门的技术无疑是AI大模型。虽然它的应用前景广阔,但真正精通大模型技术的人还不多。然而,市场对大模型的需求却在不断增长,吸引了不少开发者想要转行进入这个领域。然而,面对新技术,许多人心中充满疑虑,担心自己无法掌握。笔者也是充满疑虑,然后直到我看到这本书籍,感觉受益匪浅,给与了很多指导和引路,先分享给大家,也希望可以帮助更多的小伙伴。一起开启大模型之路。加油加油加油!!!
目录
1. 大模型开发知识储备
要做大模型应用开发工程师,首先得会编程,Python是必备的,因为几乎所有的机器学习框架都支持它。虽然你不一定非得精通多种语言,但了解点Java或者Python之类的也有帮助,项目需要时可能用得上。
然后就是机器学习和深度学习的基础。你得知道这些模型是怎么训练、调优的,比如理解一下像Transformer这样的模型。常用的工具像TensorFlow、PyTorch,这些你得熟悉。
数据处理也是绕不开的。模型都是建立在数据之上的,怎么清理数据、做特征工程这些都很重要
软件开发的经验也是少不了的。像Git版本控制、写单元测试、设计系统架构,这些都是日常开发中的基本操作。你不光要会写代码,还得知道怎么把代码整合到一个完整的系统里,保证它能跑得流畅,还能扩展。
现在很多大模型都是跑在云平台上的,所以你还得会用阿里云、华为云 之类的云服务。另外,学会用Docker和Kubernetes做容器化,这样部署模型的时候更方便。
还有一点,虽然技术很重要,但沟通能力也不能忽视。开发大模型通常是个团队合作的事,跟队友、产品经理甚至客户对接时,能清楚表达需求和想法,项目才能顺利进行。
2. 转行注意事项
要转行做大模型应用开发工程师,其实就是一个不断学习和积累经验的过程。首先,编程是基础,尤其是Python,这在AI和数据科学领域用得特别多。你可以通过在线课程、书籍,甚至加入一些编程小组来学习。如果数学基础不太好,像统计学、线性代数、微积分这些也得补一下,因为理解机器学习算法离不开这些工具。
接下来,你得深入学习机器学习和深度学习。最关键的是,光看书不行,得动手做。可以通过个人项目或者参与开源项目来实际操作,项目经验对求职特别重要。
然后你还得学会数据处理,因为机器学习的核心就是数据。学会用Python的Pandas和NumPy库做数据清洗、处理非常关键。
软件开发经验也是不可少的。学会使用Git做版本控制,毕竟开发中用得很多。还要了解一点软件工程的概念,比如敏捷开发流程,项目管理工具像JIRA、Confluence这些也很有用。
云计算和容器技术方面,也需要你熟悉。像华为云、阿里云这些云平台基本上是必备技能,学会在上面部署和管理模型。再加上Docker和Kubernetes,这些容器化技术能让你更轻松地在不同环境中部署应用。
转行过程中,建立人脉和专业网络也挺重要的。多参加一些行业的会议、研讨会,线上讲座什么的,这样你既能了解最新趋势,又能结识一些同行。同时,你还可以把自己的项目和技能展示在脉脉、GitHub等平台,积极跟行业里的人交流,有助于打开机会之门。
最后,别忘了多找实习和入门级的工作机会。实习是积,因为这可以让你快速上手、了解行业的实际需求。
3. 转型指南
《AI大模型开发之路》非常适合那些想要转型成为AI大模型应用开发工程师的读者。它的内容覆盖了从基础理论到实际操作,再到项目部署的完整流程,帮助你一步步掌握所需技能。下面我结合书的内容,简单说明它是如何帮助你实现这一职业转型的。
首先,在第1章,书里介绍了AI大模型的基础知识,包括自然语言处理的发展历史和大模型的基本概念。这个部分对于刚接触AI大模型的人非常重要,能帮你快速了解整个领域的背景。另外,还教你如何搭建开发环境,比如安装Python、Anaconda、VSCode、Jupyter Notebook这些常用工具。这些内容相当于打好基础,让你能够顺利开始后面的学习和开发工作。
接着,第2章深入解析了目前AI领域非常重要的Transformer模型。这个章节不仅讲解了模型的原理,还提供了详细的实现过程。从数据预处理、分词、嵌入矩阵,到Transformer的编码器、解码器的具体细节,都有深入的介绍。这部分内容让你掌握了大模型的核心技术,理解了模型是怎么一步步处理数据并生成结果的,这对于想深入学习大模型的人非常有帮助。
第3章和第4章进入了实战部分,分别讲了百度千帆大模型平台和OpenAI 的使用。这里你可以通过实际的API调用,学习如何在真实场景中使用大模型。比如,如何利用大模型进行对话、文本生成,甚至生成图像,这对想快速上手项目开发的你非常有用。尤其是每一步操作都非常详细,从如何注册密钥、调用API,到实际操作中的代码示例,这样的内容能够让你学会如何应用这些模型去解决实际问题。
如果你已经掌握了基础并且熟悉了大模型的应用,那么第5章的LangChain开发实战会带你进入更复杂的场景。LangChain是用于构建复杂AI应用的框架,你可以学到如何搭建检索链、对话系统,甚至自定义智能代理(Agent)。这部分相当于把你带入了更高级的AI开发层次,帮助你建立从模型到应用的完整框架。
最后,第6章到第8章聚焦在项目实战和模型部署。这些章节非常有实际操作性,特别是通过问答系统、AutoGPT等项目的开发,让你学会如何从零开始搭建一个完整的AI应用。而且还有关于如何在云平台上部署这些应用的步骤,比如用Docker容器化,配置云端环境。这些实战项目和部署技巧能够帮助你应对未来在企业中开发和部署AI系统的需求。
可以说这本书提供了非常系统化的学习路径。你可以从最基础的环境搭建、语言学习,逐步深入到大模型的理论和实战应用,再到项目部署。对于那些想转型AI大模型开发的人来说,书中的每一个章节都是帮助你建立技能和经验的实用工具,让你从理论到实际操作都有所掌握。通过这本书,你可以一步步转型为大模型应用开发工程师,完全掌握从开发到部署的完整流程。
4. 书籍脉络
5. 书籍案例
6. 书籍目录
第1 章 AI大模型基础 1
1.1 AI大模型概述 1
1.1.1 NLP简史 2
1.1.2 AI大模型简介 2
1.2 环境搭建与工具使用 3
1.2.1 Python(Anaconda)的安装 3
1.2.2 Python的基础语法 8
1.2.3 VSCode的安装应用 12
1.2.4 Jupyter Notebook的安装和使用 16
1.2.5 Node.js的安装和使用 19
1.2.6 Git的安装和使用 22
1.2.7 向量数据库Faiss 26
1.3 显卡选型 29
1.3.1 CUDA核心 29
1.3.2 Tensor核心 30
1.3.3 如何选择适合自己的GPU 31
1.4 深度学习基础 32
1.4.1 深度学习简介 32
1.4.2 神经网络的基本原理 33
1.4.3 层次结构 34
1.4.4 一个简单的神经网络示例 35
1.4.5 神经元 37
1.4.6 权重和偏置 38
1.4.7 激活函数 39
1.4.8 损失函数 40
1.4.9 向前传播 42
1.4.10 反向传播 43
1.4.11 优化函数 46
1.5 本章小结 48
第2 章 AI大模型鼻祖——Transformer模型 49
2.1 Transformer简介 49
2.2 输入预处理 50
2.2.1 文本预处理 51
2.2.2 数据分词 51
2.2.3 嵌入矩阵构建 52
2.2.4 词元向量化 54
2.2.5 位置编码 55
2.3 编码器处理器 56
2.3.1 编码器自注意力机制 57
2.3.2 自注意力机制的查询、键、值向量 58
2.3.3 自注意力机制计算注意力分数 59
2.3.4 自注意力机制Softmax标准化 60
2.3.5 自注意力机制加权值向量 61
2.3.6 多头注意力机制 62
2.3.7 编码器残差连接 63
2.3.8 编码器层归一化 64
2.3.9 编码器前馈神经网络 65
2.4 解码器处理器 67
2.4.1 掩蔽自注意力机制 68
2.4.2 编码器-解码器注意力 69
2.5 输出生成 71
2.5.1 Transformer线性层 71
2.5.2 Transformer Softmax层 72
2.6 本章小结 74
第3 章 百度千帆大模型API调用实战75
3.1 千帆大模型平台简介 75
3.2 第一个大模型调用 76
3.2.1 注册并申请密钥 76
3.2.2 开启第一个千帆大模型API调用 79
3.2.3 开启第一个千帆大模型SDK调用 81
3.3 百度文本大模型API 82
3.3.1 对话Chat大模型 82
3.3.2 续写Completions 84
3.3.3 文心ERNIE-Bot-4景点推荐实践 85目 录
3.4 图像Images API 87
3.4.1 图片生成模型Stable Diffusion XL 87
3.4.2 图片视觉模型Fuyu-8B 88
3.4.3 Stable Diffusion XL生成商品图片实践 89
3.5 本章小结 91
第4 章 OpenAI API开发实战 92
4.1 开始第一个API调用 92
4.1.1 创建一个API key 92
4.1.2 开发环境准备 94
4.1.3 第一个API调用 95
4.2 文本API接口开发 96
4.2.1 Chat Completions API 97
4.2.2 Completions API 99
4.2.3 众多模型的选择 100
4.2.4 Chat Completions API构建结构化输出实践 101
4.3 语音API接口开发 103
4.3.1 文本转语音 103
4.3.2 语音转文本 105
4.3.3 优化长语音转文本处理的实践 106
4.4 图片API接口开发 108
4.4.1 文本生成图片 108
4.4.2 根据文本编辑图片 110
4.4.3 根据图片生成变体 111
4.4.4 高效处理内存中的图像数据并生成变体实践 112
4.5 图片视觉Vision API开发 113
4.5.1 单张图片视觉 114
4.5.2 多张图片视觉 117
4.5.3 视频内容理解与描述生成的实践 118
4.6 函数调用API开发 120
4.6.1 创建一个简单的工具 120
4.6.2 生成函数参数 122
4.6.3 使用模型生成参数调用函数 123
4.6.4 并行函数调用 125
4.6.5 多功能天气查询助手实践 127
4.7 强大的助理API 129
4.7.1 构建非流式助理 130
4.7.2 构建流式助理 132
4.7.3 实时客户服务助理实践 134
4.8 GPT模型fine-tuning 135
4.8.1 微调简介 136
4.8.2 微调数据处理 136
4.8.3 微调数据验证 137
4.8.4 创建微调模型 139
4.8.5 使用与验证微调模型 140
4.9 智能问答代理操作数据库案例 142
4.9.1 定义工具函数 142
4.9.2 获取数据库详情 144
4.9.3 编写大模型回调函数 145
4.9.4 智能回答用户问题 147
4.10 本章小结 148
第5 章 大模型开发框架LangChain实战149
5.1 创建LangChain 149
5.1.1 LangChain简介 149
5.1.2 配置开发环境 150
5.1.3 创建一个LangChain 151
5.1.4 构建一个简单的检索链 152
5.1.5 构建一个简单的对话检索链 154
5.1.6 构建一个简单的代理 156
5.2 格式化模型输入与输出(Model I/O) 158
5.2.1 模块化输入:提示 160
5.2.2 不同模型的交互 161
5.2.3 规范化输出 :Output Parsers 162
5.2.4 设计Pipeline模板 164
5.2.5 设计语言翻译提示模板案例 165
5.3 信息检索 167
5.3.1 文档加载器 168
5.3.2 文档分割器 170
5.3.3 文本嵌入 172
5.3.4 向量数据库 173
5.3.5 检索器 174
5.3.6 索引器 176
5.3.7 检索翻译PDF文件案例 178
5.4 代理构建 180
5.4.1 LangChain 代理类型 180
5.4.2 代理的工具集 181
5.4.3 自定义一个工具 182
5.4.4 自定义一个代理 183
5.5 链式构建 185
5.5.1 LangChain 链简介 186
5.5.2 构建一个文档列表链 186
5.5.3 构建SQL数据库查询链 188
5.6 记忆系统 190
5.6.1 记忆的存储 192
5.6.2 通过LLMChain链实现记忆功能 193
5.6.3 自定义一个记忆功能的代理 195
5.6.4 设计一个Redis存储记忆的代理 197
5.7 回调机制(Callbacks) 199
5.7.1 LangChain回调机制(Callbacks) 200
5.7.2 如何使用回调(Callback) 201
5.7.3 如何实现异步回调 203
5.7.4 自定义回调handler 204
5.8 实时计算词元案例 205
5.9 本章小结 206
第6 章 OpenAI API问答系统项目实战 207
6.1 项目概览 207
6.1.1 项目目标与预期成果 208
6.1.2 技术栈简介 208
6.2 基于Flask实现问答系统后端 209
6.2.1 Cookiecutter- Flask安装配置 209
6.2.2 后端SQLite数据库安装配置 214
6.2.3 配置OpenAI API客户端 215
6.2.4 基于Completions API的问答逻辑处理模块 218
6.2.5 基于Chat Completions API的问答逻辑处理模块 222
6.3 构建用户界面 224
6.3.1 简易聊天界面设计 224
6.3.2 用户输入与响应展示 225
6.3.3 多轮对话用户输入与响应展示 228
6.3.4 实现前后端通信 230
6.4 基于阿里云项目部署 234
6.4.1 开通创建服务器实例 234
6.4.2 准备部署应用程序与环境 239
6.4.3 基于Git代码管理 242
6.4.4 项目部署与测试 246
6.5 本章小结 249
第7 章 使用LangChain开发AutoGPT项目实战250
7.1 项目概述 250
7.1.1 项目目标与预期成果 250
7.1.2 技术栈简介 251
7.2 环境准备 251
7.2.1 设置Conda虚拟环境和项目架构概述 251
7.2.2 安装和配置Redis 253
7.2.3 安装和配置Docker 254
7.3 AutoGPT项目架构 256
7.4 实现AutoGPT核心功能 257
7.4.1 迭代式自动化问题解决方法 257
7.4.2 设计提示模板策略 259
7.4.3 构建短期记忆机制 261
7.4.4 利用Redis实现长期记忆方案 263
7.4.5 开发自定义动作执行器 265
7.4.6 设计自定义输出格式化工具 266
7.4.7 开发定制化代理 268
7.4.8 设计处理流程链 269
7.4.9 构建代理执行器 271
7.4.10 设置超时与控制执行步骤 273
7.4.11 大模型异常处理 274
7.5 基于Gradio构建用户界面 275
7.6 云端部署实践:Docker容器化及应用发布 277
7.6.1 本地环境的应用验证与Docker镜像制作 277
7.6.2 云端环境配置与准备 280
7.6.3 云端应用部署 282
7.6.4 功能验证 284
7.7 本章小结 287
第8 章 AI大模型部署 288
8.1 准备工作 288
8.1.1 理解部署需求 288
8.1.2 选择合适的模型和框架 289
8.1.3 准备环境和依赖 290
8.2 部署环境选择 291
8.2.1 本地服务器与云平台的对比 291
8.2.2 容器化部署:Docker和Kubernetes 292
8.2.3 选择合适的硬件资源 293
8.3 模型优化和转换 293
8.3.1 模型剪枝和量化 294
8.3.2 使用TensorRT、ONNX进行模型转换 294
8.3.3 模型测试和验证 295
8.4 部署模型 296
8.4.1 模型服务化:Flask和FastAPI 296
8.4.2 使用云服务部署模型 297
8.4.3 模型版本控制和管理 298
8.5 百度千帆SQLCoder大模型部署案例 299
8.5.1 模型准备 299
8.5.2 模型部署 302
8.5.3 模型测试与使用 305
8.6 本章小结 307