目标:使模型能够理解和遵循基本指令,进行对话生成。
微调数据集:使用现有的高质量的指令和对话数据集对预训练LLMs进行微调,包括社交对话、长篇问答、FLAN和合成指令数据集等。所有数据都以对话形式统一,包含“系统”(System)、“用户”(User)和“助手”(Assistant)角色。
微调方法:在这个阶段,模型接收到的输入格式如下:
在每轮对话结束时,将助手的最新回答作为模型输出的监督信号。这个模板用于指导模型在第一阶段进行监督微调。
作者设计基于上下文的单轮QA和对话QA数据集,对第一阶段获取的微调模型进行二次微调,旨在提升模型在上下文感知和检索增强生成中的问答能力。
人工数据集(HumanAnnotatedConvQA):
混合数据集:
1. 多轮对话数据集(HumanAnnotatedConvQA或者SyntheticConvQA)
2. 单轮对话数据集(现有的):进一步增强模型的问答能力。
3. 金融领域数据(现有的):考察表格文档、算术计算的问答能力。
4. 阶段1的SFT数据集:以维持模型的指令跟随能力。
微调:
作者使用混合数据集和以下模板用于指导模型在第二阶段的上下文增强指令微调。可见,除了第一阶段的基础模板外,第二阶段添加了{Context for Latest Question}和{Instruction}来增强对上下文的理解和回答能力。注意,在每轮对话结束时,将助手的最新回答作为模型输出的监督信号,并且,对于不同的数据集,根据答案类型(短答案、长答案、算术计算等)使用不同的指令。
为了更好地处理多轮对话中的查询(尤其是在处理包含代词的后续问题时),避免信息不足和冗余输入的问题,作者使用自建的高质量对话数据集对检索器进行了微调。具体地, 作者使用对话(查询,上下文)对,进一步微调单轮检索器,使其更好地应对对话输入。
HumanAnnotatedConvQA:直接使用对话(查询,上下文)对的标注数据,进一步微调单轮查询检索器。因为,人工标注过该信息。
SyntheticConvQA:
1. 将对话问答数据集中的每个文档切分为不同的块。
2. 计算助手回答与每个块之间的4-gram召回分数。
3. 将具有最高召回分数的块视为当前用户问题的黄金块,即查询对应的上下文。
4. 使用构建的对话(查询,上下文)对来微调单轮查询检索器。
通过这种方法,检索器能够更好地理解多轮对话的上下文,并有效地检索出相关的上下文信息,提高模型在开放域问答场景下的表现。
作者在五个现有的长文本对话问答数据集上对比分析了微调检索器和使用查询重写(GPT-3.5-Turbo)方法的召回率,证明了在人工构建数据上微调的检索器的有效性。
作者比较了ChatQA和各种基线方法在10个对话式问答数据集上的表现,发现与最先进的OpenAI模型(即GPT-4-0613和GPT-4-Turbo)相比,Llama3-ChatQA-1.5-8B取得了相近的成绩,而Llama3-ChatQA-1.5-70B则超越了最强基线:
在对微调方法的消融实验中,作者发现:(1)分阶段调优的重要性,阶段1增强了ChatQA的指令遵循能力,这对阶段2调优有益。Stage-2调优(即上下文增强的指令微调)则使模型能够学习如何有效利用检索到的或相关的上下文信息。(2)单轮对话数据集的有效性,证明单轮对话问答数据集能影响模型的多轮对话问答能力,即,添加单轮对话问答数据集能提高模型有效利用相关上下文回答问题的能力。(3)对话问答数据的有效性。作者发现在微调数据中移除对话问答数据会影响模型的多回合问答能力。(4)人工标注数据的质量。作者发现使用SyntheticConvQA和HumanAnnotatedConvQA的ChatQA模型在平均得分方面取得了可比的结果,表明构建先进的对话问答模型无需依赖OpenAI模型的合成数据,肯定了人工标注数据的质量。
作者对比分析了在第二阶段指令微调中,选取连续上下文还是使用前k块作为上下文。因为,微调使用所有数据集的上下文都是作为包含答案的连续段落或文档提供的。相比之下,在推断过程中,模型需要处理检索的前k块长文档。为了解决这种训练/测试不匹配的问题,作者调查了用检索的前k块替换一些连续段落是否会增强模型的鲁棒性。作者观察到,在训练中使用“前5”块作为上下文会提高需要检索的数据集的性能。但它会降低非检索数据集的性能。总体而言,这两个模型表现相当。
最后,作者展示了关于检索的上下文/块数量、上下文排序以及不同的检索器对会话问答和RAG结果的影响的消融研究。
作者比较了ChatQA模型与OpenAI模型在QuAC和DoQA数据集上的表现。作者发现:
1. 与使用SyntheticConvQA相比,使用HumanAnnotatedConvQA显著提高了QuAC和DoQA的平均准确率。这是因为人工注释数据的无法回答注释质量更高,显著提高了无法回答情况下的准确率。
2. 在拒答任务中,最佳模型(ChatQA-1.0-70B)在与GPT-3.5-Turbo相比的同时取得了显著更好的平均准确率,而与GPT-4-0613相比ChatQA仍然存在轻微差距(约为3.5%)。
3. 作者发现Llama3-ChatQA-1.5-8B/70B通常比ChatQA-1.0-70B的准确率低。这是因为当无法在上下文中找到答案时,模型倾向于基于自身知识给出回应,导致无法回答情况下的准确率较低。
4. 作者还进行了关于人工注释数据中无法回答样本数量的消融研究,发现,使用少量无法回答的样本(例如1.5k)能够在无法回答的评估以及整体CHATRAG BENCH得分上取得显著结果,但增加更多的无法回答的样本并不一定会导致更高的准确率得分。
1. ChatQA-1.0-70B在纯文本文档(Avg-text)中取得了更好的结果。2. GPT-4-0613在给定表格数据(Avg-table)时显示出更好的问答能力。3. 关于需要或不需要检索的数据集(Avg-ret和Avg-nonret),ChatQA-1.0-70B和GPT-4-0613是可比较的。4. Llama3-ChatQA-1.5-70B在所有类别中性能均超过了GPT-4-0613和GPT-4-Turbo。人工评估:进一步验证F1/EM指标有效性,展示ChatQA和GPT-4比具有竞争力。作者提出了适用于多轮对话的RAG框架,通过微调检索器和生成器,赋予了RAG组件对话上下文的召回能力,并且在多样的数据集上进行了大量的实验,验证了ChatQA的有效性,且能与最先进的GPT-4相比。