文章讲述了作者如何通过SFT(监督微调)技术,以仅1.03元的成本对大模型进行微调,成功解决了模型在输出数据时额外添加空格的问题。作者详细介绍了SFT的概念、适用场景和实施步骤,提供了完整的参数配置建议,并提出了后处理兜底的PlanB方案,最终实现了格式对齐的目标。这一实践为解决大模型输出格式问题提供了高效、经济的解决方案。
先看下花费:1.03元
花费不多。那为什么要微调模型呢?没有别的办法了吗?最后效果怎样?
在回答这些问题前,先看看业务的需求:
这是个体验类的需求。
输出的型号中间有空格,直接copy这个型号作为关键词去其它系统中可能就会查不到。
因为,传统的系统中要么是精确匹配,要么是基于RDB的like,这是无法支持关键词中间加空格的查询。
怎么办?
方案1:调提示词,让大模型控制输出的结果。试了下,不是很理想,没有彻底根除。
方案2:换大模型。
提示词无法解决问题时,换大模型也是一个解决问题的办法。不过这会增加额外回归测试的工作。
先换了gpt-4o-mini临时解决了问题。gpt-40-mini这个模型输出结果的型号中间没有额外加空格。
格式的问题解决了,但是这引发了另一个新问题:就是gpt-4o-mini比国内的大模型要贵不少。
怎么办?
对国内的模型Doubao-1.5-pro-32k进行微调。准确的讲是SFT(精调)。
什么是SFT?
SFT(Supervised Fine-Tuning,监督微调)精调:通过已标注好的数据对模型进行精调优化,以适应特定的任务或领域。
- 在自然语言处理(NLP)领域,Supervised Finetuning(SFT)是一种至关重要的技术手段,用来提升大模型在某一特定领域的表现。通过精细的策划和实施,SFT 能够指导模型的学习过程,确保其学习成果与既定目标高度吻合。
- SFT 指的是,用户提供一份标注好的数据集,即,包含输入的 prompt 和预期输出的 response。然后,在已有的某个基座模型上继续调整参数,来达到和下游任务对齐的目的。
为什么是SFT?
因为SFT并不需要大量的训练集,因为SFT可以解决这类输入内容格式化的问题。
- 什么时候需要SFT:
- 通过 prompt engineering 无法解决或 prompt 中描述过于复杂时。
- 对大模型输出内容有格式要求时,而模型仍有部分 case 不符合要求。
- 期望通过 SFT 来减少 prompt 中的内容,加速线上推理的耗时。
做SFT的前置依赖:
- 0)一方面,把 prompt engineering 做到极致,通过优化 prompt 已经不能解决剩余的 badcase。另一方面,SFT 数据集中也依赖 prompt。因此,做 SFT 之前尽量把 prompt 工程做到最优。
- 1)一开始不需要急着构造大量 SFT 数据集,可以先用少量数据(50条~100条)对模型做 SFT 后观察真实评估是否有收益。如果有收益,可以尝试以部分数据为种子数据集继续扩充,找到 scaling law。
微调的核心任务是让模型从 “能生成文本” 进化为 “能听懂指令、按意图做事”。这个过程中,数据的作用不是 “喂饱模型”,而是 “给模型清晰的‘行为示范’”。
SFT是用来画龙点睛的。
怎么做?
本次使用字节火山引擎的模型精调工具。
1、在模型精调页面,点击左上角 创建精调任务 按钮。
2、填写模型精调任务名称等基本信息。
任务名称(必填):本次精调任务命名,方便记录检索;支持1~200位可见字符,且只包含大小写字母、中文、数字、中划线、下划线。
任务描述:本次精调任务添加除名称以外的其他描述信息,方便多次迭代版本,重要信息记录;包含大小写字母、中文、数字、中划线、下划线。
SFT参数配置中的参数如何确定?
与训练集有关。
训练集怎么得到?
使用大模型生成。因为SFT并不需要大量的训练集,微调的核心任务,是让模型从 “能生成文本” 进化为 “能听懂指令、按意图做事”。这个过程中,数据的作用不是 “喂饱模型”,而是 “给模型清晰的‘行为示范’”。
引用两句业内比较流行的话:
Quality Is All You Need.
Less Is More for Aligment.
话不多说,先来看看生成训练集的提示词:
提示词:“
目前douboa-32K-pro大模型在输出数据时,总会给额外加一些空格,譬如
问题中是“Sikalastic-609”,大模型输出会是“Sikalastic - 609”,即在“-”两边额外添加了一个空格;
问题中是“水吧台/岛台区域”,大模型输出会是“水吧台 / 岛台区域”,即在“/”两边额外添加了一个空格;
期望这们的效果:
问题中是“Sikalastic-609”,大模型如果有相关的内容,原样输出“Sikalastic-609”
问题中是“水吧台/岛台区域”,大模型如果有相关的内容,原样输出“水吧台/岛台区域”
基于这个目标,来SFT大模型,按照
“Quality Is All You Need.
Less Is More for Aligment.”的规则,提供足够数据的input和output用于精调。
按“扩充高质量格式数据”的策略输出包含新增符号场景样本 和 增加 “错误 - 修正” 对比样本。
补充至少 50 条严格格式对齐的样本,覆盖更多领域(如技术文档、日常对话、专业术语)
"
本次生成并使用的训练集,共42条,具体数据见文末。
提示词:“使用上面生成的42条训练集,给出截图中参数的配置值”
Answer:结合 42 条训练集的小数据场景,以下是适配的参数配置思路及说明,在原有参数基础上优化以适配小数据的高效学习、避免过拟合:
1、参数配置表
| 参数名 | 原数值 | 调整后推荐值 | 调整逻辑(适配 42 条小数据集) |
|---|---|---|---|
epoch | 1 | 2 - 3 | 小数据需多轮学习强化记忆,2 - 3 轮平衡拟合与过拟合 |
batch_size | 8 | 4 或 8 | 42 条数据用 8 可整除(42÷8=5.25,实际取整为 5 个完整 batch + 2 条余数据;若硬件允许,8 可保留,加速训练;若显存紧张,调为 4 ) |
learning_rate | 0.00001 | 5e - 5 | 原学习率(1e - 5)偏低,小数据场景适度调高至 5e - 5 加速收敛,若训练中出现震荡,可再调回 3e - 5 |
warmup_step_rate | 0.05 | 0.1 | 增加 warmup 比例(10% 步数),让模型逐步适应学习率,避免小数据下初始更新幅度过大 |
lora_rank | 32 | 32 | 因只能选 32 或 64,32 更适配小数据,减少过拟合风险,保留该值 |
lora_alpha | 4 | 8 | 配合lora_rank=32,按公式scale = lora_alpha / sqrt(lora_rank),原scale≈0.7,调整后8 / sqrt(32)≈1.4,增强参数更新的缩放强度,适配调高的学习率 |
save_model_per_epoch | 1 | 1 | 每 epoch 保存一次,42 条数据训练快,1 次 /epoch 足够记录过程,保留该值 |
dyn_bsz | true | true | 保持开启,最大化利用 seq_len×batch_size 填充 token,加速小数据训练效率,保留该值 |
2、核心调整逻辑
小数据强化学习
通过增加
epoch、适度调高learning_rate,让模型在有限数据中多轮学习、加速收敛,弥补数据量少的短板。控制过拟合风险
保留
lora_rank=32(相对 64 更安全),配合warmup延长学习率适应过程,避免模型 “死记硬背” 小数据集。参数协同适配
调整
lora_alpha匹配学习率变化,保证 Lora 模块参数更新的缩放比例合理,让训练更稳定。
按此配置,可在小数据场景下高效训练模型学习符号格式对齐,同时降低过拟合可能,若训练后验证集效果不佳(如过拟合),可进一步降低epoch或learning_rate;若收敛慢,则继续微调学习率或warmup比例 。
参数配置有了:
“混入预置数据集”和“验证集”怎么配?
Query:“给出下面这两个指标的值: 混入预置数据集:在用户上传的训练集数据中混入豆包模型的SFT(Supervised Fine Tuning,有监督微调)数据,混入比例表示混合后SFT数据占总数据量的比例 验证集:Validation Set,模型训练过程中,用于确定网络结构以及调整模型的超参数。可以从训练集中随机分割一定比例作为验证集,也可以上传独立于训练集的数据集。”
Answer:
结合你提供的 40 条专项微调数据(输出格式对齐V1),以及 “Quality Is All You Need” 和 “Less Is More” 的原则,这两个指标的推荐值及设置逻辑如下:
1. 混入预置数据集比例:0%(不混入)
核心原因:
- 本次 SFT 目标极其明确(仅解决 “-”“/” 前后多余空格问题),40 条数据已精准覆盖该场景,信号纯度极高。
- 混入通用 SFT 数据会稀释专项信号,可能导致模型注意力分散(比如通用数据中可能存在符号格式不严格的样本,反而干扰学习)。
- 小数据场景下,“纯专项数据” 更利于模型快速锁定目标规律,符合 “少而精” 的对齐逻辑。
2. 验证集比例:20%(从训练集中随机分割)
推荐设置:
- 从 40 条数据中随机抽取 8 条作为验证集,剩余 32 条作为训练集。
核心原因: - 数据量极小(仅 40 条),独立验证集难以保证分布一致性,从训练集中分割更能匹配数据分布。
- 20% 比例既能保留足够训练样本(32 条),又能通过验证集监控过拟合(比如验证集中符号格式的正确率是否与训练集一致)。
- 若后续补充数据至 100 条以上,可考虑独立验证集;当前规模下,优先保证验证集与训练集的场景一致性。
这两个指标的设置均以 “强化专项信号、控制过拟合” 为核心,适配小数据量下的精准微调需求。
万事俱备,点击“提交精调任务”。
经过49 分 38 秒,SFT任务执行完成。
看下效果:
精调后,格式ok。
精调后,格式ok。
精调后,格式ok。
精调后,格式ok。
等等,你忘记大模型的“幻觉”了吗?
要有PlanB。
PlanB
1、后处理层:兜底的格式修正
若训练后仍有残留问题,通过推理阶段后处理兜底修正,确保最终输出符合要求:
1.1 正则表达式替换(简单有效)
推理时,用 Python 正则自动清理符号前后空
import`re
def fix_symbol_format(text):
处理“/”前后空格
text = re.sub(r'\s*/\s*','/', text)处理“-”前后空格(注意区分连字符与减号,可根据场景调整)
text = re.sub(r'\s*-\s*','-', text)return text
推理示例
output = model.generate(…)
fixed_output = fix_symbol_format(output)`
1.2 构建格式校验器
- 用规则引擎或小型分类模型,对输出文本做 “格式合规性检查”:
- 若检测到符号格式错误,触发 “重新生成” 或 “后处理替换”;
- 结合业务场景,可定制更复杂的格式规则(如 “/ 仅用于领域术语分隔,日常对话中保留空格”)。
2、验证与迭代:闭环优化确保效果
2.1 构建格式测试集
准备 100 + 条含 “/”、“-” 的测试用例,覆盖训练 / 未训练场景,验证格式对齐率。
2.2 迭代优化流程
- 若测试集格式错误率>5%,回到数据层补充样本;
- 若训练中验证集格式正确率低,调整训练参数增强约束;
- 若推理后仍有漏网,优化后处理规则覆盖更多边界情况。
核心逻辑总结
格式对齐的本质是让模型在小数据中精准学习 “人类对符号的严格规范”,需通过:
数据强化
提供充足且清晰的格式样本;
训练优化
让模型聚焦格式学习而非过拟合;
后处理兜底
确保极端情况也能修正。
SFT训练数据集
https://f.chaojihao.net/ai/dataset/sft/format/symbol_format_finetune_data20250808V2.jsonl
SFT 最佳实践
https://www.volcengine.com/docs/82379/1221664
创建模型精调任务
https://www.volcengine.com/docs/82379/1099459
最后再补张图,没有完全理解的朋友可以整体再看一下,找找感觉:
面对传统Code RAG和Code Agent在召回率、准确率和稳定性上的不足,以及领域“黑话”和代码风格差异带来的挑战,使用以大模型微调(SFT)为核心的解决方案成功解决了问题。
什么是LoRA?
LoRA(Low-Rank Adaptation,低秩适应)是一种高效微调大模型的技术,由微软团队于 2021 年提出。
LoRA的核心是在不改变原模型参数的情况下,通过添加少量低秩矩阵参数来适配新任务。训练时仅优化这些新增的少量参数,大幅降低计算成本;推理时将低秩矩阵的影响合并回原模型,不增加额外开销。这种方式用极少参数就能实现接近全量微调的效果,广泛用于大模型的任务适配。
具体来说,传统微调需要更新模型的全部参数,当模型规模庞大(如数十亿甚至千亿参数)时,会消耗大量计算资源和存储空间。而 LoRA 的做法是:
- 在预训练模型的关键层(如注意力层的权重矩阵)中插入两个低秩矩阵(可理解为维度较小的矩阵),这两个矩阵的乘积近似于该层在新任务上所需的参数更新量;
- 训练过程中,仅优化这两个低秩矩阵的参数,而冻结预训练模型的原始参数;
- 推理时,将低秩矩阵的乘积与原始参数相加,等效于完成了参数更新,不增加额外计算开销。
由于低秩矩阵的参数规模远小于原始模型参数(通常仅为原始参数的 1%-10%),LoRA 大幅降低了微调的成本,同时还能有效避免过拟合,在多种自然语言处理任务(如文本分类、翻译、问答等)中表现出色,目前已成为大模型微调的主流技术之一。
最后
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。
我整理出这套 AI 大模型突围资料包:
- ✅AI大模型学习路线图
- ✅Agent行业报告
- ✅100集大模型视频教程
- ✅大模型书籍PDF
- ✅DeepSeek教程
- ✅AI产品经理入门资料
完整的大模型学习和面试资料已经上传带到CSDN的官方了,有需要的朋友可以扫描下方二维码免费领取【保证100%免费】👇👇
为什么说现在普通人就业/升职加薪的首选是AI大模型?
人工智能技术的爆发式增长,正以不可逆转之势重塑就业市场版图。从DeepSeek等国产大模型引发的科技圈热议,到全国两会关于AI产业发展的政策聚焦,再到招聘会上排起的长队,AI的热度已从技术领域渗透到就业市场的每一个角落。
智联招聘的最新数据给出了最直观的印证:2025年2月,AI领域求职人数同比增幅突破200%,远超其他行业平均水平;整个人工智能行业的求职增速达到33.4%,位居各行业榜首,其中人工智能工程师岗位的求职热度更是飙升69.6%。
AI产业的快速扩张,也让人才供需矛盾愈发突出。麦肯锡报告明确预测,到2030年中国AI专业人才需求将达600万人,人才缺口可能高达400万人,这一缺口不仅存在于核心技术领域,更蔓延至产业应用的各个环节。
资料包有什么?
①从入门到精通的全套视频教程⑤⑥
包含提示词工程、RAG、Agent等技术点
② AI大模型学习路线图(还有视频解说)
全过程AI大模型学习路线
③学习电子书籍和技术文档
市面上的大模型书籍确实太多了,这些是我精选出来的
④各大厂大模型面试题目详解
⑤ 这些资料真的有用吗?
这份资料由我和鲁为民博士共同整理,鲁为民博士先后获得了北京清华大学学士和美国加州理工学院博士学位,在包括IEEE Transactions等学术期刊和诸多国际会议上发表了超过50篇学术论文、取得了多项美国和中国发明专利,同时还斩获了吴文俊人工智能科学技术奖。目前我正在和鲁博士共同进行人工智能的研究。
所有的视频教程由智泊AI老师录制,且资料与智泊AI共享,相互补充。这份学习大礼包应该算是现在最全面的大模型学习资料了。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。
智泊AI始终秉持着“让每个人平等享受到优质教育资源”的育人理念,通过动态追踪大模型开发、数据标注伦理等前沿技术趋势,构建起"前沿课程+智能实训+精准就业"的高效培养体系。
课堂上不光教理论,还带着学员做了十多个真实项目。学员要亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!
如果说你是以下人群中的其中一类,都可以来智泊AI学习人工智能,找到高薪工作,一次小小的“投资”换来的是终身受益!
应届毕业生:无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。
零基础转型:非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。
业务赋能 突破瓶颈:传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓**