之前8月份,分享过一篇论文,主要是实验论证,大模型结构化输出对推理能力的影响。推文地址如下:
这个论文里边,提出了结构化生成限制对LLM性能有显著影响的观点,认为在各种任务中,结构化生成(称为“JSON-Mode”)的性能比非结构化生成(称为“Natural Language”或NL)差。
一个为结构化伸冤的研究来了。
- 一方面,新研究认为结构化生成在他们过去的实验中表现优于非结构化生成,并指出Tam等人的研究结果与他们的发现不符。
- 然后,作者深入研究了Tam等人的数据和源代码,发现了导致错误结论的几个关键问题。
这就是为什么当其他研究人员不够细心并最终传播错误信息时,我们不得不做工作来纠正它,如此令人失望。
并且,所有的实验论证是代码完全可复现的:https://github.com/dottxt-ai/demos/tree/main/say-what-you-mean
首先一个快速的评测:
非结构化结果与原论文一致,但结构化结果直接与论文的发现相矛盾,结构化生成在各方面都是一种改进
- 作者们发现,用于非结构化(NL)生成的提示与用于结构化生成的提示明显不同,因此比较从一开始就不是完全一致的。如下图,就是说,没有明确的告知应该以何种Json格式来输出。
- 结构化生成提示没有为模型提供足够的信息来解决任务,这导致“json 模式”示例的表现特别差。正常会符合chatml格式,以及提供一些示例
- 论文实际上更多地关注使用第二个LLM解析第一个LLM的结果,作者称之为“AI解析器”。通过测试,使用手工编写更灵活的正则表达式解析生产结果,在特定数据集上的性能超过了AI解析器。
- 这篇论文混淆了结构化生成与 JSON 模式。结构化生成是一种更广泛的概念,不仅仅是JSON格式的输出。这种误解可能导致了对结构化生成性能的错误评估。
一个恰当的类比是编程语言的基准测试:通过编写糟糕的 Rust 代码,很容易写出一篇论文来展示 Rust 的性能不如 Python。任何理智的读者都会很快意识到,这些结果更多地反映了作者的能力,而不是工具的能力。
