- 主要观点:LLMs 在被要求以结构化 JSON 响应的一部分返回代码时会产生较低质量的代码,许多顶级模型均如此,包括那些对 JSON 有专门支持的模型。基准测试表明,模型在编写的代码中存在语法错误,这与将代码引用和转义为 JSON 有关,JSON 格式的负担降低了模型解决编码问题的能力。
关键信息:
- 对比了以普通 Markdown 文本和 JSON 返回代码的 Aider 编码基准测试分数,模型以 Markdown 文本返回代码时表现更好。
- 背景部分介绍了人们对 aider 使用纯文本格式指定代码编辑的疑问,以及 LLM 提供商在可靠生成 JSON 方面的改进。
- 量化了纯文本的优势,实验基于 133 个练习的“代码编辑”基准测试,比较了不同返回代码策略的性能。
- 结果显示所有模型以结构化 JSON 响应返回代码时表现更差,模型在 JSON 中编写的代码更易出现语法错误,Sonnet 的结果表明 JSON 包装可能会影响模型解决编码问题的能力。
重要细节:
- 详细说明了不同模型在各种代码包装策略下的表现,如 OpenAI 的 gpt-4o-2024-05-13 在 Markdown 和 JSON 结果上较为接近,Sonnet 和 DeepSeek Coder 受 JSON 包装的影响最大等。
- 举例说明了 gpt-4o-2024-05-13 在使用 JSON 代码包装策略时出现的语法错误,以及正确的 JSON 转义方式。
- 强调结论不变,即 LLM 不擅长以结构化 JSON 响应返回代码,虽然 OpenAI 在这方面有进展,但目前仍不宜从纯文本切换到 JSON 包装代码。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。