FineTuneBench:商业精细调整API能够如何融入LLMs中的新知识?
研究背景
这篇文章研究了商业微调API在将新知识注入大型语言模型(LLMs)和更新现有知识方面的效果。尽管OpenAI和Google等提供商提供的商业LLMs微调API具有灵活的应用适应性,但其有效性尚不清楚。
该问题的研究难点包括:微调方法的不透明性、缺乏统一的基准评估、用户对超参数优化的限制以及模型在处理新知识和更新知识时的泛化能力有限。
相关工作:
该问题的研究相关工作包括监督微调、强化学习从人类反馈、检索增强生成等方法,但这些方法在知识注入方面的效果尚不明确。此外,之前的研究主要集中在开源LLMs上,而对大型商业LLMs的微调研究较少。
研究方法
这篇论文提出了FineTuneBench,一个评估框架和数据集,用于理解商业微调API在学习和更新知识方面的效果。具体来说,
- 数据集构建:FineTuneBench包含四个领域的数据集:最新新闻、虚构人物、医疗指南和代码。每个领域有150个训练问题和50个测试问题。
- 模型选择:评估了五个模型:三个来自OpenAI的GPT模型(gpt-4o-mini、gpt-4o、gpt-3.5-turbo)和两个来自Google的Gemini模型(gemini-1.5-flash、gemini-1.5-pro)。
- 微调方法:使用各自的微调服务对模型进行微调。OpenAI仅允许指定学习率、批量大小和训练轮数,而Google Cloud还允许指定微调方法的适配器大小。所有分析中,除了训练轮数外,其他微调特定超参数保持默认值。
- 知识注入技术:在最新新闻数据集中,采用了四种技术来诱导知识获取:直接问答对、掩码、完成和无提示完成。
实验设计
- 数据收集:从2024年9月1日至9月30日随机抽取了2000篇美联社的新闻文章,确保这些文章不出现在任何评估模型的预训练数据中。然后使用GPT-4o生成问题和答案对,并通过质量控制步骤筛选出最终的问题/答案对。
- 实验设置:在每个数据集上,模型在原始问题和修改后的问题上进行训练和评估。对于最新新闻数据集,还包括重新措辞和日期更改的修改。对于虚构人物数据集,生成了基于虚构人物的描述和相关问题。对于医疗指南和代码数据集,收集了最新的医疗指南和代码库,并使用Claude Sonnet-3.5生成问题和答案对。
- 训练过程:固定批量大小为1,默认学习率参数。对于新知识数据集,模型训练1、10、20和30轮。对于更新知识数据集,模型训练1、5、10、15和20轮。
结果与分析
新知识任务:在所有新知识数据集上,OpenAI模型几乎可以完美地记住问答对,但在重新措辞或派生问题上表现较差,表明许多情况下记忆并未转化为真正的知识获取。Gemini模型的表现更差,无法准确记住问答对。
更新知识任务:在更新知识数据集上,商业微调模型的泛化性能更低。OpenAI模型在重新措辞的编程问题上平均准确率为10%,在医疗数据集上的临床情景测试问题上的准确率为40%。
泛化能力:尽管模型在训练初期表现出强烈的记忆能力,但在泛化任务上的性能提升较慢。Gemini模型在20或30轮训练后仍未显著提高性能。
替代训练技术:使用掩码、提示完成和无提示完成的替代训练技术未能提高泛化能力,并且在原始问答对上的性能也较低。
总体结论
这篇论文通过FineTuneBench评估框架和数据集,系统地分析了商业微调API在学习和更新知识方面的效果。结果表明,尽管微调可以提高模型的某些能力,但在大多数情况下,模型在处理新知识和更新知识时的泛化能力有限。特别是,Gemini模型的微调效果最差,无法有效学习新知识或更新现有知识。未来的研究可以扩展评估范围,并探索不同的超参数组合以提高模型的性能。
优点与创新
引入FineTuneBench:论文首次提出了FineTuneBench,这是一个评估框架和数据集,用于理解商业微调API在学习和更新知识方面的能力。
多模型和多API评估:论文评估了五个前沿LLM(包括GPT-4o和Gemini 1.5 Pro)使用OpenAI和Google Vertex AI的商业微调API的效果。多样化的数据集:FineTuneBench数据集包含四个领域的知识注入测试:最新新闻、虚构人物、医疗指南和代码。
关键问题及回答
问题1:FineTuneBench数据集是如何构建的?各个数据集的构建过程有何不同?
FineTuneBench数据集包含四个领域的数据集:最新新闻、虚构人物、医疗指南和代码。每个领域有150个训练问题和50个测试问题,总共625个训练问题和1075个测试问题。
最新新闻数据集:从2024年9月1日至9月30日随机抽取了2000篇美联社的新闻文章,确保这些文章不出现在任何评估模型的预训练数据中。然后使用GPT-4o生成问题和答案对,并通过质量控制步骤筛选出最终的问题/答案对。此外,还包括重新措辞和日期更改的修改。虚构人物数据集:生成了基于虚构人物的描述和相关问题。每个虚构人物的描述包含六个事实(如体重、身高、年龄、职业、喜欢的颜色和城市),并基于这些事实生成六个问题/答案对。还包括基于这些事实生成的衍生问题(如二次问题和比较问题)。医疗指南数据集:收集了最新的医疗指南和代码库,并使用Claude Sonnet-3.5生成问题和答案对。每个指南更新对应一个问题/答案对,并要求模型将这些更新应用到临床情景中,生成新的问题和答案对。代码数据集:从Scikit-Learn的代码库中生成了与代码相关的问答对。每个Python文件生成一个问题和答案对,并测试模型对对象或函数名称更改后的理解。
问题2:在微调过程中,使用了哪些技术来诱导知识获取?这些技术在最新新闻数据集上的表现如何?
在最新新闻数据集上,采用了四种技术来诱导知识获取:直接问答对、掩码、完成和无提示完成。
直接问答对:这是最基本的训练方法,模型在提示(系统提示)下生成问题和答案对。
掩码:在句子中掩码掉答案部分,模型需要根据上下文推断出答案。
无提示完成:没有系统提示,模型需要自行理解事实并完成句子。
这些技术在最新新闻数据集上的表现有所不同。直接问答对的效果最好,模型在重新措辞和日期更改问题上的表现较差,表明记忆并未转化为真正的知识获取。掩码和完成技术在某些情况下有所改进,但仍未能显著提高模型的泛化能力。无提示完成的效果最差,模型在重新措辞和日期更改问题上的表现仍然不理想。
问题3:在更新知识任务中,商业微调模型的泛化性能为何较低?与学习新知识相比,更新知识有哪些额外的挑战?
在更新知识任务中,商业微调模型的泛化性能较低,主要有以下几个原因:
知识冲突:更新知识需要模型替换现有的知识,并在各种实例中传播这些变化。这可能会导致模型在处理新旧知识时产生冲突,从而影响其泛化能力。
一致性要求:例如,当函数的名称更改时,模型不仅需要记住新的名称,还需要在所有代码实例中一致地应用这个更改。这种一致性要求在训练过程中难以实现。
模型先验:医疗问题的答案通常是概率性的(如列出多个建议),更新模型的答案需要引导其在已知答案中选择。而编程问题的答案通常是确定性的,更改名称需要模型完全记住新的名称。
与学习新知识相比,更新知识有以下额外的挑战:
知识扩散:更新知识需要在多个实例中传播变化,这增加了模型的复杂性和计算成本。一致性维护:模型需要确保在所有相关实例中保持一致的知识,这在训练过程中难以实现。先验知识的利用:医疗知识具有一定的分布性,模型可以通过选择已知答案来更新;而编程知识则需要完全记住新的名称,增加了学习的难度。
本文转载自 AI论文解读,作者:柏企