fix tokenizer
This commit is contained in:
66
README.md
Normal file
66
README.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# vllm-ascend-fix-tokenizer
|
||||
|
||||
基于 `harbor.4pd.io/modelhubxc/enginex-ascend/vllm-ascend:v0.11.0rc0` 的 tokenizer 自动修复镜像,面向 Ascend 910B4 NPU。
|
||||
|
||||
## 问题背景
|
||||
|
||||
部分模型的 `tokenizer_config.json` 存在以下问题,导致 vLLM 服务启动失败(错误码 `TOKENIZER_FAILED`):
|
||||
|
||||
| 错误 | 原因 | 受影响模型数 |
|
||||
|---|---|---|
|
||||
| `ValueError: Tokenizer class TokenizersBackend does not exist` | `tokenizer_class` 不是 transformers 合法类名 | 24 |
|
||||
| `AttributeError: 'list' object has no attribute 'keys'` | `extra_special_tokens` 为 list 格式,transformers 要求 dict | 30 |
|
||||
|
||||
详见 `tokenizer_failure_summary.md`。
|
||||
|
||||
## 修复方式
|
||||
|
||||
构建时将镜像内的 `vllm` 二进制(`/usr/local/bin/vllm`)替换为同名 wrapper 脚本,原二进制重命名为 `vllm_real`。
|
||||
|
||||
容器启动时 wrapper 自动检测 `tokenizer_config.json`:
|
||||
- 存在问题 → 将 tokenizer 文件复制到 `/tmp/fixed_tokenizer/` 并修复,追加 `--tokenizer /tmp/fixed_tokenizer` 参数后调用 `vllm_real`
|
||||
- 无问题 → 直接调用 `vllm_real`,行为与原镜像完全一致
|
||||
|
||||
原始模型目录不做任何修改。
|
||||
|
||||
## 使用方式
|
||||
|
||||
**原始 docker run 命令只需替换镜像名,其他参数不变:**
|
||||
|
||||
```bash
|
||||
# 原镜像
|
||||
harbor.4pd.io/modelhubxc/enginex-ascend/vllm-ascend:v0.11.0rc0
|
||||
|
||||
# 替换为
|
||||
<this-image>
|
||||
```
|
||||
|
||||
示例:
|
||||
```bash
|
||||
docker run -dit --name <container_name> \
|
||||
-p 8000:8000 \
|
||||
--privileged=true \
|
||||
--ipc=host \
|
||||
--device /dev/davinci_manager \
|
||||
--device /dev/devmm_svm \
|
||||
--device /dev/hisi_hdc \
|
||||
-v /usr/local/dcmi:/usr/local/dcmi \
|
||||
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi \
|
||||
-v /usr/local/Ascend/driver/lib64/:/usr/local/Ascend/driver/lib64/ \
|
||||
-v /usr/local/Ascend/driver/version.info:/usr/local/Ascend/driver/version.info \
|
||||
-v /etc/ascend_install.info:/etc/ascend_install.info \
|
||||
-v /path/to/model:/model \
|
||||
-e NPU_VISIBLE_DEVICES=0 \
|
||||
-e ASCEND_RT_VISIBLE_DEVICES=0 \
|
||||
--entrypoint vllm <this-image> \
|
||||
serve /model --served-model-name llm \
|
||||
--trust-remote-code --max-model-len 2048 --enforce-eager -tp 1
|
||||
```
|
||||
|
||||
## 构建
|
||||
|
||||
```bash
|
||||
docker build -t vllm-ascend-fix-tokenizer:latest .
|
||||
```
|
||||
|
||||
CI 通过推送 `v*` tag 自动触发构建并推送镜像。
|
||||
Reference in New Issue
Block a user