Subtext: инструмент для наблюдения за внутренними активациями языковых моделей в реальном времени

Hacker News · оригинал

Материал подготовлен автоматизированной редакционной системой. Факты можно сверить по указанному первоисточнику.

Разработчик представил Subtext — локальное приложение, позволяющее визуализировать промежуточные состояния нейросети до формирования финального ответа. Инструмент использует метод Jacobian lens для декодирования «намерений» модели на различных слоях, демонстрируя, как выводы формируются еще во время чтения запроса.

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

Взаимодействие с большими языковыми моделями традиционно ограничивается анализом их вывода — того, что они говорят. Однако новый проект Subtext предлагает заглянуть «под капот», позволяя наблюдать за внутренними процессами модели в реальном времени. Инструмент подключается к остаточному потоку нейросети на девяти различных слоях и проецирует внутренние активации в пространство словаря. В результате пользователь видит ранжированный список слов, к которым модель склонна внутренне, еще до того, как сгенерирует первый символ ответа.

Техническая основа Subtext опирается на развитие метода logit lens, известного в области интерпретируемости ИИ. Вместо простого декодирования скрытых состояний, проект использует Jacobian lens, который изолирует часть представления, которую модель может вербально отчитать и использовать далее. Автор описывает это как выделение «глобального рабочего пространства». Вычисления сводятся к одному матрично-векторному произведению на слой и одному разупаковыванию на токен, что позволяет генерации текста происходить с практически нативной скоростью без заметных задержек.

Наиболее удивительным аспектом инструмента является наличие фазы «чтения». Пока модель обрабатывает входной запрос, ее внутреннее пространство уже активно: формируются категории, оценки и общее понимание контекста. Например, при вводе математической ошибки вроде «12 + 5 = 1», слово «incorrect» (неверно) начинает проявляться с высокой силой еще до того, как модель начнет вежливо объяснять ошибку. Это демонстрирует, что вердикт часто принимается за несколько токенов до его вербального выражения.

Также Subtext позволяет наблюдать за многошаговым рассуждением. В случае вопросов, требующих промежуточных логических шагов (например, определение валюты страны по форме ботинка), можно увидеть, как концепция «Италия» появляется на более ранних слоях, а затем «евро» — на более поздних. Это визуализирует так называемое поведение «двух прыжков», которое ранее описывалось только в научных работах.

Автор проекта подчеркивает важные ограничения инструмента. Subtext является линзой, то есть приближением, а не прямым доступом к «мыслям» модели. Декодирование является линейным чтением, и наличие слова в списке активаций не обязательно означает причинно-следственную связь с итоговым выводом. Кроме того, демонстрация была проведена на модели размером 4B параметров, что ограничивает масштабируемость наблюдений. Отображение также отфильтровано для читаемости, показывая только начальные токены слов.

Несмотря на эти оговорки, проект меняет восприятие работы нейросетей. Subtext доступен локально и требует около 10 ГБ видеопамяти на GPU NVIDIA или Mac с Apple Silicon. Сессии можно экспортировать в JSON и воспроизводить в браузере без необходимости использования GPU, что упрощает демонстрацию процессов другим. Проект распространяется под лицензией Apache-2.0 и не связан с Anthropic.