可復現性¶
為了效能考慮,vLLM 預設不保證結果的可復現性。要獲得可復現的結果
示例: examples/offline_inference/reproducibility.py
警告
設定 VLLM_ENABLE_V1_MULTIPROCESSING=0 將會改變使用者程式碼(即構造 LLM 類的程式碼)的隨機狀態。
注意
即使有上述設定,vLLM 僅在同一硬體和同一 vLLM 版本上執行時提供可復現性。
設定全域性種子¶
vLLM 中的 seed 引數用於控制各種隨機數生成器的隨機狀態。
如果提供了特定的種子值,則會相應地設定 random、np.random 和 torch.manual_seed 的隨機狀態。
預設行為¶
在 V1 中,seed 引數預設為 0,它會為每個 worker 設定隨機狀態,因此即使 temperature > 0,每次 vLLM 執行的結果也將保持一致。
在 V1 中,無法取消指定種子,因為像投機性解碼這樣的工作流需要不同的 worker 取樣相同的輸出。更多資訊請參閱: Pull Request #17929
注意
vLLM 僅在 worker 與使用者程式碼在同一程序中執行時(即:VLLM_ENABLE_V1_MULTIPROCESSING=0)才會更新使用者程式碼(即構造 LLM 類的程式碼)的隨機狀態。
預設情況下,VLLM_ENABLE_V1_MULTIPROCESSING=1,因此您可以在不擔心意外地使依賴於隨機狀態的後續操作確定化的前提下使用 vLLM。