x
This commit is contained in:
@@ -9,9 +9,15 @@ SCRIPTS_DIR=/opt/scripts
|
|||||||
|
|
||||||
echo "[entrypoint] running patches..."
|
echo "[entrypoint] running patches..."
|
||||||
|
|
||||||
# vllm 平台补丁
|
# vllm 平台补丁(非致命:非 GPU 容器可能失败)
|
||||||
if [ -f ${SCRIPTS_DIR}/patch_vllm_platform.py ]; then
|
if [ -f ${SCRIPTS_DIR}/patch_vllm_platform.py ]; then
|
||||||
|
set +e
|
||||||
${VENV}/bin/python ${SCRIPTS_DIR}/patch_vllm_platform.py
|
${VENV}/bin/python ${SCRIPTS_DIR}/patch_vllm_platform.py
|
||||||
|
vllm_rc=$?
|
||||||
|
set -e
|
||||||
|
if [ $vllm_rc -ne 0 ]; then
|
||||||
|
echo "[entrypoint] patch_vllm_platform.py exited with $vllm_rc (non-fatal for router/gradio)"
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# MinerU 推理补丁
|
# MinerU 推理补丁
|
||||||
|
|||||||
@@ -85,6 +85,9 @@ def ensure_vllm_dist_info():
|
|||||||
vLLM 平台检测会通过 importlib.metadata 查询 vllm 分发元数据/entry points。
|
vLLM 平台检测会通过 importlib.metadata 查询 vllm 分发元数据/entry points。
|
||||||
如果只靠 PYTHONPATH 导入源码,没有 dist-info,就会出现:
|
如果只靠 PYTHONPATH 导入源码,没有 dist-info,就会出现:
|
||||||
"The vLLM package was not found...",并可能得到 UnspecifiedPlatform。
|
"The vLLM package was not found...",并可能得到 UnspecifiedPlatform。
|
||||||
|
|
||||||
|
注意:仅当 rocm_platform_plugin 函数实际存在时才注册 entry_point,
|
||||||
|
否则 vLLM 会因 AttributeError 回退到 UnspecifiedPlatform。
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
import vllm
|
import vllm
|
||||||
@@ -112,11 +115,25 @@ def ensure_vllm_dist_info():
|
|||||||
fp.write('vllm\n')
|
fp.write('vllm\n')
|
||||||
with open(os.path.join(dist_info, 'INSTALLER'), 'w') as fp:
|
with open(os.path.join(dist_info, 'INSTALLER'), 'w') as fp:
|
||||||
fp.write('mineru-rocm-runtime\n')
|
fp.write('mineru-rocm-runtime\n')
|
||||||
with open(os.path.join(dist_info, 'entry_points.txt'), 'w') as fp:
|
|
||||||
fp.write(
|
# 仅当 rocm_platform_plugin 实际存在时才注册,避免 vLLM 加载失败
|
||||||
|
entry_points = ''
|
||||||
|
try:
|
||||||
|
from vllm.platforms.rocm import rocm_platform_plugin # noqa: F401
|
||||||
|
entry_points += (
|
||||||
'[vllm.platform_plugins]\n'
|
'[vllm.platform_plugins]\n'
|
||||||
'rocm = vllm.platforms.rocm:rocm_platform_plugin\n'
|
'rocm = vllm.platforms.rocm:rocm_platform_plugin\n'
|
||||||
)
|
)
|
||||||
|
print('rocm_platform_plugin found, registering entry point.')
|
||||||
|
except (ImportError, AttributeError, SystemExit, KeyboardInterrupt):
|
||||||
|
print('WARNING: rocm_platform_plugin not found in vllm.platforms.rocm; '
|
||||||
|
'skipping entry_point registration.')
|
||||||
|
except BaseException as e:
|
||||||
|
print(f'WARNING: rocm_platform_plugin check failed ({type(e).__name__}: {e}); '
|
||||||
|
'skipping entry_point registration.')
|
||||||
|
|
||||||
|
with open(os.path.join(dist_info, 'entry_points.txt'), 'w') as fp:
|
||||||
|
fp.write(entry_points)
|
||||||
with open(os.path.join(dist_info, 'RECORD'), 'w') as fp:
|
with open(os.path.join(dist_info, 'RECORD'), 'w') as fp:
|
||||||
fp.write('')
|
fp.write('')
|
||||||
print(f'vllm dist-info ensured: {dist_info}')
|
print(f'vllm dist-info ensured: {dist_info}')
|
||||||
@@ -161,17 +178,18 @@ def main():
|
|||||||
ensure_vllm_dist_info()
|
ensure_vllm_dist_info()
|
||||||
import vllm
|
import vllm
|
||||||
from vllm.platforms import current_platform
|
from vllm.platforms import current_platform
|
||||||
print(f'vllm runtime import OK: {vllm.__version__}, platform={type(current_platform).__name__}')
|
platform_name = type(current_platform).__name__
|
||||||
if type(current_platform).__name__ == 'UnspecifiedPlatform':
|
print(f'vllm runtime import OK: {vllm.__version__}, platform={platform_name}')
|
||||||
raise RuntimeError(
|
if platform_name == 'UnspecifiedPlatform':
|
||||||
'vLLM platform detection returned UnspecifiedPlatform; '
|
print(
|
||||||
'ROCm backend is not usable. Check amdsmi, /dev/kfd, /dev/dri, '
|
'WARNING: vLLM platform detection returned UnspecifiedPlatform. '
|
||||||
|
'This is expected on containers without GPU access (router/gradio). '
|
||||||
|
'On worker containers, check: amdsmi, /dev/kfd, /dev/dri, '
|
||||||
'and vllm.platform_plugins metadata.'
|
'and vllm.platform_plugins metadata.'
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception:
|
||||||
print('ERROR: vllm runtime import failed after platform patches:')
|
print('WARNING: vllm runtime import failed after platform patches (non-fatal):')
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
raise
|
|
||||||
print('vllm platform patches done.')
|
print('vllm platform patches done.')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user