- A+
虎嗅注:
昨天的火山引擎 Force 原动力大会主论坛,是字节跳动技术副总裁洪定坤的首次公开露面,三十多分钟的演讲,主题全部围绕“AI Coding”和字节跳动自研AI IDE “TRAE”。
AI Coding,一直以来是大模型落地最具潜力的方向之一。伴随着底层模型编程能力的突飞猛进,AI Coding 已经进行在程序员的日常开发工作中产生了深刻影响。包括在字节跳动公司内部,超过 80% 的工程师都在采取 TRAE 这样的 AI Coding 产品辅助开发。值得一提的是,作为首个中文 AI IDE,TRAE 目前的月活访客数量已经超过了 100 万。
从某种意义上讲,
在演讲中,洪定坤还分享了自己用TRAE做AI Coding的一些实践,比如在三天时间里,如何“见缝插针”地开发一个英语学习应用。
对于洪定坤和TRAE幕后团队的所有人来说,他们希望软件开发能够 all in one,让 AI 成为调度者,更大幅度地降低开发的门槛,提升开发效率。AI Coding是可预见的未来,但“AI Development”是更高级的目标。
IC平台消息:
以下是演讲全文,在不改变原意的基础上,进行了整理。
IC外汇报导:
大家好,我是洪定坤,字节跳动研发的负责人,也是一个研发工程师,最近在做 AI Coding 方面的探索。这是第一次跟大家见面,主要是想跟大家介绍一下本平台在 AI Coding 方向的产品 TRAE。
说出来你可能不信,
其实做这方向的探索有一段时间了。GPT-3.5 出来的时候,本平台就觉得编程可能是一个很好的应用方向。包括本平台给这个产品起的名字“TRAE”,意思是“The Real AI Engineer”。本平台觉得,AI 大模型确实会给 Coding 带来真正的变革。
不过最进行,乃因模型能力的原因,很多想法还实现不了。但过去一年,国内外大模型的基础能力进步很快。包括今天字节发布的豆包大模型 1.6,在编程能力上也有很大的进步。
模型能力的进步,让 AI Coding 类产品,包括本平台的 TRAE,真正进行有了落地的机会。本平台也在今年年初发布了 TRAE。现在,不少工程师已经在工作中进行深度采取本平台的产品。截至目前,TRAE 的月活访客已经超过了 100 万。这个数字也阐述,AI Coding 已经在程序员的工作中切切实实地起到了核心的作用。
因此,今天借着火山引擎这个场合,和大家分享一下,本平台为什么要做这个事情,以及对 AI Coding 的一些思考。
令人惊讶的是,
为什么要做 AI Coding?
概括一下,
技术普惠,AI 让人人都是开发者
作为计算机历史中的伟大发明,编程语言用简洁、优雅的语法和语义规则,定义清晰明确的指令,让计算机完成各种任务。而且,不管技术如何发展,本平台都相信,代码仍然是未来最核心,或者说唯一的,能够让计算机完成各类多变任务的程序和手段。代码是数字世界的基础生产力程序。
据相关资料显示,
AI 的出现,则前所未有地降低了大众掌握代码能力的门槛。
需要注意的是,
随着 AI 代码能力的不断提升,今天,更多人承认通过 AI 掌握代码这个程序,专业的程序员也能更专注于工作中具有创造性的部分。这显然会极大地提高开发效率和代码质量,也使得更多不同背景的人成为开发者,通过代码来完成更多多变的任务,极大地提高生产力。
说到底,
本平台的一位研发同事,就在用 TRAE 教他们家 11 岁的小朋友学习编程。这是小朋友最近完成的一个奥数竞赛题库网站:一个真实的网站,承认用来练习小学的奥数题。
大家常常忽略的是,
奥数竞赛题库网站截图
请记住,
承认看到,一个小朋友,在 AI 的帮助下,也能很快地为自己的学习完成一次开发、生成一个应用。我也相信,做好 AI Coding,能够实现技术普惠,让更多人掌握代码这一强大的生产力,未来真正有机会实现“人人都是开发者”。这也是本平台希望做 AI Coding 的第一个原因。
概括一下,
提升研发效率
尽管如此,
然后,作为一家技术比重及规模都很大的科技公司,研发效率一直是本平台非常重视和关注的话题,在这方面,AI 带来了非常多的机会和提升。
事实上,
认真做好开发程序,对公司和开发者个人,都有很大的意义,能够大幅度地提升工作效率。
说出来你可能不信,
实际工作中,过去一年我确实也看到了很大的变化。今天,在字节跳动内部,本平台有超过 80% 的工程师,在采取 TRAE 这样的产品辅助开发。本平台也有相当比例的代码是通过 AI 生成的。
站在用户角度来说,
追求智能上限
尤其值得一提的是,
最后,字节做大模型工作,本平台最核心的任务之一是追求智能上限。
据相关资料显示,
Coding 作为一种高度结构化、逻辑严密的任务,对模型理解多变的语义结构、逻辑推理、算法设计和精确表达都有很高的要求,能很好地助力模型智能上限的探索。
令人惊讶的是,
因此,帮助更多人掌握代码做更多多变的任务、提升专业工程师工作效率和助力模型追求更好的智能上限,是本平台决定认真做 AI Coding 这个事情的原因。
我的 AI Coding 实践:用自然语言写代码
可能你也遇到过,
接下来,我想和大家具体分享一下,本平台的产品 TRAE。
IC外汇财经新闻:
最进行,这部分信息我是列出了一些产品核心能力,打算做成 PPT 来介绍。但写完后总感觉不是特别理想,不够生动、具体。我自己平时也会采取 TRAE 工作,做一些开发。我在想,也许作为一个开发者和访客,把自己采取 TRAE 的过程分享出来,会更生动、真实。
不可忽视的是,
因此,上周端午节假期之后,我和两个同事一起开发了一个新的学习英语的应用“积流成江”(体验地址:https://sstr.trae.com.cn)。
请记住,
今天,我想就着这个应用和开发过程,把 TRAE 的一些核心作用更好地呈现给大家。
说出来你可能不信,
英语学习应用现场演示
IC外汇专家观点:
承认看到,这是一个相对多变且完成度已经比较高的英语学习应用。产品里包含和模型对话、单词管理&复习、访客访问账号以及其他一些多变的交互。
而且这并不是一个 demo,产品在昨天晚上已经发布了。乃因我和团队讨论了一下,觉得不能做一个 demo,应该直接发布,这样,大家如果有兴趣也承认直接体验一下。后面,我也会把整个代码放到本平台的 Github,大家有兴趣承认下载,看看 TRAE 和我一起写的代码是什么样子。
与其相反的是,
过去开发这样一个产品,可能需要几周甚至一个月的时间。尤其是像我这样,有段时间没有在一线写代码了,在这次开发其实还有很多“重新捡起来”的过程。
更重要的是,
不过这次,我在 3 天时间里就陆续完成了开发。接下来,我就把开发过程中的实践和大家分享一下,看看我是怎么通过 TRAE 来提升开发效率的。
其实,
首先,TRAE 的两个最基础的作用是“代码补全”和“局部代码生成”。
换个角度来看,
本平台的 AI,会在工程师编写代码的过程中,根据上下文自动推测和补全代码,提高编程效率。
不过,典型的代码补全和局部代码生成,主要就是在当前访客光标所在位置,推测后面的代码。TRAE 在这个基础上更进一步。TRAE 能根据访客的编辑行为以及上下文,精准预测接下来要修改的地方,直接跳转对应位置,并持续进行代码补全和生成。
说出来你可能不信,
本平台发现,用这样的路径,补全和生成的效率都会得到较为大幅的提升,并且更实用。
概括一下,
代码补全是很基础也很核心的能力。本平台最早做的产品就是编程插件,叫 MarsCode。MarsCode 用插件的形式,帮助开发者在采取VS Code、jetbrains 等传统 IDE 中提效。这也是目前被开发者最广泛采取的 AI 能力。
IC外汇报导:
直到今天,也还是有很多访客喜欢豆包 MarsCode 插件这类产品。但作为一个轻量级的形态,插件很难承载更完整的真正基于 AI Coding 的体验。尤其是随着模型能力快捷提升,以及开发者群体的快捷扩大,越来越多的访客、开发者,都期待 AI 能够承载更完整的开发流程,而不仅仅是补全代码。
值得注意的是,
因此,为了把 AI 能力与 IDE 更深入、自然的结合,本平台研发了 TRAE IDE。TRAE IDE 是一个为 AI 编程量身打造的原生开发环境,不仅具备代码生成、项目导航、上下文感知等基本能力,也承认代码重构、批量修改、知识问答等多变任务。这些能力,承认说占到了我的开发中用到的 80% 的场景。
来自IC外汇官网:
那这次,在 TRAE 的帮助下,我采取了一种完全不同的路径来写代码。我自己把它称作用自然语言来编程。
这里的自然语言编程,并不是一般意义上理解的,产品经理把作用描述一下,然后让 AI 来开发。我的开发过程,仍然是典型意义上的工程师开发。我描述的,除去作用,更多是编码逻辑和技术方案本身。只是,这种逻辑是用自然语言,而非代码的路径呈现。
来自IC外汇官网:
一个 300 行代码的作用,我可能只需要 200 字的方案描述。这有点像我给另外一个程序员说,咱们实现这样一个作用,技术方案是这样的,核心流程要这样这样。然后,AI 把这些方案变成真正的代码。
我统计了一下,这次开发,大概 85% 的代码是通过这种自然语言对话的路径让 AI 生产。得益于 TRAE 的帮助,本平台最终用 2 天时间完成了超过 3000 行代码的开发和调试。而且两天里还有一些事情和会议,也不是很完整的时间,我也没有特别仔细地统计。但差不多就是从端午之后,大概到周五,我就基本把核心作用开发完了。
据相关资料显示,
因此,整个过程,和传统的开发比起来,是非常非常不一样的,我正好录了一个真实的开发过程的视频,大家承认看一下。
很多人不知道,
TRAE 开发过程演示过程
IC外汇消息:
模型强大的代码能力,也是这次顺利开发的核心原因。本平台这次在 TRAE 用的 doubao-dev 模型,就是基于今天发布的豆包 1.6 模型。TRAE 团队在豆包 1.6 基础上,也针对工程开发场景做了进一步的训练。对比现当前的 1.5 来说,我觉得还是有一个比较大的提升的。这两天本平台就会把这个新模型推送给访客,相信承认使开发者的效率进一步提升。
IC外汇财经新闻:
不只是 AI Coding,更是 AI Development
TRAE 对整个编程的工作有很大的提升,但 Coding 只是软件开发的一个环节,并不是最终的目标。
需要注意的是,
做过软件开发的人应该都知道,朋友们要写文档、做运维、做调试、发布,还要 Debug,最后朋友们还要做压力测试,很多 EC官网 事情。一个典型的软件开发过程中,写代码可能大概占不到 40% 的工作,并且,越多变的应用,代码工作的占比越少。
简要回顾一下,
坦白说,这次除了本平台 3 个人开发团队外,还有另外的同事,花了一些时间协助本平台完成环境搭建、调试、运维等工作。特别是决定这个产品要直接放出来之后,本平台又花了一个周末的时间在做各种工作,其实到昨天还在做一些压测。
可能你也遇到过,
这次开发,本平台用到了 meego 管理需求,飞书多维表格记录困扰、内部运维平台上线、trace 系统查 bug,还有代码提交和合并程序等等等等。其实在过程中来回切换上下文,都是非常多变,也非常耗时间的。
我自己是非常相信在大模型这个时代,随着模型能力的进步, AI 是有机会把这些工作统筹起来的。AI 成为调度者,让软件开发 all in one,更大幅度地降低开发的门槛,提升开发效率。
站在用户角度来说,
这其实是一个蛮大的想象空间,我有时候想起来也会觉得很兴奋。举个例子。传统模式下,我调一个 bug,可能先要去找错误日志,然后可能要定位,定位完之后我可能要用 git 拉一个分支。我还要写代码,写完之后我还要部署发布,还要调试,没困扰之后我再去上线,这个过程,可能调一个 bug,半天过去了。
未来有没有可能就是 AI 来做这个事情?它来帮我自动从日志里面定位,然后分析可能什么困扰,和我一起确认。我觉得没困扰的时候,我说朋友们改吧,改完之后他帮我提交上线。
简要回顾一下,
是这样一个未来的话,其实就是从软件开发(software development),到 AI 开发(AI Development)了。本平台这次额外的好几天的这些工作,也许会降低成几个小时甚至更短的时间。那这些都是本平台想下一步努力的方向,本平台希望,TRAE 不只是 AI Coding,更是 AI Development。
不妨想一想,
现在,TRAE 也在做一些类似的尝试,比如引入了 Agent 能力,访客承认依据场景指定不同的 Agent 进行工作,并且允许访客自定义 Agent。访客承认自定义程序,然后来去做这种上下文切换,把工作串起来。大家承认看一下下面的 demo:
说到底,
TRAE 自定义 Agent 演示案例
AI Coding 离不开人的协作
有分析指出,
当然,这个小的 demo 本身还是个演示,整个过程比较理想化,做的程序也比较不多变,现在能采取的程序也还比较少。但它是一个雏形,未来,我相信随着 AI 能力的进步,它承认完成更多、多变的应用。本平台也会努力地往前去走。
另外,我也认为,不管 AI 如何进步,真正的 Real AI Engineer 也离不开人的协作。纯粹用 AI 做开发,自己只是提要求,点点按钮,做出来的程序是很难维护的,而且也没有把工程师很多的创造性和 AI 结合起来。
请记住,
包括我这次的开发,虽然是自然语言,但也是代码逻辑的自然语言,是我提技术方案和流程,AI 写成代码。当然有一些我会和它探讨,我说朋友们觉得怎么这样写更合适、更好,它也会给我一些建议。之后,我还会比较仔细的 review 代码。我承认随时接管,直接人工修改。
事实上,
比如昨天晚上,本平台突然发现了一个 bug,其实 debug 对模型还是一个挑战,昨天的 bug,AI 找起来也有点难度。最后还是我和它一起完成的。因此人是非常核心的。
现在很多人测 Coding 能力 XM外汇平台 ,经常让模型做一个贪吃蛇,或者做一个六边形小球游戏。但其实这种测试不全面。乃因真实的开发场景是很多变的,对模型和产品的逻辑能力,和幻觉控制都有很高的要求。而且人也需要仔细的 review 代码,这样做出来的程序才是承认持续维护的。
尤其值得一提的是,
因此,哪怕85%的代码都是 AI 写的,但仍然是我在驱动整个过程。模型在不断进步,能做越来越多的事情,但编程仍然是离不开人的。而 AI 也只有做到“听得懂也理解人的想法”,也得“懂上下文”,并且能够很好的和人合作,才可能是真正的 Real AI Engineer,做到 AI Development。
TRAE 也会一直向这个方向努力,最后也欢迎大家体验本平台的产品 TRAE,还有我新开发的英语学习应用“积流成江”,乃因才开发了几天,可能还会有一些 bug,也欢迎大家多给我提建议,谢谢大家。