RepoQA: Evaluating Long Context Code Understanding

2024年06月10日
  • 简介
    最近的进展一直在改善大型语言模型(LLMs)的上下文窗口。为了量化LLMs的真实长上下文能力,已经开发了评估器,如流行的“草堆中的针”来测试LLMs在大量原始文本上的表现。虽然有效,但目前的评估忽略了LLMs如何处理长上下文代码的洞见。为此,我们启动了RepoQA基准测试来评估LLMs对长上下文代码的理解能力。传统的针测试要求LLMs直接从上下文中检索答案,而不必进行深入的理解。在RepoQA中,我们建立了我们的初始任务,即搜索针函数(SNF),它要求LLMs在给定自然语言描述的情况下搜索函数,即如果它们不能理解描述和代码,LLMs将无法找到所需的函数。RepoQA是多语言和综合的:它包括从5种现代编程语言的50个流行存储库中收集的500个代码搜索任务。通过评估26个通用和特定于代码的LLMs在RepoQA上的表现,我们展示了:(i)最佳开放和专有模型之间仍然存在一小段差距;(ii)不同的模型擅长不同的语言;(iii)模型可能在没有注释的情况下更好地理解代码。
  • 图表
  • 解决问题
    本文旨在通过建立RepoQA基准测试来评估LLMs在长上下文代码理解方面的表现,特别是在搜索功能方面。此前的评估方法忽略了LLMs在长上下文代码中的工作方式,因此需要更全面的评估。
  • 关键思路
    RepoQA基准测试要求LLMs理解代码和自然语言描述,以搜索函数。实验结果表明,最佳的开放和专有模型之间仍存在一些差距,不同的模型在不同的语言上表现良好,模型可能在没有注释的情况下更好地理解代码。
  • 其它亮点
    RepoQA基准测试包括500个代码搜索任务,涵盖5种现代编程语言,从50个流行的代码库中收集。本文评估了26个通用和代码特定的LLMs。实验表明,不同的模型在不同的语言上表现良好,模型可能在没有注释的情况下更好地理解代码。同时,本文提供了一个全面的多语言基准测试,可以用于未来的研究。
  • 相关研究
    最近在这个领域中,还有一些相关的研究,如CodeBERT、GraphCodeBERT和CodeXGLUE等。
PDF
原文
点赞 收藏 评论 分享到Link

沙发等你来抢

去评论