Перейти к основному содержимому

Оценка качества языковых моделей

Рассмотрим методы оценки качества работы языковых моделей, генерирующих текст.

Для этого языковую модель применяют к реальным текстам и смотрят, насколько реальные слова текста оказываются вероятны согласно предсказанному распределению вероятностей слов, либо насколько согласовываются некоторые характеристики реальных и сгенерированных текстов.

Далее будем обозначать реальный текст как последовательность из TT слов:

w1w2...wTw_1w_2...w_T

Реальные языковые модели работают не на словах, а на токенах. Методы токенизации текстов описаны в отдельной разделе учебника. Однако здесь для простоты пока будем вычислять качество их работы применительно к словам.

Средний логарифм правдоподобия

Качество языковой модели можно оценивать как средний логарифм вероятности пронаблюдать слова (согласно вероятностям, предсказанным моделью), встретившиеся в естественном тексте:

S(w1w2...wT)=1TlogP(w1w2...wT)=1TlogP(w1)p(w2w1)...P(wTw1w2...wT1)=1Tt=1TlogP(wtw1w2...wt1)\begin{aligned} S(w_1w_2...w_T) &= \frac{1}{T}\log P(w_1w_2...w_T) \\ &=\frac{1}{T}\log P(w_1)p(w_2|w_1)...P(w_T|w_1w_2...w_{T-1}) \\ &=\frac{1}{T}\sum_{t=1}^T \log P(w_t|w_1w_2...w_{t-1}) \\ \end{aligned}

Чем он выше, тем более высокую вероятность модель сопоставляет реальному тексту и тем лучше с ним согласуется.

Обычно языковая модель способна рассматривать лишь фиксированный контекст из KK последних токенов, поэтому вероятности по полному контексту аппроксимируются вероятностями по ограниченному контексту:

P(wtw1w2...wt1)P(wtwtKwtK+1...wt1)P(w_t|w_1w_2...w_{t-1})\approx P(w_t|w_{t-K}w_{t-K+1}...w_{t-1})

Перплексия

Более популярной мерой оценки качества языковых моделей является перплексия (perplexity [1]), показывающая степень неуверенности в предсказании следующего слова:

PPL=e1Tt=1Tlnp(wtwt1wt2...w1)\text{PPL}=e^{-\frac{1}{T}\sum_{t=1}^{T}\ln p\left(w_{t}|w_{t-1}w_{t-2}...w_{1}\right)}

Её можно представить в эквивалентном виде как величину, обратную к среднему геометрическому модельных вероятностей:

PPL=1(t=1Tp(wtwt1wt2...w1))1/T\text{PPL} = \frac{1}{ \left( \prod_{t=1}^T p(w_t|w_{t-1}w_{t-2}...w_1) \right)^{1/T} }

Из последнего представления видно, что перплексию можно интерпретировать как среднее число вариантов следующего слова, которые рассматривает модель при условии, что истинное слово попадает в эти варианты.

Перплексия принимает значения от единицы (идеальное угадывание следующего слова) до ++\infty (полное неугадывание). Чем выше значение перплексии, тем прогнозы языковой модели хуже.

Базовым уровнем перплексии является случай, когда модель случайно угадывает слова среди всех VV слов языка, назначая каждому вероятность 1/V1/V. В этом случае перплексия равна VV.

С примером кода, рассчитывающим перплексию, можно ознакомиться в [2].

Литература

  1. Zhang A. et al. Dive into deep learning. – Cambridge University Press, 2023: Perplexity.

  2. Hugging Face LLM course: Perplexity of fixed-length models.