Sobes.tech
Junior — Middle

Тілдік модельдің perplexity-ін қалай есептеу керек? Оның қандай қасиеттері бар?

sobes.tech AI

AI-дан жауап

Перплексия (запутандық) — бұл тілдік модельдің сапасын өлшейтін метрика, ол модельдің сөз тізбегін қаншалықты жақсы болжағанын көрсетеді. Формалды түрде, перплексия — бұл болжанған сөздердің орташа теріс логарифмдік ықтимылығының экспоненті:

[ \text{Перплексия} = \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) сөзіне ықтималдық.

Перплексияның қасиеттері:

  • Неғұрлым төмен болса, модель мәтінді соғұрлым жақсы болжайды.
  • Перплексияны модель келесі сөзді таңдағанда қарастыратын нұсқалардың орташа саны ретінде түсінуге болады.
  • Перплексия әрқашан оң және әдетте 1-ден тең немесе одан жоғары.
  • Ол сөздік қорының көлеміне және тест жиынтығының ұзындығына сезімтал.

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}")