Some checks failed
Build and verify Qwen2.5 compatibility engines / docker (push) Failing after 3m32s
3.5 KiB
3.5 KiB
Qwen2.5 启动兼容引擎
这个独立镜像仓库沿用 ModelHub A100 示例仓库
的方式:标签触发 .gitea/workflows/docker-build-push.yml,runner 检查元数据、构建并推送镜像,
最后调用 ModelHub 的 image-verify 接口注册验证。
当前为 A100 参考端、寒武纪 MLU370 x4/x8、沐曦 C500 和 Vastai VA16
构建四个镜像,五个 GPU 共用 vllm_qwen25_compat 框架名。基础镜像均来自
平台已有验证任务使用的版本;A100 沿用示例仓库的基础镜像。每个 GPU 的注册
与可用性仍以平台镜像验证结果和 frameworks 接口回读为准。
修复范围
- 将列表型
extra_special_tokens合并到additional_special_tokens,解决 Transformers 调用.keys()时的崩溃。 - 对明确写成
TokenizersBackend且带tokenizer.json的仓库,改用PreTrainedTokenizerFast。 - 对
model_type=qwen2、eos_token=<|im_end|>且缺少聊天模板的模型,补充 简单的 Qwen ChatML 模板,避免/v1/chat/completions返回 400;已有独立chat_template.jinja或chat_template.json的模型不补写。
启动时在 /tmp 建立新视图,只重写 tokenizer_config.json。若基础镜像使用
--tokenizer 指向单独的临时目录(Vastai 的现有启动脚本如此),则修复实际加载的
tokenizer 目录并保留模型仓库的独立聊天模板,权重路径仍指向原模型;否则修复模型
视图。源模型不变。没有命中问题时直接调用原始 vllm。修复记录写在新视图的
.modelhub-compat-report.json,同时输出到容器日志。
这不能修复缺失权重、尺寸不匹配、Ascend 上持续出现的 0 分输出或平台评测超时。 尤其是分数为 0 的参考端与目标端必须分别排查;只换一个端的镜像不能保证过审。
本地验证
python -m unittest discover -s tests -v
python -m py_compile engine_compat.py
有对应镜像访问权限的 Docker 主机上再运行:
docker build --build-arg BASE_IMAGE=harbor.4pd.io/dooke/vllm/vllm/vllm-openai:v0.11.0 \
-t qwen25-compat:a100 .
docker build --build-arg BASE_IMAGE=harbor.4pd.io/hardcore-tech/cambricon-mlu370-pytorch:v25.01-20260228 \
-t qwen25-compat:mlu370 .
docker build --build-arg BASE_IMAGE=harbor.4pd.io/modelhubxc/enginex-metax/vllm:0.9.1 \
-t qwen25-compat:metax .
docker build --build-arg BASE_IMAGE=harbor.4pd.io/modelhubxc/sunruoxi/enginex-vastai-vllm-vacc-fix-tokenizer:VVI-26.02 \
-t qwen25-compat:vastai .
用 runner 发布
- 源码在公开仓库
a4913994/enginex-qwen25-compat的main;v0.1.0已完成 A100/寒武纪镜像构建并提交镜像验证,验证结果须单独回读。 - runner 使用
DOCKER_REGISTRY、DOCKER_USERNAME、DOCKER_PASSWORD、FIXED_TOKEN;不要把凭证写进仓库。 - 推送新的
v*标签后,工作流依次跑单元测试、验证 GPU/任务元数据、构建与推送 镜像,并为五个 GPU 各发起一次镜像验证;接口业务码也会被检查。 - 在“我的驱动列表”确认五个镜像验证通过,并检查新框架出现在对应 GPU 的
frameworks接口中,再用少量已知缺陷模型做对照验证。
只有平台确认新框架可选且 A100 参考端实际使用新镜像后,才应让 xc-agent 把
列表型 extra_special_tokens 的模型路由到此框架。当前智能体继续预检并跳过它们。