超越Devin!姚班带队,他们创大模型编程新世界纪录

超越Devin!SWEBench排行榜上迎来了新玩家——

StarShip CodeGen Agent,姚班带队初创公司OpenCSG出品,以23.67%的成绩获得全球第二名的成绩。

同时创造了非GPT-4o基模的最高纪录(SOTA)。

我们都知道,SWEBench评测高度贴近真实编程场景,难度极高,不仅要求模型能理解需求、协调多个函数/类甚至文件的变更,还要求模型与执行环境交互,处理超长上下文并执行远超传统代码生成任务的复杂逻辑推理。

在这种高难度的真实测试中,行业中最先进的GPT4和Devin,也仅能解决1.74%和13.86%的问题。

OpenCSG的这一成绩,标志着国内公司在推动语言模型向更实用、智能和自主化方向发展迈出了领先的一步。

  • 大模型编程,到底有多难?

2024年3月,首个AI软件工程师Devin的横空出世,引爆了整个技术界。虽然伴随着一系列争议,但Devin本身强大的创新能力和巨大的潜力,带给众多AI爱好者和从业者新的期待。

Devin不仅能够轻松解决编码任务,更可以自主完成软件开发的整个周期——从项目规划到部署,涵盖但不限于构建网站、自主寻找并修复 BUG、训练以及微调AI模型等等。

 为什么Devin敢于挑战GPT4等基础模型的编程能力呢?

核心在于软件工程师并不只是编写代码,更涉及到需求理解、代码解读、编程计划、代码生成、调试与异常修复等等环节,这里面的每个环节都会影响大模型编程的可用性和效果。

针对于这类真实场景,普林斯顿大学提出了SWEBench,这是一种量化评估端到端代码生成能力的工具。

GPT-4在SWEBench上的评分仅有1.74%,即使加上RAG技术,评分也不到3%,这表明单纯依靠基础模型来直接解决现实世界中的编程问题是不可能做到的。

而Devin的技术创新是基于Agent构建工作流程,将SWEBench的解决率提升到了一个新高度。

3月份,Devin以独立解决13.86%的问题解决率高居榜首,这直接将“大模型编程”从几乎不可用的状态提升到了“看到了曙光”。硅谷大厂和大模型创业公司纷纷闯入LLM for SE这个领域,这项记录被连续改写。

截止2024年4月底,最好的记录由Amazon AI团队推出的 Amazon Q Developer Agent 创造的20.33%。

较为遗憾的是,相比于基础模型榜单上中国公司的“百花齐放”,这项高难度的挑战中国公司鲜少参与,直到这一次OpenCSG改写了这一纪录。

  • 来自中国创业公司

SWEBench最新评测结果更新,OpenCSG跃居榜单第二名,该公司推出的OpenCSG StarShip CodeGen Agent在Lite评测中取得了23.67%的通过率,这一成绩不仅超过了Devin和Amazon的成绩。

OpenCSG(开放传神)成立仅一年,是一家致力于大模型生态社区建设,汇集人工智能行业上下游企业链共同为大模型在垂直行业的应用提供解决方案和工具平台的公司。

 

团队在开源及大模型复合经验十分深厚——

CEO陈冉是开源软件领域的知名企业家,曾成功打造过多家开源领域的商业公司。

CTO王伟来自清华05级姚班,在人工智能领域有多年研发经验。

公司核心研发团队中还汇聚了来自清华、北大、沃顿、港科大等学府的精英学子。

那么这样一支团队是如何打造出新的记录的呢?

当前许多企业正在积极探索和实践基础模型、垂直领域模型及RAG等技术,而OpenCSG则选择了专注的方向:致力于编程Agent的创新开发和大型模型算法的深度优化

Agent层面:不同于LLM+RAG或者通用Agent框架,OpenCSG StarShip CodeGen Agent针对软件研发领域高度定制优化Agent而设计:将研发各个阶段(需求理解、代码检索、编程计划、编写代码、循环验证等)通过LLM Agent实现,并结合软件工程方法,例如AST语法分析、依赖检索等进行深度优化的方式,在各个环节精益求精,最终整合实现了更高精度的代码生成。

算法层面:针对代码版本变更引起的API冲突等典型问题,OpenCSG提出了自适应教师模式,通过教师模型分析代码版本变更记录,生成高质量编程数据并用于改善基础模型的生成效果。根据评测这些创新带来的改进,显著优于当前的RAG模式,尤其是在API结构高频更新的热门项目场景中。这部分的相关成果已经形成论文投递到国际会议中。

正是这种算法+工程双管齐下、精益求精的模式,让OpenCSG CodeGen Agent能在一众模型中脱颖而出。

  • “StarShip就是各种家电电器”

如果说CodeGen Agent的真实评测是牛刀小试,那么StarShip则是承载着OpenCSG的宏伟蓝图。

对于StarShip的产品定位,OpenCSG CEO陈冉表示:

StarShip承担着我们对于大模型重塑软件开发的愿景。用户通过StarShip内置的智能体(Agent)组建自己的数字员工团队。CodeGen Agent是平台内置的数字程序员,目前已经发布的还有CodeReview Agent代码评审员和CodeSearch代码问答工程师。不同于代码辅助工具,我们希望这些数字员工能直接独立工作而不需要人工辅助干预。未来我们将发布更多类型的数字员工,全面覆盖需求、设计、编码、测试和运维各个环节。

CTO王伟则表示这条路径充满挑战但非常有趣,“从第一性原理来看,大模型对于生产力的提升已经不是’是’或者’否’的问题,而是何时、何地、何种形态的问题,StarShip正是我们尝试给出的一个回答。”

除StarShip之外,OpenCSG团队还相当高产:CSGHub开源模型平台、wukong预训练模型、CSGCoder微调代码模型等,这些产品定位精准,在业内颇受好评。

这些产品的快速推出与迭代,既满足了市场需求,同时也为了一个共同的目标:让大模型赋能每一个企业每一个人。

 让大模型赋能每个企业、每个人,就需要让大模型变成水和电一样。如果说大模型是电能,那么CSGHub是电力网络,StarShip则是各种各样的家电电器,最终赋能到千家万户。

OpenCSG的理念是开源开放,作为一家坚持以开源为核心的公司,不仅实现了模型开源、代码开源,甚至将平台开源。

CTO王伟这样总结,我们是一家年轻的公司,受益于开源,才能在较短的时间做出一些成果,同时也会全面回馈开源社区,这是开源社区的基本原则。除此之外,我非常认同Sam Altman的说法,开源只是一种模式,比模式更重要的是产品价值。

“Benchmark本身只是一个数字,随着GPT4-o的推出,SWEBench的测试成绩预计将会很快超过30%,乐观估计明年可以突破50%。而我们更关注这些数字背后的产品价值:随着模型能力和工程技术的提升,数字员工将会从量变引发质变,从能用到好用,在各行业迎来全面的爆发”王伟解释道“这可能会是大模型时代背景下的一个重大变化,从公司到个人,我们都要为此做好准备。”

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/339937.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人脸识别技术与人证合一智能闸机的剖析

人脸识别技术,作为一种先进的生物认证手段,依据个体面部独有的特征信息来进行身份验证。这项技术通过捕获图像或视频中的面部数据,执行一系列精密步骤,包括图像获取、面部定位、预处理、特征提取与比对,以确认个人身份…

FL Studio怎么给钢琴加延音 FL Studio怎么用钢琴做伴奏

在使用钢琴音色进行音乐创作的时候,可以对钢琴进行延音处理,这样处理的音色给人的感觉会更加的饱满丰富,同时,给钢琴加了延音之后,钢琴的声音时值也会相应的变长,听起来更加的柔和。今天就和大家讲一讲&…

DVWA靶场搭建:Apache、MySQL、PHP、DVWA

最近为了能够较为真实地学习Web渗透的各种技术,就想着自己搭建一个专门用于学习的Web演练平台--DVWA“靶场”。 DVWA可以进行暴力(破解)、命令行注入、跨站请求伪造、文件包含、文件上传、不安全的验证码、SQL注入、SQL盲注、弱会话ID、XSS漏…

深度学习知识与心得

目录 深度学习简介 传统机器学习 深度学习发展 感知机 前馈神经网络 前馈神经网络(BP网络) 深度学习框架讲解 深度学习框架 TensorFlow 一个简单的线性函数拟合过程 卷积神经网络CNN(计算机视觉) 自然语言处理NLP Wo…

Docker 私有仓库部署和管理

目录 一、案例一 概述 二、案例一 前置知识点 2.1、什么是 Docker Compose 2.2、什么是 Consul 三、案例一 使用 docker Compose 搭建 Consul 集群环境 3.1、案例实验环境 3.2、案例需求 四、案例实施 4.1、Docker 网络通信 1)端口映射 2&#xf…

Ubuntu server 24 (Linux) 安装部署smartdns 搭建智能DNS服务器

SmartDNS是推荐本地运行的DNS服务器,SmartDNS接受本地客户端的DNS查询请求,从多个上游DNS服务器获取DNS查询结果,并将访问速度最快的结果返回给客户端,提高网络访问速度和准确性。 支持指定域名IP地址,达到禁止过滤的效…

Java整合EasyExcel实战——3(上下列相同合并单元格策略)

参考&#xff1a;https://juejin.cn/post/7322156759443095561?searchId202405262043517631094B7CCB463FDA06https://juejin.cn/post/7322156759443095561?searchId202405262043517631094B7CCB463FDA06 准备条件 依赖 <dependency><groupId>com.alibaba</gr…

Spring Cloud学习笔记(Nacos):Nacos持久化(未完成)

这是本人学习的总结&#xff0c;主要学习资料如下 - 马士兵教育 1、Overview2、单机使用MySQL 1、Overview 我们关闭单机下的Nacos后&#xff0c;再重新启动会发现之前配置的内容没有被删除。这时因为Nacos有内嵌的数据库derby&#xff0c;会自己持久化。 但是在集群的情况下…

大模型应用框架-LangChain

LangChain的介绍和入门 &#x1f4a5; 什么是LangChain LangChain由 Harrison Chase 创建于2022年10月&#xff0c;它是围绕LLMs&#xff08;大语言模型&#xff09;建立的一个框架&#xff0c;LLMs使用机器学习算法和海量数据来分析和理解自然语言&#xff0c;GPT3.5、GPT4是…

如何卸载ollama

文章目录 一 概述二 卸载2.1 Windows平台卸载 ollama2.2 Linux 平台卸载 ollama2.3 Docker 平台卸载 ollama 参考链接 一 概述 本文档主要讲述 ollama 如何卸载&#xff0c;适用范围包括 Windows Linux 以及 Docker 等平台的安装方式。 二 卸载 2.1 Windows平台卸载 ollama …

【SAP HANA 33】前端参数多选情况下HANA如何使用in来匹配?

场面描述: 在操作界面经常会出现某个文本框需要多选的情况,然后后台需要根据多选的值进行匹配搜索。 一般处理的情况是: 1、在Java后端动态生成SQL 2、不改变动态SQL的情况,直接当做一个正常的参数进行传递 本次方案是第二个,直接当做一个正常的字符串参数进行传递即…

36【Aseprite 作图】蒸笼盖——拆解

1 蒸笼盖框架 里圈和外圈的形状都是一样的 扶手处&#xff0c;2 1 2 2 2&#xff08;最好都是2&#xff0c;拐角处用1&#xff09; 2 上色 中间的波浪&#xff0c;是2 2 2 上&#xff08;再 2 2 2 下&#xff09; 下方阴影&#xff0c;左边的阴影&#xff0c;右边的阴影颜色…

音视频开发—FFmpeg播放YUV文件,YUV转换为JPEG操作

文章目录 1.使用命令行播放YUV数据1.1命令解析1.2参数说明 2.使用C语言实现将YUV数据转为JPEG图片格式2.1需求分析2.2读取YUV源文件2.3将YUV数据封装为AVFrame2.4将NV12 转换为YUV420平面格式2.5初始化MJPEG编码器2.6将YUV420P编码为JPEG2.7将编码数据写入图片文件2.8完整代码 …

Python 图书馆管理系统 有GUI界面 【含Python源码 MX_031期】

使用python3&#xff0c;PyQt5&#xff0c;Sqlite3数据库搭建 数据库版本为MySQL&#xff1a;Python 图书馆管理系统&#xff08;MySQL数据库&#xff09; 有GUI界面 【含Python源码 MX_032期】-CSDN博客 主要功能&#xff1a; 用户注册、登录、修改密码、用户管理存储图书信…

详解Java反序列化漏洞

001&#xff1a;序列化基本概念 序列化&#xff1a;将对象写入IO流中反序列化&#xff1a;从IO流中恢复对象意义&#xff1a;序列化机制允许将实现序列化的Java对象转换位字节序列&#xff0c;这些字节序列可以保存在磁盘上&#xff0c;或通过网络传输&#xff0c;以达到以后恢…

C++多线程同步

C使用多线程必须包含头文件 #include <thread> 来实现 当多个线程同事访问一个对象的时候&#xff0c;会产生数据竞争现象。 这个时候&#xff0c;就可以加锁&#xff0c;同步资源&#xff0c;解决数据竞争。 最简单就是互斥锁mutex 上代码&#xff0c;计算一个数自增到1…

python常见数据分析函数

apply DataFrame.apply(func, axis0, broadcastFalse, rawFalse, reduceNone, args(), **kwds) 第一个参数是函数 可以在Series或DataFrame上执行一个函数 支持对行、列或单个值进行处理 import numpy as np import pandas as pdf lambda x: x.max()-x.min()df pd.DataFrame(…

韩顺平0基础学java——第15天

p303-326 重写override 和重载做个对比 注&#xff1a;但子类可以扩大范围&#xff0c;比如父类是protected&#xff0c;子类可以是public 多态 方法或对象具有多种形态&#xff0c;是面向对象的第三大特征&#xff0c;多态是建立在封装和继承基础之上的。 多态的具体体现…

【JavaEE】Servlet

文章目录 一、Servlet 是什么二、如何创建Servlet程序1、创建项目2、引入依赖3、创建目录4、编写代码5、打包程序6、部署程序7、验证程序 一、Servlet 是什么 二、如何创建Servlet程序 1、创建项目 2、引入依赖 Maven 项目创建完后&#xff0c;会自动生成一个 pom.xml 的文…

Spi Pwm Tim 对比分析

spi SPI时序图 (spi是主从机 所以主机需要从机数据 需要主极先喊从机 把从机喊答应了 才能开始读从机的数据&#xff09; cpol时钟极性 和cpha时钟相位分析 1.cpha为高&#xff0c;cpol为高&#xff0c;则偶数上升沿有效 2.cpha为高&#xff0c;cpol为低&#xff0c;则偶数…