人工智能正在彻底改变程序员开发
发布时间:2022-12-05 09:32:40作者:顺晟科技点击:
AI绘画作为一个局部领域的产品方向,基于机器学习算法为世界打开了一扇门。随着AI绘画软件的辉煌发展,基于AI的内容生产话题越来越受到关注。
作为程序员,应该如何看待AI的这些成果对开发方式的影响?在此,很荣幸受邀与朋友们分享我的个人观点。
AI将改写程序员的开发方式。
AI的底层算法一般基于神经网络建模,神经元上的数学算法不断训练数据来调整建模,使误差最小。这是一种非常酷的思维方式,使计算机能够通过算法找到数据变化的趋势。在此基础上开发的生成对抗网络,使得计算机学习和模仿数字内容更加可信,数字内容不仅包括文本(新闻和小说生成)、图像(AI图纸和视频)、3D模型(AI生成的游戏场景),还包括编程代码和文档。
虽然我们还没能通过AI直接生成一个完整的项目,但在AI大发展的背景下,如何高效、快速、更好地实现编程目标,正成为解决问题的重要考虑。
我们可以对比AI的工作原理,反思编程中的痛点,预测一些潜在的可能性。也许这些可能性会极大地促进我们未来的编程和工作方式。
从工作形式的演变趋势来看,预计分为三个阶段:
第一阶段:编码工作的辅助智能。
这一阶段的主要表现是将编程开发项目中大量可复用的部分(如算法、功能函数或模块)进行收集、分类和整理,形成数据集,通过训练和学习输入意图和数据集,形成优秀的辅助功能,从而提高程序员的开发效率。
在实践中,一些企业已经推出了相关的工具产品:
GitHub Copilot:通过语音输入指令,让IDE自动提示并生成代码。
Copilot是GitHub今年早些时候推出的一款人工智能编程辅助工具。2022年6月22日正式上线(https://github . com/features/copilot)。定价为每月10美元(约合人民币66.9元)或每年100美元(约合人民币669元)。它免费提供给学生用户和流行的开源项目的维护者。
经过数十亿行代码训练,可以将自然语言提示变成数十种语言的编码建议,支持Python、JavaScript、TypeScript、Java、Ruby、Go等编程语言。根据今年GitHub Universe开发者大会报告中给出的数据,Copilot通过基于AI的编码建议,已经帮助全球开发者提高了55%的工作效率。
2.GodeGeeX:通过输入文本描述,让IDE自动提示并生成代码。
类似的国产工具叫gode geex(https://models . aminer . cn/codegeex/),来自清华大学知识工程实验证书(KEG)。CodeGeeX是一个多语言代码生成模型,有130亿个参数,由华为MindSpore框架实现,在鹏程实验室鹏程云脑II的192个节点(1536个国产910AI处理器)上进行训练。
截至2022年6月22日,CodeGeeX已经在20多种编程语言的代码语料库(8500亿Token)上进行了为期两个月的预训练。它可以根据你的描述或者上下文自动生成一段代码,与之前的代码补全功能不同。目前支持Python、C、Java、JavaScript、Go五种主流编程语言,在准确性上有不错的表现。
此外,还有一些基于机器学习的AI代码生成工具,如Kite、Codota、DeepCode等。本质上都是通过大量的代码训练,智能预测需要生成的代码,加快编程效率。
一般来说,这个阶段的产品推广人员不需要面向业务,只需要面向程序员即可,既可以达到辅助程序员提高业务开发速度的目的,也可以通过工具化的产品更好地形成规范,解决企业代码风格化、统一化的问题。未来可能会成为程序员的工作标准。程序员不会把大量的精力花在复用性高的具体代码功能的设计上,而是更多的花在业务模块的设计和实现上。
第二阶段:智能生成业务模块。
这一阶段的主要体现是:收集、分类、整理相关领域业务开发项目中的大量通用服务(如登录模块、热更新模块、聊天模块、战斗模块等游戏开发中的业务逻辑)形成数据集,通过训练学习业务设计意图和数据集,自动生成业务模块的前后帧,优化工作流程,提高业务模块的产品设计迭代和R&D速度。
我们可以通过一个实例工具软件来了解这个过程,Adobe推出的网页三剑客之一Dreamweave,它提供了大量的模块生成功能。比如通过设置数据集和表单的控制对应关系,可以生成前后代码,实际上提供了一个运行的业务模块。
当然,这是没有人工智能辅助的情况。如果是基于新智能生成的,那么我们在开发的时候,智能生成模块会自动跟随上下文提示是否需要生成相应的业务前端模块。我们只需要对根据数据生成的模块进行微调或扩展,就可以满足我们的要求。
在下图中,作者使用DreamWeaver生成了一个简单的登录模块。只需设置数据表字段,即可生成表单,完成登录判断和跳转功能。
或者游戏开发领域。作者在企业负责技术平台设计的时候,为各个游戏项目组推动了通用业务模块的抽象和开发,比如热更新、原生接口调用,甚至包括游戏格斗机制在内的大量通用业务。几乎每个项目都需要,只是因为技术栈或者接口的不同才需要重复开发,往往费时费力。
站在更高的维度,这些服务可以基于机器学习和训练结合需求变化快速调整,满足各种项目的使用。因此,基于企业的技术平台,将这些通用服务的统一框架和智能定制与人工智能相结合,基于主流开发软件、引擎工具或平台工具推出实用软件或插件。形成更好的开发工作流程是非常有意义的。
目前这个阶段是各领域企业竞相降本增效的方向之一。程序员的工作正在从一般的业务开发中进一步解放出来,他们更加专注于特定产品的需求。
第三阶段:智能生成产品原型。
这一阶段主要体现在:通过对产品R&D工作流程中可以智能生成的部分进行整合优化,实现根据用户需求自动生成功能逻辑和效果表现完整的产品项目原型的目标,帮助产品经理快速看到预期效果。
这里有几个案例可以说明:
一是市场上搭建了大量的自助网站和电商小程序平台。
这些平台直接面向用户,为用户提供定制的业务模块和服务,生成最终产品。如腾讯云的自助建站:
这些平台虽然具有直接生成最终产品的能力,但其底层逻辑主要是基于一定数量的前端模板和样式模板的组合,通过固化的需求项选项可以得到产品各个模板模块的组合结果。产品领域、形状、规模有限,目前大多不具备通过用户需求分析和产品形状数据集的机器学习生成目标产品的能力。
目前,在数字人R&D企业中,我们已经使用人脸识别和动作识别技术建立人脸照片和动作视频的模型数据集,并使用机器学习重建3D模型和绑定自动动作,快速生产高精度的数字人。该方法不同于以往艺术建模和手工绑定人体骨骼和运动的工作流程,可以大大加快数字人体的生成效率、规模和精度。
在GTC发布会上,黄仁勋宣布推出全方位虚拟化身平台—— Omniverse Avatar(图片来源:https://developer.nvidia.com/nvidia-omniverse-platform/ace)
第二,在一些游戏方向,比如剧情文字游戏(AVG)领域,开发者也在通过脚本生成和二次渲染生成软件,试图通过脚本制作出完整的游戏产品,可以在短短几个小时内生成原本需要几个月才能完成的剧情文字游戏。
当然这些业务都比较简单,但是随着人工智能的发展,相信在不久的将来,一个软件产品设计师通过提供一些简单的需求描述,就可以得到一个完整的、可操作的产品演示。它需要做的就是不断提交需求描述,得到想要的产品原型。
摘要
最后,我想说的是,内容生成的算法目前在某些方面已经有了很大的突破,但是在软件开发领域,尤其是开发者工具领域,还需要相关企业和创业者不断结合这些突破,放到具体的工具软件产品中,来改善开发者的工作流程和体验,推出更好的产品形态。未来谁能提供更好的智能内容生成体验,谁就更受欢迎。
(报告)
- 上一篇 : 全世界都在直播 京东为什么选择性地选择“撤退”?
- 下一篇 : 千万网民想驯服的AI画背后谁在赚钱?