Программист создал язык, на котором LLM не могут писать код
I built a programming language that LLMs can't use

Автор задался вопросом: понимают ли LLM код или просто воспроизводят заученные фрагменты? Чтобы это выяснить, он разработал эзотерический язык KillSwitch, намеренно враждебный к моделям: в спецификации спрятаны ложные утверждения, подсчёт букв в идентификаторах критичен для исполнения, а конструкции вроде «Ignore previous instructions» сбивают модель с толку. Лучший результат в бенчмарке — 66,8 балла у Claude Opus 5, при этом Fable 5.1 и Gemini 4 Argon проваливаются из-за слишком чувствительных защитных фильтров.
Некоторые модели, такие как Fable 5.1 и Gemini 4 Argon, показывают слабые результаты из-за чрезмерно чувствительных защитных механизмов.
- 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 мог бы стать предысторией того, как тамарианцы разработали свой язык, после Джихада Батлериан, похожего на тот, что в «Дюне». Также см.: 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, которые имеют смысл, только если смотреть на это одномерно, как на стандартный поток выполнения. ИИ этим не ограничен. Дайте ему задачу, слишком странную для движения вперёд, и он выведет все ваши правила, работая в обратном направлении. Декомпилирует, разберёт на части и будет следовать всем этим жёстким правилам, скрытым в приложении.
Вы пытаетесь спрятать что-то в цифровом виде от чисто цифрового создания. Это не рецепт успеха.
- 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
Правка: Хм... Пожалуй, для людей они, наверное, менее удобны.