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

Zero-Shot обнаружение аномалий с помощью LLM: Как GPT-4 справляется с табличными данными

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

Статья об AuditCopilot, которую я прочитал в прошлом месяце, оценивала LLM в обнаружении мошенничества в бухгалтерских проводках путем дообучения на размеченных данных об аномалиях. С тех пор мне было любопытно, может ли zero-shot промптинг обеспечить аналогичный результат — без размеченных аномалий и специфического для предметной области дообучения. Именно это обещает работа «Обнаружение аномалий в табличных данных с помощью LLM» (Anomaly Detection of Tabular Data Using LLMs) авторов Li, Zhao, Qiu, Kloft, Smyth, Rudolph и Mandt (arXiv:2406.16308), представленная на воркшопе в середине 2024 года. Основной результат — GPT-4 не уступает классическим трансдуктивным методам, таким как ECOD — звучал почти слишком хорошо, поэтому я изучил статью внимательно.

О статье

2026-06-21-anomaly-detection-tabular-data-llms

Основная идея заключается в том, что авторы называют обнаружением аномалий «на уровне пакета» (batch-level). Вместо обучения модели на тренировочных данных с последующей оценкой тестовых точек по отдельности, вы представляете LLM пакет из N строк во время инференса и просите ее определить, какие строки являются аномальными по отношению к другим в том же пакете. Аномалии в любом пакете встречаются редко, поэтому достаточно мощная модель должна неявно распознать основной паттерн и пометить выбросы. Никакого переобучения, никаких размеченных примеров — только предобученные знания LLM о мире и контекстное рассуждение.

Оценка проводится на бенчмарке ODDS, состоящем из 32 датасетов и являющемся стандартной коллекцией реальных задач по обнаружению аномалий в табличных данных. Из-за ограничений контекстного окна каждый оцениваемый пакет ограничен 150 строками и 10 столбцами. Признаки сериализуются по одному измерению за раз с использованием шаблона «Data i is x_i.», и LLM предлагается назвать индексы аномалий для каждого измерения в отдельности; итоговая оценка аномальности строки агрегирует количество измерений, в которых она была помечена.

Для проприетарных моделей тестировался режим zero-shot. Для моделей с открытым исходным кодом (Llama2-7B, Llama2-70B, Mistral-7B) производительность в режиме zero-shot оказалась низкой, поэтому авторы также предложили дообучение на синтетическом датасете из 5000 пакетов, сгенерированных на основе смесей гауссиан и категориальных распределений — реальная разметка аномалий не требовалась. Дообученные варианты получили названия Llama2-AD и Mistral-AD.

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

  • GPT-4 в режиме zero-shot достигает среднего AUROC 74,1 на 32 датасетах ODDS, по сравнению с 75,5 у ECOD (лучший классический базовый уровень) и 70,7 у KNN. GPT-3.5 отстает с результатом 68,3.
  • Llama2-7B в режиме zero-shot набирает всего 51,1 — что практически соответствует случайному угадыванию — но дообучение на синтетических данных поднимает результат до 60,0 (+8,9 пункта). Mistral-7B улучшается с 62,4 до 69,1 (+6,7 пункта).
  • Концепция «на уровне пакета» — интересный ход: LLM выступает как неявный оценщик плотности распределения в пакете, а не как дискриминатор, обученный разделять классы.
  • Для дообучения используется LoRA только на синтетических гауссовых и категориальных данных — реальные аннотации аномалий не нужны. Это значимое практическое преимущество, если метод хорошо обобщается.
  • Парсинг вывода для моделей с открытым кодом затруднен; авторы применяют грамматические ограничения и регулярные выражения для извлечения индексов аномалий.

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

Охват бенчмарка — самая большая проблема. В статье проводится сравнение только с двумя классическими базовыми алгоритмами: KNN и ECOD. Полностью отсутствуют Isolation Forest, LOF, One-Class SVM и любые глубокие методы обнаружения аномалий. ECOD оказывается сильным базовым алгоритмом на ODDS, но GPT-4 явно не побеждает его (74,1 против 75,5), как и Mistral-AD (69,1). На фоне более широкого набора алгоритмов положение GPT-4 не столь очевидно.

Ограничение в 150 строк / 10 столбцов также является серьезным фактором, который в статье не рассматривается должным образом. Реальные бухгалтерские книги содержат тысячи транзакций и гораздо больше признаков. Тестирование того, масштабируется ли пакетный подход — или он деградирует из-за того, что аномалии становится труднее отличить в больших пакетах с более разнообразными паттернами — не проводилось.

Показатели дисперсии вызывают беспокойство. GPT-3.5 на датасете breastw показывает AUROC 63,1 ± 34,4. Этот метод нельзя внедрять, когда один запуск может дать результат от 30 до 98. У GPT-4 разброс меньше (98,7 ± 0,5 на breastw), но на других датасетах наблюдается аналогичная вариативность.

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

Последующая литература подтверждает эти опасения. Работа AnoLLM (ICLR 2025) от Amazon Science использует другой подход: вместо запроса индексов аномалий, она дообучает LLM моделировать распределение данных и использует отрицательное логарифмическое правдоподобие в качестве оценки аномальности, полностью избегая хрупкого парсинга вывода. CausalTAD (arXiv:2602.07798, февраль 2026) выявляет еще один пробел, общий для этой статьи и AnoLLM: порядок столбцов при сериализации случаен, что игнорирует причинно-следственные связи между признаками. Переупорядочивание столбцов с учетом причинно-следственной структуры улучшает средний AUC-ROC с ~0,80 до 0,83 на шести бенчмарках.

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

Несмотря на свои ограничения, направление zero-shot действительно интересно для обнаружения аномалий в гроссбухах Beancount. Статья про AuditCopilot требовала дообучения на размеченных примерах аномалий, которые трудно получить на практике, поскольку реальные случаи мошенничества редки, конфиденциальны, а их разметка требует экспертов-бухгалтеров. Метод синтетического дообучения в статье (Llama2-AD, Mistral-AD) обходит это: вы генерируете реалистичные пакеты транзакций с искусственными аномалиями и проводите дообучение, не касаясь реального гроссбуха.

Механизм «на уровне пакета» естественно ложится на то, как на самом деле думают бухгалтеры: «какие записи в транзакциях этого месяца выглядят необычно по сравнению с остальными?». В этом и заключается интуиция проверки проводок при аудите. Проблема в том, что реальные аномалии в гроссбухах многомерны — платеж может быть нормальным по сумме, но необычным по времени, контрагенту и сочетанию счетов. Независимый запрос по каждому признаку, как это делается в статье, не выявит такие случаи.

Я хотел бы увидеть версию этого подхода, где вся строка эмбеддится и оценивается целиком — ближе к тому, что делает AnoLLM с моделированием распределения — применительно к реалистичной выборке данных транзакций Beancount. Идея синтетического дообучения заслуживает серьезного изучения; генерация синтетических пакетов гроссбуха Beancount с внедренными аномалиями (неверные счета, дублирующиеся записи, неправдоподобные суммы) проста, а дообучение 7B-модели на них может создать полезного zero-shot аудитора без необходимости в реальных размеченных данных.

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

  • AnoLLM: Large Language Models for Tabular Anomaly Detection — ICLR 2025, OpenReview ID 7VkHffT5X2; прямое продолжение этой работы, использующее оценку на основе правдоподобия вместо предсказания индексов по промпту.
  • CausalTAD: Injecting Causal Knowledge into Large Language Models for Tabular Anomaly Detection — arXiv:2602.07798; устраняет пробел в порядке столбцов, согласовывая сериализацию с причинно-следственной структурой.
  • AD-LLM: Benchmarking Large Language Models for Anomaly Detection — arXiv:2412.11142, ACL Findings 2025; более широкий бенчмарк, охватывающий задачи обнаружения аномалий в NLP, полезный для понимания того, где LLM уже надежны, а где нет в качестве детекторов аномалий.