分享

2024 年 11 月 7 日

利用 Gemini 模型的长文本情境增强 AI 编码助理

Beyang Liu

Sourcegraph

Paige Bailey

AI 开发者体验工程师

Vishal Dharmadhikari

产品解决方案工程师

Sourcegraph 展示版主图

长情境窗口应用领域最令人兴奋的前沿领域之一是代码生成和理解。大型代码库需要深入了解复杂的关系和依赖项,而传统 AI 模型很难掌握这些内容。通过使用较大的上下文窗口来扩大代码量,我们可以在代码生成和理解方面实现更高水平的准确性和实用性。

我们与 Sourcegraph 合作,后者是 Cody AI 编码助理的开发者,该助理支持 Gemini 1.5 Pro 和 Flash 等 LLM,我们希望通过合作探索长上下文窗口在真实编码场景中的潜力。Sourcegraph 专注于将代码搜索和智能集成到 AI 代码生成中,并成功将 Cody 部署到拥有庞大复杂代码库的企业(例如 Palo Alto Networks 和 Leidos),因此是开展这项探索的理想合作伙伴。

Sourcegraph 的方法和成效

Sourcegraph 比较了 Cody 在 100 万个 token 上下文窗口(使用 Google 的 Gemini 1.5 Flash)下的性能与其正式版的性能。通过这种直接比较,他们能够单独评估展开式情境的优势。他们专注于回答技术问题,这对于使用大型代码库的开发者来说是一项至关重要的任务。他们使用了一个包含需要深入了解代码的具有挑战性问题的数据集。

成效显著。使用更长的情境后,Sourcegraph 的三个关键基准(基本召回率、基本简洁性和实用性)均有显著提升。



  • 关键回想:回答中关键事实的比例大幅增加。

  • 精简要点:按回答长度归一化后,必需事实的比例也有所提高,这表明回答更加简洁且相关。

  • 实用性:按回答长度归一化的整体实用性得分显著提高,表明用户体验更为友好。

替代文本:显示 Code base 和 Cody 在使用 Gemini 1.5 Flash 后的质量提升情况的条形图

此外,使用长文本情境模型大大降低了整体幻觉率(生成事实错误的信息)。幻觉率从 18.97% 下降到 10.48%,准确性和可靠性显著提升。

显示 Code base 和 Cody 在使用 Gemini 1.5 Flash 时的幻觉率差异的条形图

权衡和未来方向

虽然长文本有显著的好处,但也存在一些权衡。首次获取令牌的时间会随着上下文长度的增加而线性增加。为了缓解这一问题,Sourcegraph 实现了预提取机制和分层上下文模型架构,以便缓存模型执行状态。使用 Gemini 1.5 Flash 和 Pro 长上下文模型后,对于 1MB 上下文,首次生成令牌的时间从 30-40 秒缩短到了大约 5 秒,这对于实时代码生成和技术支持来说是一个显著的改进。

此次合作展示了长上下文模型在彻底改变代码理解和生成方面具有的变革潜力。我们很高兴能与 Sourcegraph 等公司合作,继续利用大范围上下文窗口,发掘更多创新的应用和范式。

如需深入了解 Sourcegraph 的详细评估方法、基准和分析(包括说明性示例),请不要错过他们的深度博文