⏶5
关于项目级代码补全的预训练
发表
由
Evgeniy Glukhov 提交
作者: Maksim Sapronov, Evgeniy Glukhov
摘要
AI 生成总结
扩展上下文窗口并适应新的旋转位置嵌入缩放参数可以改进 OpenCoder 中的存储库级代码补全,在数据量较少的情况下实现了与更大模型相当的性能。面向代码的大型语言模型(LLM)通常采用存储库级别的预训练,以利用代码库的全局上下文。这增强了它们生成准确且上下文感知的代码补全的能力。在这项工作中,我们研究了不同的存储库处理策略如何影响 OpenCoder(一个 1.5B 参数模型)的上下文学习。我们通过在额外 1B 个精选的存储库级别数据上进行训练,将其上下文窗口从 4,096 扩展到 16,384 个 token。尽管使用了比竞争模型(通常使用数百亿 token)更小的数据集,我们的模型在 Long Code Arena 基准上实现了可比的性能。我们发现各种存储库处理技术产生了类似强的结果,主要增益来自于适应新的旋转位置嵌入(RoPE)缩放参数。最后,我们表明在原始序列长度下进行更简单的文件级训练方法仍然非常有效,为存储库级别代码补全研究在数据和计算资源受限的环境中开辟了道路。
我们在此处提供所有检查点:https://huggingface.co/collections/JetBrains-Research/repository-level-pre-trained-opencoder-68e938c003be1cfba9c3595e。