网站首页 > 技术文章 正文
大家觉得我们离AI机器取代程序员的时代有多远?最近一家名为Cosine的创业公司推出了一个令人瞩目的AI模型,名叫Genie。这个模型被称为目前世界上最强的软件工程模型,在Bench评估中得分高达30.08%。
要知道Genie在SWEBench上的得分比之前的最佳成绩由亚马逊的Q和Code Factory保持的19%整整提高了57%,在Genie Lite上更是达到了50.67%的惊人成绩,超过之前的43.00%。
在深入探讨Genie之前,我们先来了解一下SWEBench。这是一个用于评估AI模型软件工程能力的基准测试,它涵盖了软件工程的多个方面,包括问题分解、相关代码查找、代码检查以及实现可用解决方案。所以Bench的出现为我们提供了一个相对客观的标准来衡量AI在软件工程领域的表现。
那么Genie是如何做到如此出色的表现?关键在于它的训练方法。Genie使用了专有的私有数据进行训练,这些数据相当特别,它们编码了人类的推理过程、完美的信息谱系、渐进式知识发现以及源自真实软件工程师工作的逐步决策过程。简单来说Genie被训练得更像一个真正的人类工程师。
在Genie之前,许多AI模型尝试在大语言模型的基础上采用prompt交互的方式来实现AI软件工程师,比如Cognition Devin、Agent等。但这些方法存在一些明显的缺点,它们往往难以处理复杂的上下文,对于全新的问题也缺乏灵活性。而且它们的推理过程常常不够透明,难以解释。
Al agent Genie则采取了完全不同的方法,通过实际训练而不是简单地提示基础模型。Navigating Unc这种方法使得Genie在面对未知情况时,能够表现出更高的适应性和创造力。
在研究过程中,Cosine团队发现了一个关键点,Al agent能够在整个项目中找到正确的代码位置,非常重要。这听起来可能很简单,但实际上是一个巨大的挑战。想象一下,在一个包含数百万行代码的大型项目中,如何准确定位需要修改的几行代码,这需要对整个项目结构有深刻的理解。
Genie的架构最初也面临着挑战,它最初受到短上下文窗口模型的限制,团队尝试了各种压缩和分块方法,但最终得出结论,唯一的方法是使用更大上下文的模型。然而,当时并没有这样的模型可供训练。幸运的是,不久之后,他们获得了训练长上下文OpenAI模型的机会,这成为了突破口。
Genie的训练数据包括多种编程语言,以及不同类型的软件开发任务。这些数据的混合比例经过精心设计,以反映当前最受欢迎的编程语言和常见的开发任务。比如:javascript和python各占21%,TypeScript和TSX各占14%,其他语言如Java、C井、C加加等各占3%。
在任务类型方面,特性开发占25%,bug修复占20%,重构和小改动各占15%,测试编写占15%,文档编写和更新占10%。
Genie的推理过程包括四个主要步骤:规划、检索、代码编写和代码运行。这个过程模拟了人类软件工程师解决问题的方式。首先,Genie会对问题进行规划,然后在代码库中检索相关信息,接着编写或修改代码,最后运行代码以验证结果。
在训练过程中,Cosine团队使用了一种创新的自我改进技术,他们利用早期版本的Genie生成合成数据,然后将这些数据注入到下一版本的训练集中。这种方法使得Genie能够从自己的错误中学习,不断提高性能。
展望未来,Cosine有着雄心勃勃的计划,他们计划扩展模型组合,开发针对不同复杂度任务的模型。他们还打算为特定代码库fine、这将使Genie能够完美理解大型遗留的代码库,即使是用不太流行或专有的语言编写的。
值得注意的是,由于保护专有方法的需要,Cosine决定不公开模型的内部工作过程。但为了保证透明度,他们已经在GitHub上公开了最终输出供人验证。目前Genie正处于等待名单阶段,感兴趣的用户可以申请访问权限。这种谨慎的推出策略显示了Cosine对于AI伦理和安全的重视。
Genie的出现是否意味着程序员即将被取代?我认为答案是否定的。相反,Genie更像是一个强大的辅助工具,能够大大提高程序员的工作效率。它可能会改变软件开发的方式,但不会完全取代人类程序员的创造力和洞察力。
本期第一次大量采用AI来制作视频会有不少问题,欢迎评论区给出宝贵的意见,我们下期再见。
猜你喜欢
- 2024-10-21 如何选择合适你的MSPs? 如何选择合适你的人生伴侣
- 2024-10-21 什么样的人适合学自动化?这是我见过最全面的解答!
- 2024-10-21 使用Python和TensorFlow进行机器学习实战
- 2024-10-21 机器学习辅助催化剂设计,天大团队开发通用且可解释的描述符
- 2024-10-21 机械安全之风险评估究竟怎么搞? 机械安全风险评估步骤
- 2024-10-21 原创解读 | COMPUT:基于机器学习和辐射传输模型的无人机高光谱遥感估计小麦生物物理变量
- 2024-10-21 iPhone16芯片性能详细对比:A18 vs A18 Pro
- 2024-10-21 机器学习 - 训练集、验证集、测试集
- 2024-10-21 ROC和AUC也不是评估机器学习性能的金标准
你 发表评论:
欢迎- 11-18软考系统分析师知识点十六:系统实现与测试
- 11-18第16篇 软件工程(四)过程管理与测试管理
- 11-18编程|实例(分书问题)了解数据结构、算法(穷举、递归、回溯)
- 11-18算法-减治法
- 11-18笑疯了!巴基斯坦首金!没有技巧全是蛮力!解说:真远啊!笑死!
- 11-18搜索算法之深度优先、广度优先、约束条件、限界函数及相应算法
- 11-18游戏中的优化指的的是什么?
- 11-18算法-分治法
- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)