更新 README.md

This commit is contained in:
2026-04-28 16:30:44 +08:00
parent fabe673a88
commit f4df7f4cb1

View File

@@ -55,22 +55,29 @@
**问题:** vLLM 遇到不兼容的 tokenizer 类(如 `TokenizersBackend``TiktokenTokenizer`)时无法加载模型。
**解决方案:** 容器启动时自动检测并修复 tokenizer 配置:
**解决方案:** 容器启动时自动检测并按需修复 tokenizer 配置:
| 检测到的类型 | 判断依据 | 替换为 |
|---|---|---|
| `fast` | 存在 `tokenizer.json` | `PreTrainedTokenizerFast` |
| `sentencepiece` | 存在 `tokenizer.model` | `LlamaTokenizer` |
| `bpe` | 存在 `vocab.json` + `merges.txt` | `GPT2TokenizerFast` |
| `unknown` | 无法识别 | `PreTrainedTokenizerFast`(默认) |
- 动态获取当前 transformers 版本支持的所有合法 tokenizer class 作为白名单
- **合法 class 保留原样**(如 `Qwen2Tokenizer``LlamaTokenizer` 等),不做任何修改
- **仅以下情况才会覆盖**
- `tokenizer_class` 在已知坏列表中(`TokenizersBackend``TiktokenTokenizer`
- `tokenizer_class` 缺失或为空
- 覆盖时根据文件类型推断兜底值:
| 文件类型判断依据 | 兜底替换为 |
|---|---|
| 存在 `tokenizer.json` | `PreTrainedTokenizerFast` |
| 存在 `tokenizer.model` | `LlamaTokenizer` |
| 存在 `vocab.json` + `merges.txt` | `GPT2TokenizerFast` |
| 无法识别 | `PreTrainedTokenizerFast` |
**执行流程:**
```
容器启动 → entrypoint.sh → fix_tokenizer.py修复→ vllm serve --tokenizer /tmp/fixed_tokenizer
容器启动 → entrypoint.sh → fix_tokenizer.py按需修复)→ vllm serve --tokenizer /tmp/fixed_tokenizer
```
**影响范围:** 运行时,每次容器启动时执行,不修改原始模型文件。
**影响范围:** 运行时,每次容器启动时执行,不修改原始模型文件。侵入性最小化,正常模型完全不受影响。
## 构建方法
@@ -121,5 +128,5 @@ docker build -t harbor.4pd.io/dooke/vllm/vllm/vllm-openai:v0.11.0-patched .
## 维护信息
- **构建日期**2026-04-27
- **构建日期**2026-04-28
- **维护者**i-peixingyu