GitHub发布新的Copilot嵌入矢量模型,主打在VS Code中更精准即时地找出与开发者意图相符的程序代码片段,同时降低本机与服务端的内存负担。官方测试显示,检索品质提升37.6%,嵌入(Embedding)吞吐量提升约2倍,索引内存占用约为原本的八分之一,预期可让Copilot聊天与代理回应更准确,结果回传更快,并减少在大型项目上的资源消耗。

此次模型已用于Copilot的场景截取,涵盖聊天、代理、编辑与询问模式。开发者在寻找函数、测试、跨多个文件的工具函数,或追查错误字符串的处理位置时,将更容易找到问题核心的程序代码,而非语义相近却无法直接使用的片段。GitHub并指出,在VS Code中的建议程序代码接受率也明显上升,C#开发者提升110.7%,Java开发者上升113.1%。

GitHub表示,新模型的设计重点是让开发者在实际工作中能更快更准确地找到需要的程序代码,同时控制反应时间与内存使用量。团队在训练过程中采用一种比较不同程序代码片段的方法,让模型学会分辨看起来相似但意义不同的内容,并能根据不同场景使用多种规模的运算方式,以兼顾速度与资源效率。

为了避免搜索时出现看似正确其实错误的结果,新模型特别加入了许多具挑战性的训练数据,这些范例虽然与问题非常接近,但答案并不正确。这些数据来自公开的GitHub程序代码库,以及微软与GitHub的内部项目,再通过大型语言模型协助挑选出最容易混淆的案例。

语言分布方面,数据集前5名分别为Python约36.7%、Java约19.0%、C++约13.8%、JavaScript或TypeScript约8.9%、C#约4.6%,其余语言合计约17.0%。在评测上,GitHub采多重基准而非单一测试,涵盖从自然语言到程序代码、程序代码到自然语言、相似功能搜索,与问题到程序代码(Problems to Code)的修正建议等不同面向,目标是在多样化场景中维持稳定品质。

对用户最直接的改变是VS Code端搜索反应更敏捷,且在大型程序代码库里创建与保存索引的成本下降,对本机内存较敏感或需要同时打开多个工作区的开发者尤其有感。服务端因索引缩小也更容易扩张规模,对团队与企业级场景能提供较稳定的回应时间,进一步改善Copilot在聊天、代理与编辑建议中的整体表现。

GitHub表示,未来将持续扩展支持的程序语言与程序代码存储库,并持续改进困难负面范例(Hard Negative)数据的筛选流程,让模型能更精确地识别程序代码间的细微差异。随着运算效率的提升,团队也计划把多余的性能资源投入在训练更大型,精度更高的模型上。