Перейти к контенту

AnoLLM: Дообучение LLM для обнаружения аномалий в табличных финансовых данных

· 6 мин чтения
Mike Thrift
Mike Thrift
Marketing Manager

Статья об обнаружении аномалий с помощью LLM без предварительного обучения (zero-shot), которую я прочитал два дня назад (arXiv:2406.16308), показала, что GPT-4 может выявлять табличные выбросы без всякой подготовки, не уступая классическим базовым методам, таким как ECOD, на бенчмарке ODDS. Но у этого подхода была очевидная слабость: просьба к модели вывести список индексов аномальных строк ненадежна — опенсорсные модели регулярно галлюцинируют индексами, выходят за пределы диапазона или помечают каждую строку как подозрительную. AnoLLM, представленная на ICLR 2025 Че-Пин Цаем, Ганью Тенгом, Филлипом Уоллисом и Вэй Дином из Amazon, устраняет эту проблему, одновременно показывая отличные результаты на наборах данных смешанного типа, где чисто числовые базовые модели начинают давать сбои.

Статья

2026-06-24-anollm-llm-fine-tuning-tabular-anomaly-detection

AnoLLM переосмысляет обнаружение аномалий в таблицах как оценку плотности вероятности языковой моделью, а не как классификацию через промпты. Вместо того чтобы просить LLM назвать подозрительные строки, авторы дообучают (fine-tune) предобученную языковую модель на сериализованных тренировочных строках из основного распределения (нормальных), а затем оценивают каждую тестовую строку по ее отрицательному логарифмическому правдоподобию (NLL) в рамках изученного распределения. Строка, которая совсем не похожа на тренировочное распределение, получает высокий показатель NLL — это и есть оценка аномальности. Никаких форматов индексов, никакого парсинга вывода, никакой хрупкой экстракции через регулярные выражения.

Сериализация преобразует каждую строку таблицы в строку на естественном языке с именами признаков и их значениями. Для текстовых столбцов NLL нормализуется по столбцам, чтобы избежать смещения из-за длины, иначе более длинные описания механически накапливали бы более высокие штрафы вероятности. Для числовых и категориальных столбцов сырой NLL на уровне токенов суммируется по всему полю. Модель дообучается в полуавтоматическом режиме (semi-supervised) — в обучение попадают только строки с меткой «нормально» — до 2000 шагов с использованием распределенного обучения на GPU.

Ключевые идеи

  • Проблема формата вывода: предыдущие подходы с предсказанием индексов требуют от LLM надежного вывода индексов аномальных строк из пакета данных. Модели семейства Llama часто привязывают неверные индексы к значениям, генерируют индексы за пределами размера пакета или просто перечисляют все подряд как аномалию. NLL полностью обходит эту проблему.
  • AnoLLM достигает наилучшей производительности на шести эталонных наборах данных со смешанными типами признаков, включая обнаружение мошенничества в автостраховании и наборы данных о мошенничестве в электронной коммерции с Kaggle.
  • На 30 преимущественно числовых наборах данных бенчмарка ODDS AnoLLM работает на уровне лучших классических базовых моделей — не явно лучше, а просто конкурентоспособно.
  • Нормализация NLL по столбцам для текстовых признаков — это небольшое, но критически важное инженерное решение: без него описание транзакции из тридцати токенов доминировало бы в оценке над двузначной суммой, что является неверным индуктивным смещением.
  • Контекст базового обучения: zero-shot подход GPT-4 (arXiv:2406.16308) достигает среднего AUROC 74.1 на ODDS, что сопоставимо с ECOD (75.5) и KNN (70.7). Преимущество AnoLLM проявляется именно на наборах данных, где текстовые и категориальные признаки несут значимый сигнал об аномалии.

Что подтверждается, а что — нет

Основная идея NLL здравая. Использование дообученной языковой модели в качестве оценщика плотности над сериализованными строками принципиально верно, и оно естественным образом обрабатывает совместное распределение всех столбцов одновременно — то, что классические детекторы без учителя, применяемые столбец за столбцом, не могут сделать чисто. Исправление проблемы с предсказанием индексов действительно полезно, а сравнение с zero-shot базой выглядит честным.

Меня беспокоит разрыв между затратами и выгодой, о котором в статье сообщается недостаточно подробно. AnoLLM требует дообучения и обслуживания LLM для инференса — это существенные инфраструктурные обязательства по сравнению с запуском ECOD или IsolationForest на CPU за считанные секунды. На бенчмарке ODDS (чисто числовом) AnoLLM лишь «на уровне», но не лучше. Таким образом, аргументы в пользу AnoLLM лежат исключительно в плоскости смешанных типов данных, где шесть оцененных наборов данных взяты из задач по обнаружению мошенничества на Kaggle. Шесть датасетов — это тонкий эмпирический фундамент для сильной рекомендации, особенно учитывая, что наборы данных с Kaggle, как правило, имеют чистые схемы, фиксированную семантику столбцов и известную истину (ground truth) — все то, чего часто не хватает реальным данным из журналов учета (ledger data).

Проблема порядка столбцов также остается открытой. CausalTAD (arXiv:2602.07798) немедленно выявила этот пробел: AnoLLM сериализует столбцы в произвольном порядке, игнорируя причинно-следственные связи между полями. Для структурированных данных с известными причинно-следственными цепочками — например, тип счета влияет на допустимые диапазоны транзакций, которые влияют на ожидаемого контрагента — это реальное ограничение. CausalTAD формулирует переупорядочивание как задачу линейного упорядочивания и сообщает о стабильном улучшении по сравнению с AnoLLM на более чем 30 наборах данных. То, что этот пробел существовал и был так быстро обнаружен, наводит на мысль, что дизайн сериализации в AnoLLM не был до конца продуман.

Существует также вопрос масштабируемости, который в статье не рассматривается: при каком объеме нормальных обучающих примеров дообучение LLM становится выгоднее, чем, скажем, табличная модель глубокого обучения, обученная непосредственно на числовых признаках? Для личных журналов Beancount с несколькими тысячами записей стоимость вычислений может легко перекрыть любой выигрыш в точности.

Почему это важно для финансового ИИ

Записи в журнале Beancount — это именно тот тип смешанных данных, на который нацелена AnoLLM: суммы (числовые), названия счетов (структурированный текст), получатель/описание (произвольный текст), теги (категориальные), даты (структурированные). Одна строка вида 2024-03-15 * "AWS" "Cloud invoice" Assets:Checking -$2,400 кодирует информацию по всем этим типам одновременно. Классические детекторы аномалий здесь пасуют, потому что им нужна отдельная обработка для каждого типа столбцов, и они теряют корреляции между ними — совместный паттерн того, что счета от "AWS" должны быть в определенном диапазоне и списываться с конкретного счета.

Подход NLL в AnoLLM, в принципе, должен выучить эти совместные паттерны из обычных исторических записей и помечать отклонения в любой комбинации столбцов. Это потенциально полезнее, чем проверки на основе правил (JETs) или статистические тесты одного столбца.

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

Что почитать дальше

  • CausalTAD (arXiv:2602.07798) — напрямую улучшает AnoLLM, внедряя причинно-следственный порядок столбцов; самое актуальное продолжение темы.
  • AD-LLM: Benchmarking Large Language Models for Anomaly Detection (arXiv:2412.11142, ACL Findings 2025) — предоставляет систематическую многопарадигмальную оценку, которой не хватает в статьях по отдельным методам.
  • "Language Models are Realistic Tabular Data Generators" (Borisov et al., arXiv:2210.06280, ICLR 2023) — модель BE-GREAT, которую AnoLLM использует в качестве базы; ее понимание проясняет, что именно AnoLLM улучшает помимо предсказания индексов.