写了一个从 modelscope 下载模型的 crate

62 天前
 yunyi93

models-cat

models-catModelScope 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 。

顺便说下,ModelScope 托管模型真香,国内下载速度贼快、稳定、免费。

功能特性

使用示例

同步下载:

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,在初始化时传入本地缓存路径。

871 次点击
所在节点    Rust
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1125641

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX