ChatGLM微调数据怎么整理格式

裘德小鎮的故事

裘德小鎮的故事

2026-07-25

600人浏览

原创

必须将原始数据转为对应模型要求的json/jsonl格式:chatglm-6b用{"instruction":"...","input":"...","output":"..."};chatglm3用{"prompt":"...","response":"..."};glm-4用{"query":"...","response":"...","history":[...]},字段名须与data_collator严格一致。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

chatglm微调数据怎么整理格式

你需要把原始文本数据转换成ChatGLM系列模型可识别的指令微调格式,否则加载时会报错或训练无效。不同版本(ChatGLM-6B、ChatGLM3、GLM-4)对输入字段名要求不同,但核心结构都是“指令+输入+输出”三元组,且必须为JSON或JSONL格式。

确认目标模型版本对应的数据结构

先明确你用的是哪个模型:ChatGLM-6B用{"instruction": "...", "input": "...", "output": "..."};ChatGLM3常用{"prompt": "...", "response": "..."};GLM-4官方示例则倾向{"query": "...", "response": "...", "history": [...]}。混用字段名会导致tokenizer无法正确拼接,【字段名必须与模型代码中定义的data_collator逻辑严格一致】

例如,若你用的是Hugging Face Transformers + PEFT加载ChatGLM3-6B,但数据里写的是"instruction"而非"prompt",模型会把整个字典当字符串喂进去,loss不下降、生成全乱码。

方法一:用Python脚本批量转换原始CSV/Excel

假设你有一份医疗问答Excel,A列为问题,B列为医生回答,需转为ChatGLM3的prompt/response格式:

① 安装依赖:pip install pandas openpyxl

② 运行以下脚本(替换input.xlsxoutput.jsonl路径):

import pandas as pd<br>df = pd.read_excel("input.xlsx")<br>records = []<br>for _, row in df.iterrows():<br>  records.append({"prompt": row["A"], "response": row["B"]})<br>with open("output.jsonl", "w", encoding="utf-8") as f:<br>  for r in records:<br>    f.write(json.dumps(r, ensure_ascii=False) + "\n")

注意:JSONL每行必须是独立合法JSON,末尾不能有逗号,也不能换行缩进——否则datasets.load_dataset("json", data_files=...)会直接抛JSONDecodeError

方法二:手动构造单条JSON验证结构

打开任意文本编辑器,严格按如下格式手敲一条(不要复制粘贴带隐藏字符的引号):

讯飞绘文
讯飞绘文

讯飞绘文:免费AI写作/AI生成文章

下载

{"prompt": "高血压患者能吃阿司匹林吗?", "response": "需根据心血管风险分层决定。低危者不推荐常规使用;中高危者如无禁忌可小剂量(75–100 mg/日)长期服用。"}

保存为test.json,然后在Python中运行:from datasets import load_dataset; ds = load_dataset("json", data_files="test.json"); print(ds["train"][0])。如果输出字典含promptresponse键,说明格式通过;若报错或键名变成promptufeff,说明文件含BOM头,需用VS Code另存为UTF-8无BOM格式。

方法三:适配ADGEN类广告生成任务

如果你的数据是“输入商品描述→输出广告文案”,参考ADGEN标准格式:

方法一:保留原始contentsummary字段,用Hugging Face datasets内置映射:

def format_adgen(examples):<br>  return {<br>    "prompt": [f"请为以下商品生成广告文案:{c}" for c in examples["content"]],<br>    "response": examples["summary"]<br>  }<br>ds = ds.map(format_adgen, batched=True)

方法二:直接重命名字段(更轻量):

ds = ds.rename_columns({"content": "prompt", "summary": "response"})

这一步必须在tokenize前完成,否则tokenizer(prompt + response)会因字段名错误而拼接失败。

相关专题

更多
墨刀AI提示词教学
墨刀AI提示词教学

本合集由PHP中文网精心整理,为您提供全面的墨刀AI提示词教学。内容涵盖高质量原型撰写公式与实操窍门,助您轻松掌握AI设计工具。无论是零基础入门还是进阶技巧,都能让您快速上手,大幅提升产品设计与协作效率。

2026.08.04

4

21

墨刀AI完整入门
墨刀AI完整入门

PHP中文网为您倾力打造墨刀AI保姆级入门指南完整版!本合集从零基础讲起,涵盖AI生成原型、提示词优化、图片转原型及多轮对话等核心功能。无论您是新手还是进阶用户,都能轻松掌握产品设计全流程。快来PHP中文网,一键解锁高效设计技巧,让想法即刻成型!

2026.08.04

1

20

墨刀AI进阶技巧
墨刀AI进阶技巧

本合集由PHP中文网精心整理,为您提供墨刀AI核心进阶策略指南。内容涵盖高效提示词写作、原型智能生成与微调、结构化导图制作及行业分析报告输出等实战技巧。助您轻松掌握AI设计工具,大幅提升产品设计与团队协作效率。

2026.08.04

6

14

火山引擎实名认证失败怎么办
火山引擎实名认证失败怎么办

火山引擎实名认证失败可能与证件信息填写错误、姓名或企业信息不一致、证件照片不清晰、营业执照状态异常、手机号验证失败或审核资料不完整有关。本专题整理个人认证、企业认证、资料上传、审核退回、重新提交和认证不通过的常见处理方法。

2026.08.04

3

10

火山引擎域名备案流程详解
火山引擎域名备案流程详解

火山引擎域名备案适合需要在火山引擎云服务器、对象存储、CDN或网站服务上绑定域名的用户参考。本专题整理备案入口、账号实名认证、备案类型选择、主体信息填写、网站信息提交、资料上传、初审核验、管局审核和备案失败排查,帮助用户完成网站上线前的备案流程。

2026.08.04

0

10

火山引擎DNS解析配置步骤
火山引擎DNS解析配置步骤

使用火山引擎DNS解析网站域名时,需要确认域名已完成管理接入,并正确配置服务器IP、CNAME地址或验证记录。本专题整理域名添加、记录类型选择、TTL设置、解析状态检查、备案和访问测试等流程,适合新手搭建网站时参考。

2026.08.04

0

10

火山引擎对象存储使用教程
火山引擎对象存储使用教程

火山引擎对象存储适合用于网站图片、视频文件、备份数据、静态资源和应用附件管理。本专题整理TOS控制台入口、存储桶创建、地域选择、权限设置、文件上传、访问链接生成、CDN加速、费用查看和常见上传或访问失败问题,帮助用户快速掌握对象存储基础操作。

2026.08.04

1

10

火山引擎云服务器使用教程
火山引擎云服务器使用教程

火山引擎云服务器使用教程适合第一次购买、部署和管理云服务器的用户参考。本专题整理控制台入口、实例创建、地域和配置选择、系统镜像设置、安全组放行、远程连接、网站部署、续费计费和常见连接失败问题,帮助用户快速完成云服务器基础使用流程。

2026.08.04

3

10

火山引擎API Key绑定大模型教程
火山引擎API Key绑定大模型教程

火山引擎API Key怎么绑定大模型适合需要在火山方舟、应用后台、脚本工具或AI编程软件中调用模型的开发者参考。本专题整理控制台服务开通、API Key创建、模型权限检查、模型ID选择、Base URL填写、调用测试和鉴权失败排查,帮助用户完成从密钥到模型调用的配置流程。

2026.08.04

2

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习