6周搞定18个月的工作量,爱彼迎不满老工具,效果出奇好

B站影视 电影资讯 2025-04-18 18:35 1

摘要:Anthropic首席执行官Dario时不时就会出来发声,声称人工智能即将取代人工编码,或者抛出一个惊人的数字,预测在短短6个月内将有90%的编码工作将被AI取代。

Anthropic首席执行官Dario时不时就会出来发声,声称人工智能即将取代人工编码,或者抛出一个惊人的数字,预测在短短6个月内将有90%的编码工作将被AI取代。

这种措辞无疑有夸大的成分,但这里想说的是,这并非空穴来风,或许6个月内AI不会取代90%的程序员,但取代90%的编程工作不无可能!因为企业接纳和适配大模型的速度远比我们想象得要快!

ps:多说一嘴,前OpenAI创始成员Karpathy提出的Vibe Coding(氛围编程)的概念,其实也是变相承认了大模型在编程工作中的“取代”作用。

近日,全球知名的民宿短租公寓预订平台爱彼迎披露了一次大模型驱动的内部代码迁移工作。

起因是爱彼迎希望摆脱之前用于 React 的 JavaScript 测试工具Enzyme,因为其对组件内部的深度访问已经不再符合现代React测试实践。

该公司已经完成了首次大规模的LLM驱动的代码迁移,将大约3500个React组件测试文件从Enzyme迁移到React Testing Library(RTL)。

令人意外地是,本来预计需要1年半的工程量,仅仅6周就搞定了!

“我们最初估计,如果手工完成这项工作,将需要1.5年的工程时间,但通过使用前沿模型和强大的自动化工具,我们仅用6周就完成了整个迁移过程。”爱彼迎的软件工程师Charles Covey-Brandt在一篇博客文章中表示。

2023年中期,爱彼迎在公司内部验证了使用LLM成功将数百个Enzyme文件转换为RTL的概念,仅用了几天时间。随后,该公司在去年构建了一个可扩展的“LLM驱动迁移”管道。

该管道将迁移过程分解为自动验证和重构步骤。“每个文件都会经过验证阶段,一旦检查失败,我们就引入LLM来修复它。” Covey-Brandt表示。这种方法使得一次性迁移数百个文件变得容易。

为了提高迁移成功率,团队最初尝试了提示工程,但发现暴力重试循环最为有效。他们实施了一个系统,每个迁移步骤都会多次进行验证,并根据错误动态更新提示内容,包括错误信息和文件的最新版本。

除了增加重试次数外,团队还增加了提示上下文。一种富有上下文的提示工程方法帮助LLM理解各种团队特定的模式、常见的测试方法以及代码库的整体架构。

“我们的提示内容扩展到了4万到10万token之间,涉及多达50个相关文件、大量手动编写的少量示例,以及同一项目中现有的、编写良好且通过测试的文件示例。”Covey-Brandt表示。

利用上述技术,爱彼迎仅用4小时就完成了75%的目标文件迁移。然而,仍有900个文件未能通过基于步骤的验证标准。随后,该公司开发了目标重运行工具。迁移状态评论跟踪每个文件的进度,而重运行功能允许按失败步骤进行筛选。

“经过4天的‘采样、调整、清理’循环,我们完成的文件比例从75%提升到了97%,只剩下不到100个文件。” Covey-Brandt表示。对于剩余的文件,该公司认为进一步的重试尝试似乎已经达到了通过自动化修复的极限。他们手动处理了剩余的文件。

爱彼迎的成功案例并非AI驱动代码迁移的首例。谷歌和亚马逊等巨头过去也曾透露过类似的情况。

今年早些时候,谷歌发布了一份全面报告,详细介绍了其在涉及LLM的代码迁移中的经验。报告显示,LLM驱动的迁移使整个过程的速度提高了50%。

该公司以谷歌广告代码库中将唯一标识符类型从32位升级到64位为例。这种转换是必要的,因为32位标识符存在超出最大值的风险,可能导致系统因整数溢出而出现故障。

“如果手动完成,整个工作预计将需要数百年的软件工程工作量,并且需要复杂的跨团队协调。”谷歌表示,并列出迁移过程中可能遇到的诸多挑战。随后,该公司设计了一个基于LLM的迁移工具包和人类工程师/专家的工作流程。谷歌发现,在变更列表中,80%的代码修改完全由AI编写,而剩下的20%则是人工编写或修改的。

然而,该公司也提到,工程师们有时必须撤销或调整某些AI生成的更改,因为这些更改存在不准确之处或不必要的修改。“这一观察结果促使我们进一步投资于LLM驱动的验证,以减轻这一负担。”谷歌表示。

亚马逊网络服务(AWS)对代码迁移中的人类与AI合作关系进行了研究。该研究重点关注使用亚马逊Q代码转换工具将遗留Java代码迁移到现代版本。通过对11名软件开发人员的一系列访谈,研究发现开发人员将AI视为协作伙伴。

研究表明,开发人员希望在迁移过程中保持控制权,根据自己的专业知识指导AI,并作为审查者仔细验证更改。

“正如代码审查有助于初级开发人员成长一样,用户对AI系统的建设性反馈使其能够更好地符合预期,并像程序员吸收反馈一样不断修正其理解。”AWS在报告的一个部分中表示。

此外,研究还建议,人类与AI合作关系系统的设计者应揭示其局限性,而不是掩盖不完美之处,以帮助调整预期。

研究还发现了一些错误,例如在未验证是否为正确版本的情况下修改了Java依赖项。

“我觉得我像是被操纵了。第一篇文章说了一个版本,第二篇文章又说另一个版本。到底哪个才是真的?”一位受访者在回应这一错误时表示。

此外,即使AI生成了正确的输出,参与者也表示他们希望对一切进行双重检查。

“我不知道我是否会完全信任任何AI。我仍然会检查一切。我不是说它会恶意行事,它确实给出了一个有效的依赖项更新,但我仍然会检查一切。”

值得注意的是,上述场景是LLM驱动的代码迁移,但并非完全由LLM自行完成的迁移,仍然需要人类的监督、审查和验证。

参考链接:https://analyticsindiamag.com/global-tech/airbnb-uses-llms-to-pull-off-an-18-month-enzyme-to-rtl-migration-in-just-6-weeks/

来源:51CTO

相关推荐