Атрибуция данных LLM: почему поиск источника факта ломается

Атрибуция данных LLM: почему поиск источника факта ломается

Возьмите TRAK, один из сильнейших методов, которые ищут, какой документ научил языковую модель конкретному факту. Если факт встречается в обучающем корпусе один раз, нужный документ попадает в топ выдачи в 88% случаев. Если тот же факт пересказан в пятидесяти документах разными словами, точность падает до 7%. Добавьте к корпусу документы, которые лишь по форме похожи на запрос, и метод выдаёт ноль.

Это не редкий сбой и не шум в данных. Так выглядит обычный корпус предобучения, где один и тот же факт повторяется десятками пересказов, а рядом лежат тысячи текстов с похожей лексикой. Работа «Elucidating the Design Space of LM Data Attribution» (arXiv 2610.40655, октябрь 2026) разбирает, почему методы ломаются именно на этом, и предлагает две правки, которые не требуют нового алгоритма.

Атрибуция данных LLM (data attribution, training data attribution) это класс методов, которые оценивают, как изменился бы ответ модели, если бы конкретный пример убрали из обучения. Формально они предсказывают контрфактическое «обучили бы без этого документа и модель бы этого не знала». Идеальный способ проверить такое предсказание один: убрать документ, переобучить модель и посмотреть на результат. Для моделей на миллиарды параметров это стоит как отдельный эксперимент, поэтому почти все проверки в области делаются на статических наборах данных, где заранее известно, какие документы поддерживают факт.

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

Как устроен CATT

Controlled Attribution Benchmark, сокращённо CATT, строит истину в последней инстанции довольно грубым с виду приёмом: авторы дообучают Qwen3.5-4B через LoRA на выдуманных фактах, которых в предобучении не было и быть не могло. Если модель отвечает на вопрос про функцию f2, которая всегда возвращает v2, то единственный источник этого знания это документы из синтетического корпуса. Никакой другой документ в мире не мог её этому научить.

Задач две. В Function Bindings модель учит отображение новых токенов-функций в константные ответы. В Rule Routings она учит выдуманные правила сортировки: объект с определённым свойством уходит в очередь Cedar, остальные в Birch, причём из четырёх свойств решает только одно. Тестовые запросы намеренно сформулированы иначе, чем обучающие документы, чтобы нельзя было выиграть простым совпадением фраз.

Дальше начинается главное. Авторы включают по одному свойству реального корпуса и смотрят, что происходит с атрибуцией. Первое свойство это избыточность: сколько документов пересказывают один факт, от одного до пятидесяти. Второе число фактов: 25, 50 или 100. Третье лексические дистракторы, то есть документы, которые идеально повторяют формат запроса, но описывают несуществующую функцию и не дают никакой информации. Сетка экспериментов: три размера банка фактов, до восьми уровней избыточности и три seed на конфигурацию. Основной прогон занял 2 426 GPU-часов на 843 задачах на A100, H100 и H200.

Десять методов-бейзлайнов разбиты на группы: прямое сравнение градиентов (Grad-Dot, Grad-Cos), приближение через Fisher (EK-FAC, LoGra), приближение через гессиан (TRAK, TrackStar), динамика обучения (TracIn, SOURCE) и два ретривера без градиентов: BM25 по лексическому пересечению и RepSim по представлениям модели. Метрика Recall@N: доля правильных документов в верхушке выдачи.

Обвал при первом же усложнении

На Function Bindings при переходе от одного документа на факт к пятидесяти recall у TRAK падает с 0,88 до 0,07. EK-FAC держится лучше, но всё равно сползает с 0,70 до 0,45. Остальные градиентные методы проваливаются стабильно по всей сетке.

Лексические дистракторы добивают остатки. В этом режиме плотный и послойный TRAK показывают ровно 0,00, а EK-FAC, лучший из градиентных методов, 0,06. Все прочие держатся ниже 0,2. RepSim, который сравнивает представления последнего токена, выдаёт 0,00 и по метрике decoy AUC, то есть ставит поддельный документ выше настоящего.

На Rule Routings картина ещё хуже: ни один градиентный метод не превышает 0,35, а EK-FAC даёт 0,19 на уровне документа. Зато BM25, простой поиск по совпадению слов, выбивает 1,00. Авторы честно пишут, что это вскрывает дыру: явные лексические связи в тексте есть, но градиентные методы не умеют их извлечь.

Эффект разбавления

Самое интересное в работе это диагностика. Авторы смотрят не на счёт документа целиком, а на вклад каждого токена, и видят, что доказательство сильно локализовано. В документе, который действительно содержит факт, релевантны несколько токенов, чаще всего тот самый токен-ответ. Остальные двести с лишним токенов это фон.

Стандартный счёт устроен так: градиент функции потерь усредняется по всем токенам документа. Усреднение и есть ошибка. Сигнал нескольких токенов делится на длину документа и тонет в шуме.

Цифры на одном срезе (Grad-Dot, Function Bindings с дистракторами, пятьдесят документов на факт) выглядят как приговор методике. Усреднение по всем токенам под кросс-энтропией даёт recall 0,01: распределения правильных и посторонних документов полностью перекрываются. Если оставить только десять самых сильных токенов, recall поднимается до 0,30. Если сменить лосс на отрицательный лог-оддс, но оставить усреднение по документу, получается 0,35. А если сделать обе вещи сразу, распределения расходятся полностью и recall достигает 1,00.

Отдельный пример из Rule Routings показывает механику наглядно. Под кросс-энтропией наивысшие оценки внутри правильного документа достаются названиям предметов, никак не связанным с ответом, и документ занимает 1499-е место из 1500. Стоит перейти на отрицательный лог-оддс, и верхние позиции занимают токены исхода, те самые слова, которые совпадают с ответом на запрос. Тот же документ поднимается на 12-е место.

Разница в типах токенов измерима. При кросс-энтропии доля токена-ответа в топ-10 позиций составляет от 0,2 до 1,3 от его базовой частоты, то есть примерно ничего. При отрицательном лог-оддсе этот же токен обогащён от 5,1 до 11 раз, а никакой другой тип токенов не превышает 1,4.

Две ручки, которые почти никто не крутил

Авторы не предлагают новый оценщик. Они показывают, что два проектных решения в существующих методах выбраны по умолчанию и оба выбраны плохо.

Первое это лосс, градиент которого считается. Кросс-энтропия тянет оценки к служебным и предметным токенам. Отрицательный лог-оддс концентрирует их на токенах, которые действительно определяют ответ.

Второе это агрегация. Вместо среднего по документу можно взять среднее по k самым сильным токенам. Достаточно k от трёх до десяти.

Эффект по шести методам, у которых есть пословные вклады: прирост recall от 35 процентных пунктов у TrackStar до 72 у Grad-Dot, в среднем по трём задачам, всем уровням избыточности и размерам банка фактов. С десятком токенов Grad-Dot, EK-FAC и послойный TracIn выходят на почти идеальный recall на Function Bindings, включая режим с дистракторами. С ростом k качество плавно сползает обратно к полному усреднению, что и служит доказательством: лишние токены разбавляют сигнал.

Отдельная находка касается длины. Среднее по документу делит счёт на число токенов, а дистракторы в этом бенчмарке по двенадцать токенов против примерно 250 у настоящих документов. Короткие подделки выигрывают по определению, ровно поэтому среднее проваливается и под кросс-энтропией, и под лог-оддсом (0,05 и 0,18 у EK-FAC), тогда как сумма лог-оддсов работает (0,85 и 0,99). Выбор top-k этой проблемы лишён, пока k меньше самого короткого документа.

Третий результат бьёт по рецепту самого TRAK: вес Q = 1 минус средняя вероятность токенов ответа. На дистракторах этот вес обнуляет любой метод, потому что поддельные документы подогнаны плохо (Q от 0,17 до 0,20), а настоящие выучены наизусть (Q от 0,007 до 0,009). Вес ставит дистрактор первым для каждого запроса.

Проверка на настоящем бенчмарке

Синтетика вызывает законный вопрос: переносится ли это на реальные данные. Авторы берут FTRACE-TREX, где корпус собран из 484 408 предложений TREx, развёрнутых в 1,56 млн примеров, дообучают mT5-small на 300 млн параметров и отбирают 8 437 фактов, которые базовая модель не знала, а дообученная знает. Проверка честная: убрать документы, которые метод поставил выше всех, переобучить модель, измерить падение точности. Чем сильнее падение, тем лучше метод нашёл источник.

Отрицательный лог-оддс переносится. У TRAK падение точности на максимальном бюджете удаления растёт с 8% до 40%, то есть в 4,9 раза. У Grad-Dot с обеими правками с 7% до 23%. У EK-FAC, который и до правок был лучшим, с 30% до 46%, и это самое большое падение во всей таблице.

А вот отбор top-k на реальных данных почти ничего не добавляет: под лог-оддсом разница со счётом по всем токенам не превышает шести пунктов в любую сторону. Авторы объясняют это тем, что польза агрегации зависит от того, насколько широко распределён сигнал внутри конкретного документа.

Неудобная правда про BM25

Самая неприятная строка во всей работе это BM25. Он берёт 1,00 на Rule Routings, где документы делят с запросом слова свойств, и AUC 1,00 на Function Bindings. Простой поиск по словам обходит TRAK, EK-FAC, TrackStar и всё остальное, что строит гессианы и проекции градиентов.

Авторы не прячут это в сноску. Они пишут прямо: успех BM25 показывает, что явные фактические связи присутствуют в тексте, а градиентные методы не могут их извлечь. И добавляют, что их бенчмарк тем самым ставит задачу на будущее: нужны наборы, где поверхностное пересечение слов не работает как короткий путь.

Есть и второй сигнал того же рода. RepSim, который сравнивает представления последнего токена финального слоя, даёт 0,10 на Function Bindings и decoy AUC 0,00. Финальные представления сами по себе не содержат пригодного сигнала атрибуции, что бы ни говорила интуиция про «модель же как-то хранит знание».

Почему это выходит за пределы бенчмарка

В обсуждении авторы перечисляют применения атрибуции, где ошибка стоит дорого: защита авторских прав, справедливое распределение вознаграждения между источниками данных, трассировка выученной предвзятости. Отдельно упомянута работа про emergent misalignment, где узкий файнтюнинг порождает широко невыровненное поведение, и атрибуция нужна, чтобы найти, какие примеры это вызвали.

Вывод из их же данных неудобен для всех этих сценариев. Если причинное доказательство локализовано в нескольких токенах, то счёт на уровне документа может быть принципиально ненадёжным. Метод, который сегодня выдаёт красивый топ-10, завтра на корпусе с пересказами выдаст случайный порядок, и вы об этом не узнаете, потому что во всех случаях он возвращает ровно десять строк.

Есть и более тонкая ловушка, связанная с метриками. Плотный TRAK имеет AUC 0,80 при recall 0,36: он неплохо ранжирует документы в целом, но верхушку списка заполняет мусором. Если смотреть только на AUC, метод выглядит рабочим. Если нужен ответ на вопрос «какой документ убрать, чтобы модель разучила факт», он бесполезен.

Что делать, если вы считаете атрибуцию

Практических выводов четыре, и все они дешёвые. Меняйте лосс: градиент отрицательного лог-оддса вместо кросс-энтропии, это правка в одну формулу и она уже реализована в TRAK. Агрегируйте по верхушке: среднее по десяти сильным токенам вместо среднего по документу, с проверкой чувствительности к k. Не тащите вес Q на корпуса, где рядом с настоящими документами лежат короткие похожие тексты. И всегда держите рядом BM25 как контроль: если лексический бейзлайн обходит ваш метод, проблема не в данных.

Отдельно стоит помнить про цену. Пословные вклады методы и так считают, а потом выбрасывают усреднением, так что переход на top-k почти не добавляет вычислений. Дорого стоит другое: сама проверка через удаление и переобучение. В этой работе основной прогон занял 2 426 GPU-часов только на атрибуцию, без учёта переобучений на FTRACE-TREX с восемью seed.

Что осталось за кадром

Ограничения авторы перечисляют сами. Оценка идёт на предсказании одного токена, а не на длинных многошаговых генерациях. Обучение одно задаче, поэтому атрибуция в мультизадачном режиме не изучена. Top-k добавляет гиперпараметр, а в реальности нет сигнала, по которому его подбирать, нужен динамический порог. И синтетические задачи всё-таки имеют чистые лексические подсказки, из-за чего BM25 так хорошо и выглядит.

Тем не менее главный вывод держится на числах, а не на интерпретации. Атрибуция обученной модели это не поиск похожего текста и не вопрос к представлениям последнего слоя. Это поиск нескольких токенов, где модель действительно держит факт, и пока методы усредняют по документу, они ищут иголку, предварительно перемолов стог.

Частые вопросы

Что такое атрибуция данных в обучении LLM?

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

Почему усреднение по документу ухудшает поиск источника?

Потому что доказательство занимает несколько токенов, а среднее делит их вклад на длину всего документа. В эксперименте на 250 токенов сигнал десяти полезных позиций размывался настолько, что recall падал до 0,01, тогда как отбор только этих десяти токенов давал 0,30.

Можно ли использовать такой метод как доказательство в споре об авторских правах?

Осторожно. Работа показывает, что счёт на уровне документа ненадёжен, когда причинное доказательство локализовано, а именно так чаще всего и бывает. Для юридического аргумента нужен пословный разбор плюс контрольный прогон на удаление и переобучение, а не один топ-10 из чёрного ящика.

Итог

Атрибуция данных LLM упирается не в качество оценщика, а в две строчки, которые все копируют из статьи в статью: кросс-энтропийный градиент и усреднение по документу. Замена лосса на отрицательный лог-оддс и агрегация по десяти сильным токенам дают от 35 до 72 процентных пунктов recall на контролируемом стенде и до 4,9 раза более сильное падение точности после удаления документов на FTRACE-TREX. Код, корпуса CATT и адаптеры авторы выложили открыто, так что проверить это на своих данных можно без переписывания пайплайна.

Если вы прямо сейчас пользуетесь influence functions, чтобы объяснить поведение модели, начните с одного вопроса: что ваш метод делает с документом длиной 250 токенов, где полезны десять. Ответ на него важнее, чем ещё один слой гессиана.

← Все записи