# 修复模型下载失败 ## 当前状态 `mineru-models-download --source modelscope` 在执行时,12 个小型配置文件下载成功,但最大的文件 `model.safetensors`(2.45 GB)下载失败。 ## 错误分析 ``` [Errno 2] No such file or directory: '/opt/models/modelscope/models/._____temp/OpenDataLab/MinerU2.5-Pro-2605-1.2B/model.safetensors' ``` modelscope 的 `snapshot_download()` 将大文件先写入临时目录 `._____temp`,再移动到最终位置。临时目录创建不完整或下载中断导致大文件失败。 ## 修复方案 ### 步骤 1:清理损坏的下载状态 在宿主机上删除临时目录和损坏文件,保留已下载成功的 12 个小文件: ```bash rm -rf /opt/project/mineru-rocm/docker/data/models/modelscope/models/._____temp rm -f /opt/project/mineru-rocm/docker/data/models/modelscope/models/OpenDataLab/MinerU2.5-Pro-2605-1.2B/model.safetensors ``` ### 步骤 2:确保宿主机目录完整 ```bash mkdir -p /opt/project/mineru-rocm/docker/data/{input,output,models/modelscope,miopen} ``` ### 步骤 3:重启所有容器使挂载生效 ```bash cd /opt/project/mineru-rocm/docker docker compose down docker compose up -d docker compose --profile gradio up -d ``` ### 步骤 4:在 worker0 中重试下载 modelscope 的 `snapshot_download` 会检查已有文件并跳过,只重新下载缺失的 `model.safetensors`: ```bash docker compose exec worker0 mineru-models-download --source modelscope # 交互提示选 all ``` ### 步骤 5(备选):如果重试仍然失败 在 worker0 容器内手动创建临时目录后重试: ```bash docker compose exec worker0 bash -c " mkdir -p /opt/models/modelscope/models/._____temp/OpenDataLab/MinerU2.5-Pro-2605-1.2B mineru-models-download --source modelscope " ``` ## 备注 - 本次仅在 worker0 下载,但因为 `/opt/models` 是共享卷挂载(`./data/models:/opt/models`),所有容器都可见 - 模型持久化在宿主机 `./data/models/`,容器重建不会丢失 - 如果 modelscope 下载持续不稳定,可切换到 huggingface 源:`MINERU_MODEL_SOURCE=huggingface`(需要代理)