< 返回版块

yunus 发表于 2025-04-16 17:26

Tags:models,大模型,download

models-cat 是 ModelScope Hub 的非官方 Rust 客户端,设计灵感来自 hf-hub

models-cat 源自一个简单的需求:“编写一个 Rust 桌面端 AI APP,需要下载模型和数据集,但是没有合适的 Rust 客户端。”

什么时候需要 models-cat 下载模型?主要有三个原因:

  1. 网络原因,无法使用 hf-hub 访问 huggingface
  2. 虽然使用 hf-hub 也可以从 hf-mirror 下载模型,但稳定性和下载速度无法保证。
  3. 将模型托管在 ModelScope Hub 上,可以保证稳定性和下载速度。但 hf-hub 不兼容 ModelScope, 需要使用 models-cat。

功能特性

  • 模型/数据集下载与缓存管理, 同步或异步下载
  • 支持并发安全访问文件
  • 本地缓存校验(SHA256)
  • 下载进度回调

使用示例

同步下载:

use models_cat::{download_model_with_progress, ProgressBarWrapper};

download_model_with_progress(
    "BAAI/bge-small-zh-v1.5",
    "model.safetensors",
    ProgressBarWrapper::default(),
).unwrap();

异步下载:

use models_cat::asynchronous::{download_model_with_progress, ProgressBarWrapper};

download_model_with_progress(
    "BAAI/bge-small-zh-v1.5",
    "model.safetensors",
    ProgressBarWrapper::default(),
).await.unwrap();

异步下载需开启特性tokio特性:

models-cat = { version = "*", features = ["tokio"] }

从 ModelScope 的托管仓库 BAAI/bge-small-zh-v1.5 下载模型到本地,默认保存在[HOME_DIR].cache/modelscope/hub/models--BAAI--bge-small-zh-v1.5/目录下。

使用快捷函数时,可通过环境变量MODELS_CAT_CACHE_DIR设置本地缓存路径。或者使用ModelsCat,在初始化时传入本地缓存路径。


Ext Link: https://crates.io/crates/models-cat

评论区

写评论

还没有评论

1 共 0 条评论, 1 页