sharegpt数据集可用于提升模型对用户提问意图的判别能力,方法包括:一、构建意图标注映射表;二、构造带意图标签的训练样本;三、适配预训练模型输入结构;四、设计多粒度损失函数;五、实施领域自适应微调策略。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望利用真实用户对话数据提升模型对用户提问意图的判别能力,则ShareGPT数据集可提供高质量、多轮、语义完整的中英双语对话样本。以下是基于该数据集开展对话意图识别任务的模型训练方法:
一、构建意图标注映射表
ShareGPT原始数据不包含显式意图标签,需先建立从对话内容到意图类别的映射关系。该步骤旨在将每条user utterance归类至预定义意图体系,如“咨询产品功能”“请求故障排查”“寻求操作指导”等,为后续监督训练提供标签基础。
1、从ShareGPT 90k数据集中抽取全部user角色的content字段,去重并过滤长度小于5字符或含不可见控制符的样本。
2、依据业务场景设计意图层级体系,例如一级意图包括“信息查询”“任务执行”“情感表达”“错误反馈”,二级意图向下细化至“查询价格”“启动设置向导”“表达不满”“报错代码E04”。
3、采用人工+规则双轨标注:对高频模板句(如“怎么打开XX?”“XX在哪里设置?”)应用正则匹配自动打标;对长尾、模糊、多意图混合样本交由3名标注员独立标注,Kappa系数≥0.85者保留,否则进入仲裁。
二、构造带意图标签的训练样本
意图识别模型需输入单轮用户语句并输出意图类别,因此须将ShareGPT中的多轮对话解耦为独立样本,并注入上下文感知特征。该步骤确保模型既理解当前语句字面含义,也捕捉对话历史提供的隐含意图线索。
1、对每段ShareGPT对话,遍历所有user节点,以该节点content为input_text,对应intent_label为标签,生成基础样本。
2、为每个样本拼接前一轮system响应的前64字符作为context_prefix,格式为“[SYS]”+system_content+“[USR]”+user_content,避免截断关键动词或名词。
3、对含多个user发言的连续段落(如用户追问),将前序user发言摘要压缩为15字内短句,前置为“[PREV]”标记,增强跨轮意图连贯性识别能力。
三、适配预训练模型的输入结构
主流意图识别模型依赖BERT、RoBERTa或ChatGLM等编码器,其输入需严格符合tokenization规范与长度约束。该步骤将标注后的文本序列转化为模型可接受的数值化张量,并保留中英混合特性。
1、使用ShareGPT配套的tokenizer(如bert-base-chinese + xlm-roberta-base双分词器并行处理)对input_text及context_prefix分别编码,中英文子词不混切。
2、设定最大长度为128,超长文本优先截断context_prefix而非user_content;截断时保留末尾动词及宾语核心成分,丢弃前置状语与冗余修饰语。
3、在input_ids开头插入[CLS],结尾补[SEP];segment_ids中user部分标为1,context部分标为0;attention_mask置1表示有效token位置。
四、设计多粒度损失函数
单一交叉熵损失易忽略意图间的语义邻近性(如“重置密码”与“忘记密码”高度相关),导致边界样本误判。该步骤引入层次化损失机制,强化模型对意图语义距离的建模能力。
1、构建意图语义相似度矩阵:基于意图描述文本的Sentence-BERT嵌入,计算所有意图对的余弦相似度,阈值0.6以上视为近义意图组。
2、主损失采用Label Smoothing Cross-Entropy,平滑系数设为0.1,将真实标签概率分配0.9,其余概率均分至近义意图组内各标签。
3、辅加对比损失:对同一batch内不同样本,若其意图属于同一近义组,则拉近其[CLS]向量距离;若属互斥意图(如“投诉”vs“表扬”),则推远距离,温度系数τ=0.07。
五、实施领域自适应微调策略
ShareGPT数据覆盖通用场景,但实际意图识别系统常部署于垂直领域(如金融、医疗、IoT设备)。该步骤通过两阶段微调,使通用对话理解能力迁移至目标领域,同时抑制负迁移效应。
1、第一阶段:在全部ShareGPT标注样本上进行全参数微调,学习通用对话意图分布,训练5个epoch,学习率2e-5。
2、第二阶段:冻结底层6层Transformer参数,仅微调顶层4层及分类头,在目标领域小规模标注数据(≥200条)上继续训练,学习率降为5e-6,早停patience=2。
3、注入领域关键词掩码:在第二阶段数据预处理中,对领域专有术语(如“信用卡账单”“心电图波形”“温控阈值”)进行span masking,强制模型关注意图判别而非表面词汇匹配。











