LLM-Engineers-Handbook

GitHub
4.9k 1.2k 较难 1 次阅读 今天MIT开发框架语言模型其他
AI 解读 由 AI 自动生成,仅供参考

LLM-Engineers-Handbook 是一本专为大语言模型(LLM)工程师打造的实战指南,旨在帮助读者从零开始构建并部署生产级的 LLM 应用。它系统地解决了从数据收集、模型训练流水线搭建,到构建检索增强生成(RAG)系统,再到最终在 AWS 云端进行专业化部署与监控的全流程难题。

这套资源特别适合希望深入掌握 LLMOps 最佳实践的开发者、算法工程师及技术研究人员。无论是想理解底层原理,还是需要将模型落地到真实业务场景,都能从中获得清晰的路径指引。其独特亮点在于提供了一个完整的端到端项目框架,不仅涵盖代码实现,还集成了 ZenML 编排、Opik 提示词监控、Qdrant 向量数据库以及 GitHub Actions 自动化流水线等现代工程化工具。

通过跟随该手册,用户可以学习如何像专业团队一样,利用 Docker 容器化和 AWS 云服务打造高可用、可监控的 AI 系统。仓库中的代码保持活跃更新,甚至提供了可在 Hugging Face 直接下载的成品模型,确保学习者能接触到最新的技术方案。这不仅是一份理论教程,更是一套经过验证的工程化解决方案,帮助用户跨越从“实验Demo"到“生产系统”的鸿沟。

使用场景

某初创团队急需在两周内为电商客服构建一个能处理复杂售后问题的智能问答系统,并部署到 AWS 云端。

没有 LLM-Engineers-Handbook 时

  • 架构混乱:团队成员各自为战,数据收集、模型微调与 RAG 检索模块缺乏统一标准,导致代码难以整合。
  • 部署困难:缺乏成熟的 LLMOps 经验,手动配置 AWS 环境和容器化流程耗时耗力,多次因依赖冲突导致上线失败。
  • 监控缺失:系统上线后无法有效追踪 Prompt 效果和模型表现,遇到回答错误时只能盲目猜测原因,缺乏评估框架。
  • 维护成本高:由于未采用最佳实践,后续迭代需要重构大量代码,实验记录散乱,无法复现之前的训练结果。

使用 LLM-Engineers-Handbook 后

  • 流程标准化:直接复用书中端到端的最佳实践,快速搭建起从数据生成、训练流水线到简单 RAG 系统的完整架构。
  • 一键上云:利用提供的 AWS 部署指南和 Docker 配置,将生产级应用顺利部署至云端,大幅缩短环境搭建时间。
  • 全链路可观测:集成 Opik 和 Comet ML 实现了对 Prompt 的实时监控与实验追踪,能快速定位并优化回答质量。
  • 可持续迭代:基于 ZenML 构建的编排层和 GitHub Actions CI/CD 流水线,让模型更新和测试评估变得自动化且可复现。

LLM-Engineers-Handbook 将原本需要数月摸索的工程化难题,转化为可按图索骥的标准作业流程,帮助团队高效交付生产级大模型应用。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes该项目主要依赖云端服务(AWS, MongoDB, Qdrant, HuggingFace 等)进行计算和存储,本地主要用于编排和开发。本地运行需配置 .env 文件填入 OpenAI、HuggingFace 和 Comet ML 的 API Key。建议使用 Poetry 管理依赖,并通过 'poetry install --without aws' 安装基础环境。若需部署到云端,需额外配置 MongoDB 集群、Qdrant 云服务和 AWS 凭证。代码逻辑遵循领域驱动设计 (DDD),包含数据收集、LLM 训练、RAG 系统及生产级部署流程。
python3.11
Poetry>=1.8.3
Docker>=27.1.1
AWS CLI>=2.15.42
Git>=2.44.0
pyenv>=2.3.36 (可选)
HuggingFace
Comet ML / Opik
ZenML
MongoDB
Qdrant
LLM-Engineers-Handbook hero image

快速开始

👷 大语言模型工程师手册

Paul IusztinMaxime Labonne 撰写的《大语言模型工程师手册》的官方仓库


书籍封面

您可以在 亚马逊Packt 上找到这本书。

🌟 特色功能

本书的目标是帮助您使用最佳实践构建自己的端到端大语言模型系统:

  • 📝 数据收集与生成
  • 🔄 大语言模型训练流水线
  • 📊 简单的RAG系统
  • 🚀 生产就绪的AWS部署
  • 🔍 全面的监控
  • 🧪 测试与评估框架

您可以从 Hugging Face 下载并使用最终训练好的模型。

[!重要提示] 本GitHub仓库中的代码会持续维护,可能会包含未反映在书中的更新。请始终参考此仓库以获取最新版本的代码。

🔗 依赖项

本地依赖

要在本地安装并运行该项目,您需要以下依赖项。

工具 版本 用途 安装链接
pyenv ≥2.3.36 多个Python版本(可选) 安装指南
Python 3.11 运行时环境 下载
Poetry ≥ 1.8.3且< 2.0 包管理 安装指南
Docker ≥27.1.1 容器化 安装指南
AWS CLI ≥2.15.42 云管理 安装指南
Git ≥2.44.0 版本控制 下载

云服务

代码还使用并依赖于以下云服务。目前您无需做任何操作。我们将在安装和部署部分指导您如何使用它们:

服务 用途
HuggingFace 模型注册表
Comet ML 实验跟踪器
Opik 提示词监控
ZenML 编排与工件层
AWS 计算与存储
MongoDB NoSQL数据库
Qdrant 向量数据库
GitHub Actions CI/CD流水线

在《大语言模型工程师手册》(亚马逊链接)中,第2章将带您逐一了解每种工具。第10章和第11章则提供了设置所需一切的分步指南。

🗂️ 项目结构

以下是目录概览:

.
├── code_snippets/       # 独立示例代码
├── configs/             # 流水线配置文件
├── llm_engineering/     # 核心项目包
│   ├── application/    
│   ├── domain/         
│   ├── infrastructure/ 
│   ├── model/         
├── pipelines/           # ML流水线定义
├── steps/               # 流水线组件
├── tests/               # 测试示例
├── tools/               # 工具脚本
│   ├── run.py
│   ├── ml_service.py
│   ├── rag.py
│   ├── data_warehouse.py

llm_engineering/ 是实现大语言模型和RAG功能的主要Python包。它遵循领域驱动设计(DDD)原则:

  • domain/:核心业务实体和结构
  • application/:业务逻辑、爬虫及RAG实现
  • model/:大语言模型的训练与推理
  • infrastructure/:外部服务集成(AWS、Qdrant、MongoDB、FastAPI)

代码逻辑和导入顺序如下:infrastructuremodelapplicationdomain

pipelines/:包含ZenML ML流水线,作为所有ML流水线的入口点。协调ML生命周期中的数据处理和模型训练阶段。

steps/:包含独立的ZenML步骤,这些步骤是用于构建和定制ZenML流水线的可重用组件。步骤执行特定任务(如数据加载、预处理),并可在ML流水线中组合使用。

tests/:涵盖了一些作为CI流水线示例的测试用例。

tools/:用于调用ZenML流水线和推理代码的实用脚本:

  • run.py:运行ZenML流水线的入口脚本。
  • ml_service.py:启动REST API推理服务器。
  • rag.py:演示RAG检索模块的使用。
  • data_warehouse.py:用于通过JSON文件从MongoDB数据仓库导出或导入数据。

configs/:ZenML YAML配置文件,用于控制流水线和步骤的执行。

code_snippets/:可独立运行的独立代码示例。

💻 安装

[!注意] 如果您在安装和运行仓库时遇到问题,请查看 Issues GitHub页面,看看是否有其他人解决了类似的问题,或者直接向我们寻求帮助。

1. 克隆仓库

首先克隆仓库并进入项目目录:

git clone https://github.com/PacktPublishing/LLM-Engineers-Handbook.git
cd LLM-Engineers-Handbook 

接下来,我们需要准备您的Python环境及其相关依赖。

2. 配置 Python 环境

该项目需要 Python 3.11。您可以使用全局安装的 Python,也可以通过 pyenv 设置一个项目专用版本。

选项 A:使用全局 Python(如果已安装 3.11 版本)

验证您的 Python 版本:

python --version  # 应显示 Python 3.11.x

选项 B:使用 pyenv(推荐)

  1. 验证 pyenv 是否已安装:
pyenv --version   # 应显示 pyenv 2.3.36 或更高版本
  1. 安装 Python 3.11.8:
pyenv install 3.11.8
  1. 验证安装是否成功:
python --version  # 应显示 Python 3.11.8
  1. 在项目目录中确认 Python 版本:
python --version
# 输出:Python 3.11.8

[!注意]
项目包含一个 .python-version 文件,当您位于项目目录时,它会自动设置正确的 Python 版本。

3. 安装依赖项

该项目使用 Poetry 进行依赖管理。

  1. 验证 Poetry 是否已安装:
poetry --version  # 应显示 Poetry 1.8.3 或更高版本
  1. 设置项目环境并安装依赖项:
poetry env use 3.11
poetry install --without aws
poetry run pre-commit install

这将:

  • 配置 Poetry 使用 Python 3.11
  • 安装项目依赖项(不包括 AWS 相关包)
  • 设置 pre-commit 钩子以进行代码验证

4. 激活环境

作为我们的任务管理工具,我们将使用 Poe the Poet 来运行所有脚本。

  1. 启动 Poetry shell:
poetry shell
  1. 使用 Poe the Poet 运行项目命令:
poetry poe ...
🔧 Poe the Poet 安装故障排除

替代命令执行方式

如果您在使用 poethepoet 时遇到问题,仍然可以通过 Poetry 直接运行项目命令。方法如下:

  1. 查看 pyproject.toml 中的命令定义
  2. 使用 poetry run 执行底层命令

示例:

与其运行:

poetry poe local-infrastructure-up

不如直接使用 pyproject.toml 中的命令:

poetry run <实际命令从 pyproject.toml 中获取>

注意:所有项目命令均定义在 pyproject.toml 的 [tool.poe.tasks] 部分。

现在,让我们配置本地项目所需的全部凭据和令牌,以便在本地运行代码。

5. 本地开发设置

在安装完所有依赖项后,您必须创建并填写 .env 文件,输入您的凭据,以便与其它服务正常交互并运行项目。将敏感凭据存储在 .env 文件中是一种良好的安全实践,因为该文件不会被提交到 GitHub 或与他人共享。

  1. 首先,复制示例文件:
cp .env.example .env # 文件必须位于仓库根目录!
  1. 接下来,我们来了解如何填写 .env 文件中的必要变量,以便开始使用。以下是我们在本地工作时必须完成的必填设置:

OpenAI

要认证 OpenAI API,您需要将 OPENAI_API_KEY 环境变量设置为认证令牌。

OPENAI_API_KEY=your_api_key_here

→ 请参阅此教程,了解如何从 OpenAI 获取认证令牌。

Hugging Face

要认证 Hugging Face,您需要将 HUGGINGFACE_ACCESS_TOKEN 环境变量设置为认证令牌。

HUGGINGFACE_ACCESS_TOKEN=your_token_here

→ 请参阅此教程,了解如何从 Hugging Face 获取认证令牌。

Comet ML 和 Opik

要认证 Comet ML(仅在训练期间需要)和 Opik,您需要将 COMET_API_KEY 环境变量设置为认证令牌。

COMET_API_KEY=your_api_key_here

→ 请参阅此教程,了解如何开始使用 Opik。您还可以通过🔗此链接访问 Opik 的仪表板。

6. 部署设置

将项目部署到云端时,我们需要为 MongoDB、Qdrant 和 AWS 设置额外的参数。如果您只是在本地工作,这些环境变量的默认值即可直接使用。详细的部署说明可在《LLM 工程师手册》第 11 章中找到。

MongoDB

我们需要将 DATABASE_HOST 环境变量更改为指向您的云 MongoDB 集群的 URL。

DATABASE_HOST=your_mongodb_url

→ 请参阅此教程,了解如何免费创建并托管 MongoDB 集群。

Qdrant

USE_QDRANT_CLOUD 设置为 true,并将 QDRANT_CLOUD_URL 更改为指向您的云 Qdrant 集群的 URL,同时设置 QDRANT_APIKEY 为该集群的 API 密钥。

USE_QDRANT_CLOUD=true
QDRANT_CLOUD_URL=your_qdrant_cloud_url
QDRANT_APIKEY=your_qdrant_api_key

→ 请参阅此教程,了解如何免费创建 Qdrant 集群。

AWS

为了使您的 AWS 配置正常工作,您需要在本地机器上安装并正确配置 AWS CLI,并使用具有管理员权限的用户(或至少拥有足够权限以创建 SageMaker、ECR 和 S3 资源的用户;使用管理员用户会使流程更加简单)。

第 2 章提供了逐步指导,介绍如何安装 AWS CLI、在 AWS 上创建管理员用户以及获取访问密钥,以便设置 AWS_ACCESS_KEYAWS_SECRET_KEY 环境变量。如果您已经有一个 AWS 管理员用户,则需要在 .env 文件中配置以下环境变量:

AWS_REGION=eu-central-1 # 根据您的 AWS 区域进行更改。
AWS_ACCESS_KEY=your_aws_access_key
AWS_SECRET_KEY=your_aws_secret_key

AWS 凭据通常存储在 ~/.aws/credentials 文件中。您可以通过 cat 等命令直接查看该文件:

cat ~/.aws/credentials

[!重要提示] 更多配置选项可在 settings.py 中找到。Settings 类中的任何变量都可以通过 .env 文件进行配置。

🏗️ 基础设施

本地基础设施(用于测试和开发)

在本地运行项目时,我们使用 Docker 托管 MongoDB 和 Qdrant 数据库。此外,还通过 ZenML 的 Python 包提供了一个用于测试的 ZenML 服务器。

[!WARNING]
您需要安装 Docker(>= v27.1.1)

为了方便使用,您可以使用以下命令启动整个本地开发基础设施:

poetry poe local-infrastructure-up

您还可以使用以下命令停止 ZenML 服务器和所有 Docker 容器:

poetry poe local-infrastructure-down

[!WARNING]
在 macOS 上运行时,在启动服务器之前,请导出以下环境变量:
export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
否则,本地服务器与管道之间的连接将会中断。🔗 更多详情请参见 此问题
使用 Poe the Poet 时会默认执行此操作。

启动实时推理 RESTful API:

poetry poe run-inference-ml-service

[!IMPORTANT]
由 RESTful API 调用的 LLM 微服务,只有在将 LLM 部署到 AWS SageMaker 后才能正常工作。

ZenML

仪表板 URL:localhost:8237

默认凭据:

  • username: default
  • password: (留空)

→ 了解更多关于使用和设置 ZenML 的信息。

Qdrant

REST API URL:localhost:6333

仪表板 URL:localhost:6333/dashboard

→ 了解更多关于使用和设置 Qdrant with Docker 的信息。

MongoDB

数据库 URI:mongodb://llm_engineering:llm_engineering@127.0.0.1:27017

数据库名称:twin

默认凭据:

  • username: llm_engineering
  • password: llm_engineering

→ 了解更多关于使用和设置 MongoDB with Docker 的信息。

您可以使用 IDE 的 MongoDB 插件(需单独安装)来查询您的 MongoDB 集合,连接时需使用 Docker 容器内托管的 MongoDB 数据库 URI:mongodb://llm_engineering:llm_engineering@127.0.0.1:27017

[!IMPORTANT]
与训练或运行 LLM 相关的所有操作(例如训练、评估、推理)都必须在设置好 AWS SageMaker 的前提下才能执行,具体说明请参见下一节关于云基础设施的内容。

云基础设施(用于生产)

在这里,我们将简要介绍如何将项目部署到 AWS 及其他无服务器服务。我们不会深入细节(因为书中已详细说明),而只列出您需要完成的主要步骤。

首先,重新安装包含 AWS 组的 Python 依赖项:

poetry install --with aws

AWS SageMaker

[!NOTE]
第 10 章“使用 AWS SageMaker 实现 LLM 微服务”部分提供了逐步指导。

此时,我们假设您已安装 AWS CLI,并且已正确配置了 AWS CLI 以及项目 .env 文件中的环境变量,使用的是具有管理员权限的 AWS 用户。

为确保最佳实践,我们需要创建一个仅限于创建和删除与 AWS SageMaker 相关资源的新 AWS 用户。通过运行以下命令创建该用户:

poetry poe create-sagemaker-role

这将在您的仓库根目录下生成一个 sagemaker_user_credentials.json 文件,其中包含新的 AWS_ACCESS_KEYAWS_SECRET_KEY 值。但在替换您的新 AWS 凭证之前,还需运行以下命令以创建执行角色(使用您的管理员凭证创建)。

要创建 AWS SageMaker 代表我们访问其他 AWS 资源所使用的 IAM 执行角色,请运行:

poetry poe create-sagemaker-execution-role

这将在您的仓库根目录下生成一个 sagemaker_execution_role.json 文件,其中包含新的 AWS_ARN_ROLE 值。请将其添加到您的 .env 文件中。

一旦您更新了 .env 文件中的 AWS_ACCESS_KEYAWS_SECRET_KEYAWS_ARN_ROLE 值,就可以开始使用 AWS SageMaker。请注意,此步骤是完成 AWS 设置的关键。

训练

我们通过 ZenML 运行以下命令来启动训练管道:

poetry poe run-training-pipeline

这将直接在 SageMaker 中使用 configs/training.yaml 中的配置启动训练代码。您可以在 Comet ML 的仪表板上查看结果。

我们通过 ZenML 运行以下命令来启动评估管道:

poetry poe run-evaluation-pipeline

这将直接在 SageMaker 中使用 configs/evaluating.yaml 中的配置启动评估代码。您可以在保存到 Hugging Face 个人主页的 *-results 数据集中查看结果。

推理

要创建 AWS SageMaker 推理端点,请运行:

poetry poe deploy-inference-endpoint

要测试它,请运行:

poetry poe test-sagemaker-endpoint

要删除它,请运行:

poetry poe delete-inference-endpoint

AWS:ML 管道、工件和容器

ML 管道、工件和容器都是通过利用 ZenML 的部署功能部署到 AWS 的。因此,您必须注册一个 ZenML Cloud 账户,并按照其指南将 ZenML 堆栈部署到 AWS。否则,我们在 第 11 章“将 LLM Twin 的管道部署到云端”部分提供了逐步指导,说明您需要做什么。

Qdrant 和 MongoDB

我们在部署项目时利用了 Qdrant 和 MongoDB 的无服务器选项。因此,您可以选择遵循 QdrantMongoDB 提供的教程,分别为它们创建一个免费集群,或者参考 第 11 章“将 LLM Twin 的管道部署到云端”部分,按照我们的逐步指导进行操作。

GitHub Actions

我们使用 GitHub Actions 来实现 CI/CD 管道。要实现您自己的 CI/CD 管道,您需要 fork 我们的仓库,并在您的 forked 仓库中将以下环境变量设置为 Actions secrets:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY
  • AWS_ECR_NAME
  • AWS_REGION

我们还在 第 11 章“将 LLMOps 添加到 LLM Twin”部分提供了关于如何设置这一切的说明。

Comet ML 和 Opik

如果您创建了一个 Comet 账户并正确设置了 COMET_API_KEY 环境变量,就可以在它们的自托管仪表板上查看结果。由于 Opik 是基于 Comet 构建的,因此您无需为 Opik 做任何额外的设置:

💰 项目运行成本

我们将主要使用各服务的免费层级,除了 AWS 和 OpenAI 的 API,它们都是按需付费的服务。按照我们的默认配置,项目一次性运行的成本大约为 ~$25(其中大部分来自使用 AWS SageMaker 进行训练和推理)。

⚡ 管道

所有机器学习管道都将由 ZenML 在后台进行编排。在运行一些实用脚本时会有少数例外,比如从数据仓库导出或导入数据。

ZenML 管道是本项目中大多数流程的入口点。它们位于 pipelines/ 文件夹下。因此,当你想要理解或调试某个工作流时,从 ZenML 管道入手是最好的方法。

要查看正在运行的管道及其结果:

  • 前往你的 ZenML 控制台
  • 进入 Pipelines 部分
  • 点击特定的管道(例如 feature_engineering
  • 点击特定的运行实例(例如 feature_engineering_run_2024_06_20_18_40_24
  • 点击 DAG 中的特定步骤或工件以获取更多详细信息。

现在,让我们来探索你可以运行的所有管道。从数据收集到训练,我们将按照自然顺序呈现它们,以便端到端地完成整个 LLM 项目。

数据管道

运行数据收集 ETL:

poetry poe run-digital-data-etl

[!WARNING] 为了使 LinkedIn 和 Medium 的爬虫正常工作(它们底层使用 Selenium),你的系统必须安装 Chrome 浏览器(或其他基于 Chromium 的浏览器)。根据你当前的 Chrome 版本,Chromedriver 将会自动安装以支持 Selenium。另一种选择是直接使用我们的 Docker 镜像来运行所有任务,这样你就无需安装 Chrome。例如,要同时运行所有管道,可以执行 poetry poe run-docker-end-to-end-data-pipeline。请注意,该命令也可以调整以支持其他任何管道。

如果由于其他原因你没有安装基于 Chromium 的浏览器,也不想使用 Docker,还有两种方法可以绕过这个 Selenium 问题:

  • 注释掉所有与 Selenium、Chrome 相关的代码,以及所有依赖 Selenium 进行抓取的链接(如 Medium),例如从 application.crawlers.base 中的 chromedriver_autoinstaller.install() 命令,以及其他检查 Chrome 驱动和 Selenium 是否可用的静态调用。
  • 在 GitHub Codespaces 或其他云虚拟机等环境中,使用 CLI 安装 Google Chrome,命令与我们 Dockerfile 中的命令相同。

要添加更多需要收集数据的链接,请前往 configs/digital_data_etl_[author_name].yaml 文件,并将它们添加到 links 字段中。此外,你还可以创建一个全新的配置文件,并在运行时指定它,例如:python -m llm_engineering.interfaces.orchestrator.run --run-etl --etl-config-filename configs/digital_data_etl_[your_name].yaml

运行特征工程管道:

poetry poe run-feature-engineering-pipeline

生成指令数据集:

poetry poe run-generate-instruct-datasets-pipeline

生成偏好数据集:

poetry poe run-generate-preference-datasets-pipeline

将上述所有步骤压缩成一个单一管道运行:

poetry poe run-end-to-end-data-pipeline
``。

### 实用管道

将数据从数据仓库导出为 JSON 文件:
```bash
poetry poe run-export-data-warehouse-to-json

从 JSON 文件向数据仓库导入数据(默认情况下,它会从 data/data_warehouse_raw_data 目录导入数据):

poetry poe run-import-data-warehouse-from-json
``。

将 ZenML 工件导出为 JSON:
```bash
poetry poe run-export-artifact-to-json-pipeline
``。

这会将以下 ZenML 工件以 JSON 文件的形式导出到 `output` 文件夹中(采用最新版本):
- cleaned_documents.json
- instruct_datasets.json
- preference_datasets.json
- raw_documents.json

你可以通过调整 `configs/export_artifact_to_json.yaml` 配置文件来指定要导出哪些工件。

### 训练管道

运行训练管道:
```bash
poetry poe run-training-pipeline
``。

运行评估管道:
```bash
poetry poe run-evaluation-pipeline
``。

> [!WARNING]
> 为使此功能正常运行,务必按照 [设置云基础设施(用于生产环境)](#set-up-cloud-infrastructure-for-production) 中的说明正确配置 AWS SageMaker。

### 推理管道

使用测试查询调用 RAG 检索模块:
```bash
poetry poe call-rag-retrieval-module
``。

启动实时推理 RESTful API:
```bash
poetry poe run-inference-ml-service
``。

使用测试查询调用实时推理 RESTful API:
```bash
poetry poe call-inference-ml-service
``。

请记住,你可以在 [Opik](https://www.comet.com/opik) 上监控提示追踪信息。

> [!WARNING]
> 为使推理服务正常运行,你必须已将 LLM 微服务部署到 AWS SageMaker,具体操作请参考“设置云基础设施”部分。

### 代码检查与格式化(QA)

检查或修复代码中的 linting 问题:
```bash
poetry poe lint-check
poetry poe lint-fix
``。

检查或修复代码格式问题:
```bash
poetry poe format-check
poetry poe format-fix
``。

检查代码中是否存在泄露的凭据:
```bash
poetry poe gitleaks-check
``。

### 测试

使用以下命令运行所有测试:
```bash
poetry poe test
``。

## 🏃 运行项目

根据上述设置和使用步骤,假设本地和云基础设施均正常运行,并且 `.env` 文件已按预期填写完毕,按照以下步骤即可端到端运行 LLM 系统:

### 数据

1. 收集数据:`poetry poe run-digital-data-etl`

2. 计算特征:`poetry poe run-feature-engineering-pipeline`

3. 计算指令数据集:`poetry poe run-generate-instruct-datasets-pipeline`

4. 计算偏好对齐数据集:`poetry poe run-generate-preference-datasets-pipeline`

### 训练

> [!IMPORTANT]
> 从现在开始,要使这些步骤正常运行,你需要正确设置 AWS SageMaker,例如执行 `poetry install --with aws` 并填写与 AWS 相关的环境变量和配置。

5. 使用 SFT 对 Llama 3.1 进行微调:`poetry poe run-training-pipeline`

6. 如果要进行 DPO 训练,进入 `configs/training.yaml` 文件,将 `finetuning_type` 修改为 `dpo`,然后再次运行 `poetry poe run-training-pipeline`。

7. 评估微调后的模型:`poetry poe run-evaluation-pipeline`

### 推理

> [!IMPORTANT]
> 从现在开始,要使这些步骤正常运行,您需要正确设置 AWS SageMaker,例如执行 `poetry install --with aws` 命令,并填写与 AWS 相关的环境变量和配置。

8. 仅调用 RAG 检索模块:`poetry poe call-rag-retrieval-module`

9. 将 LLM Twin 微服务部署到 SageMaker:`poetry poe deploy-inference-endpoint`

10. 测试 LLM Twin 微服务:`poetry poe test-sagemaker-endpoint`

11. 启动端到端 RAG 服务器:`poetry poe run-inference-ml-service`

12. 测试 RAG 服务器:`poetry poe call-inference-ml-service`

## 📄 许可证

本课程是一个基于 MIT 许可证发布的开源项目。因此,只要您分发我们的 LICENSE 文件并注明我们的工作出处,就可以放心地克隆或 fork 该项目,并将其作为您各种项目的灵感来源(例如,大学作业、毕业设计、个人项目等)。

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|1周前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|1周前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

160.4k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

109.2k|★★☆☆☆|今天
开发框架图像Agent

gemini-cli

gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。

100.8k|★★☆☆☆|1周前
插件Agent图像

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|1周前
插件开发框架