大模型输出json格式-的写出json中的key,最好可以显式的写出json的全貌。

发布时间 2023-10-20 15:33:30作者: Showker



大模型输出json格式读取方法小记 | 1.背景:
让大模型对文章进行多标签多分类的打标,为了方便交互,采用json格式读取。
笔者工作中使用3.5-turbo的接口,为了使gpt能够更好的工作,这里使用了CoT的方法:让gpt先输出线索步骤再输出判断结论。
json格式如下:
{
cat1: 0,
cat2: 1,
….
can: 0
}
2.问题:
不过,我发现gpt3.5的输出的json总是有问题,json经常会出现三种错误:
- 缺少逗号,写成了中文逗号或者句号等其他标点,或者其他少数字符错误、缺失导致json解析失败。
- value不是0、1,而是自然语言,语言中包含了判断。
- key和我们期望的不一样,有可能多字也有可能少字。
3.简单并且有效的解决方案:
- 简化prompt中json的格式,并显示
式的写出json中的key,最好可以显式的写出json的全貌。
- 做一些简单的修正和清洗,有一条指令很好用!unicodedata.normalize('NFKC', s).replace("。", ""),直接自动将中文标点转为英文标点。
- value自然语言可以用黑名单词汇筛选,观察case,将诸如“没有”,“不包含”,“不存在”等词语的一律设置为0。能这样做的原因是通过观察发现,虽然gpt会不按照我们想要的输出结果,但是其输出具有高度的相似性和排比性,因此可以使用这种简单的策略。
- key不一致的问题,可以通过最小编辑距离和标准的key做对比,映射到标准的key。
# 大模型 #GPT # chat GPT #深度强化学习 # 机器学习 #Prompt learning # 搜索引擎 #llama