跳到內容

常見問題

問:如何使用 OpenAI API 在單個埠上提供多個模型服務?

答:假設您是指使用相容 OpenAI 的伺服器同時提供多個模型服務,這目前不受支援。您可以同時執行伺服器的多個例項(每個例項服務不同的模型),並設定另一個層來相應地將傳入請求路由到正確的伺服器。


問:離線推理嵌入應該使用哪個模型?

答:您可以嘗試 e5-mistral-7b-instructBAAI/bge-base-en-v1.5;更多模型列於此處

透過提取隱藏狀態,vLLM 可以自動將文字生成模型(例如 Llama-3-8BMistral-7B-Instruct-v0.3)轉換為嵌入模型,但這些模型的效果預計不如專門針對嵌入任務訓練的模型。


問:vLLM 中,提示詞的輸出在不同執行之間會變化嗎?

答:是的,可能會。vLLM 不保證輸出 token 的對數機率(logprobs)穩定。對數機率的變化可能是由於 Torch 操作的數值不穩定,或批次 Torch 操作在批處理更改時的非確定性行為造成的。更多詳細資訊,請參閱數值精度部分

在 vLLM 中,由於其他併發請求、批處理大小的變化或推測解碼中的批處理擴充套件等因素,相同的請求可能會以不同的方式進行批處理。這些批處理差異,結合 Torch 操作的數值不穩定性,可能導致每一步的 logit/logprob 值略有不同。這些差異會累積,可能導致取樣到不同的 token。一旦取樣到不同的 token,進一步的差異就可能會出現。

緩解策略

  • 為了提高穩定性和減少方差,請使用 float32。請注意,這將需要更多記憶體。
  • 如果使用 bfloat16,切換到 float16 也有幫助。
  • 對於溫度 > 0 的情況,使用請求種子有助於實現更穩定的生成,但由於精度差異仍可能出現偏差。