Copilot一夜杀死编程助手,GitHub官宣接入Claude+Gemini!OpenAI沦为备胎

科技   2024-10-31 23:30   北京  



点击上方↑↑↑OpenCV学堂”关注我

来源:公众号 新智元 授权


【导读】OpenAI再也不是微软的唯一解。第十届GitHub开发者大会上,微软官宣GitHub Copilot同时接入Claude 3.5 Sonnet和Gemini 1.5 Pro两大模型。同时,还发布了0代码开发应用的「魔法」平台。AI代码生成第二阶段已来。

一年一度GitHub开发者大会上,微软再次革新了码农的编码效率。
这次,GitHub真的发力了:
解绑OpenAI,接入进化版Claude 3.5 Sonnet和Gemini Pro 1.5。意味着,OpenAI o1-preview不再是唯一可用模型。
未来,GitHub Copilot中接入的地表最强三大模型,开发者们可以随意调用。
  • Claude 3.5 Sonnet(New)编码熟练度非常高,擅长处理整个软件开发生命周期的编码任务
  • Gemini 1.5 Pro拥有原生多模态能力,200k上下文适合处理大规模代码库
  • o1-preview/o1-mini就不用多提了,强大思维链能力,具备了先进的推理能力

伴随着这一大动作,GitHub CEO正式宣告:AI代码生成早期阶段已经结束,第二阶段正式开启。
AI编码已经正式走向AI原生、AI智能体、多模型可选的阶段。
不仅如此,微软正式推出了AI零代码编程微应用平台GitHub Spark,还是多模态的那种。
为此,团队将其称之为「软件编程的Dumbledore」。也就是说,任何人动动嘴就能做App了。
它不仅能够根据一个提示构建轻App,还能自动保存每个迭代的版本。
比如,做一个可以学学西班牙语的闪卡,一句话就够了。
最终,GitHub希望用AI赋能10亿开发者,成为世界最大开发者社区。
凭借以上所有革新,微软真的可以与Cursor一战了。
更值得一提的是,Python已经成为世界使用最多的编程语言。

GitHub Copilot加入三大新模型:Claude、Gemini、OpenAI o1

在Copilot Chat中,o1-preview和o1-mini已经上线,Claude 3.5 Sonnet将在接下来的一周内推出,而Gemini 1.5 Pro将在未来几周内上线。
这三大模型,究竟会在编码中发挥怎样的效用?

Claude 3.5 Sonnet(New)

Claude 3.5 Sonnet(New)能够处理多步骤的编码任务。
应用程序更新、代码重构、功能开发……所有复杂的编码任务只需一个指令!
在GitHub给出的案例中,用户输入指令「重构代码,将脚本和样式分离出来」后,Claude进行了4个步骤将脚本和样式从用户提供的HTML文件中分离出来,进行重构代码。

步骤1:创建一个新的CSS文件用于样式 

步骤2:创建一个新的JavaScript文件用于脚本 

步骤3:更新HTML文件,链接新的CSS和JavaScript文件 

步骤4:从HTML文件中移除内联样式和脚本


随后,用户可以检查重构以后的代码文件预览。检查无误即可点击Accept和Done,完成重构代码任务。

Gemini 1.5 Pro

Gemini 1.5 Pro拥有200k token的上下文窗口,并且原生支持多模态,能够同时处理代码、图像、音频、视频和文本。
在Copilot Chat中,Gemini 1.5 Pro在常规代码建议、文档和代码解释方面也提供了令人印象深刻的响应速度!
比如,用户输入指令「如果网页当前不可见,则停止更新动画」。
Gemini很快提供了解决方案:
1. 添加事件监听器来监听「visibilitychange」事件
2. 实现「handleVisibilityChange」函数,根据页面可见性启动和停止动画


然后,Gemini根据解决方案自动更新了相应的代码文件,还创建了一个README文档。

OpenAI o1

在Copilot Chat的应用中,o1的推理能力使其能够更深入地理解代码约束和边界情况,生成高效且高质量的解决方案。
简单来说,o1可以优化代码!
o1的使用案例中,用户输入了指令「使页面在加载和渲染新的动画帧时更加高效」。
o1回答道:
为了使页面在加载和渲染新的动画帧时更加高效,我们将用HTML5的「canvas」替换「div」元素网格。这样可以减少DOM元素的数量,并通过在「canvas」上直接进行绘图操作来提升渲染性能。
接着,o1自动修改了HTML文件:用「canvas」替换「div」元素网格,并更新JavaScript代码以在「canvas」上绘制网格。

GitHub Spark:一句话写App

如前所述,一年一度GitHub开发者大会上,微软正式推出了AI零代码编程微型应用平台GitHub Spark。
这是一个完全使用自然语言构建应用程序的AI原生工具!无需编写或部署任何代码!
概括来说,它通过三个紧密集成的组件来实现:
  • 一个基于自然语言的编辑器,让你可以轻松描述想法,并随着时间的推移加以完善
  • 一个托管的运行时环境,用于托管你的项目,并为其提供数据存储、主题和大语言模型的访问
  • 一个支持PWA的仪表盘,使你可以从任何地方管理和启动你的项目

什么是「微应用」?

微应用(micro apps)里的「微」,并不是指应用的价值大小,而是指其功能复杂度的规模。
目的在于为用户量身定制,打造「一个微应用专注做好一件事」的极致体验。
GitHub Spark的项目介绍网站中列举了一些团队在制作并使用的几个微应用。这些应用涵盖了动画、生活管理工具、学习辅助工具、个性化新闻客户端等多种类型。
它们的共同点是:每个应用的外观和功能都完全符合创建者的预期,不多也不少,恰到好处。
1. 儿童零花钱追踪应用
这个应用主要供父母使用,可以设置成只读或读写模式共享。当达到储蓄目标时,该应用还会使用大语言模型生成祝贺信息。
2. 由一位六岁小朋友构想并创建的汽车动画世界
3. 用于管理每周卡拉OK聚会的应用,可追踪每位受邀好友的参与状态
4. 一个有趣的地图应用
这是一个10岁的孩子为了学习而创建的应用。它可以通过名称搜索城市,并使用大语言模型为每个城市生成有趣的简要概述。
5. HackerNews定制版客户端
这个应用可以展示HackerNews热门前20篇文章,并使用大语言模型对评论区进行总结。

基于自然语言(NL-based)的工具链

在构建应用程序的过程中,清晰地定义目标和需求至关重要。这涉及到对应用的整体概念的深刻理解,同时也需要明确应用的具体特性和用户体验。
然而,这个过程可能相当复杂,有时甚至会让初学者感到无所适从。为了帮助解决这个问题,GitHub Spark应运而生,提供了一种全新的解决方案。
GitHub Spark让你能够从一个简单的想法出发,例如「一个追踪孩子零用钱的应用」,并通过一系列智能化的引导步骤将其转化为实际应用。
它的核心在于利用自然语言处理技术,使开发过程变得更加直观和高效。
以下是GitHub Spark提供的四大核心功能:
  • 交互式预览:用户通过自然语言创建并修改项目的过程中,可以实时预览应用。
  • 多版本方案:针对某个功能,用户可以请求系统生成多个版本,最终选择最合适的方案
  • 自动历史记录:系统会自动保存每个迭代版本,以便在构建过程中对比不同版本。
  • 模型选择:提供多种AI模型供用户选择,以适应不同应用场景

交互式预览

在GitHub Spark中输入自然语言指令时,系统不仅能生成相应的代码,还会即时生成一个交互式的预览界面。
有了它,用户不仅可以实时看到应用的效果,并且还可根据需要进行调整。
如下图,用户想将Spark News标题的颜色设置为橙色,只需简单地告诉系统,它就会自动修改设置并更新预览。

多版本方案

在开发过程中,如果用户对某个功能的具体实现方式不太确定,可以请求系统生成多个版本。
系统会提供3到6个不同的版本,每个版本都有细微但重要的区别。
这些版本可以帮助你更好地理解和选择最合适的方案,就像是有一个AI思维助手在帮你进行头脑风暴。

对于「让界面看起来『傻乎乎』」的修改要求,GitHub Spark生成的多个方案

自动历史记录

每次对应用进行修改时,GitHub Spark都会自动保存一个版本,并允许用户随时恢复到之前的任何一个状态。这意味着用户可以大胆地尝试新的想法,而不必担心会破坏现有的工作。
此外,历史记录还提供一种「语义化的源代码查看」功能。
也就是说,开发者们可以互相分享想法并查看对方的历史记录,了解其项目开发过程,并进行学习借鉴。

模型选择

与GitHub Copilot相同,GitHub Spark也提供了三大模型的选择。
在使用过程中,如果某个模型生成的结果不符合预期,用户可以切换到另一模型中重新尝试。
自动历史记录功能会记录每次修订使用的模型,让用户能够清楚看到应用的迭代过程。

年度开发者报告:Python问鼎第一,1700万+开发者

召开发布会的同时,GitHub官方还重磅发布了2024年度开发者报告。
在这次的年度报告中,有三个主要趋势:
  • 生成式AI项目激增

2024年,GitHub上的生成式AI项目数量同比增长98%,贡献数量激增近60%。其中,印度、德国、日本和新加坡等地贡献更为突出。
  • 全球开发者数量迅速增长
2024年,全球开发者数量增长势头依旧不减,尤其是亚洲、拉丁美洲、非洲,其中,印度的增长尤为明显,预计到2028年将成为GitHub上全球最大的开发者群体。
此外,GitHub Education计划已验证超过700万参与者,其中学生、教师和开源维护者使用GitHub Copilot的人数同比增长了100%。
这表明AI不仅能够帮助人们更快地编写代码,还吸引了更多人成为开发者。
  • 编程语言崛起
2024年,Python首次超越JavaScript成为GitHub上使用最多的语言,Jupyter Notebook的使用量激增92%,这表明越来越多的开发者们都在使用GitHub。
尽管Python、JavaScript、TypeScript和Java仍然是最广泛使用的语言,但像Rust这样的系统编程语言也在逐渐流行。

2024年生成式AI的发展现状

2024年,生成式AI已经走出了2023年的概念热潮期,开发者的工作重心已经从探索性实验转向追求实际应用成果,而这一趋势在GitHub平台的数据中得到了明确体现。
报告显示,2024年GitHub平台上的开发者共创建了超7万个生成式AI项目,同比增长近60%。
与此同时,AI模型已经成为开发者技术栈中不可或缺的组成部分。
随着开发者不断挖掘人工智能的各种应用,生成式人工智能模型在软件开发里的作用已经从只是帮助写代码,变成了开发应用程序时的基本组成部分。
  • 由于智能手机需要部署人工智能模型,开发者们越来越需要性能好且不怎么消耗计算资源的小模型。

  • 2024年,按贡献者数量来看,ollama/ollama这个开源人工智能项目增长最快,这说明开发者越来越热衷于在本地运行大型语言模型(LLM)相关的实验。

  • 随着模型越来越小、计算成本越来越低,预计会有更多开发者把这些模型用在他们开发的应用程序里。

当然,GitHub平台上的开发者也正在努力降低AI实验的准入门槛。
报告显示,排名前10位的公共生成式AI项目都在努力提升AI模型的可访问性以简化实验过程。这些项目的应用范围广泛,包括开发优化文本转图像生成的交互友好型界面以及构建用于任务管理的自动化AI智能体。

外,在GitHub平台上,AI开发工作也呈现出新的趋势:

  • 小规模模型越来越火

过去一年中,GitHub上的开发者开始广泛采用Meta的LLaMA模型,这表明开发者对小型开源模型越来越有兴趣了。
  • 专业领域对AI工具需求变大
面向特定领域(如学术研究)的AI工具开发需求正在显著提升。
  • 持续深化AI智能体的流程自动化应用
AutoGPT相关项目的持续活跃表明,自动化仍是重点探索方向。
  • GitHub Copilot在教育方面影响变大
报告显示,已经有超过100万的开源维护者、认证学生和教师通过扶持计划免费使用GitHub Copilot。

2024年,使用GitHub Copilot的老师、学生和开源维护者数量增加了一倍。这充分体现了AI在教育领域和技能培养(例如学习新编程语言)方面的重要价值。

值得一提的是,过去一年中,超过45万名GitHub Education用户首次参与了平台项目开发。
具体而言,同时使用GitHub和GitHub Copilot的开发者在开源和公共项目的参与度显著提升。
对于每周使用GitHub五天的开发者,其参与度提高了12%-15%;而对于每周使用一次的开发者,这一提升幅度为8%-15%。这一现象与研究机构关于AI编码工具对开发者生产力提升的研究结果相符。
全球范围内,生成式AI项目的贡献量和贡献者数量均呈增长态势。其中,印度的贡献同比增长了95%,法国增长了70%。
一些地区的公共生成式AI项目贡献者增幅尤为突出,例如荷兰(291%)、埃塞俄比亚(242%)、哥斯达黎加(171%)、塞尔维亚(175%)和越南(143%)。
特别是随着更多小型大语言模型的出现,降低了AI辅助软件开发的算力门槛。生成式AI编码工具支持使用自然语言编写代码,打破了语言障碍,为全球开发者创造了更多参与项目的机会。

最流行的编程语言

除了生成式AI的突出表现外,编程语言也呈现出崛起的态势。
报告显示,Python已超越JavaScript,成为GitHub平台上使用最广泛的编程语言,终结了JavaScript 持续十年的领先地位。
这是自2019年以来,排名前两位的编程语言首次发生重大变化。同时,Shell语言的使用率也在2024年超过了C语言,进一步反映了编程语言格局的变化。
尽管像Rust和Go这样的新兴语言正迅速崛起,传统编程语言如C和Java等仍维持着广泛的应用场景和市场占有率。
Python和JavaScript这类入门门槛较低的编程语言,因其易学性和强大的社区支持,为编程教育和科研领域提供了强有力的支持,特别是在数据科学和生成式AI领域,Python已经成为无可争议的领导者。
值得一提的是,如果单从代码提交数量来看,JavaScript依然是领先者。然而,在综合考量GitHub上的所有贡献活动时,Python已经超过了JavaScript。
TypeScript在过去的几年里经历了快速的成长,尤其是在2014年至2019年间,它逐渐成为GitHub上第三大主流编程语言,超越了Java。
JavaScript的跨平台能力和灵活性,使其成为从前端到后端开发不可或缺的一部分。
Rust作为一门旨在解决C和C++安全问题的编程语言,其应用范围正在不断扩大,甚至被用于微软Windows等重要应用的核心代码重构。
综上所述,编程语言的使用趋势不仅体现了技术的进步,还揭示了开发者角色的多样化。
如今,不仅仅是传统的软件开发者,还有运维工程师、数据科学家、教师等多领域的专业人士都在积极参与编程活动,共同推动技术的发展。
Python在数据科学和研究领域的主导地位以及T-SQL在数据库管理中的广泛应用,都说明了这一点。
此外,HCL、Go语言和Dockerfile的使用增加,标志着云原生开发和基础设施即代码实践的不断成熟和发展。
参考资料:
https://githubnext.com/projects/github-spark
https://github.blog/news-insights/octoverse/octoverse-2024/
https://github.blog/news-insights/product-news/bringing-developer-choice-to-copilot/

OpenCV4系统化学习


深度学习系统化学习

推荐阅读

OpenCV4.8+YOLOv8对象检测C++推理演示

ZXING+OpenCV打造开源条码检测应用

攻略 | 学习深度学习只需要三个月的好方法

三行代码实现 TensorRT8.6 C++ 深度学习模型部署

实战 | YOLOv8+OpenCV 实现DM码定位检测与解析

对象检测边界框损失 – 从IOU到ProbIOU

初学者必看 | 学习深度学习的五个误区


OpenCV学堂
三本书《Java数字图像处理-编程技巧与应用实践》、《OpenCV Android开发实战》、《OpenCV4应用开发-入门、进阶与工程化实践》作者。OpenCV实验大师平台 软件作者,OpenCV开发专家、OpenCV研习社创始人。
 最新文章