What is Perplexity(困惑度)?

    衡量語言模型預測文字序列能力的指標,較低值表示更好的預測。

    Definition

    困惑度是語言模型的標準評估指標,量化模型對給定文字序列的「驚訝」程度。數學上,它是序列中 token 的指數化平均負對數似然:PPL = exp(-1/N * sum(log P(token_i | context_i)))。困惑度為 10 意味著模型平均而言,其不確定性就像在每個位置從 10 個等可能的 token 中均勻選擇一樣。較低的困惑度表示更好的語言建模——模型為實際出現的 token 分配了更高的機率。

    困惑度是語言模型最常用的內在評估指標。與衡量下游任務效能的特定任務指標(準確度、F1、BLEU)不同,困惑度衡量的是模型的基本語言理解能力。在領域特定語料庫上困惑度低的模型已經有效地學習了該領域的詞彙、語法和模式。

    在微調的背景下,保留驗證集上的困惑度作為監控訓練進度的主要信號。隨著模型學習訓練資料中的模式,驗證困惑度下降。當驗證困惑度停止下降或開始上升而訓練困惑度繼續下降時,模型正在過擬合——這是停止訓練或應用更強正則化的信號。

    Why It Matters

    困惑度提供了語言模型品質的通用、與任務無關的衡量。雖然特定任務評估對生產決策最終更相關,但困惑度在開發期間提供了快速、可靠的信號。微調模型在領域特定文字上的困惑度應該低於基礎模型——如果不是,訓練中出了問題。

    困惑度也對比較量化品質有價值。當模型從 FP16 量化到 4 位元精度時,困惑度的增加衡量了損失了多少語言建模能力。在基準語料庫上困惑度增加 0.2 是可接受的;增加 2.0 則表明顯著的品質退化。這使困惑度成為評估量化方法的標準指標。

    How It Works

    計算困惑度涉及在評估模式下(不計算梯度)對文字序列運行模型,並記錄在給定前文上下文的情況下分配給每個 token 的對數機率。這些對數機率在所有 token 上取平均值後進行指數化。對於因果語言模型,只有第一個 token 之後的 token 才會被評分,因為第一個 token 沒有前文上下文。

    上下文長度會產生微妙的問題。對於具有有限上下文視窗的模型,非常長的文字必須分割成重疊或滑動視窗。步幅(視窗之間的重疊)的選擇影響困惑度計算。步幅等於上下文長度產生不重疊的段落,而步幅為 1 給出最準確的每 token 困惑度但計算成本高昂。常見做法使用上下文長度的一半作為步幅作為實際的折衷。

    Example Use Case

    一個團隊在醫學文獻上微調模型,並在保留的醫學期刊文章集上追蹤困惑度。基礎模型在此語料庫上的起始困惑度為 45。微調後,困惑度降至 12,確認模型已學習醫學詞彙和寫作模式。然後他們將微調模型量化到 4 位元並測量困惑度增加:僅 0.4 點(至 12.4),確認量化保持了模型品質。

    Key Takeaways

    • 困惑度衡量語言模型預測文字的能力——越低越好。
    • 它是評估語言模型品質的標準內在指標。
    • 微調期間的驗證困惑度發出何時應停止訓練以避免過擬合的信號。
    • 量化期間的困惑度增加衡量壓縮的品質成本。
    • 它提供了通用的、與任務無關的信號,補充特定任務的評估。

    How Ertas Helps

    Ertas Studio 在微調運行中追蹤驗證資料上的困惑度並在即時圖表中顯示,幫助使用者在過擬合降低模型品質之前識別最佳檢查點並偵測過擬合。

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.