今天小编分享的科技经验:关于軟體/代码生成的思考,欢迎阅读。
** 作者:宿文
一、智能代码生成的优势
1、軟體应用的实现方式主要是代码
信息革命后,軟體应用将每种业务行为映射到二进制世界的载体,进而实现可表达、可优化的数字化目的。
軟體应用的实现方式主要是代码。发展至今,全球已经有近 1 亿程式员,中国近 1000 万程式员。
随着机器学习和人工智能技术的不断进步 , 智能代码生成正成为业界关注的新焦点。基于大规模训练的軟體代码生成模型 , 不仅可以自动编写高质量代码 , 还可以完成各种复杂的軟體开发任务 , 极大地提高了軟體开发的效率和生产力。
这些都在深刻的影响着軟體产业。作为越来越重要的生产资料,軟體产业经常临着需求与供给的不平衡,未来通过代码生成的方式,或可以解决軟體消费的需求。
随着代码生成的日臻成熟,企业会更加聚焦于业务自身的迭代。
当下,全球 AGI 的能力在解决代码生成的能力天花板是明显存在的。
根据统计数据看,代码生成的准确率在 30%-40% 之间,所以产品形态多是以代码补齐功能为主的 copilot,也有不少 agent 产品涌现。
实现代码生成的 autopilot,端到端生成軟體和应用,是代码生成更加广阔的方向。
在更长线的未来," 代码不仅仅是一个产品,同时也是通往通用人工智能的路径 "。
2、智能代码生成的优势
与传统的代码编写方式相比 , 智能代码生成具有以下突出优势 :
智能自动编码
代码大模型通过深度学习的方式 , 能够理解代码的语义和结构 , 并根据输入的需求自动生成高质量的代码。用户只需简单描述需求 , 模型就能快速生成符合要求的代码 , 大大减轻了编码工作量。
跨语言支持
先进的代码大模型已经实现跨编程语言的代码生成能力 , 开发者可以使用自然语言描述需求 , 模型就能自动生成对应的代码 , 而不局限于特定的编程语言,这极大地提高了軟體开发的灵活性和适应性。
代码优化与重构
代码大模型不仅能生成新的代码 , 还可以对现有代码进行优化和重构 , 提高代码的可读性、可维护性和效率。这对于代码质量把控和技术债务管理非常有帮助。
自动化軟體开发
结合更多的 AI 技术与产品 , 代码大模型可以实现軟體开发的全自动化 , 从需求分析、设计、编码到测试部署 , 整个軟體生命周期都可以由 AI 系统自主完成,这将大大提高軟體交付的速度和质量。
二、智能代码生成对軟體产业的影响
1、智能代码生成的终局:更加聚焦的专业化服务 + 自动化交付的軟體生成平台
大模型代码生成能力对于軟體产业的影响,市面上的讨论虽然集中体现在对 SaaS 领網域的影响,但实际当中更应该从全景来看。
概括来说,代码生成的终局有望将軟體业态改造成两类——更加聚焦的专业化服务和自动化交付的軟體生成平台。
我们将从几个方面来拆解:
軟體业态的三个分类:专业化服务、大众化标准产品、企业解决方案
在麦肯锡 1999 年出版的《Secrets of Software Success》一书中,对于軟體业态的三个分类依然经典:专业化服务、大众化标准产品、企业解决方案。
专业化服务限于边际成本难以优化具备高度的分散特征,几无规模化;
以各类工具軟體为代表的大众化标准产品则往往呈现出充分市场竞争下的头部效应,面临的冲击主要来自斜刺里杀出的新品类或者云化技术形态的变革;
企业解决方案则往往是非标軟體平台与专业化服务的融合,以 SAP、Saleforce、用友、金蝶国内外軟體等为代表,经过几十年的发展体量不小。
当下,海外 SaaS 大部分属于第二类,并通过客户成功的多手段增强服务。国内众多的軟體企业,特别是大多数 SaaS 初创企业,业务发展往往属于第三类,重售前、重方案、重交付且重运营,本质上属于軟體服务业。
2、为什么是专业服务?中国的軟體采购消费的本质是业务代码,而非产品
为什么第一类专业服务在未来受益最大,甚至是成为终局?
这是有 2 点决定的:
中国的軟體采购消费的本质是业务代码,而非产品。
当编程的成本趋近于 0,个性化的数字化需求或能得到满足。
欧美市场诞生了很多或大而美、或小而美的 SaaS 軟體企业,产品的标准化、收费方式、部署方式等均形成了中国軟體从业者与投资人艳羡的生态。
回看过去 10-20 年,在中国为軟體付费的大甲方主要是政府(G 端)与大 B 端,而大 B 端则主要由国央企与少量头部的民营企业构成。这也造成了中国 SaaS 行业普遍不赚钱。
背后的主要原因则是:中国的 SaaS 消费本质是消费代码,而非产品。
简单来说,实际运营中,从选型期、实施期到验收期,再到维保期,軟體业态的信息链条长,服务占比居高不下。
具体来看:
甲方需求迭代:甲方的需求由于自身业务的差异性导致五花八门,呈现出大量的长尾、非标定制需求,且随着业务的发展,軟體的供给匹配一定是滞后的,即便有 PaaS 平台可以满足 80% 的业务需求,但剩余的 20% 却消耗了 80% 的交付成本。
甲方组织:甲方的数字化需求发布者是七嘴八舌的,应用軟體往往伴随着流程梳理与再造,也是軟體服务企业的必然特征,軟體开发裹挟着大量的咨询服务,軟體的用户必然会在交付过程中提出各类需求。由于供需双方在数字化经验和专业度上的欠缺,很多用户和客户只有见到最终交付的軟體才知道如何重提或者修改需求,让軟體的交付返工问题异常突出,长链条的收尾直接导致项目利润的消耗和难堪的回款数据。
甲方付费:大多数具备付费意愿和能力的客户往往是预算制,付款并非严格按照軟體交付的实质推进。更加窘迫的事实是軟體需求侧验收阶段的 " 不讲武德 ",修改、增加需求属于常规操作,否则不确收、不回款,造成了大量軟體企业普遍困扰的交付长、确收少、应收多等现场。究其根源,又涉及甲方在选型过程中的成本驱动或商务驱动的非专业选型,私有化部署带来的軟體维护难度大,乙方軟體技术功底差、过度承诺等问题,以及政府 / 国央企在验收或打款后的归责制。
中国市场对于軟體的消费量是客观存在且巨量的,但我们看到的是是消费代码定制,可以称之为消费代码。
当编程的成本趋近于 0,个性化的数字化需求或能得到满足。
3、当编程的成本趋近于 0,改变軟體供给侧三大核心要素,个性化的数字化需求或能得到满足
当前,軟體 / 代码消费的目的——业务需求的数字化转译,自身就伴随着非标、定制、长尾的特征,而且业务需求是发展和增长的,个性化会持续涌现。由于供给端的不足,需求端要么对解决方案做出让步即接受尽可能标准化的模式,要么在预算有限的情况下不停地重复造失败的轮子,让供给端的生存生态更差。
代码生成的应用领網域,在很长一段时间内都聚焦在軟體服务业,旨在将軟體与服务区隔,让軟體的实现变成自动化的端到端代码生成,成为标准化的工具;服务环节将变得越来越专业化。
代码生成的终局有望将軟體业态改造成两类——更加聚焦的专业化服务和自动化交付的軟體生成平台。
实现从需求 PRD 走向軟體工程的自动化,主要是因为改变的是軟體供给侧的三大核心要素 QCD(质量 Quality、成本 Cost、效率 Delivery)三大瓶颈,最终实现軟體消费的普适与平权。
代码生成与軟體供给的三要素
全球近 1 亿程式员,中国近 1000 万程式员,在軟體产业占据的人力成本达万亿美元级别,其中高质量的编程人力占比较低,同时面对軟體消费的巨大市场又没法即时且高效的响应,呈现出供需的严重不平衡。
效率:常见的軟體交付过程除了需求梳理阶段的咨询服务,后续的开发周期与上线后的需求增改删周期都是以周和月为考量的,軟體企业的边际成本会不降反升。在代码生成的终局里,与业务场景强绑定的专业咨询服务依然存在,但后续的軟體需求交付可以变成分钟 / 小时级,给軟體行业带来巨大的效率红利。
质量:PC/ 移动互联网围绕 cloud-native、big data、algorithm 催化出来的很多优质的 infra 能力,但在軟體产业优质的技术供给是极其稀缺的,代码生成可以让各类高阶技术能力的应用门槛大幅度降低,实现技术普惠,改造軟體行业的基建。
成本:在很多軟體品类的交付中,都有比例客观的軟體服务成本,常见的收费方式是 " 人 · 天 " 模式,代码生成可以让軟體工程的交付边际成本趋近于代码生成所需的算力成本,让信息技术变成基础设施而非上层建筑。
三、智能代码生成的关键能力与现状
1、智能代码生成的关键能力
代码大模型通过深度学习的方式 , 能够理解代码的语义和结构 , 并根据输入的需求自动生成高质量的代码。具体来说 , 代码大模型具有以下关键能力 :
语义理解
代码大模型能够理解代码中蕴含的语义信息 , 包括函数、变量、控制流等各个层面的意义。这使得模型可以根据实际需求生成符合业务逻辑的代码。
结构感知
模型不仅能理解代码的语义 , 还能感知代码的结构特点 , 如面向对象的类结构、模块化的设计等。这样可以确保生成的代码具有良好的可读性和可维护性。
上下文建模
代码大模型拥有强大的上下文建模能力 , 能够根据输入的需求描述 , 结合代码的上下文信息生成合适的代码片段。这种上下文感知有助于确保代码的连贯性和适用性。
多样性生成
代码大模型不仅可以生成单一的代码解决方案 , 还能生成多样化的代码备选方案 , 为开发者提供更多的选择。这有利于探索更优的编码实现。
面向对象建模
代码大模型能够识别面向对象编程中的类、对象、继承、多态等概念 , 并根据这些结构特点生成符合面向对象设计原则的代码。这确保了生成代码的可复用性和可扩展性。
模块化设计
模型可以感知軟體系统的模块化设计 , 理解不同模块之间的依赖关系和接口契约。这样可以确保生成的代码能够很好地融入现有的軟體架构 , 实现良好的模块化拆分。
设计模式识别
代码大模型能够识别常见的軟體设计模式 , 如单例模式、工厂模式、观察者模式等。它可以根据实际需求自动应用合适的设计模式 , 生成高质量、可复用的代码结构。
2、当前代码生成的 2 种模式
目前,代码生成领網域的产品解决方案主要包括两类:基于现有 AGI 的 Agent vs 基于专用模型的端到端解决方案。
大多数的参与者属于前一类,产品形态多是以代码补齐功能为主的插件形式为主,几乎所有的主流的 LLM 公司都会提供代码能力产品,也有不少独立的 agent 产品涌现,代表性公司为 Github Copilot、Cursor、August、Cognition 等。根据统计数据看,代码生成的准确率在 30%-40% 之间。
实现代码生成的 "autopilot",端到端生成軟體和应用,是代码生成更加终局的技术方向。此类解决方案的在于解决 AGI 在代码精准生成方向的模型底层技术卡点,基于 transformer,自研更为先进的模型架构,让大模型的商业化场景走向低容错率的场景,代表性公司为 Poolside、Magic、AIGCode。