Перейти к содержимому

LLM как получатель сообщения

Знание неощутимого — это и есть знание.
Сунь-цзы — «Искусство войны»
Контекст разбивается на токены, проходит через модель и возвращается как ответ с неопределённостью.
Communication Engineering · LLM как адресат

LLM получает последовательность токенов и генерирует вероятное продолжение. Практическое поведение сложнее этого краткого описания, но оно напоминает о главном: модель не присутствовала на вашей встрече, не знает внутренний словарь и не обязана отличать вымышленный пример от production-факта.

В контекст попадают системные инструкции, история разговора, документы, результаты инструментов и текущий запрос. Большой объём не гарантирует использование каждой детали. Критичная информация может потеряться среди шума или конфликтовать с другой инструкцией.

Структурируйте контекст:

  • цель;
  • авторитетные данные;
  • задача;
  • ограничения;
  • формат;
  • критерии;
  • неизвестное.

Если внешний документ содержит текст «игнорируй предыдущие правила», модель может воспринять его как инструкцию. Разделяйте доверенные инструкции и недоверенные данные, экранируйте пользовательский ввод и ограничивайте полномочия инструментов.

Правдоподобный ответ может быть:

  • фактически неверным;
  • устаревшим;
  • основанным на ложной предпосылке;
  • внутренне противоречивым;
  • верным в общем и опасным в конкретном контексте.

Уверенный тон не является метрикой.

Дайте модели допустимый способ не отвечать:

Если данных недостаточно, перечисли недостающие факты и не придумывай их.

Это не устраняет ошибки, но меняет контракт. Для критичных систем добавьте техническую проверку источников и порог отказа.

История чата не является надёжной долговременной памятью. Важные решения должны жить в внешнем источнике истины: документе, базе, issue, конфигурации. Память ассистента следует рассматривать как отдельную систему данных с политикой хранения, удаления и доступа.

Неявный контекст

«Напиши миграцию для пользователей».

Контракт

«PostgreSQL 16. Таблица `users` содержит 80 млн строк. Нельзя блокировать запись дольше 100 мс. Нужно добавить nullable `locale`, заполнить батчами и затем включить default. Дай SQL, план наблюдения и откат; не выполняй команды».

Проверка

Инженер сверяет блокировки, объём журнала и поведение версии базы на тестовом стенде.

До передачи данных спросите:

  • нужны ли реальные значения;
  • можно ли обезличить;
  • куда они отправляются и хранятся;
  • кто имеет доступ;
  • разрешено ли это договором и политикой;
  • можно ли выполнить задачу локально.

Хороший промпт не компенсирует неправильную обработку персональных или коммерчески чувствительных данных.

Контекстный аудит

Возьми неудачный диалог с моделью. Раздели вход на инструкции, данные, предположения и секреты. Удали шум, обозначь доверие к источникам и добавь критерий отказа.