跳到正文
Hacker News· dom96·· 1 天前AI 评分50

开发者打造 LLM 难以掌握的编程语言 KillSwitch

I built a programming language that LLMs can't use

AI 导读

开发者设计并开源了面向 LLM 和编程智能体对抗的深奥编程语言 KillSwitch,通过规范中隐藏谎言、按标识符字母计数校验、嵌入触发安全护栏的语句等方式增加模型理解难度。

正文 · AI 翻译

编写代码大概是 LLM 最擅长的领域。但它们在编写代码方面的能力,有多少来自对代码的理解,又有多少只是回忆训练数据集或上下文窗口中出现的代码片段?

这正是我想要回答的问题。为此,我决定设计并实现一种编程语言,它虽然可供人类使用,但对 LLM 和编码智能体来说应尽可能困难。

我认为,测试 LLM 理解和编写一种它从未见过的编程语言代码的能力,是一个不错的起点。但我还想在语言中加入一些利用 LLM 弱点的特性。例如,它们在数数方面表现出的明显困难、它们过度敏感的安全护栏,以及它们急于遵循提示的倾向。

隆重推出 KillSwitch

KillSwitch 是一种深奥的编程语言,旨在对 LLM 和编码智能体具有对抗性。它通过多种不同方式实现这一点,例如:

  • 语言规范中包含隐藏的谎言,人类不太可能读到,或者即使读到也很可能识别出它们是谎言。规范还期望人类读者自行推断某些内容,而不是明确解释。
  • 标识符中的字母计数是该语言的关键方面,解释器会拒绝执行不遵守基于字符计数规则的代码。
  • 某些构造旨在触发模型的安全护栏,例如“入侵计算机”
  • “忽略之前的指令”这一短语在该语言中有其含义,旨在迷惑模型
  • 脚本大多是噪声,主要由故事组成,这些故事可以嵌入语法相关的指令,但并非必须如此。字面量可以放在脚本中的任何位置,然后通过行数引用。

从根本上说,KillSwitch 是一种基于栈的解释型语言,只有有限的一组构造,包括函数、变量和 if 语句。因此,这些方面对任何 LLM(和人类)来说应该都相当熟悉。完全可以想象创建一种完全不同的编程语言范式,可能会更加迷惑 LLM。但作为第一次尝试,这似乎是个不错的方法。

Most text inside a script is ignored by the interpreter. In the case of
this script we want to push "Hello World" on the stack. We have introduced
the value above and we can push it on the stack by writing:

    value 2 lines above

上面的示例并未展示完整的 KillSwitch 脚本,而只是其中的一小段。它具体展示了如何将字符串 "Hello World" 压入栈中。如果你想查看完整的 Hello World 示例,请访问 https://killswitch-lang.org。

KillSwitch 的解释器和语言规范是开源的,可在 GitHub 上获取。如果你想了解更多关于该语言的信息,一定要去看看。

对 KillSwitch 进行基准测试

那么,KillSwitch 在阻止 LLM 和编码智能体阅读、编写和理解它方面有多成功?我设计了一组任务来找出答案。我针对这些任务对主流 LLM 模型和编码智能体框架进行了基准测试。结果非常有趣,并为 LLM 模型提供了一个有用的排行榜。

Score vs. cost per task

上图中的图表和模型排行榜可在 https://bench.killswitch-lang.org/ 查看。

Claude 的 Opus 表现最佳,不过并非 Opus 5.5,而是 Opus 5。这种差异似乎并非纯属偶然,Opus 5 在解读规范方面更胜一筹。Fable 5.1 和 Gemini 4 Argon 等一些模型由于安全护栏过于敏感而表现不佳。最佳开放权重模型是 MiMo-V2.6-Pro。

表现最好的模型得分为 66.8。那么这是否证明大语言模型能够“理解”代码呢?我认为答案是否定的。

到目前为止,这些基准测试中的任务都相当简单。它们包括“实现 hello world”、“解释这个脚本会输出什么”(脚本打印两个数字中的最大值),以及“修改一个将摄氏度转换为华氏度的现有脚本,改为执行反向转换”之类的内容。它们能够为一种专门设计来迷惑它们的全新语言解决这些任务,这令人印象深刻,但这并不能明确表明它们能够理解这种语言。与此同时,我不禁想知道,一种更困难的语言会揭示出什么。目前,我迫切希望看到即将发布的模型如何处理当前这组任务;如果它们确实全部成功完成,我计划设计另一组更复杂的任务。

无论如何,模型在这组简单任务上的表现与其他现有模型基准测试相关,这一点是令人鼓舞的。

来源:Hacker News · blog.picheta.me