Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge. — AI на vc.ru

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge. — AI на vc.ru

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge.

Представьте: вы потратили недели на тонкую настройку модели, вложили бюджет в размеченные данные, запускаете тестирование... и понимаете, что для объективной оценки ответов вам снова нужны люди. Знакомая боль? Ручная оценка - это бутылочное горлышко, которое душит скорость разработки современного AI. Но что, если судьёй выступит сам AI?

Метод LLM-as-a-Judge (LLM в роли судьи) - это не просто модный термин с хайповых конференций. Это фундаментальный сдвиг в парадигме разработки, который позволяет использовать языковые модели для оценки качества текстов, сгенерированных другими моделями (или даже ими же) .

В этой статье мы разберем, как работает этот подход, почему исследователи из UC Berkeley сравнили его с человеческим уровнем, где он безбожно проваливается (спойлер: в медицине и логике), и как собрать собственного "AI-судью" с помощью Spring AI.

Почему BLEU и ROUGE больше не работают?

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge.

Долгое время индустрия жила на метриках вроде BLEU и ROUGE. Они хороши для машинного перевода или суммаризации, где есть эталонный текст. Но как они оценят диалогового ассистента? Если модель ответила вежливо, развернуто и с юмором, а BLEU показывает низкое совпадение с «эталонным» скучным ответом - это проблема метрики, а не модели.

Люди - золотой стандарт, но они медленные, дорогие и, что хуже всего, непоследовательные. Два эксперта могут не согласиться друг с другом в 20% случаев .

И тут на сцену выходит GPT и его последователи. Исследователи заметили интересный эффект: оценивать - проще, чем генерировать. Если дать модели четкие критерии, она способна вынести вердикт не хуже человека-эксперта.

Главное открытие: Судья VS Человек

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge.

В 2023 году провели масштабное исследование «Judging LLM-as-a-Judge», которое стало библией подхода. Они сравнили вердикты GPT с мнениями людей на бенчмарке.

Результат: GPT-4 показал ~80% совпадение с человеческими оценками. Это сопоставимо с уровнем согласия между самими людьми . Проще говоря, если два человека согласны друг с другом, то GPT-4 согласен с ними в 80% случаев. Это стало «зеленым светом» для автоматизации.

Три лика правосудия: Методики оценки

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge.

LLM может выступать в разных ролях в зале суда:

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge.

  1. Судья единоличный (Прямая оценка): Модели дают один ответ и просят поставить оценку по шкале (например, от 1 до 10) за «точность», «ясность» или «эмпатию» .
  2. Состязательный процесс (Парное сравнение): Классика A/B тестирования. Модель получает два ответа (Ответ А и Ответ Б) на один запрос и выбирает лучший. Это самый популярный метод, так как сравнивать два объекта всегда проще, чем давать абсолютную оценку .
  3. Суд присяжных (LLM Jury): Чтобы избежать предвзятости одной модели, создают комитет из разных LLM (например, Claude, Gemini, Llama). Они голосуют, а результаты усредняются . Amazon в своих решениях использует именно такой подход, отмечая, что межмодельное согласие может достигать 91% .

Темная сторона силы: Смещения и уязвимости

Однако называть LLM беспристрастным слугой Фемиды пока рано. У этих судей есть врожденные когнитивные искажения (bias), которые подтверждены экспериментально.

Главные грехи AI-судей

  • Склонность к многословности (Verbosity Bias): Модель склонна считать более длинный и детальный ответ лучшим, даже если в нём просто «вода» и повторы. Она путает количество с качеством .
  • Эффект порядка (Positional Bias): Если в парном сравнении первым стоит Ответ А, модель чаще выберет его. Решение банальное - всегда рандомизировать порядок ответов перед отправкой на оценку
  • Самолюбование (Self-Enhancement Bias): GPT-5 будет выше оценивать ответы GPT-4, чем ответы Llama, просто потому что они «одной крови» .

Уязвимость к атакам

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge.

Самый тревожный звоночек прозвенел из лабораторий МГУ и Kaggle. Исследователи научились взламывать AI-судей.В работе «Investigating the Vulnerability of LLM-as-a-Judge Architectures to Prompt-Injection Attacks» было показано, что с помощью специально сконструированных суффиксов (Greedy Coordinate Gradient) можно заставить судью принять неверное решение .

  • CUA (Comparative Undermining Attack): Атака напрямую на вердикт. Успешность атаки (ASR) превышает 30% .
  • JMA (Justification Manipulation Attack): Атака на объяснение. Судья может вынести правильный вердикт, но обосновать его абсурдными доводами.

А на соревнованиях Kaggle хакеры добились успешности атак до 73.8% на некоторые модели, используя метод Contextual Misdirection . Это значит, что если пользователь захочет «обмануть» систему модерации на базе LLM-as-a-Judge, у него есть все шансы это сделать.

Особый случай: Медицина и языки

Самое интересное и пугающее - это применение метода в высокорисковых областях. Исследование на платформе medRxiv сравнило пять LLM-судей и шесть реальных врачей при оценке ответов для руандийских медработников .

Выводы неутешительны:

  1. Языковой барьер: Даже топовые модели (Claude-4.1-Opus) показали человеческий уровень только по 4 из 11 критериев. При переходе с английского на язык киньяруанда качество оценки падало катастрофически.
  2. Строгость/Мягкость: GPT-5 оказался «строгим судьей» (занижал оценки), а Gemini-2.5-Pro — «либералом» (завышал).
  3. Культурный контекст: Модели плохо понимают местные особенности и реалии, которые для врача очевидны.

Как построить свой суд: Практика на Spring AI

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge.

Хватит теории. Как инженеры, мы хотим код. Современные фреймворки, такие как Spring AI, предлагают элегантные способы встраивания LLM-судей в пайплайн с помощью рекурсивных советников (Recursive Advisors) .

Идея проста: генерируем ответ -> оцениваем -> если оценка низкая, генерируем снова с учетом фидбека.

Вот как выглядит реализация паттерна Self-Refine (самоулучшение) на Java. Мы создаем Advisor, который будет автоматически переспрашивать модель, пока качество не достигнет нужного уровня.

Пример: SelfRefineEvaluationAdvisor

Концепция кода ниже демонстрирует ключевую логику: у нас есть цикл, в котором после каждого ответа вызывается модель-судья (отдельная, чтобы избежать bias), и если рейтинг ниже порога, в промпт добавляется фраза: "Предыдущий ответ получил такую-то критику, исправь это".


public final class SelfRefineEvaluationAdvisor implements CallAdvisor {

    // Шаблон промпта для судьи (взят из практики Spring AI)
    private static final PromptTemplate DEFAULT_EVALUATION_PROMPT_TEMPLATE = new PromptTemplate(
        """
        You will be given a user_question and assistant_answer couple.
        Your task is to provide a 'total rating' scoring how well the assistant_answer answers the user concerns.
        Give your answer on a scale of 1 to 4, where 1 means terrible, and 4 means excellent.
        
        Provide your feedback as JSON: { "rating": 0, "evaluation": "...", "feedback": "..." }
        
        Question: {question}
        Answer: {answer}
        Evaluation:
        """);

    @Override
    public ChatClientResponse adviseCall(ChatClientRequest request, CallAdvisorChain chain) {
        var currentRequest = request;
        ChatClientResponse response = null;

        for (int attempt = 1; attempt <= maxRepeatAttempts + 1; attempt++) {
            // 1. Вызываем основную модель для получения ответа
            response = chain.copy(this).nextCall(currentRequest);

            // 2. Вызываем МОДЕЛЬ-СУДЬЮ для оценки ответа
            EvaluationResponse evaluation = this.evaluate(request, response);

            // 3. Если оценка проходная (>=4), возвращаем ответ
            if (evaluation.rating() >= this.successRating) {
                return response;
            }

            // 4. Если попытки кончились, отдаем последний ответ (пусть и плохой)
            if (attempt > maxRepeatAttempts) {
                return response;
            }

            // 5. Добавляем фидбек от судьи в промпт для следующей попытки
            currentRequest = this.addEvaluationFeedback(request, evaluation);
        }
        throw new IllegalStateException();
    }
}

Почему это круто?

  • Рекурсия: Советник вызывает сам себя (chain.copy(this)), создавая итеративный процесс без блокировки потока исполнения.
  • Отдельный Судья: Для оценки используется другая модель (например, специализированная flowaicom-flow-judge через Ollama), чтобы основная модель не хитрила и не подстраивалась под свои слабые места .
  • Структурированный вывод: Ответ судьи парсится не как текст, а как Java-объект EvaluationResponse (благодаря chatClient.call().entity()), что удобно для бизнес-логики.

Вместо заключения: Судейская коллегия настоящего

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge.

LLM-as-a-Judge - это уже не эксперимент, а обязательный инструмент в арсенале инженера. Без него невозможно:

  1. Быстро сравнивать версии моделей при fine-tuning'е;
  2. Отсеивать галлюцинации в RAG-пайплайнах в реальном времени;
  3. Строить системы автоматического улучшения промптов.

Однако, как и в реальном правосудии, полагаться на одного судью рискованно. Будущее за гибридными подходами:

  • LLM Juries (коллегии присяжных) для сложных случаев .
  • Градиентная калибровка, где маленькие специализированные модели (например, на 3B параметров) берут на себя 80% простых рутинных оценок, а тяжеловесы вроде GPT-5 подключаются только при возникновении сомнений (подход trust or escalate) .
  • Кросс-валидация с помощью автоматических метрик (BERTScore) для фактологических задач .

Метод LLM-as-a-Judge открывает нам путь к созданию по-настоящему автономных AI-систем, которые не только генерируют контент, но и критически оценивают его качество. Это большой шаг на пути к AGI, где модель становится сама себе и судьей, и критиком.

Судья, присяжные и палач: Как LLM учатся оценивать самих себя и заменяют людей в AI-разработке. LLM-as-a-Judge.