ShareGPT数据集微调大模型:从数据准备到训练完整指南

2026-05-29阅读 0热度 0
share

把原始ShareGPT对话数据喂进大模型微调流程,很多人第一步就直接栽了:报错、训练中断、loss不降。问题并不在模型,而是数据压根没过“安检”。ShareGPT的conversations结构天生不兼容ChatGLM、LLaMA-Factory、Axolotl等主流框架的默认格式,必须手动适配,才能让tokenizer正确切分、labels掩码准确对齐。下面咱们从数据清洗到格式转换一步步拆解。

确认原始数据结构并完成基础清洗

先打开你的sharegpt_zh.json文件,用VS Code或less命令快速扫一眼前10行。重点看每个对象是否都包含conversations字段,且该字段是数组;数组内每个元素是否都有fromvalue两个键。如果出现from: "user"而非from: "human",或者value缺失,这条样本后续必然被静默丢弃——白忙一场。

接下来用langdetect批量检测语言:pip install langdetect,然后跑一句python -c "from langdetect import detect; print(detect('你好,今天怎么样?'))",确认返回zh。但凡某条human消息返回en,整条对话就得剔除——关键原则:单轮非中文即整条淘汰,没有商量余地。

别忘了用正则清除HTML标签与URL:sed -i 's/<[^>]*>//g; s/https?:\/\/[^[:space:]]*//g' sharegpt_zh.json。这一步不能省,否则tokenizer会把

当成有效token,污染attention权重,后续效果可想而知。

转换为框架可识别的格式

清洗干净后,需要把数据转化成框架吃得下的格式。两种主流方案:手动映射或交给自动化工具。

方法一:适配ChatGLM3-6B官方脚本(需要手动结构映射)

第一步:写个Python脚本遍历每条样本,提取conversations[0]["value"]作为instruction,取最后一条from == "gpt"的value作为output,中间轮次拼成input字段(如果有多轮对话)。

第二步:生成新的JSONL文件,确保每行仅一个字典,且严格包含instructioninputoutput三键。注意:input为空时不能写null,必须写空字符串"",否则框架解析会出bug。

第三步:检查首行是否能被json.loads()成功解析。失败往往意味着存在未转义的双引号或换行符——这类错误会导致训练启动后卡在DataLoader第一轮,非常隐蔽。

方法二:交给LLaMA-Factory自动处理(推荐新手)

把原始sharegpt_zh.json直接复制到data/目录下,重命名为sharegpt_zh_custom.json(文件名必须带_custom后缀,否则template不生效)。然后运行训练命令时必须带上--template sharegpt参数,不然框架会fallback到alpaca模板,把human全当instruction、gpt全当output,多轮逻辑彻底打乱。

这里直接跑git clone https://github.com/hiyouga/LLaMA-Factory.git → cd LLaMA-Factory → pip install -e .就能快速上手。

配置Axolotl启动训练

如果选择Axolotl,需要把清洗后的数据保存为sharegpt_zh.jsonl,每行一个JSON对象,且每个对象包含conversations数组——注意不能是单个JSON数组包着所有样本,那种格式Axolotl不认。

在axolotl的config.yml中定位datasets:节点,添加如下配置:

  - path: ./data/sharegpt_zh.jsonl
    type: sharegpt
    split: train

type值必须小写且严格为sharegpt,大小写错误或拼成share_gpt会导致解析器不触发。另外,部分0.5.x版本还需要加dataset_preprocessor: sharegpt,否则系统可能因未识别type而跳过预处理,直接报KeyError: 'messages'

启动训练:accelerate launch -m axolotl.cli.train ./config.yml。看到日志中间出现"Using sharegpt template"即表示解析成功,开始对conversations数组进行tokenize,可以安心等loss下降了。

免责声明

本网站新闻资讯均来自公开渠道,力求准确但不保证绝对无误,内容观点仅代表作者本人,与本站无关。若涉及侵权,请联系我们处理。本站保留对声明的修改权,最终解释权归本站所有。

相关阅读

更多
欢迎回来 登录或注册后,可保存提示词和历史记录
登录后可同步收藏、历史记录和常用模板
注册即表示同意服务条款与隐私政策