Perplexity
パープレキシティの意味、言語モデルのパフォーマンス測定方法、その計算方法、および結果を解釈するためのベストプラクティスについて学びます。
パープレキシティは、確率的モデルがトークンのシーケンスをどれほど正確に予測できるかを測定する評価指標です。これは言語モデリングにおいて最も一般的に使用されており、値が低いほど、モデルが評価対象のテキストをあまり意外に感じていないことを示します。直感的に言うと、パープレキシティが10であるということは、モデルが各予測ステップにおいて、10個の等確率な選択肢から選ぶ場合と同程度の不確実性を持っていることを意味します。この解釈は近似的なものですが、指標を理解しやすくします。
パープレキシティの仕組み#
言語モデルは、先行するコンテキストに基づいて、次に続く可能性のある各トークンに確率を割り当てます。Googleによる言語モデルの紹介で説明されているように、自己回帰モデルは次のトークンを繰り返し予測し、それをコンテキストに追加します。
パープレキシティは、評価シーケンス全体で正しいトークンに割り当てられた確率を要約します。これは平均負対数尤度から導出され、一般に交差エントロピーとして表現されます。
- 交差エントロピーが自然対数を使用する場合、パープレキシティはeを底とする交差エントロピーのべき乗になります。
- 交差エントロピーが2を底とする対数を使用する場合、パープレキシティは2を底とする交差エントロピーのべき乗になります。
Google機械学習用語集は関連する解釈を提供しています。パープレキシティは、モデルが正しい予測を含めるために必要とする推測の数を近似します。NLTK言語モデルパープレキシティAPIに示されているように、ライブラリもこれを直接計算する場合があります。
この最小限のPythonの例では、4つの正しいトークンに割り当てられた確率からパープレキシティを計算します。
import math
# Probability assigned to the correct token at each position
token_probabilities = [0.50, 0.25, 0.80, 0.40]
negative_log_probs = [-math.log(probability) for probability in token_probabilities]
cross_entropy = sum(negative_log_probs) / len(negative_log_probs)
perplexity = math.exp(cross_entropy)
print(f"Cross-entropy: {cross_entropy:.3f}")
print(f"Perplexity: {perplexity:.3f}")この計算では、Pythonのドキュメント化されたmath.exp指数関数を使用します。モデルのトレーニングコードでは、PyTorchの交差エントロピー損失などのフレームワークは通常、指数計算を行う前に平均損失を計算します。
パープレキシティの解釈方法#
パープレキシティが低いことは、一般にモデルが観測されたトークンにより高い確率を割り当てていることを示します。ただし、この数値意味を持つのは、制御された比較内においてのみです。
同じ検証データにおいて、モデルAのパープレキシティが20で、モデルBのパープレキシティが30であると仮定します。モデルAはそのデータセットをより効果的に予測しています。モデルAが必ずしもより事実に基づいた、有用な、安全な、または読みやすい回答を生成するわけではありません。
また、パープレキシティはいくつかの関連概念とも異なります。
- 損失関数: 交差エントロピーは基礎となるトレーニングまたは評価の損失であり、パープレキシティはその指数化された、より直感的な表現です。
- 精度: 精度は、選択された予測が正しいかどうかを確認します。パープレキシティは、モデルが代替案にどれだけの確率を割り当てているかを含め、予測された確率分布全体を評価します。
- 信頼度: 信頼度は通常、1つの予測に対する確実性を記述します。パープレキシティは、多くのシーケンス位置にわたる予測の不確実性を集約します。
- 生成品質: パープレキシティの低いモデルは、流暢ではあるものの、反復的、不正確、または役に立たないテキストを生成する場合があります。パープレキシティは、事実性や推論能力を直接測定するものではありません。
実世界での利用例#
-
予測テキストとシーケンス生成: 開発者は、意図したドメインからの未公開テキストを使用して、キーボードサジェスト、文字起こし、またはオートコンプリート用の言語モデルを比較できます。たとえば、医療用語に対してパープレキシティの低いモデルは、臨床ディクテーションにおいてより優れた次のトークンの予測を提供できます。この指標は、レイテンシやユーザーの受容性が個別に評価される前に、モデルを選択するのに役立ちます。
-
視覚的アテンションを用いた画像キャプション生成: 画像キャプション生成システムでは、多くの場合、視覚エンコーダーとその後に続く言語デコーダーが使用されます。パープレキシティは、画像特徴が与えられたときに、デコーダーが参照キャプションのトークンをどれほどうまく予測できるかを測定できます。これは視覚言語モデルに関連していますが、パープレキシティが低いというだけでは、キャプションがすべてのオブジェクトを正しく識別しているか、あるいはハルシネーションによる詳細を避けているかを判断することはできません。
確率ベースの評価は、専門的な診断をサポートすることもできます。NVIDIAの対数確率評価ガイダンスでは、自由形式の生成を必要とせずに、トークン確率をパープレキシティなどの指標に集約する方法について説明しています。
制限事項とベストプラクティス#
モデルが異なるトークン化スキームを使用している場合、パープレキシティの値を比較するべきではありません。単語レベルモデル、文字レベルモデル、およびサブワードベースの大規模言語モデルは同じ文を異なる方法で分割するため、予測ステップの数と難易度が変わります。
また、評価データセットはターゲットドメインと一致している必要があります。モデルはニュース記事に対して低いパープレキシティを達成しても、ソースコードやテクニカルサポートの会話ではパフォーマンスが低下する可能性があります。代表的で個別の評価データと一貫した前処理を使用するという、確立された機械学習品質ガイドラインに従ってください。
マルチモーダルおよびコンピュータビジョンシステムでは、パープレキシティとタスク固有の測定を組み合わせて使用してください。モデル評価とファインチューニングに関するUltralyticsガイドでは、視覚的予測に関する精度、再現率、平均適合率などの指標について解説しています。言語指標と視覚指標を組み合わせることで、パープレキシティ単体よりも完全な評価を提供できます。






