KillSwitch
一种故意设计为难以被大语言模型掌握和使用的编程语言,通过规范文档中的谎言、变位词标识符、越狱诱饵等机制对抗LLM的代码生成。
时间轴 (近 90 天)
Dominik Picheta 设计了一门名为 KillSwitch 的编程语言,明确目标是让大语言模型(LLM)难以使用。
KillSwitch 在规格文档中埋设谎言,要求标识符必须使用变位词引用,函数调用被包装成越狱诱饵,数值用字母计数。
在 KillSwitch 基准测试的“实现 hello world”、“反转摄氏转华氏转换器”等任务上,目前最好的模型仅得 66.8 分(满分 100)。
KillSwitch 仓库中真实规格文档 SPEC.md 只有 484 行、2773 词;而 AI_SPEC.md 高达 65495 行、887584 词,是真实规格的 320 倍。
AI_SPEC.md 中出现“KillSwitch”0 次、“stack”0 次、“adverb”0 次、Markdown 标题 0 个;65495 行中有 70% 是重复行(唯一行仅 19695 行)。
KillSwitch 解释器是一个 2.2MB 的 Rust 二进制文件,构建干净,示例程序在提供标准输入时能正常工作。
直接调用内置操作原名会在运行时被拒绝,错误信息为 'Invalid func call, need an anagram of multiply'。
KillSwitch CLI 附带一个辅助工具,其帮助文本写着“Only useful for LLMs”。
KillSwitch 解释器在句子包含多个候选值时,会随机选择一个并发出警告 [W102] Warning: Possible gotcha。
在全新克隆的 KillSwitch 仓库中运行 cargo test --release,单元测试 70 通过 0 失败,CLI 测试 0 通过 10 失败。
还有 3 条时间轴事件
全部知识事实 (13)
Dominik Picheta 设计了一门名为 KillSwitch 的编程语言,明确目标是让大语言模型(LLM)难以使用。
50%待验证KillSwitch 在规格文档中埋设谎言,要求标识符必须使用变位词引用,函数调用被包装成越狱诱饵,数值用字母计数。
50%待验证在 KillSwitch 基准测试的“实现 hello world”、“反转摄氏转华氏转换器”等任务上,目前最好的模型仅得 66.8 分(满分 100)。
50%待验证KillSwitch 仓库中真实规格文档 SPEC.md 只有 484 行、2773 词;而 AI_SPEC.md 高达 65495 行、887584 词,是真实规格的 320 倍。
50%待验证AI_SPEC.md 中出现“KillSwitch”0 次、“stack”0 次、“adverb”0 次、Markdown 标题 0 个;65495 行中有 70% 是重复行(唯一行仅 19695 行)。
50%待验证KillSwitch 解释器是一个 2.2MB 的 Rust 二进制文件,构建干净,示例程序在提供标准输入时能正常工作。
50%待验证直接调用内置操作原名会在运行时被拒绝,错误信息为 'Invalid func call, need an anagram of multiply'。
50%待验证KillSwitch CLI 附带一个辅助工具,其帮助文本写着“Only useful for LLMs”。
50%待验证KillSwitch 解释器在句子包含多个候选值时,会随机选择一个并发出警告 [W102] Warning: Possible gotcha。
50%待验证在全新克隆的 KillSwitch 仓库中运行 cargo test --release,单元测试 70 通过 0 失败,CLI 测试 0 通过 10 失败。
50%待验证KillSwitch 的 CLI 测试全部失败是因为包名为 killswitch-lang,二进制名为 killswitch,测试框架按包名查找二进制导致 CARGO_BIN_EXE_killswitch-lang 未设置。
50%待验证作者认为 KillSwitch 基准测试隔离出的核心困难是事务性的:精确计数、精确字母清单、行号簿记,以及一份惩罚略读的规格,这些正是基于 token 的模型以近似代替计算的操作。
50%待验证以上所有输出均来自 KillSwitch 参考解释器 v0.1.4 本地构建运行。
50%