Sobes.tech
Junior — Middle
38

Как считать perplexity языковой модели? Какие у неё свойства?

Companies where asked
SoftInterMob

Answer from AI

sobes.tech AI

Perplexity (запутанность) — это метрика качества языковой модели, которая измеряет, насколько хорошо модель предсказывает последовательность слов. Формально, perplexity определяется как экспонента средней отрицательной логарифмической вероятности предсказанных слов:

[ \text{Perplexity} = \exp\left(-\frac{1}{N} \sum_{i=1}^N \log P(w_i | w_{1:i-1})\right) ]

где (N) — длина последовательности, а (P(w_i | w_{1:i-1})) — вероятность слова (w_i) при условии предыдущих слов.

Свойства perplexity:

  • Чем ниже perplexity, тем лучше модель предсказывает текст.
  • Perplexity можно интерпретировать как среднее число вариантов, которые модель рассматривает при выборе следующего слова.
  • Perplexity всегда положительна и обычно больше или равна 1.
  • Она чувствительна к размеру словаря и длине тестовой выборки.

Пример вычисления perplexity для простой модели на Python:

import math

# Предположим, у нас есть вероятности слов в последовательности
probs = [0.1, 0.5, 0.2, 0.2]

log_prob_sum = sum(math.log(p) for p in probs)
N = len(probs)
perplexity = math.exp(-log_prob_sum / N)
print(f"Perplexity: {perplexity}")