PacktPublishing/LLM-Engineers-Handbook · 上手攻略
- 仓库:PacktPublishing/LLM-Engineers-Handbook
- 链接:https://github.com/PacktPublishing/LLM-Engineers-Handbook
- 分类:ai
- 作者:Tom
- 更新:2026-07-09
这是什么
LLM-Engineers-Handbook 是 Packt 出版社配套 GitHub 仓库,支撑一本同名实战书籍(Amazon/ Packt 有售)。与其说是"仓库",不如说是一套完整的 LLM 工程最佳实践参考实现:覆盖数据采集、LLM 训练、RAG 搭建、AWS 生产部署、监控和评测全链路,配有可直接运行的 Python 代码和 ZenML 流水线。
解决什么问题: 如何从零把 LLM 应用做到生产级别?不是 demo,不是 Prompt engineering 小技巧,而是真实的 MLOps 流程:数据怎么管理、模型怎么训练、向量数据库怎么选、RAG 怎么评测、如何上 AWS、如何监控 Prompt 成本和质量。
快速安装
环境依赖
| 工具 | 版本 | 说明 |
|---|---|---|
| Python | 3.11 | 建议用 pyenv 管理 |
| Poetry | ≥1.8.3, <2.0 | 包管理 |
| Docker | ≥27.1.1 | 容器化 |
| AWS CLI | ≥2.15.42 | 云端部署 |
| pyenv | ≥2.3.36 | 多版本 Python(可选) |
⚠️ 依赖版本要求严格,建议严格按上表版本安装,不要用最新版 Poetry(2.0+ 不兼容)。
克隆并安装
git clone https://github.com/PacktPublishing/LLM-Engineers-Handbook.git
cd LLM-Engineers-Handbook
# 确认 Python 版本(项目含 .python-version 文件自动切换)
python --version # 期望 3.11.x
# 安装 Poetry(若未安装)
curl -sSL https://install.python-poetry.org | python3 -
poetry --version # 期望 Poetry 1.8.3+
# 创建虚拟环境并安装依赖(不含 AWS 包,本地开发足够)
poetry env use 3.11
poetry install --without aws
# 启动虚拟环境
poetry shell
# 安装 pre-commit 钩子(代码质量检查)
poetry run pre-commit install
📝 项目所有命令通过 Poe the Poet 定义(
pyproject.toml的[tool.poe.tasks])。用poetry poe <task>执行,例如poetry poe local-infrastructure-up。若 Poe 安装有问题,可直接用poetry run <actual-command>。
本地基础设施(可选)
poetry poe local-infrastructure-up # 启动本地 Docker 服务(Qdrant、MongoDB 等)
poetry poe local-infrastructure-down # 停止服务
核心用法
1. 项目结构
llm_engineering/ # 核心 Python 包(DDD 架构)
├── domain/ # 核心业务实体
├── application/ # 业务逻辑、RAG 实现
├── model/ # LLM 训练与推理
└── infrastructure/ # AWS、Qdrant、MongoDB、FastAPI 集成
pipelines/ # ZenML ML 流水线
steps/ # ZenML 可复用步骤
configs/ # ZenML YAML 配置文件
tools/ # 工具脚本
├── run.py # ZenML 流水线入口
├── ml_service.py # REST API 推理服务
├── rag.py # RAG 模块演示
└── data_warehouse.py # MongoDB 数据导入导出
code_snippets/ # 独立可执行示例代码
2. 运行 ZenML 流水线
# 查看所有可用任务
poetry poe # 列出所有 Poe 任务
# 最常用:本地完整流水线(需先启动 local-infrastructure-up)
poetry poe local-pipeline-run
# 运行 RAG 示例
poetry poe rag-example
# 或直接
poetry run python tools/rag.py
3. 启动推理服务
poetry poe start-ml-service
# 启动 FastAPI 推理服务(默认 localhost:8000)
4. 配置环境变量
项目需要多个第三方服务的凭证,创建 .env 文件(参考 .env.example):
# HuggingFace 模型访问
HF_TOKEN=hf_xxxxxxxxxxxx
# Comet ML / Opik(实验追踪)
COMET_API_KEY=xxxxxxxxxxxxxxxx
# AWS(部署时需要)
AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxxx
AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxx
AWS_DEFAULT_REGION=us-east-1
# Qdrant / MongoDB(本地或远程向量库)
QDRANT_URL=http://localhost:6333
MONGODB_URI=mongodb://localhost:27017
⚠️
.env文件包含敏感凭证,不要提交到 Git。项目默认已配置.gitignore。
5. 预训练模型
仓库附带的演示模型托管在 Hugging Face,可直接下载使用:
https://huggingface.co/mlabonne/TwinLlama-3.1-8B-DPO
典型适用场景
| 场景 | 为什么用这个仓库 |
|---|---|
| 学习 LLM 工程全流程 | 书籍 + 代码对照,从数据到部署完整闭环 |
| 搭建生产级 RAG | 含 RAG 评测、Qdrant 集成、Prompt 监控 |
| LLMOps 体系建设 | ZenML 流水线、Comet ML 追踪、GitHub Actions CI/CD |
| AWS 部署 LLM 应用 | 第 10-11 章有完整步骤指南 |
| RAG 应用评测 | 内置评测框架,量化检索和生成质量 |
坑与注意
-
Poetry 版本冲突:项目要求
Poetry >= 1.8.3 and < 2.0。Poetry 2.0 有 breaking change。若已安装 2.x,先降级:bash poetry self update 1.8.3 -
pyenv 与 macOS:macOS 系统 Python 可能干扰 pyenv。推荐用
pyenv install 3.11.8 && pyenv local 3.11.8确保全局不受影响。 -
Poe the Poet 安装失败:部分系统 poetry 环境内装不上 poethepoet。可直接查
pyproject.toml的[tool.poe.tasks]节,用poetry run <actual-command>代替poetry poe <task>。 -
AWS 依赖:本地开发加
--without aws,避免装 boto3 相关包;真正部署时再单独处理 AWS 环境。 -
Docker 依赖:本地基础设施脚本依赖 Docker Desktop(macOS/Windows)或 Docker Engine(Linux),确认运行
docker ps无报错后再执行。 -
维护状态:仓库最近提交 2026-04-22,有一定时间未更新。代码可能与书籍章节存在差异,始终以 GitHub 仓库为准。
与同类对比
| 特性 | LLM-Engineers-Handbook | LangChain 官方示例 | LlamaIndex 教程 |
|---|---|---|---|
| 定位 | 全链路生产指南 | 框架使用 | 索引/检索优化 |
| 代码规模 | 中等(约数千行) | 分散 | 分散 |
| 部署指导 | ✅ AWS 完整步骤 | ❌ | ❌ |
| 评测框架 | ✅ 内置 RAG 评测 | 部分 | 部分 |
| MLOps 集成 | ZenML + Comet ML | ❌ | ❌ |
| 书籍配套 | ✅ | ❌ | ❌ |
| 维护活跃度 | 中(2026-04 后放缓) | 高 | 高 |
如果你需要从零到生产的完整参考,而不是某个环节的技巧,这个仓库是更好的选择;如果你专注于 RAG 检索优化,LlamaIndex 更适合。
一句话推荐结论
想从"能跑 demo"升级到"能上生产"的 LLM 工程师,这是目前最完整的开源参考实现之一——书籍+代码+CI/CD 全链路,拿来就能对照着做。