ShareGPT数据需经五种技术路径改造以适配对话摘要任务:一、构建指令-对话-摘要三元组;二、注入summary字段;三、关键片段抽取重构;四、利用system/tools引导焦点;五、多粒度监督信号融合。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您计划使用ShareGPT数据集训练一个能从长对话中自动生成摘要的模型,但发现模型输出冗长、遗漏关键信息或无法识别对话主干,则很可能是由于原始ShareGPT结构未适配摘要任务目标,且缺乏显式的摘要监督信号。以下是将ShareGPT数据转化为高质量对话摘要微调样本的多种技术路径:
一、构造指令-对话-摘要三元组格式
该方法通过人工或规则方式从ShareGPT多轮对话中提炼核心语义,生成简洁、连贯、覆盖决策点与结论的摘要文本,并封装为instruction-input-output结构,使模型明确学习“给定完整对话→产出精炼摘要”的映射关系。此格式可直接接入ChatGLM、Qwen等支持SFT的主流框架。
1、遍历每条ShareGPT样本的conversations数组,提取全部human与gpt轮次内容,拼接为连续对话文本,保留换行与角色标识(如“用户:…”“助手:…”)。
2、基于对话结尾gpt回复及上下文转折点(如“综上”“因此”“建议”等信号词),定位对话结论、达成共识、关键动作或用户最终诉求。
3、使用轻量级摘要模型(如BART-base-zh或PEGASUS-zh)对拼接后的对话文本进行初筛摘要生成,再由人工校验并重写,确保摘要长度控制在80–150字、不引入新事实、不丢失角色主体与时间逻辑。
4、构建新JSONL样本:{"instruction": "请根据以下多轮对话生成一段简洁摘要,涵盖主要问题、讨论过程和最终结论", "input": "用户:…\n助手:…\n用户:…", "output": "该对话围绕XX问题展开,用户提出…,助手解释…,最终确认…"}。
二、在ShareGPT原始结构中注入摘要标注字段
该方法保留ShareGPT原生conversations结构完整性,仅新增summary字段作为监督标签,适用于需维持多轮建模能力、同时训练摘要模块的联合微调场景。LLaMA-Factory等支持自定义字段解析的框架可直接读取该扩展结构。
1、在每条ShareGPT样本顶层添加"summary"键,值为人工撰写的单句或复句摘要,例如:"用户咨询高血压饮食管理,助手列出低盐、高钾食物清单并强调限酒必要性,双方确认以周膳食计划为下一步行动。"
2、确保summary字段与conversations中末轮gpt回复语义一致,且不依赖外部知识;若原始对话无明确结论,则标注为"未达成实质性结论"并归入负样本池。
3、修改LLaMA-Factory的data loader,在sharegpt.py模板中增加summary字段提取逻辑,并将其作为labels目标序列的唯一监督信号,屏蔽conversations中除最后一轮gpt外的所有token的loss计算。
4、在训练配置中启用--predict_with_generate,并将evaluation指标设为ROUGE-L与BERTScore-F1,聚焦摘要语义保真度而非表面重叠。
三、基于对话角色流的关键片段抽取+重构摘要
该方法不依赖全文摘要撰写,而是识别ShareGPT中最具信息密度的子序列(如首次提问、首次解答、最终确认、工具调用结果),将其按逻辑时序重组为摘要主干,降低人工标注成本并提升关键信息召回率。
1、对每条conversations数组执行角色轮次分析,标记所有from: "human"中含疑问词(“如何”“为什么”“能否”)、目标动词(“推荐”“总结”“比较”)的轮次为Query节点。
2、定位每个Query节点后最近的from: "gpt"轮次,若其value含数值、列表、因果连接词或function_call/observation配对,则标记为Answer节点。
3、提取所有Query-Answer对,按原始顺序拼接为摘要草稿,中间插入“→”符号表示推导关系,例如:“用户询问降血压饮食 → 助手列出低钠高钾食物 → 用户确认执行周计划”。
4、将该草稿经模板化润色(统一主语为“对话”,去除代词指代,压缩修饰成分),生成终版摘要,并存入新字段"extractive_summary"以区别于人工摘要。
四、利用ShareGPT中的system与tools字段引导摘要焦点
该方法将ShareGPT中已有的system提示和tools定义作为摘要生成的隐式约束条件,强制模型摘要聚焦于角色设定与功能边界,特别适用于垂直领域(如医疗、法律、客服)的摘要可控生成。
1、提取每条样本的system字段(若存在),将其转化为摘要约束指令,例如system为“你是一名持证营养师”,则摘要必须体现专业身份与建议依据。
2、解析tools数组中各function_call的name与description,识别其对应的任务类型(如calculate_discount、check_drug_interaction),将该类型关键词(“剂量计算”“药物相互作用核查”)嵌入摘要首句。
3、在构造instruction时显式注入约束:“请生成摘要,须包含system角色身份、tools所涉功能类型,并准确反映observation返回的核心数值或判断结果。”
4、对含function_call与observation的样本,强制摘要中出现“经工具验证:…”句式,例如:“经工具验证:该药物组合存在中度相互作用风险。”
五、多粒度摘要监督信号融合训练
该方法在同一ShareGPT样本上构建三级摘要标签——全局摘要(整段对话)、轮次摘要(每轮human-gpt对)、片段摘要(单句核心主张),形成层次化监督信号,增强模型对对话结构的理解与摘要粒度控制能力。
1、为每条conversations数组生成三个摘要层级:全局摘要(同方法一)、轮次摘要(对每对相邻human→gpt生成一句15字内短摘要)、片段摘要(提取每轮中含实体+谓词的核心短句,如“用户确诊二型糖尿病”)。
2、将三级摘要分别存入同一JSON样本的"summary_global"、"summary_turns"、"summary_spans"字段,保持与原始轮次索引对齐。
3、设计分层loss:全局摘要采用交叉熵主损失;轮次摘要用于辅助decoder attention mask约束;片段摘要用于span-level contrastive loss,拉近正样本句向量距离。
4、在推理阶段仅启用summary_global输出,其余层级仅参与训练阶段梯度回传,确保部署模型轻量且响应确定。


















