RedGPT (Reference-Enlightened-Dialogue GPT) 是通过参考信息增强的对话生成模型。
众所周知,事实正确性是 ChatGPT 的一大薄弱环节,也是所有试图复现 ChatGPT 的同行们所面临的重大挑战。想要提升事实正确性,可以标注大量的事实型对话数据(比如人物、科技、医疗、法律、艺术)用于微调 GPT 模型。为了避免人工标注的昂贵成本,我们提出一种自动生成事实型对话的方法,并公开我们的部分数据。我们公开的第一批数据 (RedGPT-Dataset-V1-CN) 共包含 5 万条中文多轮对话。
方法介绍
该数据集的目标是自动生成海量、高质量、事实型多轮对话,用于训练 GPT,提升 GPT 的事实正确性。
我们采用如下方法自动生成数据:
- 采集优质的事实型文档,我们称之为 Reference ,其来源可以是电子书、维基百科、优质垂类网站。文档需要涵盖尽量多的主题,包括但不限于人物、机构、科技、医疗、法律、人文、经济、家居、汽车、出行、美食、时尚、体育、教育、宠物。
- 利用已有的 LLM(例如付费 API)生成多轮对话。输入是一篇 Reference,Prompt 类似 “请根据这篇文章生成多轮问答” 。 API 会输出一段多轮对话 (dialogue) 。这种方法将原本只适合预训练的文档转化成可供微调的多轮对话。
- 第 2 步收集到大量的 Reference-Dialogue 二元组。将 Reference 和 Prompt 作为输入,Dialogue 作为目标,微调一个 GPT 模型(可以基于 LLaMA 或 BLOOM 的预训练基座)。我们将微调出的模型称作 Reference-Enlightened-Dialogue GPT,缩写 RedGPT 。有了 RedGPT,即可基于 Reference 生成多轮对话,获得海量的数据。
如需复现此方法,请注意 2 个要点:
- Reference 的质量和广度。 Reference 内容质量必须高,比如医疗等优质垂类网站的页面、维基百科上非生僻的词条,且需要对网页做清洗。 Reference 的广度应当大,不能限制在单个垂类或单个网站。
- 调用已有 LLM 时需要写 Prompt,需要仔细尝试各种 Prompt,使得 LLM 生成的多轮对话符合预期。