跳到内容

Prompt Embedding 输入

本页介绍如何将 prompt embedding 输入传递给 vLLM。

什么是 prompt embeddings?

大型语言模型的传统文本数据流程是:从文本到 token ID(通过分词器),然后从 token ID 到 prompt embeddings。对于传统的仅解码器模型(例如 meta-llama/Llama-3.1-8B-Instruct),将 token ID 转换为 prompt embeddings 的步骤是通过查阅学习到的 embedding 矩阵来实现的,但模型不仅限于处理与其 token 词汇表对应的 embeddings。

注意

Prompt embeddings 目前仅在 v0 引擎中支持。

离线推理

要输入多模态数据,请按照 [vllm.inputs.EmbedsPrompt][] 中的此 schema 操作

  • prompt_embeds: 一个 torch 张量,表示一系列 prompt/token embeddings。其形状为 (sequence_length, hidden_size),其中 sequence_length 是 token embeddings 的数量,hidden_size 是模型的 hidden size (embedding size)。

Hugging Face Transformers 输入

您可以将 Hugging Face Transformers 模型生成的 prompt embeddings 传递给 prompt embedding 字典的 'prompt_embeds' 字段,如下例所示

examples/offline_inference/prompt_embed_inference.py

在线部署

我们的 OpenAI 兼容服务器通过 Completions API 接受 prompt embeddings 输入。prompt embeddings 输入通过 JSON 包中的新键 'prompt_embeds' 添加。

当在单个请求中同时提供 'prompt_embeds''prompt' 输入时,prompt embeds 总是优先返回。

Prompt embeddings 作为 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