LWN:讨论内核开发中使用 LLM 助手!

关注了就能看到更多这么棒的文章哦~

On the use of LLM assistants for kernel development

By Jonathan Corbet
August 7, 2025
Gemini flash translation
https://lwn.net/Articles/1032612/

从某些方面来看,至少内核社区(kernel community)里来自人工智能驱动的软件开发工具(AI-driven software-development tools)的冲击还是相对比较小的。目前还没有大量直觉式编写(vibe-codeding)的内存管理补丁(vibe-coded memory-management patches)涌现出来——至少暂时还没有。但内核开发(kernel development)终究是软件开发,而这些工具可能会改变软件开发的方式。在公司积极推动开发者使用这些工具的这个时代,内核圈子中对此话题的关注度日益提升也就不足为奇了。目前,关于基于大型语言模型(LLM)的工具如何融入内核开发社区,存在着许多持续的讨论。

可以说,当前这场辩论始于 这篇文章,内容是 Sasha Levin 在六月北美开源峰会(Open Source Summit North America)上的一次演讲;他利用 LLM 生成内核补丁(kernel patch)的做法,令包括接受该补丁的维护者在内的一些开发者感到惊讶。此后,David Alan Gilbert 发布了 一个补丁,提出了在内核开发中披露 LLM 使用情况的要求。Levin 则发布了 他自己的一系列补丁,重点是为编程助手(coding assistants)提供配置和使用指南。这两份提交都引发了超出其原本相对狭窄目标的讨论。

Gilbert 建议使用一个新的补丁标签(patch tag),Generated-by,来标识用于创建内核补丁的工具;这个标签不仅适用于 LLM 生成的补丁,也适用于像 Coccinelle 这样长期被接受的工具所生成的补丁。Levin 则建议使用现有的 Co-developed-by 标签,但他特意指出,LLM 不应 添加通常与 Co-developed-by 标签同时要求的 Signed-off-by 标签。无论哪种方式,其建议都是在任何由基于 LLM 的工具生成的补丁的标签部分(tags section)中添加相关信息。

A step back

尽管大部分讨论直接跳入了这些补丁的细节,但一些开发者显然认为,首先有一个更根本的问题需要回答:内核社区是否愿意接受 LLM 开发的补丁?Vlastimil Babka 回复 称 Levin 的补丁集(patch set)“为时过早”,并指出在尝试正确配置 LLM 之前,有必要先为人类制定规则:

因此,如果没有这样的策略(policy),我担心仅仅合并这些补丁本身就会传递出一个信息,即内核现在正式接受使用编程助手完成的贡献,并且这些助手会根据配置文件(configuration files)做正确的事情,而使用助手的开发者无需再操心其他事情,因为一切都已由配置涵盖。

Lorenzo Stoakes 表示,首先需要一份“官方内核 AI 策略文档(official kernel AI policy document)”,并建议最好在维护者峰会(Maintainers Summit)(将于十二月举行)上进行讨论。他同意 Babka 的观点,即在没有此类策略的情况下合并这些补丁,等同于公开声明内核社区欢迎 LLM 生成的补丁。

一些开发者表达了担忧,认为这些工具将被用于生成提交者自己都不理解的补丁,并且这些补丁可能包含比平时更多的隐蔽 bug(subtle bugs)。David Hildenbrand 担心,他最终会遇到那些只是简单地将他的问题提交给最初生成补丁的工具的贡献者,因为他们自己无法解释代码。他还指出了 QEMU 项目 采用的策略,该策略实际上禁止了在该项目中进行 LLM 生成的贡献。Al Viro 将 基于 LLM 的工具描述为“倍增器(force multiplier)”,对于多年来一直提交他们不理解的机器生成补丁(machine-generated patches)的众多开发者而言。

而 Mark Brown 则 建议,无论内核策略如何,这些工具都将被使用:

我也担心提交者(submitters)无论我们说什么都会默默地使用这些东西,从这个角度来看,鼓励人们对此公开透明是值得的,这样在审查发送的变更(changes)时就可以将其考虑在内。

Levin 的 观点 是,内核目前的策略是“我们接受代理生成(agent generated)的贡献,除了对普通人类的要求外,没有任何其他要求”;他的目标是弄清楚这些额外要求应该是什么。还应该指出的是,一些开发者显然认为这些工具是有帮助的;例如,Kees Cook 反对 任何形式的禁令,称其“既无用,也不现实,更不可强制执行”。在其他地方,他 评论 说“这些工具终于变得有趣了”。

Disclosure

如果内核项目要禁止 LLM 生成的代码,那么接下来的讨论就变得没有意义了(moot),但这似乎是一个不太可能的结果。如果假定会有(更多)LLM 生成的代码进入内核,那么就会出现一些问题,首先就是工具使用情况的披露。Gilbert 和 Levin 都提议添加补丁标签来记录这种使用。不过,有几位开发者不同意这个想法;Konstantin Ryabitsev 表示,这些信息应放在补丁系列(patch series)的封面信(cover letter)中,而不是放在标签中。目前工具生成的代码就是这样描述的,他认为没有理由改变这种做法。Jakub Kicinski 认为,关于工具的信息“只在审查期间才相关”,因此将其放入补丁更新日志(patch changelogs)中“不过是为相关工具免费广告(free advertising)”。

然而,共识观点(consensus view)似乎倾向于将工具信息包含在补丁本身中。Cook 最初 倾向于 将工具信息排除在标签之外,但后来 承认,如果需要追溯(track down)由特定工具创建的所有补丁,这些信息将很有用。Steve Rostedt 表示,这些信息对于发现特定工具引入的 bug 模式可能很有用。Laurent Pinchart 指出,规范化的补丁标签(formalized patch tags)对于追查任何版权相关问题(copyright-related problems)也很有用。Gilbert 评论 说,披露“能让那些担心我们机械霸主(mechanical overlords)行为的人有所了解”。

如果采取必须披露工具使用的立场,那么下一个问题必然是:界限应该划在哪里?Levin 问道,例如,使用代码补全工具(code-completion tool)是否需要披露。其他人提到了使用编译器诊断(compiler diagnostics)来发现问题,或使用语言敏感编辑器(language-sensitive editors)。显然,在某个点上,要求披露是毫无意义的,但目前还没有就这个点达成共识。Rostedt 提出 的一个可能的规则是:“如果人工智能为你创建了任何算法(algorithm),那么它必须被披露”。

与此同时,Levin 首次尝试用 Co-developed-by 标签披露 LLM 使用情况的 补丁,引来了 Andrew Morton 的 一句有趣的回复,他似乎没有关注这场对话。Hildenbrand 回应 说,一个新的标签,比如 Assisted-by,会更合适;Ryabitsev 也 提出了这个建议。

Copyright and responsibility

LLM 生成代码的版权状态(copyright status)是许多开发者关注的问题;如果 LLM 生成的代码最终受到某个人的版权主张(copyright claim),将其纳入内核可能会使项目面临未来的 SCO 诉讼情景(SCO-lawsuit scenario)。当然,这是一个远超内核社区的问题,很可能需要全球范围内的多年法庭纠纷(court battles)才能解决。然而,在此期间,维护者将被要求接受 LLM 生成的补丁,并且必须在法律程序走完之前做出决定。

Levin 指出 了 Linux 基金会关于生成式 AI(generative AI)的指南,称这是内核社区目前默认遵循的策略。简而言之,该指南建议开发者应确保工具本身不对其生成的代码施加限制,并且代码不包含任何已存在的受版权保护的材料(pre-existing, copyrighted material)。Levin 建议以此文档作为判断提交内容版权状态的起点,但该指南的帮助程度有限。

Michal Hocko 问道,维护者如何才能知道那份“相当模糊”的指南中建议的条件是否已得到满足。Levin 的 回答 反映了讨论中几次出现的一个主题:这就是补丁提交者所应用的 Signed-off-by 标签的作用。通过应用该标签,提交者表明该补丁是对内核的合法贡献(legitimate contribution)。与任何其他补丁一样,贡献者在添加该标签之前需要确保自己非常有把握(on solid ground)。

这种推理不仅延伸到版权状态,还延伸到补丁在所有层面的责任。Rostedt 建议 明确签署(signoff)也表明提交者 理解 代码并能修复其中的问题。Viro 说,对于任何补丁,无论其来源如何,“必须有人能够处理对其提出的积极提问(active questioning)”。Levin 补充道:“人工智能不会自行发送补丁——人类才会”,因此,补丁背后的人类将最终对其内容负责。

这种推理有其道理,但可能无法完全安抚紧张的维护者。提交 LLM 生成补丁的人,不太可能比维护者更有能力判断其作品的版权状态。与此同时,维护者多年来不得不处理那些明显不理解自己在做什么的贡献者提交的补丁;文档化这些贡献者必须理解编码工具的输出,似乎不太可能减缓这种泛滥。Hildenbrand 这样表达了他的担忧:“我们不能一边抱怨维护者工作过载(maintainer overload),一边又鼓励人们用更多此类东西来轰炸我们。”根据在其他领域所见,低质量补丁(low-quality patches)的流量出现数量级增长(order-of-magnitude increase)并不会令人惊讶;事实上,Greg Kroah-Hartman 表示,这已经在发生了。

More discussion

最终结果是,如何将基于 LLM 的开发工具整合到内核项目的工作流程(workflow)中,这个问题可能会在社区讨论中占据相当长一段时间的重要位置。虽然这些工具可能带来好处,包括发现人类难以察觉的模式以及耐心生成测试代码,但它们也可能带来版权问题、bug 和额外的维护者压力。使用这些工具的压力不会消失,即使当前人工智能泡沫最终破裂,似乎也不太可能改变这一点。

在 2025 年维护者峰会(Maintainers Summit)的 议题征集(call for topics) 发布后的几毫秒内,就出现了两个关于内核工作流程中 AI 工具问题的独立提案(分别来自 Stoakes 和 Jiri Kosina);这些提案引发的讨论,到本文发布时肯定会取得显著进展。看来,不需要 LLM 也能生成大量的文本。换句话说,这场对话才刚刚开始。

全文完
LWN 文章遵循 CC BY-SA 4.0 许可协议。

欢迎分享、转载及基于现有协议再创作~

长按下面二维码关注,关注 LWN 深度文章以及开源社区的各种新近言论~

内容概要:本文围绕基于CNN-BiLSTM-Attention混合神经网络模型的电力负荷预测展开研究,提出一种结合卷积神经网络(CNN)、双向长短期记忆网络(BiLSTM)与注意力机制(Attention)的深度学习框架,并通过Python代码实现高精度的短期与超短期负荷预测。该模型充分利用CNN对局部特征的提取能力,捕捉负荷数据中的周期性与趋势性模式;借助BiLSTM对时间序列前后向依赖关系的建模能力,增强对动态变化的感知;并通过Attention机制自适应地聚焦关键历史时刻,提升预测准确性。文中详细阐述了数据预处理、模型结构设计、训练流程及超参数调优方法,并在真实负荷数据集上进行了实验验证,结果表明该混合模型相比传统单一模型和其他基准模型具有更优的预测性能,尤其在应对非线性、非平稳负荷波动方面表现突出。; 适合人群:具备一定Python编程能力和机器学习基础,从事电力系统分析、能源管理、智能电网或时序预测相关工作的科研人员、工程师及高校研究生。; 使用场景及目标:①应用于电网调度、电力市场出清、需求响应管理等场景下的精细化负荷预测;②为研究人员提供一套完整的、可复现的深度学习负荷预测代码框架,推动AI技术在能源领域的落地应用;③帮助理解CNN、BiLSTM与Attention模块之间的协同机制及其在时序建模中的集成方式。; 阅读建议:建议读者结合所提供的Python代码进行动手实践,重点掌握数据归一化、滑动窗口构造、模型搭建与训练技巧,并尝试在不同地区、不同季节的负荷数据上进行迁移测试,以深入理解模型泛化能力与调参策略。
内容概要:本文围绕“MATLAB具有储能的经济调度及机会约束和鲁棒优化”展开,系统研究了电力系统中融合储能技术的经济调度问题,重点探讨了机会约束规划与鲁棒优化方法在应对新能源出力不确定性、负荷波动及系统运行风险中的应用。内容涵盖风光储协同调度、多微网共享储能、电动汽车参与调度、低碳经济调度等多种典型场景,深入分析了储能的选址定容、功率协调控制、状态估计与优化调度模型。核心技术包括粒子群优化(PSO)、分布鲁棒机会约束(DRCC)、模型预测控制(MPC)、鲁棒优化、二阶锥规划(SOCP)等先进算法,并提供了基于Matlab/Simulink的完整仿真代码实现,旨在提升新型电力系统的运行灵活性、经济性与抗风险能力。; 适合人群:具备电力系统、自动化、电气工程或相关专业背景,熟悉Matlab/Simulink仿真环境与基本优化算法,从事新能源并网、微电网运行、储能系统规划、电力市场调度等领域的研究生、科研人员及工程技术人员。; 使用场景及目标:① 学习并构建含储能的电力系统经济调度优化模型;② 掌握机会约束与鲁棒优化在处理新能源不确定性问题中的建模思路与求解方法;③ 利用提供的Matlab代码进行算法复现、仿真验证与性能对比,支撑科研项目攻关;④ 为撰写高水平学术论文、学位论文或工程优化方案提供可靠的模型参考与代码支持。; 阅读建议:建议读者结合文档中具体的案例(如风电-水电联合调度、电动汽车集群调度、多微网共享储能等)和配套的Matlab代码进行动手实践,重点关注优化模型的构建逻辑、约束条件设定与求解器配置过程,同时可关注公众号“荔枝科研社”获取完整资源包、复现教程及持续的技术支持。
打开链接下载源码: https://pan.quark.cn/s/d8b35376d2e3 深度学习不确定性量化近年来已成为人工智能研究中的一个关键议题,特别是在优化过程和决策制定中的应用正变得越来越关键。文章《深度学习不确定性量化:技术、应用与挑战》详细研究了这一议题,其目的在于归纳当前已有的方法,审视其在不同场景下的应用情况,并明确当前面临的难题以及未来的探索方向。不确定性量化(UQ)的主要宗旨在于对模型的不确定程度及其预测结果的可信度进行评估,这对于防止决策失误和增强系统稳定性具有决定性作用。在深度学习模型中,由于模型结构的复杂性以及训练数据的限制,模型可能表现出高度的不确定性,这使得UQ成为深度学习不可或缺的一部分。 在不确定性量化的方法论层面,文章指出了两种主要技术路径:贝叶斯近似方法和集成学习方法。贝叶斯近似通过构建概率模型来推断模型参数的后验分布,以此方式捕捉模型内在的不确定性;而集成学习则通过组合多个模型的预测结果来减少单一模型的不确定性。这些技术已在包括计算机视觉(涵盖自动驾驶和物体识别)、图像处理(比如图像修复)、医疗影像分析(涉及医学影像的归类和分割)、自然语言处理(如文本归类和风险评估)、生物信息学等多个领域展现出广泛的应用前景。 在强化学习(RL)的框架内,不确定性量化同样扮演着重要角色。在非静态环境中,智能体需要评估其行为决策所带来的不确定性,从而做出更为合理的行动选择。不确定性量化技术能够提供关于奖励机制和环境状态的不确定性评估,进而帮助智能体更有效地探索环境并优化其学习策略。 尽管深度学习中的不确定性量化取得了长足的发展,但仍存在若干核心难题。例如,如何高效地评估大型神经网络的不确定性,特别是在计算资源受限的情况下;如何将不确定性量化...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值