大语言模型(LLMs)如何变革软件工程
大语言模型(LLMs)的快速发展正在彻底改变软件工程的面貌。在过去几年中,LLMs 从先进的代码自动补全工具演变为能够设计、实现和调试整个软件模块的强大人工智能(AI)代理。这一变革显著提升了软件工程师的工作效率。
尽管对于AI驱动的软件工程的热情可能有所夸大,但对于愿意拥抱这些前沿AI工具的开发者来说,合乎逻辑的价值不容忽视。利用LLMs,开发者可以在工作中实现惊人的效率提升。
AI编码助手:提升编码体验
LLMs正在通过三种主要方式改变编码环境。首先,开发者使用诸如ChatGPT和Claude等高级模型作为编码助手。这些AI工具擅长根据文本描述生成代码,优化现有代码片段,并提供调试帮助。
为了提升开发者的体验,模型提供商不断添加新功能。例如,Claude的Artifacts功能允许用户在迭代过程中查看和运行代码,从而简化开发流程。
AI编码助手的更复杂应用是将其集成到集成开发环境(IDEs)中,作为插件使用。这些插件充分利用项目文件和代码库,提供精确的响应并处理更复杂的任务。
成立于2013年的Tabnine开创了AI辅助编码工具,号称拥有数百万用户,其中30%到40%的代码是通过该平台生成的。微软随之推出了GitHub Copilot,该工具最初作为代码片段生成器,后来发展为全面的开发助手。亚马逊的Q也提供类似功能,包括代码自动补全以及支持不同编程语言间的迁移。
其他AI编码领域的重要参与者包括提供自身LLM驱动编码环境的Replit,以及兼容多种IDE的Codeium。
自主框架:软件开发的未来
LLMs同样通过自主框架赋能软件工程。这些AI代理由多个LLMs组成,协作完成项目。其中一个代理可能专注于高层设计,而其他代理则处理详细规划、编码、质量评估和集成。
理论上,这些软件工程代理能够从头到尾执行一个项目。一项引人注目的例子是Cognition的Devin,自称为“首个AI软件工程师”。Devin利用各种工具,包括浏览器、IDE和编译器,进行研究、推理、编码及评估结果。演示表明Devin高效地完成任务,引发了AI代理有可能取代软件工程师的猜测。
尽管Devin目前并非开源,但它激发了类似能力的OpenDevin等项目的出现。其他软件开发代理如GPT-engineer也相继问世并展现出令人印象深刻的演示。
AI软件开发中的热潮与现实
研究表明,像GitHub Copilot这样的AI助手能够提升开发者的生产力,并通过减少搜索解决方案的时间来帮助保持专注。ChatGPT和Claude越来越多地被用于起草软件设计方案、创建初始代码版本以及学习新编码技能。
然而,对于AI软件开发助手的某些热情仍存在怀疑。批评者指出,像Devin这样的工具的演示可能无法准确代表它们的实际能力,因为目前这些代理在执行中级或高级软件工程师所期望的任务方面尚显不足。
此外,关于AI生成的代码可能包含来自训练数据或用户代码库的漏洞的担忧仍然存在。提供商正在积极实施保护措施,以减少生成不安全代码的风险。此外,开发者在过度依赖AI生成代码时可能会出现“自动化盲目症”,导致不可预测的结果,需要额外的调试时间。
总之,尽管AI并不会取代软件开发者,但AI编码助手的初期阶段确实承载着提升生产力的巨大潜力。随着软件开发者需求的持续上升以及AI在各个领域的应用,我们可以期待这些工具的发展将带来软件工程的高效提升。
2024年VB变革大会将深入探讨这些变革主题,邀请专家小组讨论AI的互联未来。期待您的参与!