Коротко о главном
«У меня такое чувство, что решений для оценки LLM больше, чем проблем, связанных с их оценкой», — сказал Дилан, руководитель отдела ИИ в компании из списка Fortune 500.
И я полностью согласен — кажется, что каждую неделю появляется новый репозиторий с открытым исходным кодом, пытающийся сделать то же самое, что и другие 30+ уже существующих фреймворков. В конце концов, чего действительно хочет Дилан, так это фреймворка, пакета, библиотеки, как угодно, который просто количественно оценил бы производительность LLM (приложения), которую он хочет запустить в продакшен.
Итак, как человек, который когда-то был на месте Дилана, я составил список из 5 лучших фреймворков для оценки LLM, существующих в 2024 году :) 😌
Начнем!
1. DeepEval - фреймворк для оценки LLM
DeepEval — любимый фреймворк для оценки среди других любимых фреймворков. Он занимает первое место по ряду причин:
-
Предлагает более 14 метрик оценки LLM (как для RAG, так и для случаев точной настройки), обновленных с учетом последних исследований в области оценки LLM. Эти метрики включают:
-
G-Eval
-
Суммирование
-
Галлюцинации
-
Достоверность
-
Контекстная релевантность
-
Релевантность ответа
-
Контекстный отзыв
-
Контекстная точность
-
RAGAS
-
Предвзятость
-
Токсичность
-
Большинство метрик самообъясняемые, то есть метрики DeepEval буквально объясняют, почему оценка метрики не может быть выше.
-
Предлагает модульные компоненты, которые чрезвычайно просты в подключении и использовании. Вы можете легко комбинировать различные метрики или даже использовать DeepEval для создания собственного конвейера оценки, если это необходимо.
-
Рассматривает оценки как модульные тесты. Благодаря интеграции с Pytest, DeepEval представляет собой полный набор тестов, с которым знакомо большинство разработчиков.
-
Позволяет генерировать синтетические наборы данных, используя вашу базу знаний в качестве контекста, или загружать наборы данных из CSV, JSON или Hugging Face.
-
Предлагает хостинговую платформу с щедрым бесплатным уровнем для запуска оценок в реальном времени в продакшене.
С интеграцией Pytest:
from deepeval import assert_test
from deepeval.metrics import HallucinationMetric
from deepeval.test_case import LLMTestCase
test_case = LLMTestCase(
input="How many evaluation metrics does DeepEval offers?",
actual_output="14+ evaluation metrics",
context=["DeepEval offers 14+ evaluation metrics"]
)
metric = HallucinationMetric(minimum_score=0.7)
def test_hallucination():
assert_test(test_case, [metric])
Затем в CLI:
deepeval test run test_file.py
Или без Pytest (идеально подходит для сред блокнотов):
from deepeval import evaluate
...
evaluate([test_case], [metric])
2. MLFlow LLM Evaluate - оценка модели LLM
MLFlow — это модульный и упрощенный пакет, который позволяет запускать оценки в ваших собственных конвейерах оценки. Он предлагает оценку RAG и оценку QA.
MLFlow хорош благодаря своему интуитивно понятному опыту разработчика. Например, вот как вы запускаете оценки с помощью MLFlow:
results = mlflow.evaluate(
model,
eval_data,
targets="ground_truth",
model_type="question-answering",
)
3. RAGAs - фреймворк оценки для ваших конвейеров Retrieval Augmented Generation (RAG)
Третий в списке, RAGAs был создан для конвейеров RAG. Они предлагают 5 основных метрик:
-
Достоверность
-
Контекстная релевантность
-
Релевантность ответа
-
Контекстный отзыв
-
Контекстная точность
Эти метрики составляют окончательную оценку RAGAs. DeepEval и RAGAs имеют очень похожие реализации, но метрики RAGAs не являются самообъясняемыми, что значительно усложняет отладку неудовлетворительных результатов.
RAGAs занимает третье место в списке в первую очередь потому, что он также включает в себя последние исследования в своих метриках RAG, прост в использовании, но не выше в списке из-за ограниченных возможностей и негибкости как фреймворка.
from ragas import evaluate
from datasets import Dataset
import os
os.environ["OPENAI_API_KEY"] = "your-openai-key"
# prepare your huggingface dataset in the format
# Dataset({
# features: ['question', 'contexts', 'answer', 'ground_truths'],
# num_rows: 25
# })
dataset: Dataset
results = evaluate(dataset)
4. Deepchecks
Deepchecks выделяется тем, что он больше ориентирован на оценку самой LLM, а не на системы/приложения LLM.
Он не выше в списке из-за сложного опыта разработчика (серьезно, попробуйте настроить его самостоятельно и дайте мне знать, как все прошло), но его предложение с открытым исходным кодом уникально, поскольку оно в значительной степени ориентировано на информационные панели и пользовательский интерфейс визуализации, что упрощает пользователям визуализацию результатов оценки.
5. Arize AI Phoenix
Последний в списке, Arize AI оценивает приложения LLM посредством обширного наблюдения за трассами LLM. Однако он крайне ограничен, так как предлагает только три критерия оценки:
-
Правильность QA
-
Галлюцинации
-
Токсичность
Итак, вот он, список лучших фреймворков оценки LLM, которые GitHub может предложить в 2024 году. Думаете, я что-то упустил? Напишите в комментариях, чтобы сообщить мне!
Автор: kucev