程序员开发正遭 AI 「革命」( 二 )


截至2022年6月22日 , CodeGeeX历时两个月在20多种编程语言的代码语料库(>8500亿Token)上预训练得到 。 它可以跟据你的描述 , 或者上下文自动生成一段代码 , 和以往的代码补全功能是完成不同的 。 目前支持Python、C++、Java、JavaScript、Go五种主流编程语言 , 而且在准确度上表现较好 。
程序员开发正遭 AI 「革命」
文章图片
除此之外 , 还有Kite、Codota、DeepCode等一些基于机器学习的AI代码生成工具 , 本质上都是通过大量的代码训练 , 来智能预测出需要生成的代码 , 加快编程的效率 。
总体来说 , 这一阶段的产品推动者不需要面向业务 , 只需要考虑面向程序员 , 可以达到辅助程序员提升业务开发速度的目标 , 也可以较好的通过工具化产品形成规范 , 解决企业的代码风格化统一问题 。 未来可能会广泛的成为程序员工作中的标配 , 程序员将不会再花大量的精力在高复用度的具体代码函数设计 , 而更多的把精力放在业务模块的设计实现 。
第二阶段:业务模块的智能生成这一阶段的主要体现是:通过搜集、归类、梳理相关领域业务开发项目中大量的通用业务(如游戏研发中的登录模块、热更新模块、聊天模块、战斗模块等业务逻辑)形成数据集 , 通过对业务设计意向和数据集进行训练和学习的方式 , 自动的进行业务模块前后端框架生成 , 优化工作流程 , 提升业务模块的产品设计迭代和研发速度 。
我们可以通过一个实例工具软件来理解这个过程 , Adobe推出过的网页三剑客之一的Dreamweave , 其中提供了大量的模块生成功能 , 比如通过设定数据集和表单的控件对应关系 , 就可以生成前后端的代码 , 实际提供一个可以运行的业务模块 。
当然 , 这是由没有结合人工智能辅助的情况 , 如果基于新的智能化生成 , 那我们在开发时 , 智能化生成模块会自动跟据上下文来提示是否需要生成相应的业务前后端模块 , 我们只需要再跟据生成的模块进行微调或扩展即可达到我们的要求 。
下图是笔者使用DreamWeaver来生成一个简单的登录模块 , 只需要设定一下数据表字段 , 即可生成表单 , 完成登录判断和跳转功能 。
程序员开发正遭 AI 「革命」
文章图片
又或者在游戏开发领域 。 作者曾在企业负责技术中台设计时 , 推动过面向各游戏项目组通用业务模块的抽象与开发 , 比如热更新、原生接口调用 , 甚至包括游戏战斗机制等大量的通用业务 , 对于每一个项目几乎都是需要的 , 只是因为技术栈或者界面的不同而需要重复的开发 , 这些工作往往耗时耗力 。
站在一个更高的维度 , 这些业务完全可以基于机器学习训练结合需求变化被快速地进行调整而满足各个项目的使用 。 所以 , 基于企业的技术中台 , 把这些通用业务的统一框架和智能化定制与人工智能结合 , 基于主流开发软件、引擎工具或平台工具推出可实际操作的软件或插件 。 从而形成更好的开发工作流是非常有意义的 。
这个阶段目前是各领域企业争相降本增效的方向之一 , 程序员的工作正在进一步从通用业务开发中解放 , 而把更多的把精力放在具体产品的需求上 。
第三阶段:产品原型的智能生成这一阶段主要体现是:通过对产品研发工作流中可智能化生成的部分进行整合和优化 , 达到能够根据用户需求自动的生成具备完整功能逻辑和效果表现的产品项目原型的目标 , 帮助产品经理快速看到期望的结果 。
这里以几个案例加以说明: