В этом руководстве мы рассмотрим, как реализовать подход 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 позволяет выполнить прямые сравнения между результатами и определить, какой из них лучше, на основе определённых критериев. Это обеспечивает более объективную и точную оценку, поскольку учитывает не только отдельные аспекты ответов, но и их общее качество в контексте задачи.