Files
enginex-mrv100-compat/Dockerfile

40 lines
2.6 KiB
Docker
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# enginex-mrv100-compat
#
# 天数智芯 智铠100(Iluvatar_mrv-100)· 文本生成 · vLLM「兼容增强」引擎。
#
# 与 enginex-bi100-compat 同源同逻辑,只是换成 mrv-100 的基础镜像。
# 做法照搬社区已上线引擎 zhengzhongwei/vLLM-Iluvatar_mrv-100-opt:
# **把镜像内的 vllm 二进制换成本仓 wrapper**,平台原样下发
# `vllm serve /model --port 80 ...` 就会流经 wrapper,无需平台改任何命令。
#
# 为什么选 mrv-100:该卡当前只有 vllm / transformers 两个框架,
# **没有任何 tokenizer/compat 类引擎**;而本人该卡 4 个失败里 2 个是 R2(模型无
# chat_template → chat 路径 400/空输出)。该卡并发上限只有 2,补一个兼容引擎收益直接。
FROM harbor.4pd.io/hardcore-tech/iluvatar/llm-infer-iluvatar-mr:v0
LABEL org.opencontainers.image.title="enginex-mrv100-compat" \
org.opencontainers.image.description="Iluvatar mrv-100 vLLM engine with preflight compatibility patches (R2/R3/R3b/R4/R7)" \
com.modelhubxc.engine.target-card="Iluvatar_mrv-100" \
com.modelhubxc.engine.framework="vllm" \
com.modelhubxc.engine.task-type="text-generation" \
com.modelhubxc.engine.pattern="zhengzhongwei/vLLM-Iluvatar_mrv-100-opt"
COPY preflight.py /opt/
COPY detect_tokenizer.py /opt/
COPY vllm_wrapper.sh /opt/
COPY shims_ixformer_layers.py /opt/shims_src/
RUN set -eux && mkdir -p /opt/shims/ixformer/contrib/vllm/layers && for d in /opt/shims/ixformer /opt/shims/ixformer/contrib /opt/shims/ixformer/contrib/vllm /opt/shims/ixformer/contrib/vllm/layers; do printf '# ModelHub XC compat shim package\n' > "$d/__init__.py"; done && cp /opt/shims_src/shims_ixformer_layers.py /opt/shims/ixformer/contrib/vllm/layers/__init__.py && rm -rf /opt/shims_src && chmod +x /opt/vllm_wrapper.sh /opt/preflight.py && python3 -c "import ast,io;[ast.parse(io.open(f,encoding='utf-8').read()) for f in ['/opt/preflight.py','/opt/detect_tokenizer.py','/opt/shims/ixformer/contrib/vllm/layers/__init__.py']]" && bash -n /opt/vllm_wrapper.sh && echo "[enginex-mrv100-compat] preflight syntax OK"
ENV PYTHONPATH=/opt/shims:${PYTHONPATH}
ENV MODEL_DIR=/model
# 关键一步:把 vllm 二进制换成 wrapper(真身改名 vllm_real),
# 平台下发的 `vllm serve ...` 因此流经本引擎的启动前修补。
RUN set -eux && VLLM_BIN="$(command -v vllm || echo /usr/local/corex/lib64/python3/dist-packages/bin/vllm)" && \
if [ ! -f "$VLLM_BIN" ]; then echo "vllm binary not found at $VLLM_BIN"; exit 1; fi && \
mv "$VLLM_BIN" "${VLLM_BIN}_real" && \
ln -s /opt/vllm_wrapper.sh "$VLLM_BIN" && \
echo "[enginex-mrv100-compat] vllm -> wrapper installed"