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