模型管理与自动下载
Model Management & Auto-Download
AI模型的生命周期管理,包括自动下载、缓存、多源切换和单例复用
子问题
1.模型自动下载与缓存
2.多模型源切换
3.模型实例单例管理
4.模型版本控制
5.参数化模型实例缓存(同类型不同参数需独立实例)
6.多硬件后端自动检测与适配
各项目的解法1 solutions
Signals
横向对比
| 维度 | MinerU |
|---|---|
| 单例粒度 | 三层单例:原子模型级 + 管线级 + VLM级,参数化元组键 |
| 模型源切换 | 环境变量 MINERU_MODEL_SOURCE 切换 HuggingFace/ModelScope/本地三源 |
| 下载策略 | snapshot_download + allow_patterns 按需下载,避免拉取整仓库 |
| 模型注册 | ModelPath 静态类集中声明 10+ 模型的仓库ID和相对路径 |
| 设备适配 | get_device 链式检测 8 种硬件后端(CUDA/MPS/NPU/GCU/MUSA/MLU/SDAA/CPU) |
| 参数化复用 | OCR 按 5 元组键缓存,Table 按语言键缓存,其他按名称键缓存 |
最佳实践
1.使用Singleton模式避免重复加载大模型
2.用元组键实现参数化单例,不同参数组合产生独立缓存
3.snapshot_download 配合 allow_patterns 按需下载子目录
4.环境变量驱动模型源切换,零代码改动适配不同网络环境