x
This commit is contained in:
@@ -406,6 +406,28 @@ docker compose build --no-cache gradio
|
|||||||
docker compose up -d --force-recreate
|
docker compose up -d --force-recreate
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Q: 任务失败并提示 `Please install vllm to use the vllm-async-engine backend`**
|
||||||
|
|
||||||
|
这通常不是简单的“没安装 vllm”,而是任务进程里 `import vllm` 或 `from vllm.platforms import current_platform` 失败,MinerU 将真实异常包装成了这句提示。先在容器内直接诊断:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose exec gradio bash -lc '/opt/mineru_venv/bin/python - <<"PY"
|
||||||
|
import traceback
|
||||||
|
try:
|
||||||
|
import torch
|
||||||
|
import vllm
|
||||||
|
from vllm.platforms import current_platform
|
||||||
|
print("torch:", torch.__version__, "hip:", torch.version.hip)
|
||||||
|
print("vllm:", vllm.__version__)
|
||||||
|
print("platform:", type(current_platform).__name__, "is_rocm:", current_platform.is_rocm())
|
||||||
|
except Exception:
|
||||||
|
traceback.print_exc()
|
||||||
|
raise
|
||||||
|
PY'
|
||||||
|
```
|
||||||
|
|
||||||
|
当前入口脚本会在服务启动前执行同样的 vLLM 导入验证;如果验证失败,容器会直接退出并在 `docker compose logs gradio` 中显示真实 traceback,而不是等任务执行时才报泛化错误。
|
||||||
|
|
||||||
**Q: 构建时 `ninja` 被 kill(exit 137)**
|
**Q: 构建时 `ninja` 被 kill(exit 137)**
|
||||||
|
|
||||||
内存不足。将 Dockerfile 中 `ninja -j4` 改为 `ninja -j2` 或 `ninja -j1`,或给 Docker 分配更多内存。
|
内存不足。将 Dockerfile 中 `ninja -j4` 改为 `ninja -j2` 或 `ninja -j1`,或给 Docker 分配更多内存。
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ echo "[entrypoint] running patches..."
|
|||||||
|
|
||||||
# vllm 平台补丁
|
# vllm 平台补丁
|
||||||
if [ -f ${SCRIPTS_DIR}/patch_vllm_platform.py ]; then
|
if [ -f ${SCRIPTS_DIR}/patch_vllm_platform.py ]; then
|
||||||
${VENV}/bin/python ${SCRIPTS_DIR}/patch_vllm_platform.py || echo "[entrypoint] patch_vllm_platform.py failed (non-fatal)"
|
${VENV}/bin/python ${SCRIPTS_DIR}/patch_vllm_platform.py
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# MinerU 推理补丁
|
# MinerU 推理补丁
|
||||||
|
|||||||
@@ -2,10 +2,11 @@
|
|||||||
"""vllm 平台检测补丁
|
"""vllm 平台检测补丁
|
||||||
|
|
||||||
问题 1:amdsmi 不可用时 platform 回退到 torch.version.hip
|
问题 1:amdsmi 不可用时 platform 回退到 torch.version.hip
|
||||||
问题 2:rocm.py 中 logger.warning_once() 导致循环导入
|
问题 2:rocm.py 中 logger.warning_once() 导致循环导入(默认不再改写;仅保留为显式开关)
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import traceback
|
||||||
|
|
||||||
VLLM_DIR = '/opt/vllm/vllm'
|
VLLM_DIR = '/opt/vllm/vllm'
|
||||||
|
|
||||||
@@ -33,7 +34,16 @@ def patch6_init_platform_fallback():
|
|||||||
|
|
||||||
|
|
||||||
def patch7_rocm_break_import_cycle():
|
def patch7_rocm_break_import_cycle():
|
||||||
"""补丁 7:platforms/rocm.py —— logger.warning_once → sys.stderr.write"""
|
"""补丁 7:platforms/rocm.py —— logger.warning_once → sys.stderr.write
|
||||||
|
|
||||||
|
这个补丁会直接改写 vLLM 源码中的函数调用。部分 vLLM 版本里
|
||||||
|
logger.warning_once(...) 参数不一定兼容 sys.stderr.write(...),改写后可能
|
||||||
|
导致 import vllm / import vllm.platforms.rocm 失败。MinerU 会把这种导入失败
|
||||||
|
包装成 "Please install vllm",因此默认禁用,只在显式设置环境变量时启用。
|
||||||
|
"""
|
||||||
|
if os.environ.get('VLLM_PATCH_ROCM_WARNING_ONCE') != '1':
|
||||||
|
print('Patch 7: skipped (set VLLM_PATCH_ROCM_WARNING_ONCE=1 to enable).')
|
||||||
|
return
|
||||||
f = os.path.join(VLLM_DIR, 'platforms', 'rocm.py')
|
f = os.path.join(VLLM_DIR, 'platforms', 'rocm.py')
|
||||||
c = open(f).read()
|
c = open(f).read()
|
||||||
old = 'logger.warning_once('
|
old = 'logger.warning_once('
|
||||||
@@ -49,6 +59,14 @@ def patch7_rocm_break_import_cycle():
|
|||||||
def main():
|
def main():
|
||||||
patch6_init_platform_fallback()
|
patch6_init_platform_fallback()
|
||||||
patch7_rocm_break_import_cycle()
|
patch7_rocm_break_import_cycle()
|
||||||
|
try:
|
||||||
|
import vllm
|
||||||
|
from vllm.platforms import current_platform
|
||||||
|
print(f'vllm runtime import OK: {vllm.__version__}, platform={type(current_platform).__name__}')
|
||||||
|
except Exception:
|
||||||
|
print('ERROR: vllm runtime import failed after platform patches:')
|
||||||
|
traceback.print_exc()
|
||||||
|
raise
|
||||||
print('vllm platform patches done.')
|
print('vllm platform patches done.')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user