跳到內容

單元測試

本頁解釋瞭如何編寫單元測試來驗證您的模型實現。

所需測試

這些測試是您的PR合併到vLLM庫所必需的。沒有它們,您的PR的CI將失敗。

模型載入

tests/models/registry.py中包含一個您的模型對應的HuggingFace倉庫示例。這會啟用一個單元測試,載入虛擬權重以確保模型可以在vLLM中初始化。

重要

每個部分中的模型列表應按字母順序維護。

提示

如果您的模型需要HF Transformers的開發版本,您可以設定min_transformers_version來跳過CI中的測試,直到模型釋出為止。

可選測試

這些測試是您的PR合併到vLLM庫的可選測試。透過這些測試可以更確信您的實現是正確的,並有助於避免將來的迴歸。

模型正確性

這些測試將vLLM的模型輸出與HF Transformers進行比較。您可以在 tests/models的子目錄中新增新測試。

生成模型

對於生成模型,有兩級正確性測試,定義在 tests/models/utils.py中:

  • 精確正確性(check_outputs_equal):vLLM輸出的文字應與HF輸出的文字完全匹配。
  • Logprobs相似性(check_logprobs_close):vLLM輸出的logprobs應在HF輸出的top-k logprobs中,反之亦然。

池化模型

對於池化模型,我們簡單地檢查餘弦相似度,定義在 tests/models/utils.py中。

多模態處理

通用測試

將您的模型新增到 tests/models/multimodal/processing/test_common.py可以驗證以下輸入組合是否產生相同的輸出:

  • 文字 + 多模態資料
  • 標記 + 多模態資料
  • 文字 + 快取的多模態資料
  • 標記 + 快取的多模態資料

模型特定測試

您可以在 tests/models/multimodal/processing下新增新檔案,以執行僅適用於您的模型的測試。

例如,如果您的模型的HF處理器接受使用者指定的關鍵字引數,您可以驗證這些關鍵字引數是否被正確應用,例如在 tests/models/multimodal/processing/test_phi3v.py中所示。