Itinai.com it company office background blured chaos 50 v 04fd15e0 f9b2 4808 a5a4 d8a8191e4a22 1

Начало работы с MLFlow для оценки больших языковых моделей

Itinai.com it company office background blured chaos 50 v 04fd15e0 f9b2 4808 a5a4 d8a8191e4a22 1

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

Запустите свой ИИ проект бесплатно

ИИ-агенты искусственный интеллект онлайн для бизнеса

Лучший ИИ онлайн