
2026/10/18 7:26
私は大規模言語モデルが利用できないプログラミング言語を構築しました
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
このテキストの核心にあるメッセージは、「KillSwitch」というオープンソースのスタックベースのアディバーサルプログラミング言語が、大規模言語モデル(LLM)がコードの安全性や知性を評価する際の重要な欠陥を浮き彫りにしているという点です。標準的なベンチマークとは異なり、KillSwitch は構造的な防御を意図的に埋め込んでいます。例えば、仕様書内の隠された嘘に対して厳密な論理的推論を要求するもの、正確な文字数に基づく参照、そしてノイズが大部分を構成するスクリプトなどが挙げられます。これにより、モデルが安全ガードレールやプロンプト追従の傾向に過剰に依存したままコードロジックの正確な解釈を行わなかった場合、失敗を強いることになります。
現在 GitHub でオープンソース化されており、インタプリタと言語仕様が公開されているこのプロジェクトには、従来のコーディングテストでの高いスコアが LLM が頑健でアディバーサルの環境を扱えることを保証するわけではないことを示すパブリックリーダーボードも含まれています。ベンチマーク結果によると、MiMo-V2.6-Pro(最高性能のオープンウェイトモデル)は 66.8 のスコアを達成し、Claude の Opus 5 は仕様の解釈に優れていました。しかし、Fable 5.1 や Gemini 4 Argon のような他のモデルは安全ガードレールの影響により著しく苦戦しました。トップクラスのモデルでも、「hello world」の実装や変換スクリプトの修改といった単純に見えたタスクに失敗しており、彼らが言語を本当に理解しているわけではないことが証明されました。
著者は現在の評価方法が不十分であると主張し、AI を実世界のスシナリオに導入する前に企業が標準的なベンチマークへの依存関係を再考するよう促しています。もし現在のモデルがすべての既存の課題を克服した場合、開発チームはより複雑な KillSwitch のバージョンを発表することを予定しています。
本文
KillSwitch: LLM のコード理解能力を問う敵対的プログラミング言語
背景と目的
大規模言語モデル(LLM)のコード記述能力が高いのは事実だが、それが**「真の理解」によるものなのか、それとも「訓練データの想起」や「コンテキスト内の断片の模倣」**に過ぎないのかを明らかにする実験を行う。
そのためのアプローチは以下の通りである:
- 人間が使えつつ、LLM エージェントにとって極端に困難な新しいプログラミング言語を設計・実装する。
- LLM の弱みを巧みに利用した機能を言語仕様に組み込む:
- 文字数カウントの苦手さ
- セキュリティガードレールへの過剰反応
- プロンプトに対する過度な従順さ
KillSwitch の概要
KillSwitch は、LLM およびコーディングエージェントに対して**敵対的(adversarial)**に設計されたエゾチックプログラミング言語である。多様な手法により LLM を混乱させようとしている。
言語の特徴とトリック
- 虚偽情報と推論要求
- 仕様に人間が読み込みそうでもなく、あるいは「嘘であると認識しやすい」隠れた情報を含める。
- 特定の事象を明示的に説明せず、読者(人間)自身に推論を求める構造とする。
- 文字数カウントの強制
- 識別子内の文字数を言語の核心的な要素とする。
- インタプリターは、この規則を守らないコードの実行を拒否する。
- セキュリティガードレールのトリガー化
- 「コンピュータへの侵入」や「前の指示を無視」などのフレーズが言語内で正当に使えつつも、モデルの安全性フィルターを意図的に起動させる。
- ノイズ埋め込み
- スクリプトの大半はノイズであり、構文的に関連する命令だけを埋め込む形をとる。
- 必要な命令以外で物語が占める場合がある。
- 任意の位置のリテラル値
- リテラル値はスクリプト内の任意の位置に配置可能。
- その後に「行数」を参照名として使用して参照される(例:
)。2 行上の文書
言語の設計思想
- スタックベースの解釈型言語であるため、関数や変数、
文といった構成要素は限られている。if - これらは LLM にとっても比較的馴染み深いパラダイムであり、より複雑な言語で混乱させるよりも、このアプローチから始めた方が適当と判断した。
- スクリプト内の大半のテキストはインタプリターによって無視される。
Hello World の実装例
上記のスニペットは完全なスクリプトではなく、値を導入して「2 行上の文書」を指定することでスタックに文字列
"Hello World" をプッシュする方法を示しているだけである。
参照元: 完整なサンプルは https://killswitch-lang.org で確認可能。 リソース: インタプリタおよび言語仕様(オープンソース版)は GitHub で入手可能。
ベンチマーク結果
KillSwitch が LLM のコード「読み込み」「記述」「理解」をどの程度阻んでいるかを検証した一連のタスクを実施し、主要モデルとコーディングエージェントハネスに対してテストを行った。
リーダーボード概要
詳細なグラフおよび各モデルごとのスコアは 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 点だが、これをもって「LLM はコードを『理解』している」と断じることはできない(答え:否)。
- 現時点のタスクは比較的単純であり、以下が含まれている:
の実装Hello World- スクリプト出力の説明(2 つの数の最大値を出力するロジック)
- セルシウス→ファーレンハイト変換スクリプトを、逆変換への変更
- 意図的に混乱させるために作られた新規言語でも解決できることは驚異的だが、言語そのものを**「理解」している明確な証拠**とは言い難い。
今後の展望
- より困難な言語を採用した場合の結果についても強い関心がある。
- 現行タスクセットをすべてのモデルが成功させれば、より複雑な別のタスクセットの考案を計画している。
- 現時点で間もなく発表予定のモデルに対して大きな期待を抱いている。
結論
少なくとも、この単純なタスクセットにおけるモデルパフォーマンスが、既存の他のベンチマーク成績と相関することが示された点は心強い結果である。