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 应用评测 内置评测框架,量化检索和生成质量

坑与注意

  1. Poetry 版本冲突:项目要求 Poetry >= 1.8.3 and < 2.0。Poetry 2.0 有 breaking change。若已安装 2.x,先降级: bash poetry self update 1.8.3

  2. pyenv 与 macOS:macOS 系统 Python 可能干扰 pyenv。推荐用 pyenv install 3.11.8 && pyenv local 3.11.8 确保全局不受影响。

  3. Poe the Poet 安装失败:部分系统 poetry 环境内装不上 poethepoet。可直接查 pyproject.toml[tool.poe.tasks] 节,用 poetry run <actual-command> 代替 poetry poe <task>

  4. AWS 依赖:本地开发加 --without aws,避免装 boto3 相关包;真正部署时再单独处理 AWS 环境。

  5. Docker 依赖:本地基础设施脚本依赖 Docker Desktop(macOS/Windows)或 Docker Engine(Linux),确认运行 docker ps 无报错后再执行。

  6. 维护状态:仓库最近提交 2026-04-22,有一定时间未更新。代码可能与书籍章节存在差异,始终以 GitHub 仓库为准


与同类对比

特性 LLM-Engineers-Handbook LangChain 官方示例 LlamaIndex 教程
定位 全链路生产指南 框架使用 索引/检索优化
代码规模 中等(约数千行) 分散 分散
部署指导 ✅ AWS 完整步骤
评测框架 ✅ 内置 RAG 评测 部分 部分
MLOps 集成 ZenML + Comet ML
书籍配套
维护活跃度 中(2026-04 后放缓)

如果你需要从零到生产的完整参考,而不是某个环节的技巧,这个仓库是更好的选择;如果你专注于 RAG 检索优化,LlamaIndex 更适合。


一句话推荐结论

想从"能跑 demo"升级到"能上生产"的 LLM 工程师,这是目前最完整的开源参考实现之一——书籍+代码+CI/CD 全链路,拿来就能对照着做。