当前位置: 首页 > web >正文

vLLM - LLM 类初始化参数

vLLM - LLM 类初始化参数

flyfish

一、模型与分词器配置

控制模型加载路径、分词器设置及远程代码信任策略。

参数名说明默认值注意事项
modelHuggingFace Transformers 模型的名称或路径。无(必传)支持本地路径或 HuggingFace Hub 模型名(如 gpt2)。
tokenizerHuggingFace Transformers 分词器的名称或路径。model 相同若模型与分词器不同,需显式指定(如 tokenizer="gpt2")。
tokenizer_mode分词器模式:
- auto:优先使用快速分词器(若可用)
- slow:强制使用慢速分词器
auto快速分词器基于 Rust,性能更优,但部分模型仅支持慢速分词器。
skip_tokenizer_init是否跳过分词器初始化(若已预处理 prompt 为 token IDs,可设为 True)。False输入需提供 prompt_token_ids 而非文本,用于性能优化。
trust_remote_code是否信任远程代码(如 HuggingFace Hub 上的自定义模型实现)。False启用时需谨慎,可能存在安全风险(如恶意代码)。
revision模型版本(分支名、标签名或提交 ID)。None(默认版本)用于指定特定模型版本(如 revision="main")。
tokenizer_revision分词器版本(同上)。None当分词器与模型版本不一致时使用。

二、安全性与本地资源访问

控制模型加载和 API 请求的安全策略,限制本地文件访问。

参数名说明默认值注意事项
allowed_local_media_path允许 API 请求读取的本地媒体路径(如图像、视频)。None启用后存在安全风险,仅在可信环境中使用(如内部服务)。
hf_tokenHuggingFace API 访问令牌。
- True:使用本地存储的令牌(~/.huggingface
- 字符串:自定义令牌
None用于访问私有模型或需要授权的资源。

三、分布式与并行计算

控制模型在多 GPU 上的并行方式及资源分配。

参数名说明默认值注意事项
tensor_parallel_size张量并行的 GPU 数量(模型分片数)。1需 ≥ 1 且 ≤ 可用 GPU 总数,推荐值为可用 GPU 数(如 4 卡则设为 4)。
disable_custom_all_reduce禁用自定义 AllReduce 优化(影响多 GPU 通信效率)。False仅在特定 GPU 架构或通信库不兼容时启用。

四、模型精度与量化

控制模型权重的数据类型及量化策略,平衡精度与内存占用。

参数名说明默认值注意事项
dtype模型权重和激活函数的数据类型:
- float32:全精度(最高内存)
- float16:半精度(默认)
- bfloat16:Brain Floating Point
- auto:自动根据模型配置选择
autoauto 通常选择 float16,除非模型明确支持 bfloat16
quantization模型量化方法:
- awq:激活感知权重量化
- gptq:GPTQ 量化
- fp8:8 位浮点量化(实验性)
- None:不量化
None量化可显著降低内存占用,但可能损失精度(如 awq 通常保持 99% 以上精度)。

五、内存与性能优化

控制 GPU/CPU 内存分配、交换空间及执行模式,提升吞吐量或降低延迟。

参数名说明默认值注意事项
gpu_memory_utilizationGPU 内存使用率(0~1),用于模型权重、激活函数和 KV 缓存。0.9过高可能导致 OOM,过低会浪费 GPU 资源;长序列生成时建议降低(如 0.8)。
swap_space每个 GPU 对应的 CPU 交换空间大小(GiB),用于存储 best_of > 1 的中间状态。4若所有请求 best_of=1,可设为 0;否则过小可能导致 OOM。
cpu_offload_gb用于卸载模型权重的 CPU 内存大小(GiB)。0增加 GPU 可用内存,但会降低推理速度(每次前向传播需 CPU-GPU 数据传输)。
enforce_eager是否强制使用 eager 执行模式(禁用 CUDA Graph)。FalseCUDA Graph 可提升吞吐量,但动态序列长度场景可能降级,此时建议设为 True
max_seq_len_to_captureCUDA Graph 支持的最大序列长度。超过此长度则回退到 eager 模式。2048长序列(如 8k+)生成时需增大此值,否则频繁切换模式会降低性能。
disable_async_output_proc禁用异步输出处理(可能降低性能)。False仅在调试或特定场景下启用。
compilation_config编译优化配置:
- 整数:优化级别(0~3)
- 字典:详细配置参数
None高级优化,如 {"level": 3, "mode": "max-performance"}

六、随机数生成与可复现性

控制采样过程中的随机种子,确保结果可复现。

参数名说明默认值注意事项
seed随机数生成器的种子。None设置后,相同输入和参数将生成确定性结果(仅在 temperature > 0 时有效)。

七、HuggingFace 配置覆盖

自定义 HuggingFace 模型配置的参数或处理函数。

参数名说明默认值注意事项
hf_overridesHuggingFace 模型配置的覆盖参数:
- 字典:直接覆盖配置字段(如 {"max_position_embeddings": 8192}
- 函数:自定义修改配置的函数
None用于修改模型原生配置(如扩展最大序列长度)。

八、其他参数

通用配置参数,传递给底层 EngineArgs 类。

参数名说明默认值注意事项
**kwargs传递给 vllm.EngineArgs 的其他参数(如 log_stats=True)。-具体参数见 EngineArgs 文档,用于高级配置(如日志统计、KV 缓存策略等)。

最佳实践

  1. 多 GPU 部署

    • 设置 tensor_parallel_size 为可用 GPU 数,gpu_memory_utilization=0.8~0.9,平衡吞吐量与稳定性。
  2. 长序列生成

    • 增大 max_seq_len_to_capture(如 8192),降低 gpu_memory_utilization(如 0.7),避免频繁切换执行模式。
  3. 内存优化

    • 使用 quantization="awq"gptq 降低模型内存占用,结合 cpu_offload_gb 进一步扩展可用空间。
  4. 可复现性

    • 设置 seed 为固定值,确保相同输入生成相同结果(需配合 temperature > 0)。

vLLM 处理多模态输入参数用法说明

from transformers import AutoProcessor
from vllm import LLM, SamplingParams
from qwen_vl_utils import process_vision_infoMODEL_PATH = "Qwen/Qwen2.5-VL-7B-Instruct"# 初始化LLM模型,设置多模态输入限制(每个提示最多10个图像和10个视频)
llm = LLM(model=MODEL_PATH,limit_mm_per_prompt={"image": 10, "video": 10},
)# 设置采样参数,控制文本生成的方式
sampling_params = SamplingParams(temperature=0.1,         # 温度参数,控制随机性,值越低生成越确定性top_p=0.001,           # 核采样概率阈值,限制候选词范围repetition_penalty=1.05, # 重复惩罚因子,大于1时抑制重复生成max_tokens=256,        # 最大生成长度stop_token_ids=[],     # 停止生成的token ID列表
)# 构建图像输入消息(使用本地文件)
image_messages = [{"role": "system", "content": "You are a helpful assistant."},{"role": "user","content": [{"type": "image","image": "path/to/your/local/image.jpg",  # 替换为本地图像路径"min_pixels": 224 * 224,"max_pixels": 1280 * 28 * 28,},{"type": "text", "text": "What is the text in the illustrate?"},],},
]# 构建视频输入消息(使用本地文件)
video_messages = [{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": [{"type": "text", "text": "请用表格总结一下视频中的商品特点"},{"type": "video", "video": "path/to/your/local/video.mp4",  # 替换为本地视频路径"total_pixels": 20480 * 28 * 28, "min_pixels": 16 * 28 * 28}]},
]# 选择使用视频消息作为示例
messages = video_messages# 加载模型处理器
processor = AutoProcessor.from_pretrained(MODEL_PATH)# 构建聊天模板,将消息转换为模型可接受的格式
prompt = processor.apply_chat_template(messages,tokenize=False,add_generation_prompt=True,
)# 处理视觉信息,提取图像和视频输入
image_inputs, video_inputs, video_kwargs = process_vision_info(messages, return_video_kwargs=True)# 准备多模态输入数据
mm_data = {}
if image_inputs is not None:mm_data["image"] = image_inputs
if video_inputs is not None:mm_data["video"] = video_inputs# 构建LLM输入
llm_inputs = {"prompt": prompt,"multi_modal_data": mm_data,# FPS等视频处理参数将从video_kwargs中获取"mm_processor_kwargs": video_kwargs,
}# 生成回答
outputs = llm.generate([llm_inputs], sampling_params=sampling_params)
generated_text = outputs[0].outputs[0].textprint(generated_text)
  1. LLM初始化参数

    • model: 指定模型路径或名称,如"Qwen/Qwen2.5-VL-7B-Instruct"
    • limit_mm_per_prompt: 限制每个提示中可以包含的多模态输入数量,格式为字典,如{"image": 10, "video": 10}
  2. SamplingParams参数

    • temperature: 控制生成文本的随机性。较低的值(如0.1)使生成更确定性,适合事实性任务;较高的值(如1.0)增加随机性,适合创造性任务。
    • top_p: 核采样参数,只考虑概率总和达到top_p的最小词元集合,减少低概率词元的生成。
    • repetition_penalty: 重复惩罚因子,大于1的值会抑制重复生成相同的内容,有助于避免模型重复相同的短语。
    • max_tokens: 限制生成的最大token数量,防止生成过长的文本。
    • stop_token_ids: 指定停止生成的token ID列表,当遇到这些token时,模型将停止生成。
http://www.xdnf.cn/news/7258.html

相关文章:

  • Addressable-加载指定资源
  • QT6 源(108)篇二:阅读与注释菜单栏里的菜单对象 QMenu,先是成员函数,后是信号函数的测试
  • Python 位运算:深入理解与实践应用
  • Linux开放访问端口
  • boost之signal2
  • 【ROS2】虚拟机使用fishros脚本一键安装humble
  • 我的创作纪念日——512天
  • 学习笔记:hspice仿真Verilog-a
  • ReentrantLock、ReentrantReadWriteLock、StampedLock讲解
  • ET Attribute
  • 【Python 算法零基础 4.排序 ① 选择排序】
  • 深度剖析:YOLOv8融入UNetv2 SDI模块的性能提升之旅
  • 游戏服务器之聊天频道设计
  • 双紫擒龙紫紫红指标源码学习,2025升级版紫紫红指标公式-重点技术
  • transformer project tutorial
  • volatile
  • Python实例题:Flask开发轻博客
  • mybatis中的resultMap的association及collectio的使用
  • 【动态规划】状压dp
  • Mlp-Mixer-BiGRU故障诊断的python代码合集
  • LLMs:《POE报告:2025年春季人工智能模型使用趋势》解读
  • 实习记录小程序|基于SSM+Vue的实习记录小程序设计与实现(源码+数据库+文档)
  • 涉密载体管控系统|DW-S402系统组成
  • 【LLM MoE】论文分享No.11:DeepSeekMoE
  • 前缀和——中心数组下标
  • Leetcode 3552. Grid Teleportation Traversal
  • 【开源分享】健康饮食管理系统(双端+论文)
  • 2- PyTorch
  • 如何使用 Apple 提供的 benchmark 工具
  • 深入解析Spring Boot与Spring Cloud在微服务架构中的实践