Mechanistic claims в interpretability для бедных, но бравых. Шучу, конечно. Просто когда дело дошло до задачи «придумать название» — вспомнила шутки моей коллеги.

Привет! Меня (все ещё — если вы читали мои туториалы раньше) зовут Сабрина (и приятно познакомиться — если вы читаете их впервые).
Я XAI/MI researcher и очень люблю разбирать вещи из области в виде статей, блог-постов и даже (но очень редко) мемов. Добро пожаловать в чтение статьи =)
Надеюсь, вам понравится!

Удивительный внутренний мир
В одном из приближений можно сказать, что AI‑модели обрабатывают входы послойно. На каждом слое модель выдаёт вектор . Для одного примера этот вектор принято читать как точку — куда расположился конкретный объект в пространстве активаций. Усреднённый вектор группы похожих примеров принято читать как центроид — прототип группы (тоже точка). А вот контраст между какими‑то группами или между группой и точкой отсчета принято называть направлением (это уже вектор). Саму группу естественно при этом читать как область (а это уже кусочек пространства).
Все эти точки, центроиды, области, направления кажутся черными дырами или коробками. Абстракциями, если хотите. Но как только мы структурируем их — мы видим тонну прекрасного. Например, мы можем геометрически понимать и находить концепты, упакованные в многообразия.
Что называется концептом, а что многообразием? Какие структуры образуют циклические компоненты и как откопать это в модели? Почему теория существует и находится эмпирически, но пока не машстабируется? На эти вопросы мы и понаходим ответы в данной статье.
Для запуска ноутбука вам нужен файл data.py. Вы можете найти его на GitHub (вместе с этим и другими туториалами): https://github.com/SadSabrina/XAI‑open_materials/tree/main/geometrical_structures
Как мы пытаемся понять пространства
Во вводном абзаце мы увидели примеры того, как можно обозначить человеческим языком представления внутри модели.
На основе сэмплов данных (и сказать, что это точки);
На основе разности полярных групп (и сказать, что это направления);
На основе места и формы, которую занимает группа похожих объектов (и сказать, что это область)
Всё, что мы сделали в примерах выше — наделили абстрактное пространство понятной для нас интерпретацией. Любая такая осмысленная интерпретация в литературе по интерпретируемости называется концептом. Отсюда зафиксируем терминологию данного поста:
концепт — это сущность, имеющая название на естественном языке и во что‑то математическое упакованная. Это грубое, некрасивое совсем без формул определение поможет нам дальше.
Оговорка про терминологию
Тут я также обязана оговориться, что понятие концепта в литературе по XAI будет иметь разночтения. Ибо это и направление, и структура, и что‑то с когнитивно‑научными корнями — причем сразу. Но в наших руках — термин туториала и с ним мы идем дальше.
То, чем мы занимаемся, обучая модели — в какой‑то степени упаковка концептов в пространство некоторой размерности, ведь объекты реального мира для моделей в терминах зафиксированного определения — это концепты. Причем мы видим, что они пакуются как в бездонный рюкзак — очень неожиданно и очень хорошо.
Есть ли у этого, хотя бы гипотетически, какие‑то теоретические описания? Есть.
Концепты как структуры
Эмпирически известны следующие идеи: полярные шкалы — «тепло‑холодно», «грубо‑толерантно» — оказываются направлением , замкнутый цикл дней недели — окружностью
, категории и иерархии — вершины многогранников: категории образуют симплексы (вернее, их вершины), а вложенные иерархии — их произведения‑политопы.
Симплекс и политопы — это
Симплекс — это многогранник в n‑мерном пространстве. Например, 0-мерный симплекс — это точка, 1-мерный — отрезок, 2-мерный — треугольник, а 3-мерный — тетраэдр и так далее.
Политоп — это объединение конечного числа симплексов.
Описанные формы устроены по‑разному. Две из них являются многообразиями и для них можно определить внутреннюю размерность — число независимых непрерывных степеней свободы у значения концепта.
Обратите внимание
Это важный мыслительный момент, к которому прям может быть нужно привыкать, если вы не работаете с и так далее daily.
Как характеристика — про структуру.
Оно говорит сколько измерений нужно, чтобы описать и обойти все его состояния структуры.
есть не для всех структур.
не про число уникальных значений или количество координат, которые нужны, чтобы описать объект в
.
Само по себе число при этом никогда ничего не значит. Эмпирические оценщики intrinsic dimension (TwoNN, MLE, PCA‑based) из библиотек всегда возвращают число. Они не проверяют, есть ли в структуре точек многообразие, они просто работают в предположении, что оно есть. Можно получить одинаковую оценку и на окружности, и на дереве, и на шуме. Это ещё увидим в практическом блоке.
Примеры мы посмотрим ниже. Связи концепт — структура — d мы на 2026 не знаем, но, опять же, открываем.
Для описанных выше концептов справедливы следующие размерности:
Концепт | Форма | |
Любой бинарный | Две изолированные точки/кластера | 0 |
День недели, час, месяц | Один циклический параметр — переход из одного в другое | 1 |
Таксономия, иерархи | Дерево | Не применимо |
Почему такие d
Формально
— это одна точка, а 0-мерное многообразие — дискретный набор точек: окрестность каждой точки это она сама. Чтобы задать значение бинарного концепта, не нужно ни одного числа — нужно выбрать одну из двух точек.
Чтобы задать день недели как точку цикла, достаточно одного числа — угла
. Локально дуга неотличима от кусочка прямой, глобально замкнута: через 7 шагов возвращаемся в начало.
Не применимо.
Нет непрерывного параметра. У симплекса смысл несут только вершины Двигаться внутри концепта некуда, и мы вернулись в пункт с
Нет однородности. Многообразие требует, чтобы окрестность каждой точки выглядела одинаково — как
.
Отсюда наше «не применимо» читать как «вопрос не задаётся на этом языке». У симплексов и политопов характеристики другие: число вершин , углы между ними и то, как симплексы соседних уровней складываются в произведение.
Вернемся к тому что, обучая, мы запихиваем концепты в модели как в рюкзак. Каким бы бездонным он ни казался, он, вообще говоря, на литров. Аналогично у модели есть
измерений, — а у каждого концепта есть внутренний размер
.
Какой ценой каждая такая форма помещается без самопересечений (то есть пластом, грубо говоря) — сколько измерений ей нужно — теоретически описал Хасслер Уитни в одноимённой теореме. Посмотрим, как она звучит.
Теорема Уитни (1944). Любое гладкое
‑мерное многообразие
можно гладко вложить в
.
(Это «сильная» версия — доказана в 1944 году. Есть ещё слабая — вложение в
— её Уитни доказал в 1936)
Зафиксируем ответы на возможные вопросы:
Что такое многообразие и почему нас интересуют именно они?
Формально.
— гладкое
‑мерное многообразие, если у каждой точки есть окрестность, которую можно взаимно однозначно и гладко отождествить с открытым куском
(это отождествление называют картой, а набор карт — атласом). Число
— та самая внутренняя размерность: сколько локальных координат нужно, чтобы задать точку.
Интуитивно. Многообразие размерности
— это пространство, которое вблизи каждой точки выглядит как
, даже если в целом оно искривлено или замкнуто. Глобально форма может быть какой угодно, но локально это всегда кусок
. Классический мыслительный пример, который приводят при знакомстве с многообразием — муравей на окружности: он уверен, что ползёт по прямой. Или мы, живя на почти‑сферической Земле, локально уверены, что вокруг плоскость. Кстати, земля — не сфера. Из‑за вращения вокруг своей оси она сплюснута у полюсов и немного расширена на экваторе. В геодезии и физике реальную форму планеты называют геоидом, а математически её приближают к эллипсоиду вращения.
Почему именно они. В последнее время их всё чаще находят и репортят в моделях. Это вполне закономерно — так как в интерпретируемости и так не мало линейных приближений.
Что значит «гладкое» и что значит «гладко вложить»?
Гладкое значит без изломов и углов: переходы между картами бесконечно дифференцируемы (
), так что по
можно двигаться плавно, а в каждой точке есть корректно определённое касательное направление (скорость). Это то, что отличает окружность от, скажем, контура квадрата с острыми углами.
Вложить
гладко — значит уложить $M$ в объемлющее пространство, выполнив три условия:
— гладкость —бесконечно дифференцируема, нет изломов или разрывов, производные всех порядков определены — есть касательные
— иммерсия —
инъективна в каждой точке, нет схлопывания направлений, складок, касательное пространство не вырождается: разные направления вдоль
переходят в разные ненулевые направления
— инъективность —
, нет самопересечений, склеек, | по образу
однозначно восстанавливается точка
А меньше можно?
Иногда да. Сфера
(странный значек значит «вкладывается»)‑ и это верно по определению —
‑мерная сфера есть множество точек, равноудалённых от центра:
Уравнение с
координатами вырезает
‑мерную поверхность — ровно на одно измерение меньше объемлющего. Поэтому
уже задана как подмножество
, и вложением служит само включение — доказывать нечего.
Иногда нет. Окружность, крайний случай
, положить на прямую
её нельзя — и здесь, наоборот,
— то, что нужно (говорят ещё «тесно» ‑то есть ровно его надо занять).
Почему окружность не кладется на прямую
Это следствие теоремы с ещё одними красивыми фамилиями — теоремы Борсука‑Улама (случай
):
Для любой непрерывной
существует точка
, где
Где
— любая непрерывная функция из окружности в прямую,
— антиподальная точка (
и
— противоположные концы диаметра),
— функция принимает одинаковое значение в двух разных точках, стало быть она не инъективна, стало быть и нет вложения.
Идея доказательства:
антисимметрична (
), значит меняет знак → по теореме о промежуточном значении
, то есть
.
Правда работает?
Нет. Вернее, теорема верна — она доказана. Но ограничением для модели она не является, ибо данная теорема про одно многообразие, а не про упаковку. Почти‑ортогональных направлений в моделях экспоненциально много — на этом стоит гипотеза суперпозиции.
Кроме того, у нас не чисто выполнены условия теоремы — Уитни требует гладкости и точной инъективности. Модели же думают приближенно.
Да и считать нам по ней было бы нечего. В модели одновременно сосуществуют разнородные структуры, делящие одни и те же 768 измерений. Чтобы посчитать вместимость, нужен полный список концептов иили аналогия для каждого. Мы не знаем ни того, ни другого.
Что тогда даёт Уитни? Подсказку о том, где смотреть: если ищете, например — ищите плоскость.
Но теорию щупать приятно. Она иногда помогает струткурироваться, а ещё теория — это красиво. Если вы согласны, то вот ссылка — больше теорем хорошо описаны в конспекте лекции: здесь.
А мы перейдем к практическому вопросу — когда в моделях возникают многообразия и попробуем потрогать их.
Когда в моделях возникают именно многообразия?
Многообразие в представлениях модели возникает при трёх условиях:
Концепт непрерывно упорядочен — между значениями есть «близко/далеко», «следующий», «больше/меньше»
Модель вынуждена вычислять с этой структурой — в training objective есть задачи, требующие операций на концепте
Достаточно контекстов в данных, где структура явно видна
Примеры мы видели в табличке и опорный вопрос идентификации возможного многообразия — нужно ли модели вычислять между значениями? Если да — может быть многообразие. Если нет — кластеры.

Отсюда забираем, что многообразие всегда свойство пары (концепт, задача). Один и тот же «день недели» может быть
в autoregressive LLM и просто 7 кластерами в классификаторе без temporal задач.
Полезно ли это? Да!
Например, здесь нашли окружности через SAE‑кластеризацию + PCA на задаче‑промпте «Let's do some day of the week math. Two days from Monday is ___» в GPT-2 (слой 7) и Mistral 7B. Нахождение мы с вами повторим ниже на чуть более простом сетапе. Они в работе показали, что вмешательство в найденную структуру меняет поведение модели.
Пример побольше —Shape Happens. Результат — вмешательство в найденную структуру меняет поведение модели — у них тот же.
Отсюда многообразия артефакт ещё и потенциально используемый. Просто это не так масштабируемо и понятно (пока что). На этом с теорией всё, надеюсь вы достаточно мотивированы — пойдем исследовать модель.
GPT-2: многообразияв реальной модели
Возьмём любимую для простых экспериментов GPT-2 small. Параметры модели таковы: 12 слоёв, 12 голов, , словарь: 50 257 BPE (byte‑pair‑encoded, то есть полученных итеративно таких, что частые слова — чаще целые токены, а редкие или сложные — разбиты на более мелкие части)‑токенов.
В качестве концептов, рассмотрим 3: те, для которых известно в литературе, что они цикличны и образуют многообразие.
Концепт | Токены | Период | Intrinsic dim |
Дни недели | Monday, …, Sunday | 7 | 1 |
Месяцы | January, …, December | 12 | 1 |
Часы | one, …, twelve | 12 | 1 |
Ожидания по теореме Уитни таковы: каждый является окружностью и занимает своё 2D подпространство
.
Посмотрим реальность ниже — и проверим своими руками как кодирует эти концепты GPT-2.
Постановка задачи
Метрики
Чтобы измерять, насколько все согласовано с теорией, рассмотрим также следующие метрики:
(angular tau) — сохранён ли циклический порядок. Считаем угол каждой точки вокруг центроида, ранжируем по углу и сравниваем с идеальным циклом
ранговой корреляцией Кендалла (максимум по всем сдвигам — у окружности нет «начала»).
Как это читать:
— точки идут по кругу в правильном порядке (Пн→Вт→…→Вс→Пн);
→ порядок случайный.
Код
def angular_tau(H2, n): """τ_ang ∈ [0,1]: how well the CIRCULAR ORDER of points is preserved. 1 = perfect cycle.""" # 1. Center of the point cloud #(angles are measured relative to it) cx, cy = H2[:, 0].mean(), H2[:, 1].mean() # 2. Angle of each point relative to the center, # in [-π, π] angles = np.arctan2(H2[:, 1] - cy, H2[:, 0] - cx) # 3. Rank each point by angle (which point comes 0th, 1st, #... around the circle). # Double argsort: the first argsort gives sorted indices, # the second converts them into ranks. ang_rank = np.argsort(np.argsort(angles)) # 4. Compare the angular ordering with the ideal cycle 0,1,…,n−1, # shifted by k. Try all shifts (a circle has no fixed starting # point) # and keep the best match. # kendalltau measures rank correlation; abs() also captures # the reverse traversal direction. best = max(abs(kendalltau(ang_rank, (np.arange(n) + k) % n).statistic) for k in range(n)) return best— лежат ли точки на круглой окружности. Вписываем окружность методом наименьших квадратов и меряем, насколько все точки равноудалены от центра.
Как это читать:— идеальный круг; ниже — кривой круг.
Код
def fit_r2(pts): """R²_circ ∈ (−∞,1]: how well the points lie on a circle (equal distance from the center). 1 = perfect.""" # The circle equation (x−cx)²+(y−cy)²=r² can be linearized as # 2·cx·x + 2·cy·y + (r²−cx²−cy²) = x²+y² # → M·p = b, where p=(cx, cy, r²−cx²−cy²) # 1. Build the linear system M = np.column_stack([2 * pts[:, 0], 2 * pts[:, 1], np.ones(len(pts))]) b = pts[:, 0] ** 2 + pts[:, 1] ** 2 # 2. Least-squares solution → fitted circle center and radius p, _, _, _ = np.linalg.lstsq(M, b, rcond=None) cx, cy = p[0], p[1] r = np.sqrt(abs(p[2] + cx**2 + cy**2)) # recover r from p[2]=r²−cx²−cy² # 3. Distance of each point to the fitted center d = np.sqrt((pts[:, 0] - cx) ** 2 + (pts[:, 1] - cy) ** 2) # 4. R²: 1 − (variance of d around radius r) / (total variance of d). # If all points are equally distant from the center (d≈r), # then ss_res≈0 and R²≈1. ss_res = np.sum((d - r) ** 2) # deviation from the fitted circle ss_tot = np.sum((d - d.mean()) ** 2) # total radius variance return float(1 - ss_res / (ss_tot + 1e-12))
То есть: спрашивает «правильный ли порядок?»,
— «правильная ли геометрия?» — мы покрыли две стороны.
Где будем мерить
Мы посмотрим как на статические эмбеддинги токенов , так и на hidden states.
На первые мы посмотрим, чтобы ответить на вопрос: «как токены упаковались в пространство модели?» Снимать hs для этого вопроса не продуктивно, ибо мы просто просим модель продолжить генерацию от токена. Так как Gpt-2 не обучен циклическим задачам явно, мы вообще не обязаны ожидать, что возникнет нужная геометрия или нужный вычислительный процесс.
На вторые мы посмотрим, чтобы ответить на вопрос: «как модели выгодно аппелировать этиими концептами?». Вот здесь нам уже понадобятся hidden states — они зависят от всего предложения.
И так, такой сетап мы собрали. Пойдем анализировать с, конечно, первого.
Сетап на эмбеддингах


Что мы видим:
Порядок — идеальный.
у дней и месяцев,
у часов: точки идут по кругу ровно в календарном порядке.
Круг — «кривой».
(и даже чуть отрицательный, но это может быть артефакт погрешности) — точки образуют петлю, но лежат совсем не на круглой окружности.
Лежат в разных областях пространства.
Отсюда — да модель хранит циклический порядок, но нет — геометрия её не круглая.
Сетап на контексте: поможет ли нам он?
Технический артефакт для вашего будущего
Когда текст начинается сразу с интересующего вас слова, будет неприятный сюрприз. Без BOS‑токена GPT-2 даёт на самом первом токене последовательности аномально большую норму активации — это артефакт трансформеров: у первого токена нет ничего слева, на что могло бы «посмотреть» внимание, и модель компенсирует это нестандартным способом.
Фиксить просто — добавлять BOS‑токен перед кодированием.
Посмотрим на разные примеры и поанализируем hidden states на позиции токена дня (день — потому что лучший кандидат, позицию токена — как метод берем, чтобы пройти путь работы Not All Language model features are one‑dimensionally linear, её — потому что она фундаментальна в мире исследования геометрии представлений). Мы могли бы брать и last_token_hiddens. На них результат мог бы быть чище, но я осознанно беру токены дня. Почему — в конце статьи [сноска 1].
Для удобства анализа и сравнения с качеством, где для случая у нас лишь 7 точек будем анализировать центроиды по дням и те же метрики, что выше. Дополнительно посмотрим — отделимы ли дни друг от друга линейно — используя логрег. Это нам понадобится также для понимания того, насколько сильно модель разделяет дни между собой в линейном смысле.

По метрикам всё также — циклично и криво и если мы посмотрим на проекции — они больше не показывают окружность, но это не совсем проблема. Результат идет из простроения. Если (когда) мы строим PCA на контекстных точках, то по определению мы не должны получить цикл. PCA ищет направление максимальной дисперсии, отсюда на контекстах мы получаем, что дисперсия это:
То есть много компонент. Отсюда, ещё раз — PCA не ищет циклы. Он выбирает направления, объясняющие максимальную долю общей дисперсии — главные компоненты не обязаны показывать календарный цикл, особенно если (когда) вариативность контекста сильнее различий между днями недели. А у нас много разных контекстов. За что боролись — на то и напоролись.

Но плох тот врач, который не скажет как лечить — чтобы различить контекстный шум и структуру самих дней, мы можем посмотреть на две проекции: (i) PCA, обученную на всех контекстуализированных представлениях; (ii) PCA, обученную только на семи центроидах дней недели.

Эксперимент day math
Циклический концепт всплывает в задачах вроде «через два дня после понедельника — среда», и на окружности такой шаг — это поворот: прибавить дней = повернуть точку на угол
. Поворот — дешёвая линейная операция, одна и та же для любого сдвига, и голове внимания её легко реализовать. А происходит это вычисление в прогоне на конкретном предложении.
Рассмотрим представления дней и числовых сдвигов. Числовые сдвиги нам здесь нужны, чтобы была задача вычисления и контроль сразу. Отсюда основной эксперимент распадается на два:
Эксперимент A: день и число, но без вычислительной задачи. Модель видит оба значения, но контекст не требует интерпретировать число как сдвиг по циклу дней недели.
Эксперимент B: задача календарного сдвига — те же день и число, но с задачей «посчитать через дни». Например:
“Two days from Monday is …”
Если циклическая геометрия связана именно с выполнением календарной операции, она должна быть выражена сильнее в режиме day math, чем в контрольных предложениях.
Проверять будем, сравнивая:
упорядоченность представлений по дням;
качество круговой аппроксимации;
структуру PCA для всех точек и для групповых центроидов.
Короче, всё то же, что и выше, но помимо метрик общего сетапа и проекций общего сетапа, мы используем также проекцию на плоскость, определяемую центроидами одного из классов (дней или чисел). А именно для выбранной переменной сначала вычисляются центроиды классов:
после чего по этим центроидам строится двумерное PCA‑подпространство, то есть размера. Далее обозначая эту матрицу за
, а за
—
средний центр центроидов, каждое скрытое представление проецируется в найденную плоскость по формуле:
В отличие от PCA в лоб, такая проекция выделяет направления, определяемые различиями между классами, после чего в это подпространство отображаются все скрытые представления. Это позволяет отдельно анализировать геометрию, связанную в нашем случае с днями недели и с числами.
Мы получим красивое вот‑вот прям сейчас, но
Главное ограничение — мало примеров. Я не ставила перед собой цель туториала точный бенчмарк этой модели (ниже пояснение — почему) [сноска 2]. Цель туториала — дать примеры и направление.
В итоге экспериментов А и В мы получили следующее:

где Angular τ — метрика цикличности, Circle R² — метрику круглости, Decodability — метрика линейной отделимости дня/числа от остальных, Chance level — метрика угадывания. Также мы получили (красивые) проекции:



Что мы видим (красиво, правда ведь?):
Circle R² — везде около нуля. Ни в одном из условий (A/B, Global PCA/centroid plane) геометрия не круглая.
Angular τ на centroid plane — идеальный почти для всех переменных, глобально лучше для задачи day‑math.
Decodability — это CV‑accuracy логрегрессии, обученной предсказывать переменную по hidden state (5 фолдов, честно на отложенных данных) — насколько переменная линейно читается «снаружи», а не просто участвует где‑то в вычислениях модели — корректирует выводы. Как мы видим:
Start day: 97.9% (шанс 14.3%) — декодируется, порядок ($\tau=1.000$) отражает структуру.Offset (что прибавили): 99.1% (шанс 8.3%) — то же самое.
Result day: 0.4% (шанс 14.3%, то есть ниже шанса) — модель на этой позиции токенов и на этом слое ответ ещё не вычислила. При этом
(centroid plane) и даже
по сырой Global PCA — выше, чем у Start day (Global PCA
)! То есть по одной только угловой метрике шум (Result day) выглядит «структурнее», чем реальная, декодируемая структура (Start day). При малом числе классов случайные почти‑совпадающие центроиды легко выстраиваются в правдоподобный на вид порядок — мы видим это схлопывание на PCA.
Вот такая нетривиальная структура у нас вышла. Почему — тоже есть обоснование.
Пояснение, почему так [сноска 2]
В работе, показывающей
в моделях, во‑первых используют SAE‑латенты слоя. Я их не взяла, так как цель — обучающая и вносить SAE было бы больнее. Плюс, само по себе исследование в рамках данной статьи построено на сыром пространстве.
GPT-2, как модель, не умеет в day‑math. На похожей задаче у авторов метрики 8/49 (16.3%) на Weekdays и 10/144 (6.9%) на Months — при случайном угадывании
и
. То есть модель не считает во время генерации, а угадывает.
Цитата из статьи: «although GPT-2 has circular representations, it gets trivial accuracy on Weekdays and Months»
Моя цитата: Несмысшленый малыш!
В общем, что вышло в нашем эксперименте и наш результат — ожидаемая картина для модели.
Суммируем и берем с собой выводы
Мы с вами прошли большой путь — от теоремы до реальности и увидели, что чистой теории, применимой к эбеддингам моделей нет. Вы познакомились с теоремой Уитни и понятием многообразий, рассмотрели хитрые способы проецирования и увидели следующие результаты:
Теорема Уитни — только теоретическая подсказка о размерах возмонжных структур и о способах их поиска. В реальности в моделях всё сложнее — полисемантичность не ограничивает число многообразий, которые можно упаковать, и извлечение многообразий в чистом виде требует машстаба данных.
Токен‑эмбеддинги (
) в GPT-2 цикличны. Дни и месяцы дают идеальный циклический порядок (
), числа — почти идеальный (
). Но геометрия не круглая ни у одного из трёх (
от
до
): модель хранит порядок, а не окружность.
Контекст усложняет задачу, чистит её, но не рушит то, что найдено в более простом приближении. По слоям 0–11 порядок остаётся идеальным (
), на последнем, 12-м слое — несколько проседает (
).
Результаты полезно проецировать на подпространство задачи. PCA по всем контекстным точкам — порядок неидеален (
) из‑за шума контекста; если по семи центроидам — снова идеальный цикл (
).
Интерпретируемость как процесс налагает методологические нюансы. Третья переменная в B — результат сложения — decodable на уровне 0.4%, что ниже случайного угадывания (14.3%), но при этом формальная метрика циркулярности для «результата» показывает
до 0.9 — это артефакт почти совпадающих центроидов. Это ровно тот класс ошибок, которого стоит остерегаться в подобных тестах: высокая угловая метрика ничего не говорит о структуре, если контрольная метрика на уровне шанса.

Смотрите, как много! Вы молодцы! Спасибо за чтение до конца!
[Сноска 1] Этот эксперимент можно расширять на большем числе циклических пар и на моделях покрупнее (Mistral/Llama, где, по литературе, круги чище).
Надеюсь, туториал был увлекателен для вас и вам удалось почувствовать красоту и неоднозначность поиска структур в моделях.
До новых встреч, друзья!
P.S: Если вам понравилось, как всегда зову в Tg Blog: https://t.me/jdata_blog, ставить классы =)
И, конечно, весь код туториала лежит на Gh: https://github.com/SadSabrina/XAI‑open_materials/tree/main/geometrical_structures
