个人简介
作者简介:全栈研发,具备端到端系统落地能力,专注大模型的压缩部署、多模态理解与 Agent 架构设计。 热爱“结构”与“秩序”,相信复杂系统背后总有简洁可控的可能。
我叫观熵。不是在控熵,就是在观测熵的流动
个人主页:观熵
个人邮箱:privatexxxx@163.com
座右铭:愿科技之光,不止照亮智能,也照亮人心!
专栏导航
观熵系列专栏导航:
AI前沿探索:从大模型进化、多模态交互、AIGC内容生成,到AI在行业中的落地应用,我们将深入剖析最前沿的AI技术,分享实用的开发经验,并探讨AI未来的发展趋势
AI开源框架实战:面向 AI 工程师的大模型框架实战指南,覆盖训练、推理、部署与评估的全链路最佳实践
计算机视觉:聚焦计算机视觉前沿技术,涵盖图像识别、目标检测、自动驾驶、医疗影像等领域的最新进展和应用案例
国产大模型部署实战:持续更新的国产开源大模型部署实战教程,覆盖从 模型选型 → 环境配置 → 本地推理 → API封装 → 高性能部署 → 多模型管理 的完整全流程
TensorFlow 全栈实战:从建模到部署:覆盖模型构建、训练优化、跨平台部署与工程交付,帮助开发者掌握从原型到上线的完整 AI 开发流程
PyTorch 全栈实战专栏: PyTorch 框架的全栈实战应用,涵盖从模型训练、优化、部署到维护的完整流程
深入理解 TensorRT:深入解析 TensorRT 的核心机制与部署实践,助力构建高性能 AI 推理系统
Megatron-LM 实战笔记:聚焦于 Megatron-LM 框架的实战应用,涵盖从预训练、微调到部署的全流程
AI Agent:系统学习并亲手构建一个完整的 AI Agent 系统,从基础理论、算法实战、框架应用,到私有部署、多端集成
DeepSeek 实战与解析:聚焦 DeepSeek 系列模型原理解析与实战应用,涵盖部署、推理、微调与多场景集成,助你高效上手国产大模型
端侧大模型:聚焦大模型在移动设备上的部署与优化,探索端侧智能的实现路径
行业大模型 · 数据全流程指南:大模型预训练数据的设计、采集、清洗与合规治理,聚焦行业场景,从需求定义到数据闭环,帮助您构建专属的智能数据基座
机器人研发全栈进阶指南:从ROS到AI智能控制:机器人系统架构、感知建图、路径规划、控制系统、AI智能决策、系统集成等核心能力模块
人工智能下的网络安全:通过实战案例和系统化方法,帮助开发者和安全工程师识别风险、构建防御机制,确保 AI 系统的稳定与安全
智能 DevOps 工厂:AI 驱动的持续交付实践:构建以 AI 为核心的智能 DevOps 平台,涵盖从 CI/CD 流水线、AIOps、MLOps 到 DevSecOps 的全流程实践。
C++学习笔记?:聚焦于现代 C++ 编程的核心概念与实践,涵盖 STL 源码剖析、内存管理、模板元编程等关键技术
AI × Quant 系统化落地实战:从数据、策略到实盘,打造全栈智能量化交易系统
📘《合成数据是出路吗?基于 LLM 生成数据的注意事项与实战技巧》
1️⃣ 引言:你真的需要合成数据吗?
你可能会问:
“我们没有几十万条高质量标注数据,能不能让 GPT 帮我们‘造点语料’?”
“能不能用大模型来训大模型?”
答案是:可以,但别想当然。
✅ 合成数据不是万能钥匙,但它是非常实用的应急加速器
什么时候你真的应该考虑用合成数据?
场景 | 判断标准 |
---|---|
启动项目初期 | 自己数据还没准备好,想快速试训模型 |
标签样本稀缺 | 无人力标注,但模型能给出拟态结构数据 |
任务结构明确 | 明确的输入→输出→目标,能规范Prompt生成 |
多轮对话 / QA 样本补充 | 想快速补齐指令任务、Chat结构任务 |
❌ 合成数据不能干什么?
不建议用途 | 原因说明 |
---|---|
精细法律判断任务 | 生成可能胡说,后果严重 |
医疗诊断问答 | 幻觉风险极高,需专家验证 |
主观情绪类数据集 | 大模型容易投射“刻板情绪” |
无结构网页任务 | 模型生成格式不可控,容易偏离真实网页风格 |
🧠 判断要不要用合成数据的「3问自测法」:
1. 我的任务结构明确吗?(输入 / 输出格式清晰)
2. 模型可以从历史数据中学习规律吗?(有范式)
3. 我有机制评估它生成得对不对吗?(可验证)
✅ 如果这三题都答“是”,合成数据就是你的“训模加速器”。
2️⃣ 哪些任务适合用 LLM 补数据?
我们不搞概念,看几个典型的 适合合成数据 的任务类型。
🟩 ✅ 类型一:指令式问答任务(最适合)
示例任务 | 构造方式 |
---|---|
政策助手 QA | Prompt:根据 XX 政策生成典型问题与答复 |
产品问答 | Prompt:根据手册内容生成用户提问与客服回答 |
法规条款解释 | Prompt:输出常见误解 + 解释 |
✅ 结构清晰、风险低、容易评估
✅ 可以加入场景提示和角色说明,提升质量
🟦 ✅ 类型二:摘要 / 重写 / 同义表达
示例任务 | 构造方式 |
---|---|
文本摘要 | Prompt:将以下段落总结为一句话 |
风格转换 | Prompt:将正式表达改为通俗口语(或反之) |
长文本提要 | Prompt:给多段内容写出三要点 |
✅ 非常适合增强模型语言压缩、结构理解能力
⚠️ 注意评估生成内容的信息丢失或增加
🟨 ⚠️ 类型三:分类任务(仅限标签简单场景)
示例任务 | 构造方式 |
---|---|
情绪分类 | Prompt:生成5条负面、5条正面客户评价 |
场景归类 | Prompt:生成关于财务报销、出差审批、项目延期的对话 |
用户意图识别 | Prompt:生成不同“搜索意图”的提问样本 |
⚠️ LLM 很可能“标签打得不准确”,建议后续加一轮自动审核或人工复检
⚠️ 不建议用于舆情判断 / 多标签情绪任务这类“玄学偏多”的任务
🟥 🚫 不推荐任务类型:
类型 | 原因 |
---|---|
医疗诊断类问答 | 幻觉成本高 |
法律判断 / 裁定任务 | 高度依赖真实案例 |
合同生效判断 | 隐含逻辑太多,模型容易编 |
多模态联合数据 | 图文对不稳定、生成歧义 |
3️⃣ Prompt 工程:高质量合成语料的设计范式
你合成的数据训不好,99%是 Prompt 没设计好。
生成数据用的 Prompt,和你平时问问题的 Prompt 完全不是一个东西。
✅ Prompt 工程的“三要素”结构
1. 背景角色设定(你是xxx领域专家/助手)
2. 明确任务说明(请帮我构造xx格式的样本)
3. 输出格式约束(以json格式返回 / 分段标注结构)
✍️ 示例:构造政务问答对
你是一名熟悉中国政务政策的AI助手。
请你生成5组常见的用户提问和回答,内容围绕“住房公积金提取”展开。
每组结构如下:
【问题】:xxx
【回答】:xxx
要求回答准确、简洁、不使用网络俚语。
🧪 示例:情绪分类样本构造
你是一名客服数据专家。
请生成10条顾客评价,每条标注情绪类别(积极/中性/消极),格式如下:
{"text": "这个商品太棒了", "label": "积极"}
要求内容真实、不重复,不能包含明显广告词。
📦 推荐技巧清单:
Prompt技巧 | 效果 |
---|---|
Few-shot 提示 | 加几条参考例子,模型更稳 |
输出格式声明 | 指定 JSON / 表格 / Markdown 格式 |
内容约束条件 | 指明行业/禁用词/字数/语气等 |
多轮互动补全 | 逐轮构造对话语料 / QA Pair 延展 |
4️⃣ 幻觉风险 × 标签偏差:LLM 造出来的“毒数据”要怎么防?
你以为模型在“造数据”,其实它在“瞎编内容”。
合成语料的最大坑不是质量差,而是看起来“像对的”,实则“有毒”。
😱 常见 LLM 合成数据中的“幻觉”表现:
类型 | 示例 | 后果 |
---|---|---|
编造实体/术语 | 回答中引入不存在的“新政策”或“伪技术术语” | 模型学到“错误知识” |
标签错配 | 负面评论被打上“积极”标签 | 分类任务精度下降 |
风格漂移 | 商务问答中混入网络俚语或Chat风格回复 | 风格不统一,任务泛化差 |
模板结构混乱 | 指令输出结构不齐全,input/output对不齐 | 训练模型易输出“空话”“错位”内容 |
🧠 为什么幻觉会出现在合成数据中?
- 模型太强,但太“自由”:它是个“说得出就像对的”专家,不是一个可靠数据库
- Prompt 没有设边界:没明确知识范围、术语限制、输出模板
- 多轮生成中模型“自嗨”:它自己给自己接话接偏了
- 标签本身由模型生成:没有外部标注审校,容易出偏差
🛡️ 幻觉防护策略:三层保险机制
✅ 保险1:Prompt中设定“知识边界”
请根据《人力资源政策手册(2023年)》,生成以下问题的标准回答。
请勿引入该文档中未出现的政策或术语。
✅ 保险2:后处理审查 + 一致性检查
你可以再用另一个 LLM 检查一下生成内容是否自洽 / 违背常识:
“以下是一个自动生成的客服问答,请判断其中是否有逻辑错误、虚假术语或答非所问。”
甚至可以要求第二个模型“打分”+“标注原因”。
✅ 保险3:使用真实样本嵌入引导
最简单:先给它几条真实样本,再让它生成类似的内容:
【示例问题】:合同审批流程要多久?
【示例回答】:合同审批流程一般为3~5个工作日...
你现在请模仿上述风格,生成3组类似的问题与回答:
✅ 合成不是“自动生成训练集”,而是“协助你构造数据草稿 → 再进入质量控制”
5️⃣ 自动质量评估方法(GPT打分 × Rule Check × 多模型投票)
🤖 你不可能人工一条条过数据,但你可以:
- ✅ 批量用 GPT/Claude 自动打分
- ✅ 用规则自动筛掉格式错的
- ✅ 用多个模型比输出结果,看一致性
📐 评估方法一:结构与格式验证(Rule Check)
校验内容 | 检查方式 |
---|---|
是否有 instruction/input/output 三字段 | 字段完整性校验 |
input/output 是否为空 | 空值校验 |
output 是否超过设定长度限制 | 长度范围控制 |
output 是否包含违禁词 | 简单关键词屏蔽(如“测试回答”) |
Python 代码示例:
def is_valid_sample(sample):
keys = ["instruction", "input", "output"]
if not all(k in sample for k in keys):
return False
if not sample["output"] or len(sample["output"]) < 10:
return False
return True
🤖 评估方法二:LLM 打分评估(Self-Eval)
用 ChatGPT / Claude 给每条合成样本“打分 + 说明原因”。
Prompt 示例:
你是一名训练数据审核专家。请阅读以下 instruction/input/output 数据,并从以下角度进行评分:
1. 回答是否准确
2. 结构是否合理
3. 是否存在不真实或错误内容
请给出1~5分,并说明理由。
可配合 openai.ChatCompletion.create()
批量跑一遍。
👥 评估方法三:多模型投票(Model Agreement)
原理是:多个模型对同一个 input 的回答是否趋同。
- 如果一个样本在多个模型上能“训出一致回答”,它大概率是质量高的
- 如果差异极大,说明样本可能“不可训”或语义偏差高
📦 总结:推荐评估工作流(自动 + 半自动)
合成完成
↓
格式校验(结构完整 / 关键词筛查)
↓
GPT审查打分(准确性 × 风格 × 一致性)
↓
Embedding去重 / 相似样本聚类
↓
训练前手工抽样20条人工验证
↓
入库 + 版本标记 + 权重可控
6️⃣ 用数据增强套路构造:翻译 × 同义转换 × 模式迁移
你可能觉得:“合成数据 = 让 GPT 编几句问答”
但其实,构造高质量训练数据,有一套成熟的数据增强套路可以套用。
尤其在你只有少量样本的情况下,数据增强(Data Augmentation)就是你的“训练放大器”。
🎯 本节目标:
掌握三种能用 LLM 批量增强语料的经典方法:
方法类型 | 应用场景 | 增强效果 |
---|---|---|
同义转换 | 扩展输入多样性,避免模型过拟合 | 保留语义,丰富问法 |
翻译回译 | 构造近义表达、打乱语言模式 | 增强语言通用性 |
模式迁移 | 改变风格、口吻、立场,训练多风格模型 | 训练出“切换角色能力” |
🟩 一、同义转换(Paraphrasing)
✅ 输入不变、语义不变,但表达方式变化
原句 | 增强样本 |
---|---|
“怎么在线申请报销?” | “我可以在哪提交报销申请?” |
“离职流程需要多长时间?” | “从辞职到办完手续大概多久?” |
Prompt 示例:
你是一个擅长句式转换的客服问答专家。
请将以下句子改写成不同说法,保留原意,但不要重复关键词。
输出3个版本,用编号列出。
原句:怎么在线申请报销?
用 GPT 调用自动生成:
from openai import OpenAI
def paraphrase(prompt):
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}],
temperature=0.8
)
return response['choices'][0]['message']['content']
🟨 二、翻译回译(Back-Translation)
✅ 原句 → 英文 → 中文(生成近义表达)
流程 | 示例 |
---|---|
中文原句 → 英文 → GPT再译中文 | “如何重置密码?” → “How can I reset…” → “我该如何找回密码?” |
优点:
- 有助于打破“模型记住表达模板”的问题
- 可生成更口语 / 书面 / 平铺直叙等风格变化版本
推荐做法:
def back_translate(text):
# 中文 → 英文
en = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": f"Translate to English:\n{text}"}]
)['choices'][0]['message']['content']
# 英文 → 中文(变体)
zh = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": f"Translate this to Chinese, vary the expression:\n{en}"}]
)['choices'][0]['message']['content']
return zh
🟦 三、模式迁移(Style Transfer / Role Flip)
✅ 输入/输出内容不变,但风格/立场/角色发生转变
示例:客服风格切换
风格 | 表达形式 |
---|---|
正常客服 | “请您填写申请单后上传相关发票” |
机器人口吻 | “您好,为了完成流程,请执行以下步骤” |
口语风格 | “你就把发票拍照传上来就行啦!” |
示例:立场反转
输入 | 输出(正向) | 输出(反向) |
---|---|---|
“网约车应纳入城市交通规划” | “因为它方便市民出行,应纳入规划” | “因为容易造成拥堵,不宜优先纳入” |
Prompt 示例(风格转换):
你是一个语气风格专家。请将以下客服回答转换为更亲切的口语表达。
原句:请您通过系统提交报销申请,并附上发票。
Prompt 示例(立场反转):
你是一个辩论专家。请针对以下观点,撰写一条相反立场的回答。
观点:在家办公效率更高。
✅ 总结:三类数据增强方法适合组合使用
方法 | 推荐数量级 | 推荐用途 |
---|---|---|
同义转换 | 原始语料 × 3 | 扩展输入问法,丰富prompt |
翻译回译 | 原始语料 × 2 | 训练语言表达通用性 |
风格迁移 | 样本 × 1 | 训练场景适配能力 |
7️⃣ 多轮生成对话构造技巧:模拟人类聊天≠聊天生成
生成单轮 QA 很简单:提一个问题,给一个答复。
但当你想让模型训练“连续对话能力”,你就会发现:
❌ 连续生成多轮对话 ≠ 把 ChatGPT 聊天记录复制粘贴
❌ 模型很容易“接飞”自己说的话 → 出现自问自答、重复套娃、情节飘走
❌ 多轮对话结构容易乱,instruction 缺位、上下文紊乱、角色混杂
所以,构造能训的多轮对话样本,要比你想的复杂一点,但也可控。
🧠 多轮对话生成失败的常见表现:
症状类型 | 表现举例 | 可能原因 |
---|---|---|
角色错位 | 用户明明在问,下一轮变成“我告诉你…” | 模型上下文理解混乱 |
内容空转 | 连续三轮都在“好的”“明白了”“还有问题吗” | 模型没收到对话任务说明 |
逻辑跳跃 | 第一轮是问功能,第四轮回答法律问题 | 主题偏移,未设定话题边界 |
模型自嗨 | AI 问自己问题,自己接自己话 | 没有明确 USER / ASSISTANT 分工 |
多轮格式不一致 | 有的是 JSON,有的是纯文本,有的带引号有的没换行 | 缺乏统一生成模版 |
✅ 正确构建多轮对话的关键:结构、角色、上下文控制
📦 推荐结构格式(多轮 Chat 模型标准格式):
{
"conversation": [
{"role": "user", "content": "你好,我想咨询一下报销流程"},
{"role": "assistant", "content": "您好,请问您是员工还是外部供应商?"},
{"role": "user", "content": "我是新入职的员工"},
{"role": "assistant", "content": "好的,员工的报销流程是:提交申请 → 附发票 → 部门审批…"}
]
}
✍️ Prompt 构造技巧(用于生成 n 轮对话)
✅ 1)固定角色设定 + 背景设定
你是一名报销系统智能助手,现在和用户进行一段关于“报销流程”的对话。
请生成一段4轮对话,包括用户问题与助手回答,风格简洁专业。
对话格式如下:
[用户]:xxx
[助手]:xxx
✅ 2)给出样例参考(Few-shot增强):
示例对话:
[用户]:我想问下怎么填报销表?
[助手]:您好,您可以在OA系统中找到报销模板…
请模仿以上结构,生成关于“差旅报销”主题的新对话。
✅ 3)引导生成结构化输出(JSON或Markdown)
请用JSON数组格式返回每轮发言,包含role字段(user/assistant)和content字段,生成5轮问答。
🧪 示例生成 Prompt:
你是一位企业AI助手。请模拟你与员工进行的一段关于“办公电脑申请流程”的对话。
要求生成6轮对话,内容包括问题咨询、流程说明、审批注意事项。
返回格式如下:
[
{"role": "user", "content": "xxx"},
{"role": "assistant", "content": "xxx"},
...
]
🧰 额外提示:
问题 | 处理建议 |
---|---|
语义重复 / 套娃 | 控制每轮内容有新意,引导任务推进 |
越界回答 | 限定对话主题,如“只谈请假流程” |
角色串话 | 明确“你是 AI 助手,用户是员工”,并设标识 |
内容不自然 | 加温度 + 示例对话,提升真实度 |
🎯 小建议:优先训练 3~6 轮以内的对话样本
- 太短学不到上下文
- 太长模型记不住 + 幻觉增多
- 用固定格式模拟真实客服记录最为有效
8️⃣ 小结 × 推荐工作流与模板合集
你现在已经掌握了:
- ✅ 什么时候适合用 LLM 造数据,什么时候不该动这条路
- ✅ 如何设计 Prompt 让生成数据“有脑子”而不是“瞎编”
- ✅ 如何通过自动机制评估幻觉、结构、准确性
- ✅ 如何构造能训的单轮问答、多轮对话、风格变换语料
接下来,我们把全套合成数据工作流梳理成一个可复制执行的“操作蓝图”。
🧭 合成数据推荐全流程工作图
🎯 明确任务目标(QA / 摘要 / 分类 / 多轮对话)
↓
🧠 构建 Prompt 生成模板(角色 + 输入 + 格式 + 输出约束)
↓
🤖 LLM 生成候选样本(GPT/Claude/Mistral 等)
↓
📐 自动评估(结构校验 + GPT打分 + 模型一致性评估)
↓
🧽 筛除幻觉 / 错误 / 格式错样本
↓
📦 加入训练池(并做好 version / source 标记)
↓
🔁 模型效果验证 + 反馈样本再反哺(闭环)
📦 实用 Prompt 模板合集(可复制)
📌 单轮问答生成模板:
你是某领域AI助手,请基于[主题],生成3组典型用户问题及标准回答。格式如下:
【问题】:xxx
【回答】:xxx
要求回答准确,语言规范,不使用网络口吻。
📌 分类任务构造模板:
你是一位客户服务专家,请生成10条用户评论,并标注其情绪类别(正面/负面/中性),格式如下:
{"text": "...", "label": "正面"}
内容需真实自然,语气风格多样。
📌 多轮对话构造模板:
你是一个智能客服机器人,请模拟与用户关于[主题]的一段多轮对话。
共6轮,每轮包含“用户”和“助手”两角色,返回如下结构:
[
{"role": "user", "content": "xxx"},
{"role": "assistant", "content": "xxx"},
...
]
📊 合成数据任务类型推荐表
任务类型 | 是否推荐 | 注意事项 |
---|---|---|
FAQ 问答 | ✅ 强烈推荐 | 结构清晰,语义明确 |
政策助手问答 | ✅ 推荐 | 注意术语准确性,可基于真实政策约束生成 |
情感分类 | ⚠️ 条件推荐 | 需用 prompt 严格控制标签,不适合多情绪类型 |
多轮对话 | ✅ 推荐 | 控制在 3~6 轮内,使用结构模板生成 |
摘要 / 归纳任务 | ✅ 推荐 | 注意信息完整性与压缩度 |
法律/医疗判断任务 | ❌ 不推荐 | 模型幻觉风险高,涉及专业安全风险 |
多模态配对任务 | ⚠️ 慎用 | 图文对合成需额外评估真实对齐性,建议人工辅助生成 |
✅ 合成数据不是“替代品”,它是“加速器”
如果你有小样本、有专家知识、有标准结构,LLM合成数据就像你的“数据造血系统”:
- ❌ 它不是“复制粘贴生成几万条”那么简单
- ✅ 它应该是“可控地构造结构样本 + 自动评估质量 + 快速调训迭代”的方法体系
✅ 推荐实践路径:
起步方向 | 建议做法 |
---|---|
无语料项目冷启动 | 选1个场景 → 写Prompt → 生成3000条QA → QLoRA跑一版 |
精调样本不够 | 用当前数据做few-shot提示 → 生成扩展样本补充训练池 |
多轮问答收集难 | 设计结构Prompt → 控制话题 × 回合数生成 |
分类数据稀缺 | Prompt生成样本 + LLM自动打分筛选 |
🔚 结语:真正的“数据掌控力” = 采集 + 清洗 + 合成 + 筛选 + 训练闭环
未来的 AI 能力不只来自大模型参数,而来自你是否拥有一套完整的数据构建与治理能力。
合成数据,就是你在资源有限的现实里打破壁垒的那块“魔法加速石”。
🌟 如果本文对你有帮助,欢迎三连支持!
👍 点个赞,给我一些反馈动力
⭐ 收藏起来,方便之后复习查阅
🔔 关注我,后续还有更多实战内容持续更新
写系统,也写秩序;写代码,也写世界。
观熵出品,皆为实战沉淀。