译自英文

GitHub Copilot是一款由GitHub和OpenAI开发的AI驱动代码补全与编程助手,于2021年6月首次公布,并于2022年6月全面开放。它能在多种IDE中自动补全代码,并支持多种大型语言模型。

GitHub Copilot是由GitHub和OpenAI开发的代码补全和编程AI助手,通过自动补全代码来帮助Visual Studio Code、Visual Studio、Neovim、Eclipse和JetBrains集成开发环境(IDE)的用户。该生成式AI软件面向个人开发者和企业提供订阅服务,由GitHub于2021年6月29日首次宣布。用户可以选择用于生成的大语言模型

Copilot代表了人工智能在软件开发领域应用的一个重要里程碑,其基础是数十年来在机器学习深度学习方面的研究。其于2022年6月正式全面可用,标志着从实验性神经网络模型向全球数百万程序员使用的商业产品的转变。

历史

2021年6月29日,GitHub宣布GitHub Copilot在Visual Studio Code开发环境中进行技术预览。最初版本仅限一小部分测试人员使用,但很快扩展。GitHub Copilot于2021年10月29日作为插件在JetBrains市场上发布。2021年10月27日,GitHub将GitHub Copilot Neovim插件作为公共仓库发布。GitHub于2022年3月29日宣布Copilot可用于Visual Studio 2022 IDE。

2022年6月21日,GitHub宣布Copilot已脱离“技术预览”阶段,并作为面向个人开发者的订阅服务提供。这一全面可用日期被广泛视为该产品向更广泛公众正式推出的时间点。

GitHub Copilot是Visual Studio 2013“Bing Code Search”插件的演进版本,后者是微软研究院于2014年2月发布的项目。该插件集成了MSDN和Stack Overflow等多个来源,以响应自然语言查询并提供高质量且与上下文相关的代码片段。这一发展脉络反映了微软和GitHub长期以来对使用自然语言处理辅助程序员的兴趣。

功能

当以自然语言提供编程问题时,Copilot能够生成解决方案代码。它还能够用英语描述输入代码,并在编程语言之间翻译代码。这些能力由Transformer架构驱动,该架构擅长理解上下文并生成连贯序列。

Copilot使开发者能够在多个大语言模型之间进行选择,包括OpenAI的GPT模型、Anthropic的Claude、xAI的Grok以及Google的Gemini。这种灵活性允许用户选择针对不同任务(如速度、准确性或成本)优化的模型。

根据其网站介绍,GitHub Copilot包含面向程序员的各种辅助功能,例如将代码注释转换为可运行代码,以及为代码块、重复代码段以及整个方法和/或函数提供自动补全。GitHub报告称,Copilot的自动补全功能大约有一半时间是准确的;例如,对于某些Python函数头代码,Copilot在第一次尝试时正确自动补全其余函数体代码的概率为43%,在十次尝试后为57%。

GitHub表示,Copilot的功能使程序员能够通过减少用户阅读文档的时间来导航不熟悉的编码框架和语言。这对于学习新的编程范式以及融入大型现有代码库尤其有价值。

实现

GitHub Copilot最初由OpenAI Codex驱动,后者是GPT-3的修改版生产版本。Codex模型还额外在数十种编程语言的千兆字节源代码上进行了训练。Copilot的OpenAI Codex是在英语、公共GitHub仓库以及其他公开可用的源代码的选择基础上训练的。这包括一个经过筛选的数据集,其中包含来自5400万个公共GitHub仓库的159千兆字节Python代码。OpenAI的GPT-3由GitHub的母公司微软独家许可。

底层技术依赖于多头注意力机制和位置编码来有效处理代码序列。模型在生成过程中使用top-p采样温度缩放来平衡创造性和正确性。

2023年11月,Copilot Chat更新为使用OpenAI的GPT-4模型。2024年,Copilot开始允许用户在包括Gemini和Claude在内的不同大语言模型之间进行选择。这一转变反映了行业向提供多种模型选项而非单一专有系统发展的更广泛趋势。

2025年2月6日,GitHub宣布了“代理模式”,这是Copilot的一种更自主的操作模式。给定一个编程任务,它会尝试通过在用户计算机上的Visual Studio实例上执行命令来完成该任务。代理模式可以连接到不同的LLM,包括GPT-4o、o1、o3-mini、Claude 3.5 Sonnet和Gemini 2.0 Flash。

2025年5月17日,GitHub宣布了“编码代理”,这是Copilot的一种更自主的操作模式。用户会将任务或问题分配给Copilot,然后Copilot会在云端(由GitHub Actions提供支持)初始化开发环境并执行请求。它会起草一个拉取请求草稿,并在工作时将提交推送到该草稿。完成请求后,它会标记用户进行代码审查。它本质上是代理模式的异步版本。

反响

自Copilot发布以来,人们对其安全性和教育影响存在担忧,以及围绕其生成代码的许可争议。该工具既因提高开发者生产力而受到赞扬,也因对学习和代码质量的潜在负面影响而受到批评。

许可争议

尽管GitHub首席执行官Nat Friedman在2021年6月表示“在公共数据上训练机器学习系统是合理使用”,但2022年11月提起的集体诉讼称这是“纯粹的推测”,并断言“没有法院考虑过‘在公共数据上训练机器学习系统是合理使用’这一问题”。来自Joseph Saveri Law Firm, LLP的诉讼对Copilot的合法性提出了多项指控,从违反GitHub用户的合同,到根据CCPA因共享个人身份信息而侵犯隐私。

GitHub承认,该工具输出的很小一部分可能是逐字复制的,这引发了人们的担忧,即输出代码的转换性不足以被归类为合理使用,并可能侵犯原始所有者的版权。2022年6月,软件自由保护组织宣布将停止在其自身项目中使用GitHub的所有功能,指责Copilot忽略了训练数据中使用的代码许可证。在一份客户支持消息中,GitHub表示“在公开可用数据上训练机器学习模型在整个机器学习社区中被视为合理使用”,但集体诉讼称这是“虚假的”,并进一步指出“无论这一概念在‘机器学习社区’中的接受程度如何,根据联邦法律,这都是非法的”。

隐私问题

Copilot服务基于云,需要与GitHub Copilot服务器持续通信。这种不透明的架构引发了对遥测和单个按键数据挖掘的担忧。与本地代码补全工具不同,Copilot会将代码片段和上下文发送到远程服务器,这引发了对专有代码库数据安全性的质疑。

2022年底,GitHub Copilot被指控输出了Quake游戏源代码,且没有作者署名或许可证。这一事件凸显了模型逐字复制训练数据的风险,这是深度学习系统中的一个已知挑战。

对软件开发的影响

GitHub Copilot的发布加速了AI辅助开发工具在整个行业的采用。它展示了大语言模型在文本生成之外的实际应用,影响了Google DeepMindOpenAI等公司的后续产品。

Copilot的成功也推动了对模型剪枝和效率改进的研究,因为大规模运行这些模型需要大量的计算资源。Amazon Web ServicesAzureGoogle Cloud等云提供商开发了专用硬件,例如AWS Trainium,以支持此类工作负载。

该工具还影响了计算机科学的教育方法。一些教育工作者担心学生可能过度依赖AI辅助,而另一些人则将其视为专注于更高层次设计和架构技能的机会。MIT CSAILStanford AI Lab等机构研究了AI结对编程对学习成果的影响。

未来方向

截至2025年,GitHub继续以更自主的能力发展Copilot,包括代理模式和编码代理,这些功能可以在最少人工干预的情况下完成整个任务。这些发展指向一个未来,即AI系统处理日常编码任务,而人类开发者则专注于复杂问题解决和系统设计。

集成多个LLM提供商反映了向模型无关平台发展的更广泛行业趋势。这种方法允许用户受益于AI的快速进步,而不会受限于单一供应商的模型。

参见

参考文献

来源事实由Wikipedia根据CC BY-SA许可证提供。

外部链接

官方网站

Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
分类:ai-assistant·code-completion·software-development·github
本页最后编辑于 2026年9月12日 编辑者 AI Wiki Bot · 历史