人工智能
斯坦福大学的Alpaca项目为大模型的Instruction Tuning 提供了单轮的指令数据。然而,ChatGPT最显著的特点是其多轮对话能力,允许用户提出跟进问题或纠正模型回答中的错误。为了训练大模型响应多轮指令的能力,ChatAlpaca是一个面向大模型的多轮对话指令数据集。ChatAlpaca利用ChatGPT在Alpaca数据集的基础上模拟用户生成跟进问题,从而将单轮指令扩展为多轮对话。
ChatAlpaca数据集
目前,ChatAlpaca数据集包含10,000个对话组,共计95,558条对话语句。每个对话组的第一轮对话是来自Alpaca数据集的指令:用户输入指令,ChatGPT给出回答。随后,用户根据回答内容展开追问,将对话进行下去。以下是ChatAlpaca数据集的一个例子:
数据集构建过程
ChatAlpaca数据集使用Alpaca数据作为第一轮对话,通过扩展跟进问题来构建每一轮对话。每一轮对话的构建包括两个阶段:用户问题生成和回复生成。
用户问题生成:
ChatAlpaca使用ChatGPT(GPT-3.5-turbo)生成用户问题,模型的输入包括一个提示语(prompt)和当前对话的历史记录。提示语要求ChatGPT模拟用户生成问题,用户问题可以是进一步提问,或者在ChatGPT答案错误时给出提示。
例如,根据以下聊天历史记录:
ChatGPT生成的用户问题为
ChatAlpaca还使用关键词过滤了不符合用户身份的问题,例如“As an AI language model, I'm here to assistyou.”、“Do you have any questions that I can help youwith?”等。
回复生成:
ChatAlpaca使用上一步生成的用户问题作为下一轮对话的开始,与对话历史记录拼接,让ChatGPT生成新的回复。在上面的例子中,ChatGPT根据以下输入生成回复:
然后将这一轮ChatGPT的回复添加到对话历史记录中。
重复上述过程,直到对话达到预定的轮数(ChatAlpaca设定为最多5轮),或用户问题中包含“GoodBye”。
目前已经发布了包含10,000个对话组的ChatAlpaca数据集,接下来将发布包含20,000个对话组的数据和由机器翻译生成的中文对话数据。此外,还将发布使用ChatAlpaca数据集训练的LLaMA-LoRA模型和LLaMA微调模型。
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !