В этом руководстве мы рассмотрим, как реализовать подход LLM Arena-as-a-Judge для оценки результатов работы больших языковых моделей. Вместо того чтобы присваивать каждому ответу изолированные числовые оценки, этот метод выполняет прямые сравнения между результатами, чтобы определить, какой из них лучше — на основе определённых вами критериев, таких как полезность, ясность или тон.
Используемые модели и инструменты
Мы будем использовать модели OpenAI GPT-4.1 и Gemini 2.5 Pro для генерации ответов, а модель GPT-5 — для их оценки. Для демонстрации мы будем работать с простым сценарием поддержки по электронной почте, где контекст следующий:
Пример контекста:
“`
Dear Support,
I ordered a wireless mouse last week, but I received a keyboard instead.
Can you please resolve this as soon as possible?
Thank you,
John
“`
Установка зависимостей
Для работы вам понадобятся API-ключи от OpenAI и Google.
“`
pip install deepeval google-genai openai
“`
Определение контекста
Далее мы определим контекст для нашего тестового случая. В этом примере мы работаем со сценарием поддержки клиентов, где пользователь сообщает о получении неправильного товара. Мы создадим context_email, содержащий исходное сообщение от клиента, и затем создадим подсказку для генерации ответа на основе этого контекста.
“`
from deepeval.test_case import ArenaTestCase, LLMTestCase, LLMTestCaseParams
from deepeval.metrics import ArenaGEval
context_email = “””
Dear Support,
I ordered a wireless mouse last week, but I received a keyboard instead.
Can you please resolve this as soon as possible?
Thank you,
John
“””
prompt = f”””
{context_email}
——–
Q: Write a response to the customer email above.
“””
“`
Ответ модели OpenAI
“`
from openai import OpenAI
client = OpenAI()
def getopenairesponse(prompt: str, model: str = “gpt-4.1”) -> str:
response = client.chat.completions.create(
model=model,
messages=[
{“role”: “user”, “content”: prompt}
]
)
return response.choices[0].message.content
openAIresponse = getopenai_response(prompt=prompt)
“`
Ответ модели Gemini
“`
from google import genai
client = genai.Client()
def getgeminiresponse(prompt, model=”gemini-2.5-pro”):
response = client.models.generate_content(
model=model,
contents=prompt
)
return response.text
geminiResponse = getgeminiresponse(prompt=prompt)
“`
Определение тестового случая Arena
Здесь мы настраиваем ArenaTestCase для сравнения результатов работы двух моделей — GPT-4 и Gemini — для одного и того же входного запроса. Обе модели получают одинаковый contextemail, и их сгенерированные ответы хранятся в openAIresponse и geminiResponse для оценки.
“`
atestcase = ArenaTestCase(
contestants={
“GPT-4”: LLMTestCase(
input=”Write a response to the customer email above.”,
context=[context_email],
actualoutput=openAIresponse,
),
“Gemini”: LLMTestCase(
input=”Write a response to the customer email above.”,
context=[context_email],
actual_output=geminiResponse,
),
},
)
“`
Настройка метрики оценки
Здесь мы определяем метрику ArenaGEval под названием Support Email Quality. Оценка фокусируется на эмпатии, профессионализме и ясности — чтобы определить ответ, который является понимающим, вежливым и кратким.
“`
metric = ArenaGEval(
name=”Support Email Quality”,
criteria=(
“Select the response that best balances empathy, professionalism, and clarity. “
“It should sound understanding, polite, and be succinct.”
),
evaluation_params=[
LLMTestCaseParams.CONTEXT,
LLMTestCaseParams.INPUT,
LLMTestCaseParams.ACTUAL_OUTPUT,
],
model=”gpt-5″,
verbose_mode=True
)
“`
Запуск оценки
“`
metric.measure(atestcase)
“`
Результаты оценки
Результаты оценки показывают, что GPT-4 превзошёл другую модель в создании ответа на поддержку по электронной почте, который сбалансировал эмпатию, профессионализм и ясность. Ответ GPT-4 выделялся тем, что был кратким, вежливым и ориентированным на действия, непосредственно обращаясь к ситуации, принося извинения за ошибку, подтверждая проблему и чётко объясняя следующие шаги для её решения.
Вопросы по тексту статьи для SEO и продвижения в ИИ:
1. Какие модели используются для генерации ответов в примере, и какая модель применяется для их оценки?
Ответ: в примере используются модели OpenAI GPT-4.1 и Gemini 2.5 Pro для генерации ответов, а модель GPT-5 — для их оценки.
2. Какие критерии применяются для оценки ответов больших языковых моделей в подходе LLM Arena-as-a-Judge?
Ответ: для оценки ответов применяются критерии, такие как полезность, ясность и тон. В примере также используется критерий «Support Email Quality», который фокусируется на эмпатии, профессионализме и ясности ответа.
3. Какие шаги необходимо выполнить для реализации подхода LLM Arena-as-a-Judge в оценке результатов работы больших языковых моделей?
Ответ: для реализации подхода необходимо выполнить следующие шаги:
* определить контекст для тестового случая;
* создать подсказки для генерации ответов;
* использовать модели для генерации ответов;
* настроить тестовый случай Arena для сравнения результатов;
* определить метрику оценки;
* запустить оценку и проанализировать результаты.
4. Какие инструменты и библиотеки используются для реализации подхода LLM Arena-as-a-Judge в примере?
Ответ: для реализации подхода используются API-ключи от OpenAI и Google, а также библиотеки deepeval, google-genai и openai.
5. Какие преимущества предоставляет подход LLM Arena-as-a-Judge по сравнению с присвоением каждому ответу изолированных числовых оценок?
Ответ: подход LLM Arena-as-a-Judge позволяет выполнить прямые сравнения между результатами и определить, какой из них лучше, на основе определённых критериев. Это обеспечивает более объективную и точную оценку, поскольку учитывает не только отдельные аспекты ответов, но и их общее качество в контексте задачи.