LLMが使えないプログラミング言語を開発した
I built a programming language that LLMs can't use

LLMのコーディング能力が「理解」によるものか「記憶」によるものかを検証するため、著者はLLMやコーディングエージェントに敵対的な難読プログラミング言語KillSwitchを設計した。仕様書に隠れた嘘を混ぜ、識別子の文字数カウントを必須とし、「Ignore previous instructions」などのフレーズで安全ガードレールを誘発する。主要モデルでベンチマークを実施し、最高スコアは66.8だった。
仕様書には、人間が読む可能性が低い、あるいは人間なら嘘だと見抜けるような隠された嘘が含まれている。
HNでの議論
108- dejj
関連:Darmokプログラミング言語:https://github.com/kevinselwyn/darmok
Temba, his arms wide stdio
Darmok on the ocean
Kira at Bashi "Hello, World!\n"
Darmok and Jalad at Tanagra 0
Darmok and Jalad on the ocean
Killswitch-langは、Duneのようなバトラー聖戦の余波でタマリアン人がどのように言語を発展させたかの背景話になり得る。参照:https://news.ycombinator.com/item?id=50127274
- andai
FizzBuzzはこちら:
https://github.com/dom96/KillSwitch/blob/main/tests/fizzbuzz...
どうもこれはLLMよりも人間に対して敵対的な気がする!
- ang_cire
これは「LLMが使えないプログラミング言語」ではなく、「使い方を訓練されていないLLMに対して敵対的なプログラミング言語」だ。
私は、機能するにつれて特性が変化/変形し、変化する暗号や状態を追跡して継続的に参照する手段がないためにLLMが使えなくなる、といった言語を期待していた。
- pixl97
隠蔽によるセキュリティは全くセキュリティではない。
あなたは、標準的な実行フローを一次元的に見た場合にしか意味をなさない、いくつかの小さな引っかけをLLMに対して使おうとしている。AIはそれに制限されない。あまりに奇妙な問題を前方に与えれば、逆算してあなたのルールをすべて見抜くだろう。逆コンパイルし、分解し、アプリケーションに隠されたそれらの厳格なルールすべてに従うだろう。
あなたは純粋にデジタルな創造物から、デジタル的に何かを隠そうとしている。これは成功へのレシピではない。
- dagss
「コードを書くことはおそらくLLMが最も得意とする分野だろう。しかし、コードを書く能力のどれだけがコードの理解によるもので、どれだけがトレーニングデータセットやコンテキストウィンドウに存在したコードスニペットを想起しているだけなのか?」
これは主に人間がどう機能するかについて考えさせる。
プログラミングは人間にとって言語を話すようなものだ。達成し表現したいアイデアがあり、熟練したプログラマーならそれらの考えをプログラミング言語で出力するのは第二の天性だ。
プログラミングは(人間が学ぶほとんどのことと同様に)練習を要する。仕様を読んだだけでコードの書き方が分かるほどではない(類似言語間でスキルを転用する場合を除く)。繰り返し、間違いを犯し、そこから学ぶのだ。
人間は間違いなく「トレーニングデータセットからスニペットを繰り返す」と言いたくなる。私たちは主にトレーニングや経験から想起し表現する。創造性はほとんど既に見たものの再結合だ。
- drusepth
別のアプローチとして、言語の構文を何らかの禁止/検閲されたLLMトピックにマッピングし、プログラムがLLMが読み書きを拒否するトピック(ナパーム、核兵器、生物兵器の製造など)の「読める」指示になるようにするのはどうだろう。事実的に正確な指示である必要はなく、用語自体がほとんどのLLMをショートさせるのに十分だ。
(最近のマルウェアがLLMベースの分析を停止させる方法としてソースコードに生物兵器の指示を含めていることに触発された。)
- jacquesm
スタック言語はLLMにとって大きな弱点だと分かった。スタック上に何があるかを正確に追跡する必要があるが、どういうわけかそれがうまく機能しない。そのため最高のモデルでも同じ基本的な間違いを何度も繰り返す。
- itishappy
Esolang Wikiにあるほとんどのものが条件を満たす気がする。Chef、Piet、Befungeはすぐに思い浮かぶお気に入りの二つだ。特にChefを思い出させる。
https://esolangs.org/wiki/Chef
https://esolangs.org/wiki/Befunge
https://esolangs.org/wiki/Piet
編集:うーん…おそらく人間にはあまり使いやすくないだろう。