logo
0
0
WeChat Login

一、模型文件的组成

vLLM 支持加载多种格式的模型文件,了解模型文件的组成有助于你更好地管理和使用模型。

1.1 典型的模型目录结构

以常见的 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 存储在哪个分片文件中。

1.2 各文件说明

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.jsonFast Tokenizer 的完整配置,包含词表和分词规则
tokenizer_config.json分词器类型及特殊 Token 等元信息
special_tokens_map.jsonBOSEOSPAD 等特殊 Token 的映射关系
vocab.json / merges.txtBPE 类分词器的词表和合并规则(如 GPT-2 系列)

generation_config.json

定义推理时的默认生成参数,例如最大生成长度(max_new_tokens)、采样温度(temperature)、终止 Token(eos_token_id)等。vLLM 在初始化时会读取该文件作为默认生成参数的参考,该文件为可选项。

1.3 GGUF 格式

除 Hugging Face 格式外,vLLM 还支持加载 GGUF 格式的模型文件:

model.gguf

GGUF 格式将模型配置与权重打包在单个文件中,常见于 llama.cpp 生态。

1.4 文件必要性说明

文件是否必需
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 获取模型文件

你可以在 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"

About

vllm示例项目