提示词嵌入输入¶
本页将指导您如何向vLLM传递提示嵌入输入。
什么是提示嵌入?¶
大型语言模型的传统文本数据流程是从文本到标记ID(通过分词器),然后从标记ID到提示嵌入。对于传统的仅解码器模型(如meta-llama/Llama-3.1-8B-Instruct),这种将标记ID转换为提示嵌入的步骤是通过从学习到的嵌入矩阵中查找完成的,但该模型不仅限于处理与其标记词汇表对应的嵌入。
注意
提示词嵌入目前仅在v0引擎中受支持。
离线推理¶
要输入多模态数据,请按照[vllm.inputs.EmbedsPrompt][]中的这个模式:
prompt_embeds: 一个torch张量,表示提示/令牌嵌入序列。其形状为(sequence_length, hidden_size),其中sequence_length是令牌嵌入的数量,hidden_size是模型的隐藏大小(嵌入大小)。
Hugging Face Transformers 输入¶
你可以将来自Hugging Face Transformers模型的提示词嵌入传递到提示词嵌入字典的'prompt_embeds'字段中,如下例所示:
examples/offline_inference/prompt_embed_inference.py
在线服务¶
我们的OpenAI兼容服务器通过Completions API接收提示词嵌入输入。提示词嵌入输入是通过JSON数据包中新增的'prompt_embeds'键来添加的。
当单个请求中同时提供'prompt_embeds'和'prompt'输入时,总是会优先返回提示词嵌入结果。
提示词嵌入以base64编码的torch张量形式传入。
通过OpenAI客户端输入的Transformers¶
首先,启动兼容OpenAI的服务器:
vllm serve meta-llama/Llama-3.2-1B-Instruct --runner generate \
--max-model-len 4096 --enable-prompt-embeds
然后,您可以按如下方式使用OpenAI客户端:
examples/online_serving/prompt_embed_inference_with_openai_client.py