Back to Timeline
TO
Сегодня я узнал

Сиолошная

Помните пару месяцев назад многие смотрели на ответы LLMок на запрос «Что больше, 9.8 или 9.11?»? Вот в этом блоге-анонсе инструмента для механистической интерпретируемости авторы пытаются понять, почему так происходит, анализируя внутренние состояния модели. Про интерпретируемость и анализ внутренностей я недавно писал лонг, если пропустили — рекомендую к прочтению.

Так вот, что делается в инструменте:
1) вы выделяете слово «больше» в неправильном ответе «9.11 больше 9.8»
2) программа находит, какие части модели больше всего повлияли на это предсказание. Для этого поочерёдно зануляются разные части (нейроны) внутри LLM, и анализируется уменьшение вероятности слова «больше». Допустим, без стороннего влияния модель предсказывает это слово с вероятностью 94%, а после отрубания какого-нибудь 100500-го нейрона в 10-м слое — 35%. Значит, влияние есть
3) в фоне, ещё до запуска инструмента, через модель прогоняются сотни тысяч разных текстов, и сохраняются все внутренние состояния сети (какие нейроны и как работали)
4) теперь нужно объединить шаги 2 и 3 — найти такие примеры текста из общей выборки, которые вызывают такое же срабатывание (сильно положительное или сильно негативное) тех же самых нейронов. Эти тексты можно отсмотреть глазами и попытаться выявить общую тему (или использовать для этого LLM — так предлагали делать OpenAI; тут тоже под капотом есть кластеризация, правда я не разбирался, как именно она работает).

Два обнаруженных сильных концепта, которые «возникают в голове» у модели при ответе на этот вопрос — это атаки 11-го сентября (потому что 9/11) и гравитационная динамика (потому что физическая константа 9.8). Но если чуть поменять запрос (9.9 и 9.12), то они уходят, поэтому фокусироваться на них не имеет смысла.

А вот какие концепты есть и в одном случае, и в другом — религиозная. Если рассмотреть конкретные примеры в этом кластере, то они связаны со стихами из Библии, что также может вызвать проблемы, если 9.8 и 9.11 интерпретировать как 9:8 и 9:11 (глава:стих). И в книгах ведь действительно 9:8 идёт до 9.11 — поэтому можно сказать что 9.8 меньше 9.11.

После обнаружения проблемных нейронов (которые срабатывают, хотя должны «молчать») их можно занулить, то есть отключить их влияние на финальный результат: они ничего не будут добавлять или убавлять.

Для замера качества вмешательства авторы собрали выборук из 1280 примеров вида «что больше X.Y или X.Z», меняя переменные. До любых изменений LLAMA-3-8B отвечала чуть лучше случайного гадания — 55% правильных ответов. Если занулить 500 случайно выбранных нейронов, то будет 54-57%, особо разницы нет. Но если занулить 500 нейронов, которые ближе остальных к Богу (🙂), то качество вырастет до 76%. Его можно разогнать до 79%, если включить сюда ещё нейроны для дат и телефонов (даты потому что 9 сентября 9.9 раньше 9.11 — тоже путает модель). А ещё попробовали заставить модель сортировать набор чисел — тоже сильно улучшило.

«Одна из спекуляций заключается в том, что эти нейроны заставляют LLAMA интерпретировать числа как библейские стихи, так что, например, 9.8 и 9.11 становятся 9:8 и 9:11, что приводит к тому, что 9:8 оказывается перед 9:11. Однако требуется некоторая осторожность — например, другая гипотеза, которая соответствует данным, заключается в том, что LLAMA'у просто «отвлекает» слишком много концептов, срабатывающих одновременно, и все, что убирает шумные активации, полезно. Есть и другие возможные причины...» (то есть это не финальный вердикт, что именно вот точно по одной причине какая-то проблема)

Потыкать инструмент самому: тут

UPD: на удивление зануление нейронов, которые срабатывают при обсуждении версий библиотек для программирования (там тоже 9.11 после 9.8 может идти), не приводит к росту доли правильных ответов!