vLLM 支持加载多种格式的模型文件,了解模型文件的组成有助于你更好地管理和使用模型。
以常见的 Hugging Face 格式模型为例,其目录结构通常如下:
model_dir/ ├── config.json # 模型结构配置文件 ├── tokenizer.json # 分词器配置(Fast Tokenizer) ├── tokenizer_config.json # 分词器元信息配置 ├── special_tokens_map.json # 特殊 Token 映射表 ├── generation_config.json # 生成参数默认配置 ├── model.safetensors # 模型权重文件(单文件) └── model.safetensors.index.json # 权重分片索引(多分片时存在)
当模型体积较大时,权重文件会被切分为多个分片,例如:
model-00001-of-00004.safetensors model-00002-of-00004.safetensors model-00003-of-00004.safetensors model-00004-of-00004.safetensors model.safetensors.index.json
其中 model.safetensors.index.json 记录了每个 tensor 存储在哪个分片文件中。
config.json
模型的核心配置文件,定义模型的结构参数,例如模型类型(model_type)、层数(num_hidden_layers)、隐藏层维度(hidden_size)、注意力头数(num_attention_heads)、词表大小(vocab_size)等。vLLM 通过该文件确定使用哪个模型实现类并初始化模型结构。
权重文件
vLLM 支持以下两种主流权重格式:
| 格式 | 文件后缀 | 说明 |
|---|---|---|
| Safetensors | .safetensors | 推荐格式,加载速度快、安全性高 |
| PyTorch | .bin | 传统格式,基于 Python pickle 序列化 |
vLLM 优先加载 .safetensors 格式,若不存在则回退到 .bin 格式。
分词器相关文件
| 文件 | 说明 |
|---|---|
tokenizer.json | Fast Tokenizer 的完整配置,包含词表和分词规则 |
tokenizer_config.json | 分词器类型及特殊 Token 等元信息 |
special_tokens_map.json | BOS、EOS、PAD 等特殊 Token 的映射关系 |
vocab.json / merges.txt | BPE 类分词器的词表和合并规则(如 GPT-2 系列) |
generation_config.json
定义推理时的默认生成参数,例如最大生成长度(max_new_tokens)、采样温度(temperature)、终止 Token(eos_token_id)等。vLLM 在初始化时会读取该文件作为默认生成参数的参考,该文件为可选项。
除 Hugging Face 格式外,vLLM 还支持加载 GGUF 格式的模型文件:
model.gguf
GGUF 格式将模型配置与权重打包在单个文件中,常见于 llama.cpp 生态。
| 文件 | 是否必需 |
|---|---|
config.json | 必需 |
.safetensors / .bin 权重文件 | 必需 |
tokenizer.json / tokenizer_config.json | 必需 |
special_tokens_map.json | 推荐 |
generation_config.json | 可选 |
vLLM 兼容标准的 Hugging Face Hub 模型格式,可以直接传入模型名称(如
meta-llama/Llama-3-8B-Instruct),vLLM 会自动从 Hub 下载并识别所需文件。
你可以在 cnb.cool/ai-models 浏览所有可用模型
由于模型权重文件体积较大,CNB 使用 Git LFS(Large File Storage) 存储模型权重等二进制文件,因此在拉取模型前需要确保本地已安装 Git LFS。
使用 git clone 直接克隆模型仓库,Git LFS 会自动下载权重文件:
git clone https://cnb.cool/ai-models/Ollama/OneClick/qwen3.6
克隆完成后,模型文件将保存在当前目录的 qwen3.6 文件夹下,可直接用于 vLLM 加载。
如果你只想查看模型的配置文件,暂不下载体积较大的权重文件,可以在克隆前临时禁用 LFS:
GIT_LFS_SKIP_SMUDGE=1 git clone https://cnb.cool/ai-models/Ollama/OneClick/qwen3.6
此时权重文件不会被实际下载,仓库中对应文件仅为 LFS 指针文件。当你确认需要某个权重文件后,可以在仓库目录内手动拉取:
# 拉取所有 LFS 文件
git lfs pull
# 只拉取指定文件
git lfs pull --include="model.safetensors"