提示词嵌入输入¶
本页将指导您如何向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 --task generate \
--max-model-len 4096 --enable-prompt-embeds
然后,您可以按以下方式使用OpenAI客户端:
examples/online_serving/prompt_embed_inference_with_openai_client.py