AI大模型技术:揭秘如何大幅提升研发效率!

一、AI大模型技术提升研发效率

1、人工智能火爆

大约一年前,从chatgpt3.5发布开始,人工智能似乎在一夜之间爆火,既源于科技的巨大进步,也是人类探索未知的热情的体现。我们正站在一个科技革命的风口,而人工智能正是这场革命的中坚力量,塑造着我们未来的生活。随着计算能力的不断提升、数据的爆炸增长以及深度学习等技术的崛起,人工智能技术的爆发如同一颗被点燃的火花,以前所未有的速度渗透到了我们的方方面面。
今天主要介绍一下,如何借助AI大模型技术提升产品研发效率。

2、基于ChatGPT实现全栈高效开发

先问一下chatgpt3.5这个问题,答案如下图所示:

图片

基于gpt生成的以上结果,本篇文章重点细化讲解一下AI大模型型技术助力问题搜索的精准度和连续性。

3、AI大模型助力实现经典问题电商系统中库存更新

最简单粗暴有效的方法,就是通过持续改进prompt喂给chatgpt,直到得到想要的结果,本节以chatgpt3.5(https://chat.openai.com)为例进行实战,也可以使用国产大模型,比如科大讯飞,通义千问,文言千帆,盘古大模型等,以下chatgpt3.5示例如下:

  1. prompt:用java实现电商系统中库存更新,需要用到缓存,保证高并发下的性能,同时避免高并发下查询时缓存数据不一致问题,请实现库存更新与库存查询功能。

    图片

  2. 继续prompt: getProductStock方法要考虑高并发时对缓存系统的压力以及缓存获取不一致的问题

    图片

  3. 继续prompt:具体代码实现一下,重构一下getProductStock
     

    图片


    如此通过连续的prompt提问chatgpt,chatgpt持续完善代码,不得不说,在一定程度上还是比较靠谱的,可以提升相当的效率。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

4、AI大模型助力全栈研发

同样的方式,通过持续改进prompt喂给chatgpt,就可以带领您完成全栈研发,炒鸡提升学习和研发效率,如下:

  1. prompt: 前后端分离实现用户信息的增删改查,用户信息包括姓名,性别,出生日期,身份证号等信息,后端代码基于springboot3,前端代码基于vue3,请生成前后端代码

    图片

    图片

    图片

    图片

    图片

  2. prompt: 前后端代码需要支持国际化,请重新生成

    图片

    图片

    图片

5、AI大模型轻松实现不同程序语言切换

   可以直接将一种语言的代码贴给chatgpt,并告诉它要转换成的开发语言,gpt会直接转换成对应的代码
示例如下:prompt: 请将如下python代码转化成java实现,代码如下:
def add_todo(username):
request = await quart.request.get_json(force=True)
if username not in _TODOS:
_TODOS[username] = []
_TODOS[username].append(request[“todo”])
return quart.Response(response=‘OK’, status=200)

图片

图片

6、AI完整代码生成插件

   常用的开发工作VS-Code和IDEA插件对应的智能代码生成插件有CodeGeeX、CodeWhisperer、Github Copilot。其中,CodeGeeX和CodeWhisperer是完全免费的,Github Copilot是收费的,每月10美元,各插件的详细情况请大家各自搜索了解,本节以CodeWhisperer为例,简单介绍开发工具中AI代码生成插件。
    CodeWhisperer是AWS开发,经过数十亿行代码的训练,可以根据您的评论和现有代码实时生成从代码片段到全函数的代码建议,据官方吹牛,开发人员工作效率的巨大飞跃速度提升57%。

图片

使用时,需先安装插件,以idea为例,安装插件 AWS Tookit,如下图所示:

图片

安装成功后,打开AWS Tookit视图,根据提示完成个人账户的创建和绑定(free & easy), step by step :

图片

啥都不说了,上例子,以 /快速排序/为例,通过触发插件生成代码,连续三次,即可生成完整代码:
   以mac为例,在idea中,新建类,输入注释内容,即文本内容 /快速排序/, 然后点击快捷键option+C,即出现如下图所示:

图片

按Tab键,使用提示的代码,然后继续Option+C,插件给出新的代码提示,如下图:

图片

重复以上操作,按Tab键,使用提示的代码,然后继续Option+C,插件给出新的代码提示,如下图:

图片

再次重复以上操作,按Tab键,使用提示的代码,完成借助CodeWhisperer插件,使用自然语言,生成程序代码的全过程,如下图:

图片

7、国产大模型百家争鸣

国产大模型也是百花齐放,千模大战,比如科大讯飞,通义千问,文言千帆,盘古大模型等,如下以文心千言https://chat.baidu.com/为例进行测试。

  1. prompt: JAVA多线程环境如何实现倒计时功能,请示例:

    图片

  2. prompt:示例要体现出时间倒计的效果,请调整代码,输出每一次倒计的值

图片

图片

8、总结

    当今大模型技术突飞猛进的背景下,软件设计与研发效率的提升,可以综合开发工具+代码提示插件+大语言模型配合使用,效果最佳;熟练应用AI大模型,对于研发过程中的复杂问题,可以更加精准有效甚至完整的提示,从而提升研发交通;而更智能合适的代码生成提示,需要基于本公司大量的代码训练,可以有更加有效的支撑公司技术栈和开发规范下的高效的代码生成提示。

二、大模型在研发效率提升方面的应用与实践 | 新程序员

随着软件开发和科学研究的复杂性不断增加,人们对提高编程及研发效率的需求也越来越迫切。传统的编程工具和方法已经无法满足这一需求,因此人们开始探索新的技术手段来提升编程和研发效率。大模型作为一种新兴的人工智能技术,被广泛应用于辅助编程和研发效率提升领域。

例如,美国科技巨头谷歌利用大模型技术提升内部研发效率,通过在代码自增长工具中集成大模型,辅助完成部分重复性工作(如自动导入包、自动生成构造函数等),缩短了工程师的编码时间。同时它还开源了基于大模型的代码搜索引擎,可以自动匹配代码片段并提供相关文档,大幅提高了工程师的开发效率。微软研究院则开发了基于大模型的自动测试工具,它可以自动检测代码中的 Bug,并生成相应的测试用例。经过实测,该工具在发现错误率和测试覆盖率上都能超越人工编写的测试用例。目前它正在帮助微软各产品线提升测试质量。

中兴通讯以大模型为中心赋能企业数智化转型,坚持先自用再外溢。除自研大模型之外,我们还基于开源的大模型开发微调后在研发效能领域进行应用,并分析其优势和挑战。通过对相关研究和实践案例的综述,发现大模型在辅助编程和研发效率提升方面具有巨大潜力。在本文中,我将分享我们在研发类大模型的一些应用与实践,希望对开发者们有所裨益。

01.研发类 AI 场景分析

研发流程非常繁多,从项目立项到需求分析,再到产品设计、研发,再进行测试,进而投产和运维,贯穿了复杂的管理流程。

基于大模型的需求管理

  • 对需求进行自动拆分,即把用户需求拆分成产品需求。

大模型能对用户提出的需求进行语义理解,识别其内在结构与逻辑关系,自动将需求拆分成独立的子需求。比如从一个用户定义的需求,自动提取出多个具体的产品需求点。

  • 自动补全

(1)对需求进行自动介绍,指出需求背景、用户痛点以及实现该需求能为用户带来的价值。

(2)将用户用简单语言说明的需求,转化为标准的产品需求格式,详细描述功能点和约束条件。

(3)根据需求类型和项目阶段自动生成验收标准与测试用例。

  • 自然语言查询/定义

具体包括:

(1)用户能通过日常话语式描述搜索到相关工作任务。例如搜索“如何实现单点登录”。

(2)用户通过在线对话的方式与系统交互,利用自然对话流程定义需求内容。

此外,大模型还可以为需求管理提供以下能力:

(1)识别需求之间的依赖关系,绘制需求关系图。

(2)利用主观概率算法为每个需求点评估重要程度与难易程度。

(3)通过对历史需求数据进行学习,提出可行性评估与风险识别。

分析设计

  • 内容生成

(1)根据需求内容自动提炼重点,生成不同层级的内容提纲供浏览。

(2)根据产品类型和功能,绘制系列设计原型图或流程图,标识主流程和交互点。

(3)通过创意思维自动编写故事情景,展现产品如何解决用户痛点。

(4)对文档内容进行翻译、注释或解释,协助设计人员更好地理解需求细节。 

  • 内容结构化

(1)将图片、表格等非文本内容引用至正文,生成文档框架。

(2)在设计文档中自动标注待完善部分,给出改进建议或待定事项。

(3)检测文档风格与格式是否统一,给出转换建议供修改。

(4)将结构化设计文档自动生成到各类格式文档中,如 Word、PDF 等。

此外,分析设计阶段还可以利用大模型:

(1)检测设计方案创新性及可行性,给出评价建议。

(2)将历史优秀案例自动归纳提取,运用到当前设计中。

开发流水线

  • 资源智能分配

(1)根据历史任务资源使用状况,针对不同类型任务动态设置资源上下限。

(2)根据任务并发情况实时调度任务到不同规模的资源池,聚焦于提高整体利用率。

  • 故障定位

(1)通过对比历史错误日志,识别重要提示词进行分类,快速定位错误原因。

(2)调用相关开源工具分析异常快照,给出反向跟踪步骤以帮助修复。 

  • 一键生成

(1)根据用户自然语言自动创建符合用户需求的流水线。

(2)根据代码库结构,结合部门代码库和流水线规范,自动生成流水线。

(3)通过 API 调用底层工具,完成流水线的执行。

此外,开发流水线优化还可以:

(1)在不同阶段进行分支管理与合并。

(2)监控流水线状态并发送实时提醒,追踪任务进度。

(3)支持流水线模板管理和多项目重复应用。

CCA

  • 漏洞自动治理

(1)针对代码漏洞、引入组件、开源合规、安全漏洞等问题提供一站式解决方案。

(2)当前代码存在哪些漏洞/问题,推荐如何治理,无需人工搜索。

  • 组件版本依赖

即当某个组件要升级,AI 推荐建议升级版本和依赖版本,减少人工版本探索时间。

测试管理

  • 测试用例代码生成,即不同粒度的自动化测试用例代码生成,包括函数级、模块级、功能级、API 级、性能级。

  • 自动创建测试环境,即自动创建测试环境、测试执行任务并执行,最后生成测试报告。

  • 自动生成测试文档,包括:

(1)自动创建测试计划。根据接口文档自动创建基准场景和边界条件测试计划。

(2)实例化测试记录。测试通过后自动更新通过率及接口文档,实时反馈测试进度。

版本管理

实现版本发布无人化,包括文档自动生成,和版本发布审批决策智能化。

02.研发大模型应用平台整体架构和思路

基础模型选择思路

对于基础模型的选择,在参数上有以下一些考虑:

  • 10B 参数级别

这是目前综合性能与部署成本的平衡点。像 10B 左右的微型模型,在保留很强生成能力的同时,参数量相对较小,易于部署和精调。

  • 25B - 50B 参数级别

如果有一定预算,可以选择略大一些的模型,像 GPT-J 25B,具有更全面强大的语言理解和应用能力。若重视研发投入且需要应对更复杂任务,选择 50B 以下大模型也未尝不可。

  • 不宜超过 100B

超过 100B 的天然语言处理大模型,由于其部署和使用成本还不可控,当前尚不宜直接应用于产品。

总体而言,当前 10B - 50B 之间的模型规模是一个比较适宜的选择窗口。它可以满足大多数日常需求,同时考虑到成本和易用性的因素,超过这个范围就需要根据实际应用场景具体权衡。

其次,还需要考虑模型的开源程度。半开源模型信息不对称度高,我们优先选择完全开源的模型,可以推进后续定制和社区研发。

综上所述,对基础模型选择的标准如下:

  • 具备编程领域能力,在编程类模型评估中各类语言得分越高越好(HumanEval/Babelcode 指标)。

  • 考虑模型参数量,参数量过大,会导致精调和部署成本的提升。

  • 在编码能力基础上,最好具备一定中文能力,当然其选择的优先级低于编码能力。

当前主流的基础模型如表 1 所示,最终我们选择 Code LLaMA 作为基础模型。

表 1  主流模型对比

图片

增强预训练

模型选好后,接下来就是对模型进行增强预训练。增强预训练的框架要解决两个问题:资源和速度。我们采用以下优化方式:

对于模型训练,我们可以采用 3D 并行训练的方式来实现。将模型参数和梯度张量划分为多个分区,分配到不同 GPU 卡上进行计算。每张卡负责自己分区的梯度和参数更新工作,间隔时同步到其他卡上。这样可以很好地利用更多计算资源,降低单卡资源需求。

同时,我们还可以采用 Distributed Data Parallel 的方式,将训练数据并行读取和样本处理工作分发到各节点,充分利用多卡资源进一步提升训练速度。对于节省 GPU 资源,我们使用 ZeRO 技术。这个技术通过对静态和动态参数/张量进行精细地分区存储,有效减少显存占用。同时它支持异步参数更新,计算和参数传输可以重叠进行,有效缩短迭代周期。

对于模型训练加速,我们采用 FlashAttention 技术。它通过对注意力操作进行分块并进行融合,如将 QK 乘积和后续运算融成一个算子,可以大幅减少数据传输次数,从而提升计算吞吐。

训练数据组织及语料库建设

  • 训练数据组织

明确训练数据的来源、用途和特点。在组织训练数据前,要了解数据的来源,确认其可靠性和有效性。同时,要明确这些数据将用于哪些任务,并了解其特点,如数据量的大小、数据类型等。

进行数据预处理。预处理是组织训练数据的关键步骤,包括数据清理、去重、变换等。数据清理主要是去除无效、错误或重复的数据;去重则是去除重复的信息,以避免模型过拟合;变换则是对数据进行必要的转换,以便于模型的学习和训练。

合理组织训练数据。首先要将数据进行分类,按照不同的任务需求划分不同的数据集。例如,可以将数据集分为训练集、验证集和测试集,以便于模型的训练和测试。同时,要合理存储数据文件,可以选择常见的存储格式,如 CSV、JSON 等,并确保文件的安全性和完整性。

图片

图 1  训练数据组织及语料库建设架构

  • 语料库建设

语料库是语言学研究的基础,为自然语言处理任务提供丰富的语料信息。建设语料库的目的是为了满足特定语言任务的需求,如文本分类、情感分析、信息提取等。

选择合适的语料库构建方法。常用的语料库构建方法有手工采集、自动化采集和混合采集。手工采集适用于小规模、高质量的语料库建设;自动化采集则可以快速地获取大量语料信息;混合采集则是结合前两种方法的优势,以获得高质量且大规模的语料库。

做好语料库的管理和维护。为了确保语料库的安全性和可靠性,需要对语料库进行科学的管理和维护,这包括文件管理、关键词提取、数据备份等。要建立完善的文件管理制度,对语料库进行合理的分类和存储;同时,要定期对语料库进行关键词提取,以便于检索和使用;此外,还要定期备份语料库数据,以防止数据丢失或损坏。

精调方法选型

接下来,需要对大模型进行精调。针对已经预训练好的研发大模型,在具体应用任务上进行优化和微调,以适应研发领域和应用场景的需求。在精调中,面临的问题包括:

  • 显存占用量超过预训练需求

大模型通常需要大量的显存来存储模型参数和中间状态,而显存的有限性限制了模型的规模。在进行精调时,如果使用的数据量较大或者模型的复杂度较高,显存占用量可能会超过预训练的需求,导致模型训练失败或效率低下。

  • 计算量超过预训练需求(单位数据量)

大模型通常需要大量的计算资源来进行推理和训练,这包括 CPU 核心数、GPU 内存和显存等。在进行精调时,如果使用的数据量较大或者模型复杂度较高,计算量可能会超过预训练的需求(单位数据量),导致模型训练速度变慢或者无法收敛。

此外,大模型精调还可能面临其他问题,如模型复杂度过高导致调参困难、数据量过大导致过拟合风险增加等。因此,在进行大模型精调时,需要根据实际情况进行权衡和优化。

图片

图 2  精调方法选型

精调需要达到降低计算和存储成本、提高泛化能力和轻便性、克服灾难性遗忘的问题、根据不同任务动态地调整额外参数的效果。因此,我们需要在保持预训练模型的大部分参数不变的情况下,只微调少量额外的参数。在资源足够的情况下,也可以选择全量精调(选型可参见图 2)。

03.研发大模型实践结果

截至 2023 年三季度,我们针对研发场景的大模型在公司内部上线在短短两个月的时间里就取得了显著的效果。用户超过 3000 人,30 日留存率超过 50%,产品成功完成冷启动。在这背后是仅使用了 4 张 A800 卡,这意味着 AI 编程成本完全可以被企业所接受。需要注意的是,AI 编程对人员能力有比较高的要求,需要对员工进行系统性培训,才可能用得更好。

当然,大模型的使用也面临一些挑战,如计算资源需求和数据隐私问题。这些挑战主要来自于大模型庞大的计算规模和对大量个人敏感数据的依赖。经典的大模型需要大量 GPU 资源进行训练与推理,离线部署效率低下;同时由于学习自大量的互联网数据,模型内可能含有用户隐私信息。

因此,未来的研究应重点关注如何利用分布式计算和隐私保护技术等手段,来解决大模型计算资源和数据隐私的问题。例如采用 Model Parallel(模型并行)和 Data Parallel(数据并行)方法降低单机硬件需求,使用关注点机制和微分隐私等隐私算法来保护用户数据等。同时也应探索如何设计支持在线增量学习的大模型架构,有效应对业务需要持续迭代优化模型的需求。只有解决这些建设性的挑战,大模型才能在软件研发深度应用和持续推广。

三、掌握大语言模型在软件研发提效的秘诀

探讨大语言模型(LLM)在软件研发领域的崛起,以及其在提升研发效率方面的潜力。通过详细分析,本文展示了LLM如何在需求分析、设计、编码、测试和运维等阶段发挥作用,并指出上下文知识和模型选择的重要性。通过具体实践案例和方法论,本文为企业内部的LLM有效落地提供了指导。此外,展望了AI软件工程师的未来前景与端到端解决方案的可能性。

1、大语言模型在研发领域的崛起

图片

随着技术不断进步,大语言模型(LLM)的出现如同在研发领域投下一颗重磅炸弹。LLM通过海量数据训练,掌握了强大自然语言处理和生成能力,使其在软件研发过程中独具一格。从需求分析到设计,再到编码、测试和运维,LLM几乎涉足了软件开发的每一个环节。2022年GitHub Copilot的发布,将LLM的潜力推向了新的高度,吸引了众多开发者和企业的关注。

图片

需求分析阶段,通过Cohere和ChatGPT等工具,可以快速理解用户需求,生成详细的需求文档。设计阶段,工具如Cohere和Lucidchart,帮助开发者理清产品结构,生成设计图。编码阶段,Aide、Devin、GitHub Copilot和Cody等工具大展拳脚,加速代码编写,提高效率。在测试阶段,Test.ai和testAgent协助自动生成测试用例,提升测试覆盖率和效率。运维阶段,Davis® AI助力进行故障检测和修复,确保系统稳定运行。

图片

科技巨头们纷纷投入LLM的研发和应用,推动了其在软件开发领域的普及和发展。LLM不仅是技术的革新,更是一种新的思维方式,改变了传统的软件开发流程。LLM的崛起,预示着软件研发进入了一个前所未有的智能化时代,给整个行业注入了新的活力。

2、LLM提升研发效率的逻辑

图片

LLM在研发效率提升方面的逻辑可以总结为四个核心因素:人员能力、研发质量、研发效率和研发成本。通过降低技术门槛,LLM促进了知识共享,释放了创新潜力。代码分析和错误检测功能提升了代码质量,自动生成测试用例提高了测试效率,并在代码审查和问题诊断中发挥重要作用。

图片

LLM的自动代码生成和补全功能,加速了开发速度,而自动化测试和文档生成则减轻了开发者的重复性工作负担,从而提升了整体研发效率。研发成本方面,LLM通过自动化研发工作,减少了对人工的依赖,加速了研发进程,缩短了研发周期,从而降低了整体成本。

图片

实际应用中,LLM的有效性需要通过多个维度进行评估,包括生产率、稳定性、质量等直接效能指标,以及间接效能指标如人员心智负担等。通过全面的效能评估,企业可以更好地理解LLM的价值,优化研发流程,最大化利用LLM的优势。

3、LLM在企业内部如何有效落地

图片

在企业内部有效落地LLM需要考虑多个因素,首先是上下文知识的重要性。LLM的效果高度依赖于上下文的信息完整性和质量,通用大模型在企业落地时,往往会面临缺乏特定领域知识的困境。企业需要创建并维护高质量的知识库,使LLM能够准确理解和预测输出。

企业在实际应用中,需要选择高价值场景进行试点。在选择场景时,应考虑事务性、单系统、单人操作等特点,确保应用场景简单可控,便于验证和优化。继而,通过工程实践进行小范围测试,逐步扩大应用范围,确保LLM能够稳定、高效地执行任务。

图片

大模型应用的落地流程需要持续迭代,通过工程实践不断优化。模型选择、微调、RAG等技术手段,可以帮助企业灵活应对不同任务和场景需求。在每个环节中,交互设计和人类反馈的引入至关重要,能显著提升LLM的准确性和实用性。

4、LLM研发场景落地实践

图片

图片

在实际研发场景中,LLM可以广泛应用于辅助编码、测试用例生成、代码审查、运维助手和API问答等场景。例如,在测试用例生成领域,LLM可以通过用例生成Agent,自动化生成和优化测试用例,提升测试覆盖率和效率。在代码审查过程中,LLM能够理解项目结构,进行代码质量分析和优化建议,减轻开发者的工作负担。

图片

图片

运维方面,LLM可以作为运维助手,提供知识查询、故障排查、自动化提单等服务,通过多Agent协作,提升运维效率和系统稳定性。在故障处理过程中,LLM可以自动拉群、同步故障进度、生成故障报告,确保及时、准确地处理问题。

通过在具体研发场景中的实践应用,企业可以逐步探索和验证LLM的潜力和价值,积累经验,优化流程,最终实现LLM的全面落地和应用。

5、未来思考

未来,随着技术的不断进步,AI软件工程师将逐渐崭露头角,成为软件开发领域的重要力量。2024年3月,首个AI软件工程师Devin的出现,标志着AI自主软件开发进入了新的阶段。Devin不仅能够完成编码任务,还能自主进行项目规划、BUG修复、模型训练和微调等工作,展现出强大的创新能力和潜力。

展望未来,端到端解决方案的实现,将推动软件研发进入全新的智能化时代。随着Agent技术、长记忆技术等的突破,LLM的上下文理解和多模态处理能力将不断增强,连接起无数个场景,实现软件研发任务的全面自动化和智能化。

总结来说,LLM的崛起和应用,将引领软件研发迈向新的高度。通过不断探索和实践,企业可以挖掘LLM的潜力,提升研发效率,推动技术创新,实现智能化、自动化的软件开发新时代。

四、大咖论道 | 大模型时代软件研发效率革命

根据GitHub的一项调查,92%的受访开发者正在借助AI编码工具来完成工作和其他项目。另一方面,AI已经通过了大厂L3工程师入职测试,可自如应对数组/字符串、动态规划等技术问题,对应职位年薪18万美元。

大模型正在成为人工智能的新范式,也助推了AIGC的新一波浪潮,由此掀起了软件开发领域的效率革命。

为此,HDC.Cloud 2023开发者社区活动系列直播邀请了知名测试专家&同济大学特聘教授朱少民、Gitee 创始人&CTO刘冬、华为云PaaS研发工具首席规划师文老师以及华为云PaaS研发智能化技术专家马老师,4位专家分别从学术、行业、企业/个人开发者的角度各抒己见,围绕当下热门的大模型话题,为大家拨开心头云雾。

如何看待这一波AIGC的浪潮?会是一场“革命性”的海啸吗?

朱少民(同济大学特聘教授):经过学术界、工业界20多年的努力,伴随着互联网时代下数据和算法的迭代升级,到了如今大模型时代,AI的应用已经发生了质的变化,我觉得这是一场革命。

文老师(PaaS研发工具首席规划师):原来的算法以及模型规模都比较小,它解决的是中小型的问题。现在大模型能结合很多的数据知识,变成一个广泛的、通用型模型,并且可以叠加垂直领域更高阶的模型,从而带来了质的改变。从研发角度来说,大模型也让整个研发的结构和集成方案发生了变化,为软件研发效率提升带来更多探索和想象的空间。

刘冬(Gitee CTO):首先是震撼于通用人工智能的应用,意味着各行各业都将迎来巨大的机会;同时担心如果不主动学习拥抱这波热潮,就会被时代抛在身后;最后还有点忧虑国内大模型的发展是否能赶得上全球水平。

AIGC在软件研发中起到的作用有哪些?类似于AI辅助编程工具的应用,是对当前软研发体系的革命吗?

刘冬(Gitee CTO):目前在软件研发领域涌现出各种各样的AI编程工具,现阶段AIGC主要是助力开发者提升效率,但未来它可能会帮助开发者完成整个软件工程的开发,现在已经有人试着从简单应用入手,去朝这个方向努力。

朱少民(同济大学特聘教授):有人将大模型时代比作是当年的智能手机iPhone时代,就像iPhone手机改变了我们和手机的交互方式。大模型的出现、AIGC的应用也改变了人机交互方式,我们可以通过自然语言和AI系统交流,它能直接通过对话理解我们的意图,这才是真正的数字化实现。而软件是从现实世界到数字世界的映射结果,软件研发天生是数字化的工作,所以大模型将会对软件研发领域产生巨大影响。

文老师(PaaS研发工具首席规划师):从软件研发层面还谈不上变革,因为它本质上没有改变当前从需求设计、构建测试到发布上线的研发全流程,而且开发者和代码、文档的交付方式也没有发生变化。但是大模型对于软件研发效率的提升,尤其是自动化方面,已经超越了传统工具,这是技术上的革命、效率上的质变。

如何去定义软件工程3.0,大模型给软件开发带来了什么?

朱少民(同济大学特聘教授):1968 年 NATO 会议提出了“软件工程”概念,开启软件工程1.0(SE1.0)时代。到2000年敏捷软件开发宣言的发布,我们进入软件工程 2.0时代。再到今年 GPT-4 的问世,你可以不写一行代码,通过自然语言和AI的交流把软件开发的任务完成,意味着软件工程3.0的诞生。

如果1.0时代的软件形态是一种类似于office的产品,2.0时代的软件形态是一种能够支持持续构建、持续交付的云服务,那么3.0时代软件是作为一种模型存在的,即软件即模型,开启软件开发新范式。通过模型来提供各种服务,自动生成需求文档、产品代码、测试脚本等等,此时生产力和生产关系之间也发生了变化。

很长一段时间里, AI在软件研发领域应用的最大瓶颈之一则是无法理解需求和业务,但现在有了新的突破,通过提示工程(提示词)可以和AI无缝沟通与交流,让计算机理解我们的需求,对于软件研发领域来说是一场革命。

在软件设计层面,AI也有着优异的表现,它可以在不构建模型(画出因果图)的情况下设计出正确的测试用例。以前是我们自己写代码,工具是辅助,现在是AI直接写代码,它可能比人考虑问题更周全,更注意代码规范性和安全性。

综上,当软件研发的生产力达到一定程度之后,那么原有的生产关系必然难以匹配新生产力,则会产生新的研发模式。

刘冬(Gitee CTO):程序员在写代码的过程中会遇到一些“干扰项”,比如随时更改任务状态、和需求方机械化的互动工作等,这些琐碎的事项会影响他们的开发效率。如果AI可以将代码之外的事情自动化,对于开发者来说既能提高效率,也会改善工作心态,让自己更聚焦于具体的开发任务。

回到软件工程领域,大模型可以做的事情很多,最理想的状态是它可以和各种开发工具、平台做到无缝结合,让开发者能够无感知的使用。

文老师(PaaS研发工具首席规划师):多模态大模型的出现大大加强了人工语言的自动介入能力,我们和代码的交互模式发生很大的变化:原来的开发活动需要用标准的编程语言和工具去交互,但现在演变成自然语言,即直接对话就能完成一些代码的交付。

未来在研发人员的工作中,大模型的能力或许可以以一个数字人的形式存在,我们感知不到它是模型或者工具,而是自然地把它作为团队中的一员。这样大模型与开发者的交互又将从语言的间接交互转变“人”和人的交互,对于效率地提升会带来巨大的变化。

大模型对于企业研发效率的提升有多少?它会取代程序员吗?

朱少民(同济大学特聘教授):有数据显示通过AI辅助编程工具,可以让程序员写代码的效率翻一番,以前两个人的工作现在可能一个人就能完成,从这个角度看它确实会淘汰一部分人。但AI不会取代所有的开发者,如资深的架构师、测试工程师、产品经理等角色,依然在软件研发中扮演着重要的作用。另外,当团队规模缩小,大模型的应用还会减少沟通成本,让资深研发人员将更多的时间投入到有价值的工作中。

刘冬(Gitee CTO):虽然AI可以快速准确地完成某些具体任务,如编写代码或方法,但软件开发需要工程化的项目管理,这些是AI所无法完成的。所以,目前的大模型只能作为辅助工具,具体研发效率的提升需要AI和人类协同工作。

文老师(PaaS研发工具首席规划师):产品和软件是生长式的持续演进,一般大企业的软件生命周期长达5-10年。“铁打的营盘流水的兵”,在这个过程中虽然开发人员会一直变动,但他们会积累下丰富的软件经验和知识,覆盖需求理解、架构设计、代码开发、测试用例等。大模型可以充分沉淀企业的这些知识,在诸如代码编写、用例生成这样的垂直专业领域,大幅度提升新人的软件开发效率,提高软件人员的能力下限。

但在整体研发过程中,由于软件工程化的复杂性和领域知识的局限性,目前的效率提升并不会达到非常高的水平。不过随着大模型的成熟和领域知识的不断积累,它在软件开发中的效率提升作用将会更加显著。

马老师(PaaS研发智能化技术专家):从去年开始,我一直在使用我们开发的智能编程助手CodeArts Snap,它可以帮我完成很多事情,切实提高了编程效率,比如支持函数级代码自动生成、自动理解上文语义逻辑完成行级代码生成、提供代码生成推荐提供编程灵感,甚至能在一些更具体的研发活动中形成助力,如代码调试、代码解释、单元测试、知识问答、工具协同等等。

五、在工作中这样用大模型来提升研发效率

我在咱们技术交流群里抛出一个问题,照例很快收到了朋友的有效建议。

图片

本来这个问题是我传参的问题,我开始的传参是这样。这是我记错了,这是模拟前端传文件,类型为

@RequestParam("file") MultipartFile file

文件时的入参。

图片

其实这里需要的是二进制。那postman工具也是支持的,选择类型为二进制即可。

图片

到此问题本来已经解决了,但是又有朋友回复,给了我新的思路。

图片

图片

因为本来我从运营那边拿到的就是一个EXCEL文件,而代码要求我上传的是json的二进制。我就把结构告诉chatgpt让它帮我构造参数。

图片

图片

可以像这样通过问答的形式一次次把代码贴出来让它按照要求完成嵌套的json。

发现了这个之后,我从线上导入的数据,之前用excel处理自己拼接sql的,现在都可以交给chatgpt去做。

图片

图片

非常省事!

 大模型&AI产品经理如何学习

求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些东西。

这份完整版的大模型 AI 学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

 

1.学习路线图

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。


2.视频教程

网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己整理的大模型视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。

(都打包成一块的了,不能一一展开,总共300多集)

因篇幅有限,仅展示部分资料,需要点击下方图片前往获取

3.技术文档和电子书 

这里主要整理了大模型相关PDF书籍、行业报告、文档,有几百本,都是目前行业最新的。



4.LLM面试题和面经合集


这里主要整理了行业目前最新的大模型面试题和各种大厂offer面经合集。



👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集***

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值