Getting Started with MLFlow for LLM Evaluation
В современном мире автоматизации бизнеса и управления данными, использование больших языковых моделей (LLMs) становится все более актуальным. Но как оценить их производительность? Здесь на помощь приходит MLflow – мощная платформа с открытым исходным кодом для управления жизненным циклом машинного обучения. В этой статье мы разберем, как использовать MLflow для оценки производительности языковых моделей на конкретных фактических запросах.
Погружение в MLflow
MLflow был создан для упрощения процесса управления экспериментами в машинном обучении. Он позволяет отслеживать параметры моделей, управлять развертыванием и теперь также поддерживает оценку больших языковых моделей. Мы рассмотрим, как использовать MLflow для оценки модели Gemini от Google на основе набора фактических запросов.
Практическое применение: настройка окружения
Для начала нам понадобятся API-ключи для OpenAI и Gemini. Убедитесь, что у вас есть доступ к API от OpenAI, так как некоторые метрики MLflow требуют его использования. Получите ключи из соответствующих документаций.
- Ваш ключ OpenAI можно получить на сайте OpenAI.
- Ключ Gemini доступен в документации Google.
Установка библиотек
Теперь установим необходимые библиотеки. Для этого выполните следующую команду:
pip install mlflow openai pandas google-genai
Настройка переменных окружения
Для работы с API необходимо установить переменные окружения. Используйте следующий код:
import os
from getpass import getpass
os.environ["OPENAI_API_KEY"] = getpass('Введите ключ OpenAI:')
os.environ["GOOGLE_API_KEY"] = getpass('Введите ключ Google:')
Подготовка данных для оценки
Создадим небольшой набор данных с фактическими запросами и правильными ответами. Мы будем использовать темы, такие как наука, здоровье и программирование, чтобы провести объективное сравнение ответов модели.
import pandas as pd
eval_data = pd.DataFrame(
{
"inputs": [
"Кто разработал теорию относительности?",
"Каковы основные функции печени в организме человека?",
"Что означает код состояния HTTP 404?",
"Какая температура кипения воды на уровне моря по Цельсию?",
"Назовите самую большую планету в нашей солнечной системе.",
"На каком языке программирования в основном разрабатываются приложения для iOS?",
],
"ground_truth": [
"Альберт Эйнштейн разработал теорию относительности.",
"Печень помогает в детоксикации, синтезе белков и производстве биохимикатов, необходимых для пищеварения.",
"HTTP 404 означает 'Не найдено' — сервер не может найти запрашиваемый ресурс.",
"Температура кипения воды на уровне моря составляет 100 градусов Цельсия.",
"Юпитер — самая большая планета в нашей солнечной системе.",
"Swift — основной язык программирования для разработки приложений для iOS."
]
}
)
Получение ответов от модели Gemini
Используем функцию для отправки запросов к модели Gemini и получения ответов. Сохраним результаты в новом столбце «predictions».
client = genai.Client()
def gemini_completion(prompt: str) -> str:
response = client.models.generate_content(
model="gemini-1.5-flash",
contents=prompt
)
return response.text.strip()
eval_data["predictions"] = eval_data["inputs"].apply(gemini_completion)
Оценка ответов с помощью MLflow
Теперь мы можем начать оценку ответов, используя метод mlflow.evaluate(). Мы будем использовать метрики, такие как сходство ответов, точное совпадение, время отклика и количество токенов.
import mlflow
mlflow.set_tracking_uri("mlruns")
mlflow.set_experiment("Gemini Simple Metrics Eval")
with mlflow.start_run():
results = mlflow.evaluate(
model_type="question-answering",
data=eval_data,
predictions="predictions",
targets="ground_truth",
extra_metrics=[
mlflow.metrics.genai.answer_similarity(),
mlflow.metrics.exact_match(),
mlflow.metrics.latency(),
mlflow.metrics.token_count()
]
)
print("Собранные метрики:")
print(results.metrics)
Просмотр результатов оценки
Чтобы просмотреть результаты, загружаем сохраненный CSV-файл в DataFrame. Это позволит нам детально проанализировать индивидуальные запросы, предсказания модели и правильные ответы.
results = pd.read_csv('gemini_eval_results.csv')
pd.set_option('display.max_colwidth', None)
results
Вопросы и ответы (FAQ)
Каковы основные метрики для оценки LLM?
К основным метрикам относятся сходство ответов, точное совпадение и время отклика.
Могу ли я использовать MLflow для других моделей?
Да, MLflow поддерживает оценки для различных моделей машинного обучения.
Что делать, если метрики не совпадают с ожиданиями?
Проверьте данные, возможно, они содержат ошибки или не полностью отражают тестируемые запросы.
Рекомендации и лучшие практики
- Используйте разнообразные запросы для более точной оценки.
- Регулярно обновляйте и пересматривайте ваши модели.
- Убедитесь, что у вас есть доступ к необходимым API для метрик.
Надеемся, что эта статья помогла вам разобраться с MLflow и его использованием для оценки больших языковых моделей. Внедрение MLflow в ваши процессы позволит значительно улучшить качество оценки и упростить интеграцию различных инструментов в рабочий процесс. А что, если именно это станет вашим следующим шагом к автоматизации бизнеса?