ai, llm,

一分钟读论文:《当 Many-Shot Prompting 失败时:LLM 代码翻译的实证研究》

Unbug By Unbug Follow Feb 28, 2026 · 1 min read
一分钟读论文:《当 Many-Shot Prompting 失败时:LLM 代码翻译的实证研究》
Share this

来自 Amir Kiarafiei 等人的论文《When Many-Shot Prompting Fails: An Empirical Study of LLM Code Translation》 将在 ICSE 2026 的 ReCode Workshop 上发表。这篇论文揭示了一个有趣的”Many-Shot 悖论”:在代码翻译等语义复杂的任务中,更多示例≠更好结果,反而 5-25 个 Few-Shot 示例效果最佳。研究团队通过 90,000+ 次翻译实验,涵盖 6 种语言、30 种语言对,为我们提供了宝贵的实证数据。

1. 论文概览

这篇论文的核心是研究 LLM 在代码翻译任务中,示例数量(Few-Shot vs Many-Shot)对性能的影响。传统直觉认为”示例越多,效果越好”,但论文通过大规模实证研究推翻了这一假设,提出了”Many-Shot 悖论”——在语义复杂的代码翻译任务中,过多的示例反而会导致性能下降。

2. 核心问题

论文要解决的核心问题是:在 LLM 代码翻译任务中,示例数量与性能之间的关系是什么? 具体包括:

  • Few-Shot(少量示例)和 Many-Shot(大量示例)哪个效果更好?
  • 示例数量的最佳范围是多少?
  • 为什么过多的示例反而会导致性能下降?

3. 核心技术

论文采用了大规模实证研究的方法:

  • 实验规模:90,000+ 次翻译实验
  • 语言覆盖:6 种编程语言(Python, Java, JavaScript, C++, Go, Rust)
  • 语言对:30 种不同的翻译方向
  • 模型:使用主流的 LLM 进行测试
  • 评估指标:代码正确性、可读性、编译通过率等多个维度

4. 核心发现

论文的核心发现可以概括为”Many-Shot 悖论”:

  • 5-25 个 Few-Shot 示例效果最佳:在这个范围内,LLM 的代码翻译性能达到峰值
  • 超过 25 个示例后性能开始下降:Many-Shot 反而不如 Few-Shot
  • 语义复杂度是关键:在代码翻译这种语义复杂的任务中,过多的示例会导致 LLM”困惑”,反而影响性能

5. 数据亮点

  • 90,000+ 次翻译实验:规模之大,保证了结论的可靠性
  • 6 种语言,30 种语言对:覆盖了主流的编程语言和翻译方向
  • 性能峰值区间明确:5-25 个示例的效果最佳,这个范围具有很强的实践指导意义
  • 悖论现象可重复:在不同模型、不同语言对上都观察到了类似的现象

6. 一句话总结

在 LLM 代码翻译等语义复杂任务中,5-25 个 Few-Shot 示例效果最佳,过多的 Many-Shot 反而会导致性能下降——这就是”Many-Shot 悖论”。

7. 研究意义

这篇论文的研究意义在于:

  • 推翻了传统直觉:”示例越多越好”并不适用于所有场景
  • 提供了实证指导:5-25 个示例的最佳范围,为开发者提供了明确的参考
  • 揭示了 LLM 的局限性:帮助我们更好地理解 LLM 的工作原理和适用场景
  • 为后续研究奠定基础:为 Prompt Engineering、LLM 优化等方向提供了新的思路

8. 给开发者的建议

基于论文的发现,给开发者的建议是:

  • 在代码翻译等语义复杂任务中,使用 5-25 个 Few-Shot 示例:这是性能最佳的区间
  • 不要盲目追求 Many-Shot:过多的示例反而会适得其反
  • 根据具体任务调整示例数量:不同任务的最佳示例数量可能不同,需要通过实验验证
  • 关注示例质量:除了数量,示例的质量也很重要,选择代表性强、多样性好的示例

References