Материал подготовлен автоматически по первоисточникам: ссылки на них — в конце статьи.
dattri-LLM позволяет связать поведение LLM с отдельными примерами, на которых её обучали. В препринте, который не проходил рецензирование и приводит замеры самих авторов, библиотека в среднем работала в 3,2 раза быстрее ближайшего конкурента. Подход можно встроить в существующий конвейер, не переписывая цикл обучения и распределённую инфраструктуру.
Один градиент хранится в двух точных формах
Атрибуция обучающих данных оценивает, как конкретный пример повлиял на ответ модели. Её применяют, чтобы искать источники ошибок, отбирать данные для дообучения и оценивать полезность наборов данных.
Масштабируемые методы обычно сравнивают градиент целевого ответа с градиентами отдельных обучающих примеров. Градиент показывает, как пример изменил бы параметры модели. Для LLM прямое хранение таких объектов обходится дорого: один градиент может содержать миллиарды значений.
dattri-LLM представляет градиент линейного слоя двумя способами. Материализованная форма хранит готовую плотную матрицу того же размера, что и веса слоя. Факторизованная форма сохраняет входные активации и градиенты на выходе слоя, из которых исходная матрица восстанавливается точно.
Факторизованная форма обычно выгоднее для широких слоёв и коротких последовательностей. Она позволяет сравнивать градиенты, не создавая полную матрицу весов. Однако стоимость такого сравнения растёт квадратично с длиной последовательности, поэтому на длинном контексте или при большом числе сравнений плотная форма может оказаться дешевле.
Библиотека оценивает число операций отдельно для каждого слоя и каждого действия, а затем выбирает подходящую форму. Маршрут можно менять между проекцией, вычислением скалярных произведений и предварительной обработкой градиента. Сам выбор формы не вносит приближения: оно появляется только тогда, когда команда сознательно сокращает размерность случайной проекцией.
Градиенты перехватываются внутри обычного цикла обучения
Открытый интерфейс HookManager ставит перехватчики автоматического дифференцирования PyTorch на выбранные слои. Когда существующий код вызывает backward(), библиотека получает составляющие градиента для каждого примера. Вызов обучения достаточно поместить в контекстный менеджер — менять оптимизатор, конфигурацию тренера и тело цикла не требуется.
Авторы подключили этот механизм к HuggingFace Trainer, TRL и OLMo. Тот же путь работает с DDP и FSDP, поэтому сбор градиентов не требует отдельной реализации для одного GPU, распределённого обучения и полного разделения параметров между устройствами.
Собранные градиенты можно сразу передать методу атрибуции или сохранить и повторно использовать для других запросов. Это отделяет дорогой проход по обучающим данным от экспериментов со способом оценки: TracIn, K-FAC, EK-FAC и методы на основе траектории оптимизации получают общий поток градиентов.
Для операций во время обучения предусмотрены обратные вызовы. В показанном примере модуль сравнивает текущие данные с целевым градиентом и перед шагом оптимизатора убирает вклад примеров с низкой оценкой. Так онлайн-отбор данных подключается к готовому циклу как расширение, а не как отдельный тренер.
Командам стоит менять слой измерений, а не стек обучения
Главный практический результат — атрибуцию можно проектировать как независимый слой между PyTorch и конкретным методом оценки. Это снижает цену эксперимента для команды, у которой уже работают HuggingFace Trainer, TRL, DDP или FSDP: не нужно выбирать другой тренер только ради анализа обучающих данных.
В одинаковых условиях dattri-LLM показала среднее ускорение в 3,2 раза относительно самой быстрой конкурирующей библиотеки в каждой проверенной конфигурации. Несколько методов атрибуции запустили на модели со 110 млрд параметров на четырёх GPU H200. Эти результаты относятся к проверенным сочетаниям методов, проекций и оборудования, а не обещают такое же ускорение для любого конвейера.
Отдельная проверка показала, что интерфейс подходит не только для анализа после обучения. При дообучении через LoRA послойный отбор данных снизил итоговую перплексию с 6,31 до 4,87; меньшая перплексия означает, что модель увереннее предсказывает целевые данные. Эксперимент воспроизводит уже известный алгоритм отбора и прежде всего проверяет, что его можно перенести в общий интерфейс.
Границы замеров заданы моделями Qwen и Pythia, несколькими семействами градиентной атрибуции и сравнением с LogIX, Kronfluence и Bergson. Авторы также проверяли точность оценок относительно переобучения без отдельных примеров и измеряли расход памяти при фиксированных ресурсах.
Для архитектурного плана работа предлагает ясное разделение: один модуль перехватывает и кэширует градиенты, другой считает влияние, третий действует во время обучения. Но привязывать сроки продукта к новой библиотеке рано: в работе официальный выпуск кода поставлен в зависимость от принятия статьи. До этого дизайн можно использовать как ориентир для прототипа, а не как гарантированную производственную зависимость.
Источники
Похоже на вашу задачу?
Расскажите, что собираете. За полчаса разложим на этапы и назовём сроки — это бесплатно и ни к чему не обязывает.



