跳至内容

提示词嵌入输入

本页将指导您如何向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