更新 README.md
This commit is contained in:
27
README.md
27
README.md
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user