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 深度文章以及开源社区的各种新近言论~

内容概要:本文围绕“考虑电动汽车聚合可调节能力的含波动性电源电氢耦合系统多目标优化运行”展开研究,提出了一种基于Matlab代码实现的多目标优化模型。该模型深度融合电-氢耦合系统与高比例波动性可再生能源(如风电、光伏),充分挖掘电动汽车(EV)集群作为移动储能单元的灵活调节潜力,通过聚合调控提升系统对新能源的消纳能力与运行经济性。研究系统构建了电动汽车可调度能力、电解水制氢与储氢动态过程、多能源协同互补的优化调度框架,并结合智能优化算法实现经济性、低碳性与运行稳定性等多重目标的协同优化。文中配套提供了完整的Matlab仿真代码、相关数据及可能的论文支撑材料,极大地方便了模型的复现、验证与后续深化研究。; 适合人群:具备电力系统、综合能源系统、优化理论或新能源技术等相关领域基础知识的研究生、科研人员,以及从事新型电力系统规划、清洁能源消纳与智慧能源管理的工程技术人员。; 使用场景及目标:①开展高渗透率可再生能源接入下的综合能源系统多目标优化调度研究;②探究电动汽车集群在电网削峰填谷、平抑新能源出力波动及提供辅助服务方面的应用价值与潜力;③学习并掌握电氢耦合系统的建模方法、多目标优化求解技术及其在Matlab/Simulink环境下的仿真实现流程。; 阅读建议:此资源不仅提供可运行的代码,更蕴含了前沿的科研思路与创新方法,建议读者结合所提供的代码、数据与可能的论文文档,系统性地学习从问题建模、算法设计到仿真分析的完整科研过程,并重点关注其中关于需求侧资源聚合、多能互补协同与绿色低碳运行的核心理念。
内容概要:本文档名为《经济学期刊论文复现:数字化转型能促进企业的高质量发展吗》,表面上聚焦于经济学领域中数字化转型对企业高质量发展影响的研究,实则是一份涵盖多学科交叉的科研仿真代码资源合集。资源以Matlab、Simulink、Python为主要工具,系统整合了电力系统仿真、微电网优化调度、路径规划、信号处理、图像处理、机器学习预测模型等方向的可复现算法与仿真模型。尽管标题指向经济学实证分析,但内容重心在于提供顶级期刊论文的复现代码,如企业全要素生产率(TFP)测算方法(OL、FE、LP、OP、GMM)、风光储氢系统优化、需求响应与综合能源系统调度等,并融合智能优化算法与深度学习技术进行数据建模与预测分析,体现出极强的工程化与科研实用性。; 适合人群:具备一定编程基础,熟练掌握Matlab/Simulink/Python等仿真工具,从事工程仿真、经济实证研究或交叉学科科研工作的研究生、高校教师及科研人员。; 使用场景及目标:① 复现经济学顶刊论文中的计量经济模型,深入探究数字化转型对企业全要素生产率的影响机制;② 借助提供的代码资源开展电力系统故障仿真、微电网优化、多能系统调度等科研项目的算法验证与仿真分析;③ 应用机器学习与深度学习模型完成负荷预测、风电光伏出力预测、电池健康状态评估等典型实证任务; 阅读建议:此资源虽冠以经济学论文之名,实质为多领域高价值仿真代码集成,建议读者依据自身研究方向筛选适配内容,优先关注“顶刊复现”“论文复现”类项目,结合配套数据与代码进行实证推演,并通过公众号“荔枝科研社”获取完整资料与持续技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值