Технологии

Что такое перплексия

Перплексия — мера того, насколько модель удивлена текстом. Полезна для сравнения квантизаций одной модели и бесполезна для сравнения разных моделей между собой.

Сразу разведём два значения слова, потому что поиск их смешивает. Perplexity — это поисковый сервис с ИИ, о нём отдельный разбор Persona и Perplexity. Перплексия — метрика языковых моделей, ей и посвящена эта справка. Дальше речь только о метрике.

#Определение и формула

Перплексия показывает, насколько модель «удивлена» текстом, который ей показали. Формально это экспонента от средней отрицательной логарифмической вероятности токенов:

PPL = exp( -(1/N) * Σ log p(t_i | t_1 … t_i-1) )

Интуиция полезнее формулы: перплексия — эффективное число равновероятных вариантов, между которыми модель колеблется на каждом шаге. PPL = 1 означает, что модель предсказывает текст безошибочно. PPL = 20 — что она в среднем мечется между двумя десятками кандидатов. Чем ниже, тем лучше модель предсказывает именно этот текст.

#Где эта метрика реально работает

Основное практическое применение — не сравнение моделей, а контроль потерь при квантизации. Берётся одна модель, один и тот же кусок текста, и перплексия замеряется на разных уровнях сжатия. Модель, токенизатор и текст при этом не меняются, поэтому числа сравнимы, а рост перплексии прямо показывает, сколько качества съел очередной шаг вниз. Именно так строятся таблицы, по которым Q4_K_M оказался практическим компромиссом; подробности — в разборе квантизации LLM.

Сравнение Метрика осмысленна Почему
Q8 против Q4 одной модели ✓ всё, кроме сжатия, совпадает
Одна модель до и после дообучения ✓ токенизатор тот же
Модель A против модели B ✗ разные словари, разная нормировка на токен
Качество ответов на вопросы ✗ измеряет предсказание, а не пользу

#Где путают

Заблуждение первое: у модели есть «её перплексия». Перплексии без текста не существует. Одна и та же модель на техническом тексте, на художественном и на коде даст разные числа. Указывая PPL, всегда указывают датасет.

Заблуждение второе: модель с меньшей перплексией лучше отвечает. Не следует. Перплексия измеряет способность угадывать следующий токен в готовом тексте, а не способность решать задачу, следовать инструкции и не выдумывать. Модель можно натренировать до низкой перплексии на корпусе и получить худшего собеседника. Для оценки полезности нужны другие метрики — они разобраны в тексте про MMLU, GSM8K и HumanEval.

Заблуждение третье: перплексии двух моделей можно сравнить напрямую. Нельзя, если у них разные токенизаторы. Вероятность нормируется на токен, а один и тот же текст у разных моделей состоит из разного числа токенов — сравниваются величины с разным знаменателем.

#Частые вопросы

#Какая перплексия считается хорошей?

Абсолютного порога нет, потому что число зависит от текста и от токенизатора. Смотреть надо на разницу: если после квантизации перплексия выросла на доли процента — потери незначительны; если заметно — вы вышли за границу разумного сжатия для этой модели.

#Можно ли посчитать перплексию самому?

Да, для локальной модели это штатная операция в llama.cpp: отдельная утилита прогоняет заданный текстовый файл и выдаёт число. Полезнее считать её не на общем корпусе, а на своих типичных текстах — тогда результат говорит о вашей задаче.

#Заменяет ли перплексия бенчмарки?

Не заменяет. Это дешёвая техническая проверка «не сломалось ли», а не оценка качества. Почему опубликованные бенчмарки тоже надо читать с оговорками — в разборе того, как читать бенчмарки LLM.

#Почему в описаниях моделей перплексию почти не публикуют?

Потому что её легко занизить, подобрав текст, и потому что она не сравнима между моделями. Для маркетинга она бесполезна, для инженерной проверки — наоборот.

Остальные метрики и термины собраны в глоссарии терминов ИИ.

Хотите ИИ, который помнит вас?

Persona держит контекст между чатами и работает на вашем железе — если развернуть её у себя и подключить локальную модель.

Создать аккаунт