大语言模型与xfwl4

Lobsters Hottest 新闻

摘要

Brian Tarricone 反思了在开源开发中使用大语言模型的伦理权衡,然后解释了他如何在构建 xfwl4 时使用 Claude 进行研究和规划。

<p><a href="https://lobste.rs/s/32ptwj/llms_xfwl4">评论</a></p>
查看原文
查看缓存全文

缓存时间: 2026/08/10 10:57

# LLMs 与 xfwl4 - Brian Tarricone 我原本打算在后续一篇更长的博客文章中,用一小节谈谈我在构建 xfwl4 (https://gitlab.xfce.org/xfce/xfwl4) 时使用 LLM 的经历,但后来我决定还是单独写一篇,趁早把它了结了。 虽然 LLM 的使用在开源语境下可能会引发两极分化的看法,但我不太这么看。它就是一种工具,和其他工具一样。它有好的方面,也有不好的方面。说到不好的方面,有三点让我特别在意: ### 训练数据与版权 LLM 的训练数据中包含了公开可获取的数据,而这些数据并未获得任何版权所有者的许可。这一点尤其让我难受,因为我有很多开源代码散落在各处,其中大部分以 GPL 许可发布。用我的代码训练 LLM 是否构成版权侵权?如果有人从 LLM 获得了一段与我的代码高度相似的输出,而他们不知道也不遵守我的许可条款,这是否构成版权侵权? 反过来,如果*我*从 LLM 获得的输出看起来很像别人的代码,我是否侵犯了他们的版权? 我也不确定!美国法律似乎倾向于认为,只要训练方对所用数据拥有合法访问权,训练本身就不构成侵权。至于其余那些问题,我认为法律上还没有定论。 此外,OpenAI 和 Anthropic 这样的公司靠这个赚得盆满钵满,而让这一切成为可能的所有那些数据——他们大多分文未付——有时让我感觉很不是滋味。 不过,我并不认为对我而言最好的回应就是假装这一切都不存在。它是一种工具,而且是一种有用的工具。 ### 环境与社会影响 LLM 需要大量的空间、电力和水资源。正在建设数据中心的社区,以及随之而来的发电厂升级,往往要由社区承担一部分这些改造的费用,这令人作呕。 数据中心公司与公用事业公司之间的秘密交易,常常还有市政当局的配合,最终让普通缴费用户来买单。这是一个地方性问题,我希望当地民众能选出真正为他们着想的代表。 ### 供应链 关于 GPU 和内存现在有多贵,我不需要提醒任何人。我本来打算今年升级我笔记本电脑的主板,那将需要新的内存(我目前的主板用的是 DDR4),但 64GiB LPCAMM2 DDR5 的价格让我望而却步。 消费级内存市场已经被掏空了;好几家公司要么彻底停止生产消费级内存,要么大幅削减供应,以便向数据中心和 AI 实验室出售来赚更多钱。这就是资本主义的运作方式,以牺牲需要自购个人计算硬件的普通人为代价。 --- 但我就在这里,订阅 Claude Max 5x 已经一年半了。我对此并不感到自在,但它的实用性实在太强了,让我没法在这方面坚持原则立场。我喜欢它,我想要它,所以我在用它。也许这在道德上有问题,甚至更糟。但正如我所说:我就在这里。 ## xfwl4 与 LLM 是的,在开发 xfwl4 的过程中,我确实经常使用 Claude。我从来都不进行 vibe 编程,而且我使用 LLM 生成的代码可能比大多数人都少。毕竟,用代码构建东西是我的爱好和热情所在(而且我很幸运能以此为业二十五年),而驾驭 LLM 则有点无聊。 ### 研究与规划 我在 Claude Code 上的大部分时间都花在研究和规划上。LLM 在这里的一个绝佳用途是帮助我理解 xfwm4 的细枝末节,因为 xfwl4 需要复刻它的所有行为。我常用的一个提示词是: ``` 1 2 3 ``` ``` 详细查看 xfwm4 的源代码,找出与 $FEATURE 相关的所有信息。 为在 xfwl4 中实现该功能写一份计划,保存到 notes/$FEATURE.md。 ``` 我会先去忙点别的事,等它完成后回来读文档,然后花上一段时间就此向 Claude 提问,告诉它我不喜欢的地方以及希望如何改进,它会更新文档。 ### 实现 大多数时候,我会自己根据笔记文档开始动手,手工编写实现代码。我给 Claude 写计划时的指导原则是分阶段进行,所以我一次完成一个阶段,然后让 Claude 验证我完成的工作。通常在我实现的过程中,我会决定偏离原计划,这时我就要告诉 Claude 根据我想要的结果来验证,而不是基于对计划的遵从。 完成后,我会使用 `/code-review`,让 Claude 生成子代理对新代码进行全面审查。这通常能发现一些问题,甚至包括"主" Claude 实例在验证时没发现的问题。我通常会反复运行 `/code-review`,在发现并修复问题后再继续,直到没有问题为止。实际上我使用 `/code-review` 并不久,大概 6-8 周,因为我之前不知道有这个功能。我真希望从一开始就知道用它,因为它非常有用。 有时候我也会让 Claude 帮我写一些代码。通常是在有大量样板代码,或者工作重复繁琐的时候。Claude 在这方面非常擅长,我既可以手动审查输出,也可以让子代理进行独立审查。我通常会让 CC 保持在手动模式,在读取后批准每一次编辑,但遇到一些机械性的修改时,我会让它自动运行一段时间,完成后再审阅。 偶尔我也会让它写一些更重要的代码,通常是为了修 bug,偶尔是小的功能特性。我觉得它在这方面的表现相当不错,但我会保持手动模式,并且经常要求它用不同的方式或思路重写代码。 ### Bug 修复 每当有 bug 出现时,我会先自己着手查看代码(我不想让自己的调试技能退化),但同时我也会让 Claude 介入调查,要么描述问题,要么如果有 Gitlab issue 的话直接指向相关 issue。 我承认,我比 Claude 更快找到问题的次数确实很少,而且有些问题我完全束手无策,Claude 却在 10 分钟内就弄明白了,换作我可能要花好几天。 ### 测试 xfwl4 的单元测试不多,但我希望将来能改善这一点。在现有的单元测试中,全部是由 Claude 编写的。我一直觉得写测试很烦人,而且从来没写得很好。Claude 的测试通常比我自写的要全面得多。 我听说过一些说法,说 Claude 会更改或删除失败的测试,而不是真正修复导致测试失败的问题,但这种情况(还)没有发生在我身上。 xfwl4 还有一个 `test-clients` 子 crate,里面有一堆 Wayland 和 X11 客户端程序,用于手动测试各种合成器功能。我使用 `smithay-client-toolkit` 写了第一个 Wayland 测试,但其余的测试都是让 Claude 以我的第一个测试为模板来编写的。 ## 我的 LLM 策略 我其实没有什么策略。我只是对一切都使用当前最好的模型(写这篇文章时是 Opus 5,在撰写

相似文章

我与LLM共事的经验

Reddit r/ArtificialInteligence

一位具有编码背景的VP/PM分享了使用Claude Opus和Fable等LLM的实践经验,重点指出了模型在记忆、幻觉和原创性方面的局限,同时强调了人类直觉和领域专业知识不可替代的价值。

NLNet Labs LLM 政策

Lobsters Hottest

NLNet Labs 宣布了一项限制在代码和文档贡献中使用 LLM 的政策,要求披露 LLM 的使用情况,并禁止 AI 生成的代码。