Blogging with an LLM assistant

Blogging with an LLM assistant

使用大语言模型助手进行博客写作

AI slop is invading the web. A recent story about disallowing LLM-generated submissions on Lobsters triggered a lot of debate. My personal worst offenders are LinkedIn articles with AI-generated images and uninspired articles filled with emojis from people trying to masquerade as experts on a subject they don’t care enough to write themselves. AI 生成的垃圾内容正在侵蚀互联网。最近关于 Lobsters 社区禁止提交 LLM 生成内容的新闻引发了广泛讨论。我个人最反感的是那些配有 AI 生成图片、充斥着表情符号且毫无灵感的 LinkedIn 文章,作者试图伪装成专家,却连自己写文章的耐心都没有。

While I am unhappy about this situation, I rely on LLMs for grammar, copyediting, and translation. I don’t see this as a contradiction. I am a native French speaker, but I blog in both English and French. When I started writing this blog in 2011, I was composing in French and translating to English, but I found it was better to work in the reverse order to avoid unnatural and non-idiomatic constructions. 虽然我对这种现状感到不满,但我自己却依赖 LLM 来进行语法检查、文案润色和翻译。我不认为这有什么矛盾。我的母语是法语,但我同时用英语和法语写博客。2011 年我刚开始写博客时,是先写法语再翻译成英语,但我发现反过来写效果更好,这样可以避免写出不自然、不地道的表达。

One of my goals is to write “good” English but I never felt it was my strong point. For example, verb tenses are often an issue, even if I mostly stick with the present tense. I learn the rules and forget them right away. I also don’t feel like hiring an editor for something I see as an hobby. 我的目标之一是写出“好”的英语,但我从不觉得这是我的强项。例如,动词时态经常让我头疼,即使我大部分时间只用现在时。我总是学了规则转头就忘。此外,对于我视为业余爱好的事情,我也不想专门雇佣编辑。

As an example, I have kept the history of the successive iterations when writing “Scaling Akvorado BMP RIB with sharding”: the first draft, authored with the help of a thesaurus, the edited copy revised by the copyediting skill, the translation to French generated with the translation skill, and the human proofread of the French translation, with minor edits to the English version. 举个例子,在撰写《Scaling Akvorado BMP RIB with sharding》一文时,我保留了各个迭代版本的历史记录:初稿(借助同义词词典完成)、经润色技能修改后的版本、通过翻译技能生成的法语译文,以及对法语译文的人工校对,最后还对英语版本进行了微调。

I know that LLMs may alter the author’s voice when editing, but the corrections in the second step are minor. The prompt asks to “apply light stylistic edits,” with some guidance around avoiding passive voice, long sentences, bland verbs, and filler words. It also defines the target audience: technical with a B2 level in English. 我知道 LLM 在编辑时可能会改变作者的语调,但第二步的修正幅度很小。我的提示词要求“进行轻微的文体润色”,并给出了一些指导,例如避免使用被动语态、长难句、平淡的动词和填充词。它还定义了目标受众:具备 B2 英语水平的技术人员。

In the following excerpt, I used “long time” instead of “long-standing.” The former is missing an hyphen and applies to people—a long-time friend, while the later relates to a situation—a long-standing agreement. I had a hard time understanding the reason of the second change: the LLM prefers a defining relative clause to provide the definition of “RIB sharding.” 在接下来的摘录中,我用了“long time”而不是“long-standing”。前者缺少连字符且通常用于形容人(如 long-time friend),而后者用于形容情况(如 long-standing agreement)。我起初很难理解第二个修改的原因:LLM 更倾向于使用限定性定语从句来定义“RIB sharding”。

As the Internet routing table contains more than 1 million routes, Akvorado needs to scale to tens of millions of routes. This has been a long time long-standing challenge, but I expect this issue is now fixed by using RIB sharding, a method to split that splits the routing database into several parts to enable concurrent updates. 由于互联网路由表包含超过 100 万条路由,Akvorado 需要扩展到数千万条路由。这曾是一个长期存在的挑战,但我预计通过使用 RIB sharding(一种将路由数据库拆分为多个部分以实现并发更新的方法)可以解决这个问题。

In the next modification, the LLM puts “device” instead of “equipment.” This is correct as “equipment” is an uncountable noun. I know that, but I still fall into this trap. When Akvorado does not find a route from a specific device, it falls back to a route sent by another equipment device. 在下一次修改中,LLM 将“equipment”改为了“device”。这是正确的,因为“equipment”是不可数名词。我知道这一点,但还是会掉进这个陷阱。当 Akvorado 无法从特定设备找到路由时,它会回退到由另一个设备发送的路由。

I ask the LLM to use “descriptive verbs” and it complies by replacing a multi-word predicate with a lexically rich verb: The benchmarks demonstrate it has better performance than outperforms other packages, both packages for lookups, insertions, and memory usage. It also fixes grammar errors. 我要求 LLM 使用“描述性动词”,它通过用词汇丰富的动词替换多词谓语来满足要求:基准测试表明它在查找、插入和内存使用方面都优于其他包。它还修复了语法错误。

In the next excerpt, a “list of routes” is a singular expression. Moreover, “stored” is a state and I should not use “into” as it expresses a change. The list of routes for each prefix are is not stored directly into in the prefix tree. 在接下来的摘录中,“list of routes”是一个单数表达。此外,“stored”表示一种状态,我不应该使用表示变化的“into”。每个前缀的路由列表并没有直接存储在前缀树中。

As a last example, consider the following snippet. The “require” verb accepts a noun or an object followed by a to-infinitive. I can’t use it with just a to-infinitive. An alternative would be to have one prefix tree for each peer but it would require to configure configuring all routers to export their routes. 最后一个例子,看看下面这段话。“require”动词后面需要接名词或宾语加不定式,不能直接接不定式。另一种选择是为每个对等点设置一个前缀树,但这需要配置所有路由器来导出它们的路由。

As someone who didn’t grow up speaking English, I struggle with these grammar rules despite reading a lot of English material. French is more complex to get started but more systematic. English is full of irregularities. 作为一个母语非英语的人,尽管我阅读了大量英文资料,但这些语法规则依然让我感到吃力。法语入门更难,但更系统;而英语则充满了不规则之处。

On each page, I disclose in the footer whether an AI modified the content. There are three levels: 在每一页的页脚,我都会披露内容是否经过 AI 修改。分为三个等级:

  • 🧠: no AI or almost no AI (e.g., grammar corrections)
  • ✨: enhanced (e.g., copyediting)
  • 🤖: generated (e.g., translated from another language, even if human-edited)
  • 🧠:无 AI 或几乎无 AI(例如语法修正)
  • ✨:增强(例如文案润色)
  • 🤖:生成(例如从其他语言翻译,即使经过人工编辑)

Hover or tap the icon to reveal the AI’s name and its role in the document. Example of AI usage disclosure: Claude Sonnet 4.5 edited this article. The graph below shows which tool altered each post, year by year. Recently, I applied the grammar skill to past articles. Since 2018, French articles have been translated with the help of DeepL first, then of an LLM. Since 2024, English articles are copyedited. 悬停或点击图标即可查看 AI 的名称及其在文档中的角色。AI 使用披露示例:Claude Sonnet 4.5 编辑了本文。下图显示了每年各篇文章使用的工具。最近,我将语法技能应用到了过去的文章中。自 2018 年起,法语文章先是借助 DeepL 翻译,后来改用 LLM。自 2024 年起,英语文章开始进行文案润色。

If you are strongly against any usage of LLMs specifically for writing, I hope you accept my more nuanced position on the usage of these tools as a trade-off to provide clearer and more engaging articles. 如果你坚决反对在写作中使用 LLM,我希望你能接受我更细致的立场:将这些工具作为一种权衡,旨在提供更清晰、更吸引人的文章。

Years of literature on improving English told us it is important to choose the right word to keep the reader engaged. […] Good writing consists of mastering the fundamentals (vocabulary, grammar, the elements of style) and then filling the third level of your toolbox with the right instruments. ― Stephen King, On Writing 多年来关于提升英语水平的文献告诉我们,选择正确的词汇对于保持读者的阅读兴趣至关重要。[……] 好的写作在于掌握基础知识(词汇、语法、文体要素),然后用合适的工具填满你工具箱的第三层。—— 斯蒂芬·金,《写作这回事》

Note: Unlike other recent articles, I did not use an LLM to edit this post: an unnamed person kindly accepted to proofread it. I translated it to French without using an LLM either. 注:与最近的其他文章不同,我没有使用 LLM 来编辑这篇文章:一位不愿透露姓名的人士好心地校对了它。我也没使用 LLM 将其翻译成法语。