manga-ocr-base:Ascend NPU migration candidate for Stage 3 row 18.

Ascend NPU migration candidate for Stage 3 row 18.

分支1Tags0
文件最后提交记录最后更新时间
1 个月前
1 个月前
29 天前
30 天前
30 天前
30 天前

kha-white/manga-ocr-base Ascend NPU 迁移

本仓提供 manga-ocr-base 在昇腾 NPU 容器中的可复现 forward 入口。模型权重不进入仓库,运行时从本地目录离线加载。

环境

  • Ascend 910,设备 npu:0
  • 容器提供 CANN、PyTorch 和 torch_npu,本仓不覆盖平台栈
  • 模型层完整依赖见 requirements.txt
  • 容器实测 transformers 4.57.6safetensors 0.8.0Pillow 12.2.0
python -m pip install -r requirements.txt

NPU 推理

python inference.py \
  --model_path /path/to/manga-ocr-base \
  --device npu:0 \
  --output_json result.json

inference.py 只允许 npu:N,不会回退 CPU 或 CUDA。入口离线加载本地 VisionEncoderDecoderModel,对 8 个确定性合成图像样本运行真实 NPU forward,并检查:

  • 模型、输入和输出均位于请求的 NPU
  • 每个样本 logits 形状为 [1,4,6144]
  • 总计 196,608 个输出值,全部有限
  • exit_status=0

容器实测结果

真实 NPU 结果见 assets/npu_result.json:四个设备字段均为 npu:0sample_count=8total_output_value_count=196608,全部值有限且 exit_status=0

双份真实截图

第一组:

  • Agent 工作流
  • NPU 设备调用
  • 模型输出

第二组:

  • Agent 工作流 2
  • NPU 设备调用 2
  • 模型输出 2

两张设备图来自同一真实推理进程 PID 138435 的不同时间点,显示完整命令、活动进程和 npu-smi;两张结果图显示同一次 NPU 运行的设备链、计数、有限值和退出状态。

说明

  • 不提供模型权重。

模型定位

本仓是 manga-ocr-base 的 Ascend NPU 迁移实现。仓内只维护可公开复核的下载说明、模型层依赖、唯一推理入口、结构化运行报告和验收截图;模型职责与架构语义继承上游,不把测试输入或迁移仓包装成新的训练模型。

来源与版本

权重下载与选择理由

限制与复核边界

  • 确定性输入只用于复现推理路径,不替代真实业务数据集。
  • host 仅承担下载、配置、序列化和 JSON 后处理,不参与模型计算。
  • 文档、注释或可插拔报告器可在阶段 1 修正;模型加载、预处理、forward、后处理语义或依赖栈发生实质变化时,必须转入阶段 2,并在最终版本连续完成两次真实全 NPU 复跑。

阶段1历史固定版本证据恢复

以下固定版本来自本迁移仓既有公开提交历史,不以当前上游 HEAD 代替当时实际使用版本。阶段1只恢复可追溯事实;阶段2仍需按实际下载结果生成逐文件 path/bytes/SHA256 清单。

GIT_LFS_SKIP_SMUDGE=1 git clone --filter=blob:none --no-checkout "https://gitcode.com/hf_mirrors/kha-white/manga-ocr-base.git" ./weights/manga-ocr-base
git -C "./weights/manga-ocr-base" checkout --detach "aa6573bd10b0d446cbf622e29c3e084914df9741"
git -C "./weights/manga-ocr-base" lfs pull

静态收口与复现约束

  • 模型定位:本仓是 $(@{active_id=91; workbook_row=92; record=92; model_name=manga-ocr-base; project_url=https://gitcode.com/2301_78565107/manga-ocr-base; source_url=https://ai.gitcode.com/hf_mirrors/kha-white/manga-ocr-base; screenshot_issue=无明显问题; needs_screenshot=False; required_runs=1; memory_class=unknown; planning_mib=58982; weight_bytes=0; repo_path=C:\Reina_desktop\program_and_contest\AscendEITP\outputs\019fdf75-c78d-7dc3-b97f-3cc6f64bef62\stage1-audit\repos\091-manga-ocr-base}.model_name) 的 Ascend NPU 迁移与复现仓,沿用上游任务、架构和 loader 语义;不重新训练、不用玩具网络替代真实模型。
  • 固定身份:上游模型 $modelId,固定 revision 为 aa6573bd10b0d446cbf622e29c3e084914df9741;迁移仓不携带大权重。
  • 核心权重pytorch_model.bin。inference.py 只允许对实际加载的核心权重做 SHA-256 门禁,不对代码、README、配置、输入、输出或测试清单设置 SHA 门禁。
  • 下载顺序:download_model.py 依次尝试 GitCode → ModelScope → Hugging Face mirror,对每个核心文件记录真实成功 URL、失败来源、bytes、SHA-256 与 weight_scp=false;不使用 Hugging Face 官方站点。选择这一固定快照是因为它与赛事条目、loader 和当前推理入口直接对应,不能以同名或相似模型替代。
  • 迁移边界:本轮只收口中文说明、下载辅助、依赖策略和审计签名;现有模型加载、设备放置、算子、前处理、 orward 与输出逻辑保持不变。若这些核心逻辑后续变化,必须重新完成真实全 NPU 复跑。
  • 依赖策略:保留平台 CANN、 orch、 orch_npu,模型层依赖从清华源安装到独立 pydeps,使用 --no-deps/NO_TORCH,禁止覆盖平台计算栈。
python -m pip install --no-deps --target ../pydeps -i https://pypi.tuna.tsinghua.edu.cn/simple -r requirements.txt
python download_model.py --output-dir ./model
PYTHONPATH=../pydeps python inference.py --model_path ./model --device npu:0 --output_json ./result.json
  • 维护者:KousakaReina
  • Generated-At:$ReviewedAt
  • Reviewed-At:$ReviewedAt
  • 静态签名状态:STATIC_ONLY。该状态不等于 Stage2 PASS;claims 中另行记录是否仍需动态 NPU 复现。

项目介绍

Ascend NPU migration candidate for Stage 3 row 18.

定制我的领域