赛事任务与数据
2024 iFLYTEK A.I.开发者大赛-讯飞开放平台 (xfyun.cn)
从给定的<客服>与<客户>的群聊对话中, 提取出指定的字段信息,待提取的全部字段见下数据说明。
赛题方提供了184条真实场景的群聊对话数据以及人工标注后的字段提取结果,其中训练数据129条,测试数据 55条。按照各类字段提取的难易程度,共设置了1、2、3三种难度分数。待提取的字段以及提取正确时的得分规则如下:
序号 | 字段名称 | 是否单值 | 是否可为空 | 难度分数 | 答案是否唯一 |
1 | 基本信息-姓名 | 是 | 是 | 1 | 是 |
2 | 基本信息-手机号码 | 是 | 是 | 1 | 是 |
3 | 基本信息-邮箱 | 是 | 是 | 1 | 是 |
4 | 基本信息-地区 | 是 | 是 | 1 | 是 |
5 | 基本信息-详细地址 | 是 | 是 | 1 | 是 |
6 | 基本信息-性别 | 是 | 是 | 1 | 是 |
7 | 基本信息-年龄 | 是 | 是 | 1 | 是 |
8 | 基本信息-生日 | 是 | 是 | 1 | 是 |
9 | 咨询类型 | 否 | 是 | 2 | 是 |
10 | 意向产品 | 否 | 是 | 3 | 是 |
11 | 购买异议点 | 否 | 是 | 3 | 是 |
12 | 客户预算-预算是否充足 | 是 | 是 | 2 | 是 |
13 | 客户预算-总体预算金额 | 是 | 是 | 2 | 是 |
14 | 客户预算-预算明细 | 是 | 是 | 3 | 否 |
15 | 竞品信息 | 是 | 是 | 2 | 是 |
16 | 客户是否有意向 | 是 | 是 | 1 | 是 |
17 | 客户是否有卡点 | 是 | 是 | 1 | 是 |
18 | 客户购买阶段 | 是 | 是 | 2 | 是 |
19 | 下一步跟进计划-参与人 | 否 | 是 | 2 | 是 |
20 | 下一步跟进计划-时间点 | 是 | 是 | 2 | 是 |
21 | 下一步跟进计划-具体事项 | 是 | 是 | 3 | 否 |
备注:
1)可为空的字段,当判定无相应信息、无法做出判断等情况,统一取值为空字符串
2)对于非单值字段,请使用list来表示
baseline解读
设计prompt告诉大模型任务、输入和输出格式
检查大模型输出的json格式对不对
进行字段格式的检查以及缺少的字段进行补全
UIE
信息抽取需要对每个token分类
但是同一个token可能会同时在多个实体中,例如新东方烹饪学校:
机构 | 新东方烹饪学校 |
机构类型 | 学校 |
另外,不同任务下实体的类别也不同,需要更灵活的方法
所以引出UIE—— 基于 prompt 的指针网络:
用来告诉模型做具体任务的参数就叫 prompt,我们把它拼在输入中一并喂给模型
在encoder后构建一个起始层和一个结束层,预测开始/结束概率向量
new baseline解读
数据集制作
设计一个总结对话的prompt,因为上下文太长会导致抽取效果变差、训练时间太长
jsonl_data = {"instruction":"假设你是一个智能交互助手,基于用户的输入文本,解析其中语义,抽取关键信息,以json格式生成结构化的语义内容。","input":"请调小空气净化器的湿度到1","output":"{\"intent\":\"CONTROL\",\"slots\":[{\"name\":\"device\",\"normValue\":\"airCleaner\",\"value\":\"空气净化器\"},{\"name\":\"insType\",\"normValue\":\"set\",\"value\":\"调小\"},{\"name\":\"attr\",\"normValue\":\"humidity\",\"value\":\"湿度\"},{\"name\":\"attrValue\",\"normValue\":\"1\",\"value\":\"1\"}],\"sample\":\"请调小空气净化器的湿度到1\"}"}
这是微调的格式样例
可以考虑把多个任务拆成多个prompt或者弄个CoT保证总结的准确性
模型微调
到微调平台去设置
微调推理
调用微调的 API 处理test的总结内容