提示嵌入输入¶
本页介绍如何将提示嵌入输入传递给 vLLM。
什么是提示嵌入?¶
大型语言模型的传统文本数据流是从文本到 token ID(通过分词器),然后从 token ID 到提示嵌入。对于传统的仅解码器模型(例如 meta-llama/Llama-3.1-8B-Instruct),将 token ID 转换为提示嵌入的步骤是通过从学习到的嵌入矩阵中查找来完成的,但模型不限于仅处理与其 token 词汇对应的嵌入。
注意
提示嵌入目前仅在 v0 引擎中受支持。
离线推理¶
要输入多模态数据,请遵循 [vllm.inputs.EmbedsPrompt][] 中的此 schema。
prompt_embeds
:一个 torch 张量,表示一个提示/token 嵌入序列。其形状为 (sequence_length, hidden_size),其中 sequence_length 是 token 嵌入的数量,hidden_size 是模型的隐藏大小(嵌入大小)。
Hugging Face Transformers 输入¶
您可以将来自 Hugging Face Transformers 模型的提示嵌入传递到提示嵌入字典的 'prompt_embeds'
字段,如下例所示:
examples/offline_inference/prompt_embed_inference.py
在线服务¶
我们的 OpenAI 兼容服务器通过 补全 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