Обновить

Всем привет. У моего фреймворка Meta-Spider (про него можно почитать здесь) вышло большое обновление. Статью мне пока лень писать, так что будет пост.

Мы постоянно просим языковые модели «быть осторожнее» или «сказать, если не уверены». Работает это плохо: слова заходят, поведение не меняется. Причина в том, что неуверенность модели живёт в её внутренних активациях — там, куда текстовый промпт просто не достаёт.

meta-spider обучает тонкую обвязку (~2% параметров) поверх замороженной базовой модели. Она читает собственные скрытые состояния модели, сжимает их в «когнитивные токены» и впрыскивает обратно через cross-attention с вратами. В итоге модель отвечает уверенно там, где знает, и отказывается / идёт искать / уточняет — там, где нет. Веса базы при этом не меняются вообще.

Главный результат: латентный канал бьёт промпт

  • Отказ на неотвечаемом вопросе: текст-промт сдвинул с 0.07 до 0.07 — то есть вообще никак. Обвязка — до 0.87.

  • Поймано собственных ошибок базы: текст-промт 14%, обвязка 78%.

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

Важный нюанс методологии, на котором мы сами споткнулись: читать латентный сигнал надо тем каналом, в который обвязка обучена — она генерит фразу-отказ, а не выбирает искусственную «UNSURE»-опцию. С кривым ридаутом обвязка выглядит инертной (это был наш баг).

Три новые фичи

🎚️ Ручка неуверенности. Инъекция — один регулятор времени исполнения: крутите вверх для осторожности, вниз для уверенности, в минус — инверсия. Микшерный пульт для поведения. gain 0→1.5 плавно крутит долю отказов ~2%→51%.

🐕 Сторож (read-only). Иногда не нужно менять вывод — нужно просто знать, что модель не уверена. Лёгкая проба читает этот сигнал и позволяет сходить в RAG / переспросить / эскалировать, не трогая генерацию (постоянная инъекция портит длинную генерацию, а чтение — нет).

🏭 Фабрика обвязок. Одна команда собирает общую обвязку неуверенности под любую базу:

metaloom build-universal --model-name N --quantization nf4 --suite suite.json --eval --export-gguf

На агентном суите из 6 осей это единственный вариант, не провалившийся ни на одной оси — калибрована по всему пространству решения, а не просто «переученная отказываться».

Чем практично

База заморожена, обвязка ~2% модели, весь цикл collect→train→eval прогоняется на ноутбучной GPU с 4 ГБ (nf4 + срез-тренер), а деплой — в llama.cpp на CPU через маленький GGUF-sidecar. GPU на инференсе не нужен.

Стоит заметить, что это про калибровку, а не про сособности. Модель умнее не становится — обвязка вытаскивает уже существующий внутри сигнал неуверенности и превращает «ответить наугад» в «ответить, когда уверен».

Как начать

Есть CLAUDE.md. Рекомендую для использования фреймворка поначалу использовать ИИ-агента, способоного к продвинутому рассуждению в кодинге (Codex, Claude Code, DeepSeek V4 Pro через агентный движок и провайдера, которых вы предпочитаете), чтобы быстро опробовать и проверить его возможности.

Ссылки:

Теги:
+3
Комментарии0

Публикации