VLLM专题(三十九)—自动前缀缓存(二)

前缀缓存(Prefix Caching)是一种在LLM推理中广泛使用的优化技术,旨在避免冗余的提示词(prompt)计算。其核心思想很简单——我们缓存已处理请求的键值缓存(kv-cache)块,并在新请求的前缀与之前请求相同时重用这些块。由于前缀缓存几乎是一种“免费的午餐”,并且不会改变模型输出,因此它已被许多公共端点(例如OpenAI、Anthropic等)和大多数开源LLM推理框架(例如SGLang)广泛采用。

尽管实现前缀缓存的方法有很多,但vLLM选择了一种基于哈希的方法。具体来说,我们通过对每个kv-cache块中的token以及该块之前的prefix中的token进行哈希来标识缓存块。

                    Block 1                  Block 2                  Block 3
         [A gentle breeze stirred] [the leaves as children] [laughe
### vLLM 前缀含义及用法 #### vLLM 的定义与功能 vLLM 是一个专为大规模语言模型设计的强大推理框架,支持多种应用场景下的高效部署和运行。该工具不仅简化了大语言模型的使用流程,还提供了丰富的配置选项来满足不同需求[^1]。 #### 参数解析 对于命令行中的 `--quantization` 参数而言,当指定了具体的量化方法(如 FP8),即使原始模型是非量化的,在服务启动阶段也会尝试应用所选的量化技术对该模型进行转换处理。这意味着像下面两个指令虽然最终提供相似的服务质量,但在初始化过程中存在差异: - 使用内置FP8版本直接加载:`vllm serve meta-llama/Meta-Llama-3.1-405B-Instruct-FP8` - 对非量化版施加FP8量化后再启动:`vllm serve meta-llama/Meta-Llama-3.1-405B-Instruct --quantization fp8` 前者由于已经完成了预量化工作,因此在实际启动时速度更快;而后者则需额外花费时间完成即时量化操作[^2]。 #### 关于前缀的理解 在涉及 vLLM 及其关联组件时,“vLLM”本身即作为项目名同时也充当着一系列子命令和服务命名空间的角色。例如,在执行诸如 `vllm serve ...` 这样的命令时,“serve” 就是基于 “vLLM” 主体下的一项具体任务或模式指示符,用于告知程序接下来应按照服务器端口监听的方式运作,并接受来自客户端的各种请求输入。 此外,还有其他一些常见的带有 vLLM 前缀的关键字或短语可能出现在配置文件、环境变量或是API接口调用当中,它们通常用来标识那些专门为这个特殊平台定制的功能特性或者是内部机制实现细节。不过这些高级话题超出了当前讨论范围,有兴趣深入了解的话建议查阅官方文档获取更多资料[^3]。 ```bash # 启动带特定分词器模式的服务实例 vllm serve my-model-path --tokenizer-mode slow ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI专题精讲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值