谈谈我对 AIGC 趋势下软件工程重塑的理解
作者:陈鑫
今天给大家带来的话题是 AIGC 趋势下的软件工程重塑。今天这个话题主要分为以下四大部分。
第一部分是 AI 是否已经成为软件研发的必选项;第二部分是 AI 对于软件研发的挑战及智能化机会,第三部分是企业落地软件研发智能化的策略和路径,第四部分是我们现有的可采纳的、可落地的工具,在这一部分我也会重点介绍通义灵码整体的产品能力和概况。
AI 已经成为软件研发的必选项
这张图是麦肯锡最近发布的一个研究报告,大家可以看到他把软件工程列在了整张表格的右上角,也就是影响最大、影响速度最快的一部分。他为什么会有这样的观点?这是因为在大模型时代,我们发现大模型在代码生成和整体的逻辑推理方面是特别擅长的,所以涌现出了类似 Github Copilot 这种非常有代表性的智能编码工具,可以瞬间提升大量企业开发工程师的研发效率,而且 Copilot 是至今为止在世界范围内商业化最成功的大模型的领域之一。
这位美国的 KOL,他也有同样的观点。他认为在大模型时代,可能有大量的技能会被替代,我们 10% 的技能会被 1000 倍的提升,这个跟我们的观点是相似的,尤其是在大模型时代,大模型可以大量地替代开发者的日常事务性工作,这部分的占比很可能超过70%,让开发者得以聚焦于剩下 30% 的业务和技术的创新。
这张图给大家展示的是前一段时间 JetBrains 的一个调研报告,他们在 26500 名工程师之间做调研,想看一下今天有多少开发者已经开始熟练地使用生成式 AI 工具,这份调研也出乎很多人的意料,调研显示,现在 84% 的开发者已经在或多或少地使用生成式人工智能工具了。
其中有哪些场景是开发者最耗时,也是最想提效的场景?
他们在这里也做了一个调研,就如左图所示,首先是编码场景,然后是理解代码,接着是互联网搜索,也就是查询各种各样的研发问题,以及进行调试、编码注释、写测试、代码评审等等一系列的工作。
这张图大家可以看到,有哪些场景是 AI 助手辅助频率最高的?
有以下几个:第一个是使用自然语言去询问软件开发的一些问题,包括生成代码、生成代码注释、解释代码、生成测试等等。其实大家可以发现这一个调研的结果跟上一个其实是非常吻合的。也就是说在我们最高频的场景下,AIGC 其实能起到非常关键的作用。 这也是为什么代码智能生成工具已经逐步成为了每个企业必须采用的一项产品的原因。
这张图也是微软针对 Github Copilot 用户发放的一份调研问卷,了解他们使用类似 AIGC 的代码助手对整个的研发效率或者说研发体感有多少提升,可以看到有很多指标都是 80% 以上的,或者接近 80%。其实我们也针对通义灵码的使用者发放过类似的调研问卷。有超过 80% 的用户都感觉到使用工具以后生产力有了大幅的提升, 跟这个调研报告也非常吻合。
根据前面的调研报告和后面相关的调研数据,大家可以看到,在世界的开发者范围内,AI 已经成为了开发者的必选项,我们软件研发的未来一定是 AI 驱动的场景。
软件研发挑战及智能化的机会
在 2023 年 6 月,我们组织过一次大规模的专家研讨会,在这个研讨会上大家都在讨论智能化未来对软件研发或者软件工程领域的深刻影响。在这个会上,我们有位专家提出了一个观点,他认为软件工程是人类历史上第一次大规模的集体智力的协作活动,它本身是有本质的复杂性在的。例如《人月神话》的作者所讲的,他认为软件本质的复杂性是现在软件系统中无法规避的内在特性,比如复杂度、一致性、可变性和不可见性。
在过去的若干年,为什么软件效能或者说研发效率提升非常困难,就是因为这些维度没有得到非常好的解决。今天在大模型时代,通过 AI 逐步地去替代人类的事务性工作后,它可以起到非常大的改进作用。我们总结下来有以下四大方面。
第一,是对个体效率的提升。 例如我们可以采纳类似 AI 的智能代码助手,它可以大幅的代替研发人员的重复性工作、简单性工作。我们认为它是一种 Copilot 的模式,辅助各个角色去提升自己的工作效率。
第二,是对协作效率的提升。 因为有很多专业的分工,它们之间存在一些效率的竖井,互相沟通协作的一些偏差等等。当 AI 逐步地去替代事务性工作,并且形成了 AI 为主、人为辅的编程模式的时候,大家会发现一些角色的分工可能会出现模糊化。比如产品经理写完了需求,是不是可以马上交由 AI 去完成大量的编码工作,然后由工程师进行校验,测试人员进行简单的测试回归,AI 也可以起到非常重要的测试作用,接下来就可以顺利的发布上线。
如果是这样的一个以 AI 为主、人为辅的模式,其实人和人之间的沟通协同问题就可以很好地解决。
第三,是研发体验的提升。 在大模型时代,我们会构建软件研发的智能化大脑。这个大脑的表现可能是一个对话框,或者是一个对话形式。这个对话框会成为我们很多操作工具的入口。比如现在大家会发现,IDE 这种智能编码插件,它也有对话框,有 IDE 的编码,这就会成为我们写代码的一个入口。
同样在我们原来的 DevOps 工具上,也会有这样一个对话的入口。在这个入口里我们可以完成很多工具的操作,解决很多问题。它有效地使现有的工具散乱问题得到了解决,统一了整个操作入口。
第四,是数字资产的提升。 过去企业内部有很多优质的代码、框架、规范等等,很难瞬间交给开发者,让每一个开发者去遵守。接下来我们会将这些数字资产利用检索增强或者微调训练的方式跟大模型结合起来,不断地在大模型上积累这些资产,而不是使现在产生的代码成为负债,这些积累的资产可以让软件工程师的效能进一步提升。通过这样的方式形成正循环,就可以大幅提升研发效率。
在上图的右侧,大家可以看到每一项的改进,实际上都在解决软件研发的一些本质复杂性。比如说一致性问题、可变性问题、复杂性问题和一些知识显性化问题等等。因此我们认为, AI 对于软件研发的影响是深刻的,尤其是在未来 3 到 5 年,软件研发的流程和软件研发范式会出现颠覆性的变化。
大模型目前已经在深刻的改变智力协作模式,比如说现在常见的代码翻译,从我们的自然语言进行编程,像一些简单的需求,现在可以直接让大模型完成编码。但是现在复杂的业务需求还没有办法完成。不过随着大模型技术的发展,解决这个需求其实就是时间问题。
第二个是知识检索。 在海量的知识里,通过对话的方式可以快速地找到相关知识,由大模型输出,变成顺滑的自然语言。
第三个是头脑风暴。 其实这是现在开发者最常用的功能之一。比如使用通义千问时,让它给我写个算法,然后不断的纠正它,让它按照我的意图去修改代码,最终就会形成一个可以直接拿来用的代码片段,这个大家现在已经用得很熟练了。
第四个是大模型非常擅长的整理归纳。 我们可以用它来整理我们的需求、整理文档和知识,这四种模式实际上已经在改变我们的智力协作模式。
在未来,我们主要有以下三种方式可以和 AI 进行协同。第一种是聊天模式, 可以和 AI 聊我们的需求架构、编程思路,让它给我相应的建议。第二种是实时模式, 在编码过程中大模型可以在背后给我相应的辅助,它是实时性的,帮我发现错误、推荐代码。第三种是伴随模式, 也就是它随时随地可以被召唤出来完成一些事务性工作。比如帮我们做代码评审、异常排查等等,这三种模式会成为未来的主流。
从技术的角度来看,我们也认为会有以下三大趋势。
第一个是基础模型的变化,越来越长的推理上下文以及越来越大的参数量。其实现在 GPT4、GB3.5、GB4 都是非常大的千亿级的参数,包括现在的通义千问、通义灵码也是如此。随着模型的参数量越来越大以及推理上下文越来越长,模型它能感知的知识以及它能处理的任务会越来越复杂。现在它可能还只是完成一些简单的编程任务,在未来很有可能会完成复杂需求的编写。
第二个我们认为它在向纵深去拓展,更深度的去接管编码过程。比如 Github Next 上面的一些项目,我们可以看到未来的一些趋势。比如让大模型去预测下一个编辑位置,让大模型直接完成需求到代码的自动编写以及我们甚至可以通过自然语言描述的方式,让大模型编写好一个框架,直接生成整个代码,也就是说实现自然语言编程。这些在业界都有相应的探索,大家有兴趣的话可以去看相关的 Demo,还是非常酷炫的。
第三个是我们认为现在已经在逐步的向横向扩展,也就是说会贯穿到 DevOps 的整个链路。比如可以用大模型进行辅助的文档查阅、生成评审、辅助编写,大模型已经开始逐步渗透到软件工程的各个领域。
企业落地研发智能的策略
对于企业而言,在这个 AIGC 或者说大模型爆发的时代,应该如何去落地研发智能化,它的路径和策略是什么?
看到这张图,我们可以跟过去十年的软件工程模式说再见了。因为在过去,我们一直追求的是整体的 DevOps 全链路一站式体验以及构建效能洞察数据体系,去找到效能改进点,不断推进研发效能提升。
在未来十年,我们认为是以大模型为驱动的智能化软件研发体系,也就是有智能化的软件研发工具链,及大语言模型和相关的数字资产,再配合智能的决策辅助,去帮助企业大幅提升软件研发效率以及突破现有的效能瓶颈。
在这里我们推荐企业采用三个阶段来逐步构建研发的智能化。
阶段一,可以先引入 DevOps 基础大模型去构建研发智能大脑。 如我们通过编码场景,在 IDE 的编码助手的场景中进行落地。为什么我们会选取这个场景?是因为我们发现大模型目前的技术瓶颈,还没有办法实现一些非常复杂的大面积的编码。
但是在跟人类 pair 的场景下,它就可以起到非常好的作用。比如说代码续写,圈选一段代码去进行单元测试生成、代码注释生成,这些都非常擅长,而且它的效果也非常好。所以说我们认为可以在这个场景先进行切入,先去落地,取得最大的效能红利,我们把这个过程叫做 Landing。
阶段二,我们建议是以长期效率为核心,持续的治理和构建个性化数据。 也就是说要实现企业的模型个性化,提供全量、全要素的数据,比如优质的代码数据,优质的业务文档数据,将这些数据收集起来,构建企业个性化的数据集。再通过检索增强或微调训练技术跟大模型结合起来,构建一个企业私有的研发大脑。我们把这一步叫做 Growth。
阶段三,要以大模型为中心,完成整个研发工具链的智能化升级。 比如将研发领域的各种工具都接入大模型,进行智能化的整体改造,实现端到端的智能化,进一步的代替各种研发工程师的事务性工作,我们把这一步叫做 Expanding。
从阶段一、阶段二到阶段三,循序渐进的这种模式是我们比较推荐的。现在一般企业都有整体的软件研发的全生命周期管理的工具链,也有沉淀出来的企业非常好的一些数字资产。将数字资产跟大模型结合,进一步去赋能工具链,然后工具链又可以正向地产生更多的资产,因此形成一个循环,让效能越来越高,这就是我们期待的一个模式。
在需求阶段、编码阶段、集成测试阶段、发布部署阶段、咨询学习阶段、效能管理阶段等各个阶段实现智能化升级。
首先可以在编码阶段进行切入,逐步向测试阶段、发布部署阶段进行扩展。像一些和需求与业务连接的复杂场景,可以放到最后去进行提升,通过这种方式逐步落地,最终实现端到端的智能化改造。
接下来我讲一些简单的场景,给大家参考。例如我们可以实现智能的项目管理,可以实现细化需求,拆分子需求,智能的指派负责人,拆分任务等等,这些工作都可以交给 AI 来做。
比如在代码评审场景,可以实现智能化的推荐评审人、描述和标题生成、摘要生成、大评审拆分、代码检测、修复方案的生成以及冲突的自动修复。相当于有一个 AI 评审员,帮助完成了很多复杂的授信工作,而人类进行最终的确认就可以了。
也可以进行智能的分层测试,基于需求自动生成手工用例,自动的生成接口测试,生成单元测试,做代码评审,这些都可以做。然后像图上蓝色部分,我们也有一些技术方案可以在现阶段大模型的技术基础上落地。
我们也可以做智能化的平台工程。比如说我们有一些场景:K8s yaml 的辅助编写,CICD 的编排辅助,构建错误排查,部署过程排错,异常代码定位和运维知识问答。最终去实现配置编排→CICD→部署过程观测→异常排查,整个 CICD 主链路的智能化改造,我们把它叫做智能的平台工程,这些点我们都可以在现阶段进行落地了。
最后一个是智能的研发问答,我们可以实现统一的问答入口,将企业的知识跟大模型结合在一起,以后所有的工程师首先会想到在这个入口去问各种各样的知识,然后获得实时的答案。以及可以做代码的文档搜索,不管是文档还是代码都可以问,甚至可以让它在这里帮我生成业务代码,包括自然语言的操作、个人的智能助理,这些都是马上可以落地的一些场景。
最终,我们就在企业内部形成了这三重结构。最上层就是应用层,也就是研发工具应用和服务,它其实是一个以大模型为核心的工具和服务。中间层是模型层,我们要构建一个核心的企业个性化的大脑。最后还要有技术和算力,现在阿里云在公共云上提供了非常强大的 GPU 算力,未来我们可以直接上云来享受这一部分的 AI 给大家带来的技术红利。
最后我们认为在大模型时代,要坚守以下这四个原则。
第一是要以数据为先, 高质量的数据输入会让大模型越来越聪明。所以对企业而言,未来非常大的工作量就是梳理研发资产。比如代码资产、文档资产等,首先要对它们进行梳理,识别出哪些是优质的,哪些是不优质的。然后将最优质的部分过滤出来,输入给大模型进行相关的知识沉淀,这些知识它就不会消失了,也不会形成负载,而是顺利地去赋能新员工或者其他的角色,实现相关的效能提升。
第二要坚持以人为本, AI 并不是来替代人的,而是让人更加专注于自身擅长的业务和技术创新。所以企业应用了 AI 工具以后,企业的创造力会越来越强,跑得越来越快,这是我们认为最重要的。而且现阶段 AI 是没办法替代人类的,它只能解决人类目前的一些事务性工作。
第三是安全合规, 这个是我们非常重视的。尤其是通义灵码构建的时候,特别注重代码的隐私安全。对企业来讲,应用大模型的时候也要充分考虑这一点。
第四我们希望是持续收益。 大家不要希望今天引入大模型的智能化软件开发工具链后,就可以实现质的提升,现在的产品还没有发展到这个程度,而且技术还有相应的瓶颈。所以我们可以采用 Landing、Growth、Expanding 三步走的方式,持续的对接大模型相关的效能红利。
软件研发智能化工具的落地
前面给大家介绍了企业落地 AI 智能研发的相关路径。现在我们再进一步来看,当下有哪些事情可以做。在这里推荐每个企业都应该去应用智能编码工具,通义灵码就是其中非常优秀的代表。
现在给大家介绍一下通义灵码。通义灵码是我们去年在云栖大会上重磅发布的一款基于代码大模型的新一代智能编码助手,这个工具主要有以下两大部分的能力。
我们可以在左侧的这个框里进行随意的问答。比如让大模型帮我生成一个算法,解答各种各样的智能的问题,研发的一些问题它可以瞬间找出相关的答案,再通过多轮会话的方式去纠正它。右侧就是编辑框,可以在里面输入中文的一些注释,或者输入代码,这时候由大模型去预测我即将写什么代码,并且给我相关的答案,如果我觉得 OK 就可以采纳。通过这样的方式我们可以和大模型进行配合,相当于它是一个助手,不断地猜我想要什么,从而提升写代码的效率。
通义灵码主要包含三大核心功能:
- 第一个是代码智能生成。 可以进行行级、函数级的自动续写、单元测试生成、自然语言生成代码、代码注释生成等。
- 第二个功能是研发智能问答。 研发领域的自由问答、异常报错智能排查、代码的优化建议等等,这些都是可以做的。
- 第三个功能是企业个性化能力。 刚刚讲了 Growth 阶段其实就是需要构建一个企业私有的研发大模型,我们可以在这里面实现代码和文档的检索增强以及专属模型的微调训练,通过这样的方式去构建企业的个性化能力。
在通义灵码上线的这几个月中,已经有超过 100 万的用户下载了我们的插件并用于日常的代码开发,现在在线上每天都有数十万的用户,在使用我们的代码生成工具去写代码。通义灵码每天的被采纳的代码已经上百万,推理次数上千万。 在过去一段时间,我们也向用户发放了 850 份调研问卷,通过回收的问卷显示,整体的满意率超过了 80%。
大量的用户反馈,使用通义灵码以后有非常大的效能提升。并且 AI代码 在开发者代码总量的占比达到 30% 以上。欢迎大家体验通义灵码,提升编码效率。
点击此处参与活动体验
相关文章:

谈谈我对 AIGC 趋势下软件工程重塑的理解
作者:陈鑫 今天给大家带来的话题是 AIGC 趋势下的软件工程重塑。今天这个话题主要分为以下四大部分。 第一部分是 AI 是否已经成为软件研发的必选项;第二部分是 AI 对于软件研发的挑战及智能化机会,第三部分是企业落地软件研发智能化的策略…...

我在京东做数据分析,一位京东数据分析师的工作日常
有人说:“种下一棵树最好的时间是十年前,其次是现在”。任何时候,我们都应该抓住机遇,说不定就是改变你现状的一个机会。 2020年,我在疫情得到控制后,面试入职京东大数据组,截止目前࿰…...

数字乡村战略实施:科技引领农村经济社会全面发展
随着信息技术的快速发展,数字化已经成为推动经济社会发展的重要力量。在乡村振兴战略的大背景下,数字乡村战略的实施成为了引领农村经济社会全面发展的关键。本文将从数字乡村战略的内涵、实施现状、面临挑战及未来展望等方面,探讨科技如何引…...

人工智能 框架 paddlepaddle 飞桨 使用指南 使用例子 线性回归模型demo 1
安装过程&使用指南&线性回归模型 使用例子 本来预想 是安装 到 conda 版本的 11.7的 但是电脑没有gpu 所以 安装过程稍有变动,下面简单讲下 conda create -n paddle_env117 python=3.9 由于想安装11.7版本 py 是3.9 所以虚拟环境名称也是 paddle_env117 activa…...

在线学习电路网站推荐:www.falstad.com
https://www.falstad.com/circuit/ 我感觉也适合学生学习物理电路,图形界面方便理解些,不需要注册,打开即用。...
基于SpringBoot+Vue实现前后端交互功能(详解Vue框架机制)
目录 一、前言 Vue框架知多少? Vue框架的一些关键特点: Vue组件的声明周期 二、基于Spring Boot 和 Vue 实现前后端交互功能的技术组合 后端部分(Spring Boot): 前端部分(Vue): 前后…...
go的Job Scheduling
背景 司内线上服务有很多异步脚本,大量冗余代码,管理很不方便 急需一个美丽的框架,让代码变得美好 包 go get github.com/go-co-op/gocron/v2 介绍 gocron is a job scheduling package which lets you run Go functions at pre-determined intervals. 概念 Job Job封…...
[蓝桥杯 2020 省 AB1] 解码
题目描述 小明有一串很长的英文字母,可能包含大写和小写。 在这串字母中,有很多连续的是重复的。小明想了一个办法将这串字母表达得更短:将连续的几个相同字母写成字母 出现次数的形式。 例如,连续的 55 个 a,即 aa…...
开发npm上传发布
第一步:注册npm账号 首先去官网注册一个npm账号,npm官网 第二步:创建项目 新建文件夹,并执行npm init 填写对应的信息name就是插件名称。 文件夹下就会生成一个package.json文件。 你可以在项目编辑你的插件。 第三步&…...
c语音函数大全(U开头)
c语音函数大全(U开头) There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated should leave quickly. 函数名…...

飞天使-k8s知识点26-kubernetes温故知新1-pod
文章目录 创建一个podpod的启动命令和参数更改pod 镜像拉取策略 pod 的三种探针pod 探针的实现方式prestop 和 prestart 创建一个pod apiVersion: v1 # 必选,API 的版本号 kind: Pod # 必选,类型 Pod metadata: # 必选,元数据name: nginx # …...

js获取cookie
js获取cookie 前言实现讲解特别注意: 前言 主要是通过document.cookie来进行实现的 实现讲解 首先通过document.cookie 来获取到所有的cookie 然后通过分号进行分割成list 然后循环list,将list中的字符串通过首个等号进行分割然后和指定的cookie名进行比对然后返…...
RT Studio 仍存在的一些bug
年前有参加RT官方组织的活动,本来觉得是一路next的使用体验所以就没有提前跑一遍,然后现场做实验的时候,尴尬了。 安装官方guide,下载工具链,下载bsp,新建开发板项目,下载软件组件,全…...

[flask]cookie的基本使用/
彻底理解 Cookie - 知乎 (zhihu.com) 是什么 cookie是当你浏览某个网站的时候,由web服务器存储在你的机器硬盘上的一个小的文本文件。它其中记录了你的用户名、密码、浏览的网页、停留的时间等等信息。当你再次来到这个网站时,web服务器会先看看有没有…...

【Linux中vim系列】如何在vim中检索字符串
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

python、execl数据分析(数据描述)
一 python 1.各函数 1.1python库的安装与导入 #pip install os#pip install matplotlib#pip install seaborn#pip install scikit-learn#pip install scipy#修 改 工 作 目 录import osos.getcwd () # 查看当前工作环境os.chdir( F :\my course\database ) # 修改工作环境o…...
前端理论总结(css3)——页面布局方法
瀑布流 优点:节省空间,外表美观,更有艺术性 对于触屏设备非常友好,通过向上滑动浏览 用户浏览时的观赏和思维不容易被打断,留存更容易 缺点:用户…...
06|Java集合框架初学者指南:List、Set与Map的实战训练
Java集合框架是Java语言的核心部分,它提供了丰富的类和接口,用来高效地管理和操作大量数据。这个强大的工具箱包括多种集合类型,其中最为常用的是List、Set和Map。 1.List - 有序且可重复的数据清单 概念: List就像一个购物清单,你可以按照加入顺序存放和检索项目,而且同…...
Jmeter基础篇(18)压测过程中的注意事项
一、测试计划设计: 1、场景设计:需要基于实际业务需求设计合理的并发用户模型、事务和思考时间,模拟真实用户的操作行为。 2、目标明确:定义明确的性能指标(如响应时间、吞吐量、并发用户数、错误率等)和性…...

‘npm‘ 不是内部或外部命令,也不是可运行的程序
npm认识三年了,今天才知道这是node.js的命令 也就是说,想要在cmd里面运行 npm 命令,但就的安装node.js 1. node.js安装 没有安装包的先下载安装包:下载 | Node.js 中文网 (nodejs.cn) 下载之后双击打开,一路安装确…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...

【kafka】Golang实现分布式Masscan任务调度系统
要求: 输出两个程序,一个命令行程序(命令行参数用flag)和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽,然后将消息推送到kafka里面。 服务端程序: 从kafka消费者接收…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...