跳至内容

提示词嵌入输入

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

优云智算