目录
1. 构建模块
使用3流程设计,以下是你将在本课程中学习构建的内容 ↓
1.1. 训练流程
训练流程包括:
- 加载专有问答数据集
- 使用QLoRA微调开源LLM
- 在Comet ML的实验跟踪器上记录训练实验,在Comet ML的LLMOps仪表板上记录推理结果
- 将最佳模型存储在Comet ML的模型注册表中
训练流程使用Beam作为无服务器GPU基础设施进行部署。
-> 可在modules/training_pipeline
目录下找到。
💻 最低硬件要求
- CPU: 4核
- 内存: 14 GiB
- 显存: 10 GiB (必须是支持CUDA的Nvidia GPU)
注意: 如果你不满足最低硬件要求,不用担心。我们将向你展示如何将训练流程部署到Beam的无服务器基础设施上并在那里训练LLM。
1.2. 实时流处理流程
实时特征流程包括:
- 从Alpaca获取金融新闻
- 使用Bytewax实时清理和转换新闻文档为嵌入向量
- 将嵌入向量存储到Qdrant向量数据库
流处理流程使用GitHub Actions中构建的CI/CD流水线自动部署到AWS EC2机器上。
-> 可在modules/streaming_pipeline
目录下找到。
💻 最低硬件要求
- CPU: 1核
- 内存: 2 GiB
- 显存: -
1.3. 推理流程
使用LangChain创建一个链,包括:
- 从Comet的模型注册表下载微调模型
- 以用户问题作为输入
- 查询Qdrant向量数据库并用相关金融新闻增强提示
- 使用初始查询、向量数据库的上下文和聊天历史调用微调后的LLM进行金融建议
- 将聊天历史保存到内存中
- 将提示和回答记录到Comet ML的LLMOps监控功能中
推理流程使用Beam作为无服务器GPU基础设施部署为RESTful API。此外,它还包装在使用Gradio实现的UI下用于演示目的。
-> 可在modules/financial_bot
目录下找到。
💻 最低硬件要求
- CPU: 4核
- 内存: 14 GiB
- 显存: 8 GiB (必须是支持CUDA的Nvidia GPU)
注意: 如果你不满足最低硬件要求,不用担心。我们将向你展示如何将推理流程部署到Beam的无服务器基础设施上并从那里调用LLM。
1.4. 金融问答数据集
我们使用GPT3.5
生成了一个金融问答数据集,以微调我们的开源LLM,使其专门使用金融术语并回答金融问题。使用大型LLM(如GPT3.5
)生成数据集来训练较小的LLM(如Falcon 7B)被称为蒸馏微调。
→ 要了解我们如何生成金融问答数据集,请查看Pau Labarta撰写的这篇文章。
→ 要查看金融问答数据集的完整分析,请查看Alexandru Razvant撰写的课程dataset_analysis小节。
2. 设置外部服务
在深入模块之前,你需要为课程设置一些额外的外部工具。
注意: 你可以在学习每个模块时逐步设置它们,因为我们会在每个模块中指出你需要什么。
2.1. Alpaca
金融新闻数据源
按照这份文档了解如何创建免费账户并生成你在本课程中需要的API密钥。
注意: 1个Alpaca数据连接是免费的。
2.2. Qdrant
无服务器向量数据库
前往Qdrant并创建一个免费账户。
然后,按照这份文档了解如何生成你在本课程中需要的API密钥。
注意: 我们将只使用Qdrant的免费计划。
2.3. Comet ML
无服务器ML平台
前往Comet ML并创建一个免费账户。
然后,按照本指南生成一个API密钥和一个新项目,这些你将在课程中需要。
注意: 我们将只使用Comet ML的免费计划。
2.4. Beam
无服务器GPU计算 | 训练 & 推理流程
前往Beam并创建一个免费账户。
然后,你必须按照他们的安装指南来安装他们的CLI并使用你的Beam凭据进行配置。
要了解更多关于Beam的信息,这里有一个介绍指南。
注意: 你有大约10小时的免费计算时间。之后,你只需为使用的部分付费。如果你有一个显存大于8GB的Nvidia GPU,并且不想部署训练和推理流程,使用Beam是可选的。
故障排除
使用Poetry时,我们在Poetry虚拟环境中定位Beam CLI时遇到了问题。要解决这个问题,在安装Beam后,我们创建了一个指向Poetry二进制文件的符号链接,如下所示:
export COURSE_MODULE_PATH=<your-course-module-path> # 例如, modules/training_pipeline
cd $COURSE_MODULE_PATH
export POETRY_ENV_PATH=$(dirname $(dirname $(poetry run which python)))
ln -s /usr/local/bin/beam ${POETRY_ENV_PATH}/bin/beam
2.5. AWS
云计算 | 特征流程
前往AWS,创建一个账户,并生成一对凭据。
然后,下载并安装他们的AWS CLI v2.11.22,并使用你的凭据进行配置。
注意: 你只需为使用的部分付费。你将只部署一个t2.small
EC2虚拟机,每小时只需~$0.023
。如果你不想部署特征流程,使用AWS是可选的。
3. 安装 & 使用
每个模块都有其自己的依赖项和脚本。在生产设置中,每个模块都会有自己的仓库,但在这个用例中,出于学习目的,我们将所有内容放在一个地方:
因此,请查看每个模块的README以了解如何单独安装和使用它:
4. 讲座
我们强烈建议你克隆这个仓库并复制我们所做的一切,以充分利用这门课程。
在每个模块的视频讲座、文章和README文档中,你将找到逐步说明。
祝学习愉快! 🙏
4.1. 费用
GitHub代码(在MIT许可下发布)和视频讲座(在YouTube上发布)完全免费。将永远如此。
Medium上的课程发布在Medium的付费墙后。如果你已经订阅了,那么它们是免费的。否则,你必须支付每月5美元的费用才能阅读这些文章。
4.2. 提问
如果你在课程期间有任何问题或问题,我们鼓励你在此仓库中创建一个issue,在那里你可以详细解释你需要的一切。
否则,你也可以在LinkedIn上联系教师:
4.3. 视频讲座
4.3.1. 课程介绍
4.3.2. 微调我们的开源LLM(概述)
4.3.3. 微调我们的开源LLM(实践!)
4.3.4. 实时文本嵌入管道
4.3.5. 推理管道
4.4. 文章
要逐步理解整个代码,请查看我们的文章
↓
系统设计
特征管道
训练管道
推理管道
5. 许可证
本课程是在MIT许可证下发布的开源项目。因此,只要您分发我们的许可证并承认我们的工作,您就可以安全地克隆或分叉此项目,并将其用作任何您想要的灵感来源(例如,大学项目、学位项目等)。
6. 贡献者和教师
Pau Labarta Bajo | 高级ML和MLOps工程师 主讲教师。视频课程中的那位。 领英 推特/X 油管 Real-World ML 新闻简报 Real-World ML 网站 | |
Alexandru Razvant | 高级ML工程师 二厨。幕后的工程师。 领英 Neura Leaps | |
Paul Iusztin | 高级ML和MLOps工程师 主厨。在视频课程中随机出现的那位。 领英 推特/X Decoding ML 新闻简报 个人网站 | ML和MLOps中心 |