提示嵌入輸入¶
本頁介紹如何將提示嵌入輸入傳遞給 vLLM。
什麼是提示嵌入?¶
大型語言模型的傳統文字資料流是從文字到 token ID(透過分詞器),然後從 token ID 到提示嵌入。對於傳統的僅解碼器模型(例如 meta-llama/Llama-3.1-8B-Instruct),將 token ID 轉換為提示嵌入的步驟是透過從學習到的嵌入矩陣中查詢來完成的,但模型不限於僅處理與其 token 詞彙對應的嵌入。
注意
提示嵌入目前僅在 v0 引擎中受支援。
離線推理¶
要輸入多模態資料,請遵循 [vllm.inputs.EmbedsPrompt][] 中的此 schema。
prompt_embeds
:一個 torch 張量,表示一個提示/token 嵌入序列。其形狀為 (sequence_length, hidden_size),其中 sequence_length 是 token 嵌入的數量,hidden_size 是模型的隱藏大小(嵌入大小)。
Hugging Face Transformers 輸入¶
您可以將來自 Hugging Face Transformers 模型的提示嵌入傳遞到提示嵌入字典的 'prompt_embeds'
欄位,如下例所示:
examples/offline_inference/prompt_embed_inference.py
線上服務¶
我們的 OpenAI 相容伺服器透過 補全 API 接受提示嵌入輸入。提示嵌入輸入透過 JSON 包中新的 'prompt_embeds'
鍵新增。
當單個請求中同時提供 'prompt_embeds'
和 'prompt'
輸入時,提示嵌入總是優先返回。
提示嵌入以 base64 編碼的 torch 張量形式傳遞。
透過 OpenAI 客戶端的 Transformers 輸入¶
首先,啟動 OpenAI 相容伺服器
vllm serve meta-llama/Llama-3.2-1B-Instruct --task generate \
--max-model-len 4096 --enable-prompt-embeds
然後,您可以按如下方式使用 OpenAI 客戶端
examples/online_serving/prompt_embed_inference_with_openai_client.py