<НА ГЛАВНУЮ

Осваиваем оценку LLM с MLflow: пошаговое руководство с Google Gemini

В этом руководстве показано, как использовать MLflow для оценки ответов Google Gemini на фактологические запросы с помощью интегрированных метрик, объединяя API OpenAI и Google.

Введение в MLflow для оценки LЛМ

MLflow — это универсальная open-source платформа для управления полным жизненным циклом машинного обучения. Ранее она использовалась для отслеживания экспериментов, логирования параметров и управления развертываниями. Недавно MLflow расширил возможности, добавив поддержку оценки больших языковых моделей (LLM).

Настройка зависимостей

В этом руководстве показано, как оценить производительность модели Google Gemini на фактических запросах с помощью MLflow. Для оценки также необходим OpenAI API, поскольку MLflow использует модели GPT для вычисления метрик, таких как сходство ответов и достоверность.

Для работы нужны ключи API от OpenAI и Google Gemini:

  • Ключ OpenAI: https://platform.openai.com/settings/organization/api-keys
  • Ключ Google Gemini: https://ai.google.dev/gemini-api/docs

Установите библиотеки командой:

pip install mlflow openai pandas google-genai

Безопасно установите переменные окружения с ключами:

import os
from getpass import getpass
 
os.environ["OPENAI_API_KEY"] = getpass('Введите ключ OpenAI API:')
os.environ["GOOGLE_API_KEY"] = getpass('Введите ключ Google API:')

Подготовка данных для оценки

Создайте набор данных с фактологическими вопросами и правильными ответами для объективного сравнения с ответами Gemini.

import pandas as pd
 
eval_data = pd.DataFrame(
    {
        "inputs": [
            "Кто разработал теорию общей относительности?",
            "Каковы основные функции печени в организме человека?",
            "Объясните значение кода состояния HTTP 404.",
            "Какова температура кипения воды на уровне моря в градусах Цельсия?",
            "Назовите крупнейшую планету в нашей солнечной системе.",
            "Какой язык программирования используется для разработки iOS-приложений?",
        ],
        "ground_truth": [
            "Теорию общей относительности разработал Альберт Эйнштейн.",
            "Печень участвует в детоксикации, синтезе белков и производстве биохимических веществ для пищеварения.",
            "HTTP 404 означает 'Не найдено' — сервер не может найти запрашиваемый ресурс.",
            "Температура кипения воды на уровне моря — 100 градусов Цельсия.",
            "Юпитер — крупнейшая планета в нашей солнечной системе.",
            "Swift — основной язык программирования для разработки iOS-приложений."
        ]
    }
)

Получение ответов от Gemini

Определите функцию для запроса модели Gemini 1.5 Flash через SDK Google Generative AI и примените её к каждому запросу.

from google import genai
 
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)

Оценка ответов Gemini с MLflow

Запустите сессию MLflow для оценки предсказаний Gemini по метрикам answer_similarity, exact_match, latency и token_count.

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)
 
    results.tables["eval_results_table"].to_csv("gemini_eval_results.csv", index=False)

Просмотр подробных результатов

Загрузите и отобразите сохранённые подробные результаты для детального анализа.

results = pd.read_csv('gemini_eval_results.csv')
pd.set_option('display.max_colwidth', None)
results

Это практическое руководство поможет эффективно и прозрачно оценивать модели LLM, такие как Gemini, используя встроенные метрики и API MLflow.

🇬🇧

Switch Language

Read this article in English

Switch to English