LLM 后训练实践
第6课:项目报告与总结

推荐项目方向

7 个推荐的课程项目方向,涵盖数学推理、安全对齐、中文写作、代码推理、领域问答、视觉问答、工具调用智能体

项目方向总览

以下 7 个方向覆盖了本课程的核心后训练技术。每个方向都要求结合至少两种后训练技术,完成完整的"数据准备 → 训练 → 评估"流程。

方向技术组合难度推荐模型预计 GPU 时间
数学推理助手SFT + GRPO★★★Qwen3-1.7B-Base8-12h (A100-80G)
安全对齐助手SFT + DPO★★Qwen3-1.7B4-6h (A100-40G)
中文写作助手SFT + SimPO★★Qwen3-1.7B4-6h (A100-40G)
代码推理模型SFT + RLVR★★★Qwen3-4B-Base10-15h (A100-80G)
领域问答系统SFT + 量化 + 部署★★Qwen3-4B4-6h (A100-40G)
视觉问答模型多模态 SFT + DPO★★★Qwen3-VL-2B6-10h (A100-40G)
工具调用智能体SFT + 智能体循环★★Qwen3-1.7B4-6h (A100-40G)

选择建议

  • 如果你对推理感兴趣且有充足 GPU 资源,选择数学推理助手代码推理模型
  • 如果你偏好应用导向且资源有限,选择安全对齐助手中文写作助手领域问答系统
  • 如果你想探索前沿方向,选择视觉问答模型工具调用智能体

方向一:数学推理助手

项目描述

构建一个具备逐步推理能力的数学助手。先用数学指令数据对基座模型进行 SFT 冷启动,再用 GRPO + 可验证奖励进一步强化推理能力。核心挑战在于设计好奖励函数并监控推理行为的涌现过程。

技术要求

  • Stage 1 — SFT 冷启动

    • 在数学推理指令数据上微调 Qwen3-1.7B-Base
    • 数据应包含完整的思维链(step-by-step reasoning)
    • 使用 QLoRA 微调,约 1-2 个 epoch
  • Stage 2 — GRPO 推理强化

    • 在 GSM8K 或 MATH 训练集上用 GRPOTrainer 训练
    • 奖励函数:数学正确性(+1/0) + 格式奖励(可选)
    • num_generations=8,训练 300-500 步
  • 评估

    • GSM8K test set 准确率
    • MATH-500 准确率
    • 推理链质量分析(是否有逐步计算、自我验证)

推荐数据集

数据集类型规模用途
gsm8k小学数学7.5K 训练 + 1.3K 测试GRPO 训练 + 评估
MATH竞赛数学12.5K 训练 + 5K 测试进阶评估
MetaMathQA增强数学395KSFT 冷启动
NuminaMath-CoT思维链数学860KSFT 冷启动

参考基线

模型GSM8K方法
Qwen3-1.7B-Base(基座)~30%无后训练
+ SFT 冷启动~55-60%SFT on math data
+ GRPO 300 步~65-70%SFT + GRPO
Qwen3-1.7B Instruct(官方)~85%工业级后训练
DeepSeek-R1-Distill-Qwen-1.5B~83%蒸馏

方向二:安全对齐助手

项目描述

构建一个兼顾有用性安全性的对话助手。先用通用指令数据 SFT 训练基本对话能力,再用 DPO 在安全偏好数据上进行对齐。核心挑战在于平衡有用性和安全性——避免模型过度拒绝(over-refusal)。

技术要求

  • Stage 1 — SFT 基础对话

    • 在通用指令数据上微调 Qwen3-1.7B
    • 确保模型具备基本的指令跟随能力
  • Stage 2 — DPO 安全对齐

    • 构建安全偏好数据(chosen = 安全且有用的回复,rejected = 不安全或过度拒绝的回复)
    • 使用 DPOTrainer 训练
    • 精心调节 β\beta 参数
  • 评估

    • 有用性:MT-Bench 风格评估
    • 安全性:有害请求拒绝率(目标 >95%)
    • 过度拒绝率:正常请求被错误拒绝的比例(目标 <5%)

推荐数据集

数据集类型规模用途
UltraChat-200K通用对话200KSFT 训练
PKU-SafeRLHF安全偏好361KDPO 训练
BeaverTails安全分类330K评估
HarmBench安全评估510评估

方向三:中文写作助手

项目描述

构建一个特定风格的中文写作助手(如小红书文案、学术摘要、新闻报道等)。先用写作指令数据 SFT 训练基本写作能力,再收集写作偏好数据用 SimPO 进行风格对齐。

技术要求

  • Stage 1 — SFT 写作基础

    • 收集或生成特定风格的中文写作数据(可用 Qwen3-32B API 生成)
    • 数据应覆盖多种写作场景:标题生成、正文写作、风格转换等
  • Stage 2 — SimPO 风格对齐

    • 对同一写作任务生成多个版本
    • 按写作质量/风格匹配度标注偏好
    • 使用 SimPO(无需参考模型)进行训练
  • 评估

    • 风格匹配度(LLM-as-Judge)
    • 写作流畅度和创意
    • 与 SFT-only 模型的对比

推荐数据集

数据集类型规模用途
COIG-CQIA中文指令多个子集SFT 训练
Belle中文指令3.5MSFT 训练
自构建偏好数据写作偏好建议 1K+SimPO 训练

数据构建建议:可以用 Qwen3-32B API 对同一写作任务生成多个版本(调节 temperature),然后人工选择最符合目标风格的作为 chosen,其余作为 rejected。建议收集 1000-3000 条偏好对。


方向四:代码推理模型

项目描述

使用代码执行结果作为可验证奖励,训练模型的代码生成和推理能力。先用代码指令数据 SFT,再用 RLVR(代码执行正确性作为奖励)强化。

技术要求

  • Stage 1 — SFT 代码基础

    • 在代码指令数据上微调
    • 重点训练模型生成可执行的 Python 代码
  • Stage 2 — RLVR 强化

    • 奖励函数:执行代码 → 检查输出是否与标准答案一致
    • 使用沙盒环境(如 subprocess)安全执行代码
    • GRPO 训练 300-500 步
  • 评估

    • HumanEval pass@1
    • MBPP pass@1
    • 代码质量分析

推荐数据集

数据集类型规模用途
CodeAlpaca代码指令20KSFT 训练
MBPPPython 编程974RLVR + 评估
HumanEval代码生成164评估
CodeContests竞赛编程13K进阶 RLVR

安全提醒:代码执行必须在沙盒环境中进行。建议使用 Docker 容器或限制执行时间/内存的 subprocess 调用。绝不要在宿主机上直接执行模型生成的代码。


方向五:领域问答系统

项目描述

在特定领域(如医疗、法律、金融等)数据上微调模型,量化压缩后部署为可交互的 API 服务。重点在于端到端的实用性——从微调到部署。

技术要求

  • Stage 1 — 领域 SFT

    • 收集领域问答数据(可选医疗、法律、金融等)
    • 微调 Qwen3-4B 模型
  • Stage 2 — 量化压缩

    • 对微调后的模型进行 GPTQ/AWQ INT4 量化
    • 对比量化前后的质量
  • Stage 3 — 部署

    • 使用 vLLM 或 llama.cpp 部署
    • 编写简单的 API 接口(FastAPI/Gradio)
    • 测量 QPS(queries per second)
  • 评估

    • 领域问答准确率
    • 部署性能指标(延迟、吞吐量)
    • 量化对领域知识的影响

推荐数据集

数据集领域规模用途
CMB中文医疗多种SFT + 评估
DISC-LawLLM中文法律403KSFT
FinGPT金融多种SFT

方向六:视觉问答模型

项目描述

微调 VLM 模型的视觉问答能力,并用 DPO 减少视觉幻觉。这是当前多模态 AI 的热门方向。

技术要求

  • Stage 1 — 视觉指令微调

    • 使用 LLaMA-Factory 对 Qwen3-VL-2B-Instruct 做 LoRA 微调
    • 在视觉指令数据上训练
  • Stage 2 — DPO 减少幻觉

    • 构建视觉偏好数据(faithful vs hallucinated 回复)
    • 使用 DPO 训练减少幻觉
  • 评估

    • 视觉问答准确率
    • 幻觉率(POPE benchmark)
    • 细粒度幻觉类型分析

推荐数据集

数据集类型规模用途
LLaVA-Instruct-150K视觉指令150KSFT
RLAIF-V视觉偏好83KDPO
POPE幻觉评估9K评估
MMBench多模态综合多种评估

计算资源提醒:VLM 的微调因为需要处理图像 token,显存占用比纯文本模型高约 50%。建议使用 A100-40G 或更高配置。使用 QLoRA 可以在 24GB GPU 上运行 VLM-2B 的微调。


方向七:工具调用智能体

项目描述

训练模型的函数调用能力,搭建完整的多步工具调用智能体。从 SFT 训练开始,逐步构建能够在真实场景中使用工具的 AI 助手。

技术要求

  • Stage 1 — 函数调用 SFT

    • 在工具调用对话数据上微调 Qwen3-1.7B
    • 训练模型生成合法的 JSON 函数调用
  • Stage 2 — 智能体循环构建

    • 实现完整的 Agent Loop:输入解析 → 工具选择 → 参数生成 → 执行 → 结果整合
    • 支持多步工具调用
    • 支持错误处理和重试
  • 评估

    • 单步函数调用准确率
    • 多步任务完成率
    • 与 Qwen3-1.7B Instruct 原生能力对比

推荐数据集

数据集类型规模用途
Glaive Function Calling v2函数调用113KSFT
ToolBench工具使用126KSFT + 评估
BFCL函数调用评估2K评估

项目时间规划建议

第 3-4 课间(1 周):确定项目方向和小组成员,初步调研相关数据集和方法

第 4-5 课间(1 周):完成数据收集和预处理,启动 Stage 1 训练

第 5-6 课间(1-2 周):完成 Stage 2 训练和评估,准备演示

第 6 课前 3 天:撰写项目报告,制作演示 PPT,准备 Demo

合作分工建议(3 人组为例):

  • 同学 A:数据收集与预处理、训练配置
  • 同学 B:模型训练与调优、超参数搜索
  • 同学 C:评估框架搭建、报告撰写、演示准备

每位同学都应理解项目全流程,在报告中说明各自贡献。