Fine-tuning ChatGPT: Surpassing GPT-4 Summarization Performance–A 63% Cost Reduction and 11x Speed Enhancement using Synthetic Data and LangSmith

微调 ChatGPT:超越 GPT-4 摘要性能——使用合成数据和 LangSmith 降低 63% 成本并提升 11 倍速度

5 分钟阅读

编者按:这篇文章由 Charlie George 撰写,他是 Elicit 的机器学习工程师。

摘要

  • 微调后的 ChatGPT 在新闻文章摘要方面超越了 GPT-4,且仅使用了合成数据。
  • 我们使用 ScoreStringEvalChain 和改进的 PairwiseStringEvalChain,通过人工水平的自动化评估来量化这一改进。

背景

GPT-4 被广泛认为是世界上最好的语言模型,通常能够在 1000 字以内描述的任务中胜过普通人。这使其成为在法律、医学和科学研究等领域开发 AI 优先应用的理想工具,这些领域需要复杂的推理和对细微主题的理解。

这种接近 AGI 的模型并非没有挑战。许多开发者使用 GPT-4 创建了令人印象深刻的演示,但在实际部署模型时却遇到了障碍。这些障碍包括低速率限制、高成本和延迟。例如,GPT-4 的延迟通常以分钟为单位衡量,这导致用户体验不佳。

为了克服这些挑战,一些开发者选择使用较小的模型,如 ChatGPT、Claude 或 LLama。然而,这些模型通常不如 GPT-4 表现出色,并且由于 LLM 评估的挑战,这可能导致出乎意料的糟糕性能。

解决这些问题的一个潜在方案是微调,这个过程涉及调整模型权重,以更好地适应特定的手头任务。这有助于在降低成本和延迟的同时提高性能。然而,收集人工数据可能既昂贵又耗时。此外,传统的 ML 指标,如困惑度或 BLEU 分数,并不能准确反映用户体验,这使得评估微调模型的有效性变得困难。 

合成数据生成

合成数据生成最简单的方法是在更强大的教师模型的输出上训练一个较弱的学生模型。然而,这限制了微调后的模型最多只能与教师模型一样好,但可能略逊于教师模型。

一个更有趣的方法是从教师模型中获取数据,对其进行过滤或以某种方式改进,然后再进行微调。例如,过滤可能涉及使用一些简单的规则或使用 自洽性 来检测明显的错误答案。 

在这篇文章中,我们将探讨使用教师模型来改进数据,然后再进行微调。具体来说,我们将使用 密度链 (CoD) 提示。这项技术要求 GPT-4 逐步迭代改进其答案(在本例中为摘要)。摘要变得信息密度更高,更受人类欢迎。

使用 LangSmith 创建数据集

这部分相对简单。我们定义一个 CoD 新闻文章摘要链。然后,我们在数百篇文章上运行它,使用 dataset 方法获取最终摘要,并将结果发送到 LangSmith。然后,您可以从 LangSmith UI 导出它以进行微调。有关微调 ChatGPT 的详细信息,请参见 此处。由于这是一个生成任务而不是分类任务,因此最好使用 1 个 epoch 以避免过拟合。

评估

对于最终评估,传统的指标如 BLEU 和 ROUGE 虽然有用,但通常不足以准确捕捉现代语言模型的细微差别。另一方面,人工评估虽然通常更可靠,但既耗时又昂贵。设计一个自动化评估系统似乎是一个理想的解决方案,但它也需要人工验证以确保其有效性。值得庆幸的是,研究人员已经开发出经过真人验证的自动化测试解决方案。 

作为这个项目的一部分,PairwiseStringEvalChain 已经过改进,以更紧密地遵循 LLM-as-a-judge 论文。这篇论文介绍了 Chatbot Arena 的自动化排名框架。我们还添加了论文中的 1-10 评分方法(参见 ScoreStringEvalChain)。在使用 GPT-4 时,这两个链在论文中都达到了 85% 的人类一致性。这高于不同人类之间的一致性。我们测试了 GPT-4 零样本、GPT-4 w/ CoD 和在密度链摘要上微调的 ChatGPT。我们使用了与密度链论文中相同的零样本提示。

结果

标题:微调后的 ChatGPT 超越了 GPT-4 零样本,并且接近 GPT-4 w/ CoD
标题:微调后的 ChatGPT 比 GPT-4 零样本快 11 倍以上,比 GPT-4 w/ CoD 快 33 倍
标题:微调后的 ChatGPT 比 GPT-4 零样本便宜 63%,比 GPT-4 w/ CoD 便宜 84%

在成对评估中,微调后的 ChatGPT 对 GPT-4 零样本的胜率也达到了 96%。总而言之,虽然微调后的 ChatGPT 的性能仍然略低于使用密度链提示的 GPT-4 的摘要性能,但它远远超过了零样本 GPT-4,同时成本降低了 63%,速度提高了 11 倍。

LangChain 到生产的工作流程

  • 使用 LangChain 为 MVP 快速启动一个应用程序。您可以使用 RAG、多链、少样本提示、代理等。无需担心成本或延迟。
  • 验证此 MVP 是否满足您的用户需求。如果不是,请继续使用 LangSmith 快速迭代进行调试。
  • 一旦您对性能感到满意,现在可以使用 LangSmith 将其再次提炼到 ChatGPT 或 Llama 中,使用来自您的应用程序的现有输出。
  • 使用评估链(如 ScoreStringEvalChainPairwiseStringEvalChain)针对原始应用程序评估它。
  • 将快速且可扩展的版本部署到生产环境。

结论 

我们的研究结果表明,合成数据在有效使用时,是增强语言模型功能的极其强大的工具。使用密度链提示微调 ChatGPT,在性能方面取得了显著提升,超越了 GPT-4。微调后的 ChatGPT 版本在成本和延迟方面也优于 GPT-4,使其成为实际部署的可行选择。

值得注意的是,这种特定的摘要方法并没有什么特别之处。这种方法可以应用于提炼任何复杂的 GPT-4 步骤组合。LangChain 是创建复杂链条、使用 LangSmith 将其提炼成较小模型以及最后进行如上所述的自动化评估的理想工具。

在 LangChain 中利用自动化的人工水平评估,特别是改进后的 PairwiseStringEvalChain 和新添加的 ScoreStringEvalChain,可以为实际性能提供快速、可靠且经济高效的评估。

总之,使用合成数据微调 ChatGPT 在产生高性能、快速且经济高效的语言模型方面展现出巨大的潜力。这种方法为下一代 AI 优先应用程序扩展到数百万用户同时保持性能开辟了道路。