更新 README.md
This commit is contained in:
27
README.md
27
README.md
@@ -55,22 +55,29 @@
|
|||||||
|
|
||||||
**问题:** vLLM 遇到不兼容的 tokenizer 类(如 `TokenizersBackend`、`TiktokenTokenizer`)时无法加载模型。
|
**问题:** vLLM 遇到不兼容的 tokenizer 类(如 `TokenizersBackend`、`TiktokenTokenizer`)时无法加载模型。
|
||||||
|
|
||||||
**解决方案:** 容器启动时自动检测并修复 tokenizer 配置:
|
**解决方案:** 容器启动时自动检测并按需修复 tokenizer 配置:
|
||||||
|
|
||||||
| 检测到的类型 | 判断依据 | 替换为 |
|
- 动态获取当前 transformers 版本支持的所有合法 tokenizer class 作为白名单
|
||||||
|---|---|---|
|
- **合法 class 保留原样**(如 `Qwen2Tokenizer`、`LlamaTokenizer` 等),不做任何修改
|
||||||
| `fast` | 存在 `tokenizer.json` | `PreTrainedTokenizerFast` |
|
- **仅以下情况才会覆盖**:
|
||||||
| `sentencepiece` | 存在 `tokenizer.model` | `LlamaTokenizer` |
|
- `tokenizer_class` 在已知坏列表中(`TokenizersBackend`、`TiktokenTokenizer`)
|
||||||
| `bpe` | 存在 `vocab.json` + `merges.txt` | `GPT2TokenizerFast` |
|
- `tokenizer_class` 缺失或为空
|
||||||
| `unknown` | 无法识别 | `PreTrainedTokenizerFast`(默认) |
|
- 覆盖时根据文件类型推断兜底值:
|
||||||
|
|
||||||
|
| 文件类型判断依据 | 兜底替换为 |
|
||||||
|
|---|---|
|
||||||
|
| 存在 `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
|
- **维护者**:i-peixingyu
|
||||||
|
|||||||
Reference in New Issue
Block a user