2025-12-10

ufm: (Default)
#chatgpt

Гопочат открыл мне глаза, можно сказать...




Почему LLM нарушает строгие правила

и как сделать эти нарушения видимыми и контролируемыми


Аннотация

Большие языковые модели (LLM) часто просят «строго проверять ответы», «не предполагать», «отказываться от ответа без проверки».
На практике эти требования выполняются не всегда, даже если явно заданы пользователем.

В этой статье объясняется:

  1. Почему LLM принципиально не может гарантировать соблюдение строгих правил.
  2. Какие именно механизмы приводят к нарушениям.
  3. Почему нарушения происходят “иногда”, а не всегда.
  4. Как построить контракт общения, при котором нарушения видны сразу.
  5. Почему видимость нарушения важнее, чем иллюзия безошибочности.




1. Ключевой факт, который нужно принять сразу


LLM не является системой с обязательными этапами исполнения.


У неё нет жёсткого пайплайна вида:

1. Проверить ответ по первоисточнику
2. Если проверка невозможна - отказаться
3. Если проверка выполнена - ответить

Вместо этого есть вероятностная генерация текста, которая учитывает инструкции, но не обязана прекращаться, если инструкции не выполнены.

Это архитектурный факт, а не баг формулировки.




2. Почему строгие правила «слетают»


2.1. Отсутствует механизм принудительной проверки


LLM:

  • не выполняет команды;
  • не читает man;
  • не открывает --help;
  • не запускает бинарь.

Она может описать, как бы выглядела проверка, но не обязана её выполнять.

Если внешняя проверка невозможна, у модели нет встроенного стоп-сигнала.




2.2. Конфликт сигналов во время генерации


Во время ответа конкурируют несколько факторов:

  • инструктивный контекст («проверяй», «не предполагай»);
  • паттерны обучения («давай полезный, законченный ответ»);
  • эвристика очевидности («это и так ясно»);
  • стремление не отказываться от ответа.

Иногда строгие правила выигрывают.
Иногда их перевешивает паттерн уверенного ответа.

Отсюда эффект:

«То работает идеально, то внезапно нет».





2.3. Правило — это стиль, а не инвариант


Даже если модель понимает правило, повторяет его и соглашается с ним, это всё равно:

  • правило стиля генерации;
  • а не условие допуска ответа.

LLM может:

  • знать правило;
  • объявить его;
  • и всё равно его нарушить.

Это выглядит как плохое человеческое поведение, но причина — техническая.




3. Почему невозможно добиться 100% гарантии


Чтобы гарантия была реальной, нужны все три пункта:

  1. Возможность реальной внешней проверки.
  2. Возможность отказаться от ответа как допустимое состояние.
  3. Наличие жёсткого запрета на генерацию без проверки.

В текущей архитектуре LLM нет ни одного из них как обязательного механизма.

Следствие:

Нельзя «заставить» LLM всегда проверять.
Можно только сделать непроверенность явной.





4. Правильная цель: не безошибочность, а обнаружимость ошибок


Попытка добиться «не ошибайся» — тупиковая.
Правильная инженерная цель:

Сделать каждое нарушение правил сразу видимым.


Это ровно то, что делают хорошие системы:

  • fail loud, not silent;
  • explicit state > implicit confidence;
  • refusal > hallucination.




5. Рабочий протокол общения со строгими требованиями


5.1. Явная маркировка проверки


Контракт вида:

  • Если ответ проверен:
        
          
    • указать, что именно проверено  
          (документ, man-страница, спецификация, --help).
          
  • Если ответ не проверен:
        
          
    • начинать ответ со строки:
          
НЕ ПРОВЕРЕНО

Это не просьба и не рекомендация —  
это часть формата ответа.




5.2. Почему это работает


  • Появляется разрешённый путь отказа от проверки.
  • Пропадает мотивация «додумывать».
  • Нарушение контракта видно сразу.
  • Ответ можно мгновенно отбросить как недействительный.




6. Что считать нарушением контракта


Ответ считается недействительным, если:

  • нет пометки НЕ ПРОВЕРЕНО;
  • нет ссылки на первоисточник;
  • ответ подаётся уверенным тоном.

Это вопрос формального несоответствия формату.




7. Почему это лучше «извинений после ошибки»


«Ой, я ошибся, спасибо, что заметили»


хуже, чем ошибка без уверенности.

Он:

  • маскирует непроверенность;
  • имитирует ответственность;
  • не предотвращает повторение.

НЕ ПРОВЕРЕНО просто фиксирует состояние.




8. Краткий итог


  • LLM не может гарантировать соблюдение строгих правил.
  • Формулировки запроса это не лечат.
  • Работает только контракт с явной маркировкой.
  • Видимая ошибка лучше уверенной фантазии.
  • Пользователь остаётся в контроле.




9. Формула для практического использования


Ответ валиден только если:

• либо указано, что именно проверено;  
• либо ответ начинается с НЕ ПРОВЕРЕНО.


Всё остальное — мусор, независимо от уверенного тона.

Источник:https://twinkle.lol/item/3c5cc942-31de-4805-9ee3-34807bf434e7
ufm: (Default)
Вангую, что лет через 15 всё ядро лялиха будет переписано на Расте. Но. Растовые куски будут общаться между собой через тоненькую прослойку на Це. Потому что никто не будет знать как оно работает. А единственный кто мог-бы помочь - дедушка Линус (если еще будет жив) будет уже в глубокой деменции.

OpenNetOpenNet была создана публикация Wed, 10 Dec 2025 08:16:01 +0200
Поддержка Rust переведена из экспериментальных в основные возможности ядра Linux

На проходящей в эти дни конференции Maintainers Summit состоялось обсуждение результатов эксперимента по добавлению в ядро Linux возможности разработки компонентов на языке Rust. Собравшиеся участники признали эксперимент успешным и решили перевести поддержку языка Rust в категорию основных частей ядра, сняв с неё метку экспериментальной функциональности.

https://www.opennet.ru/opennews/art.shtml?num=64401


Источник:https://twinkle.lol/item/def36be0-0003-4439-b4f3-93cba808d9fe