魔搭社区模型下载

发布时间: 更新时间: 总字数:2152 阅读时间:5m 作者: IP上海 分享 网址

本文介绍在 ModelScope 社区下载模型的三种方式:1. 使用命令行工具下载;2. 使用 SDK 下载;3. 通过 Git 下载

说明

  • 模型下载默认存放地址

无论是使用命令行还是 ModelScope SDK,模型会下载到~/.cache/modelscope/hub默认路径下。如果需要修改 cache 目录,可以手动设置环境变量:MODELSCOPE_CACHE,完成设置后,模型将下载到该环境变量指定的目录中。

modelscope 命令行安装

pip install modelscope

使用

$ modelscope download --help
usage: modelscope <command> [<args>] download [-h] [--model MODEL | --dataset DATASET] [--repo-type {model,dataset}]
                                              [--token TOKEN] [--revision REVISION] [--cache_dir CACHE_DIR]
                                              [--local_dir LOCAL_DIR] [--include [INCLUDE ...]]
                                              [--exclude [EXCLUDE ...]] [--max-workers MAX_WORKERS]
                                              [repo_id] [files ...]

positional arguments:
  repo_id               Optional, ID of the repo to download, It can also be set by --model or --dataset.
  files                 Specify relative path to the repository file(s) to download.(e.g 'tokenizer.json',
                        'onnx/decoder_model.onnx').

options:
  -h, --help            show this help message and exit
  --model MODEL         The id of the model to be downloaded. For download, the id of either a model or dataset must
                        be provided.
  --dataset DATASET     The id of the dataset to be downloaded. For download, the id of either a model or dataset
                        must be provided.
  --repo-type {model,dataset}
                        Type of repo to download from (defaults to 'model').
  --token TOKEN         Optional. Access token to download controlled entities.
  --revision REVISION   Revision of the entity (e.g., model).
  --cache_dir CACHE_DIR
                        Cache directory to save entity (e.g., model).
  --local_dir LOCAL_DIR
                        File will be downloaded to local location specified bylocal_dir, in this case, cache_dir
                        parameter will be ignored.
  --include [INCLUDE ...]
                        Glob patterns to match files to download.Ignored if file is specified
  --exclude [EXCLUDE ...]
                        Glob patterns to exclude from files to download.Ignored if file is specified
  --max-workers MAX_WORKERS
                        The maximum number of workers to download files.

命令行示例

命令示例(以Qwen3-32B)模型为例

下载整个模型 repo(到默认 cache 地址)

modelscope download --model 'Qwen/Qwen3-32B'

下载整个模型 repo 到指定目录

modelscope download --model 'Qwen/Qwen3-32B' --local_dir 'path/to/dir'

指定下载单个文件(以’tokenizer.json’文件为例)

modelscope download --model 'Qwen/Qwen3-32B' tokenizer.json

指定下载多个个文件

modelscope download --model 'Qwen/Qwen3-32B' tokenizer.json config.json

指定下载某些文件

modelscope download --model 'Qwen/Qwen3-32B' --include '*.safetensors'

过滤指定文件

modelscope download --model 'Qwen/Qwen3-32B' --exclude '*.safetensors'

指定下载 cache_dir

modelscope download --model 'Qwen/Qwen3-32B' --include '*.json' --cache_dir './cache_dir'

模型文件将被下载到'cache_dir/Qwen/Qwen3-32B'

指定下载 local_dir

modelscope download --model 'Qwen/Qwen3-32B' --include '*.json' --local_dir './local_dir'

模型文件将被下载到'./local_dir'

如果cache_dirlocal_dir参数同时被指定,local_dir优先级高,cache_dir将被忽略。

下载私有模型需要登录

  • 通过 login 命令

当下载私有模型时,您需要先登陆。通过 CLI 方式登陆的命令为modelscope login,详细使用说明如下:

$ modelscope login --help
usage: modelscope <command> [<args>] login [-h] --token TOKEN

options:
  -h, --help     show this help message and exit
  --token TOKEN  The Access Token for modelscope.

# 示例
$ modelscope login --token YOUR_MODELSCOPE_ACCESS_TOKEN

您可以在 我的访问令牌 页面获取访问令牌

使用 ModelScope SDK 下载

下载整个模型仓库

您可以使用snapshot_download下载整个模型仓库,示例如下:

from modelscope.hub.snapshot_download import snapshot_download

model_dir = snapshot_download('iic/nlp_xlmr_named-entity-recognition_viet-ecommerce-title')`

参数说明

字段名 必填 类型 描述
model_id str 模型 ID
revision str 模型的 Git 版本,分支名或 tag
cache_dir str,Path 指定模型本次下载缓存目录,给定后下载的具体模型文件将会被存储在 cache_dir/model_id/THE_MODEL_FILES
allow_patterns str,List 指定要下载的文件模式,如文件名或文件扩展名
ignore_patterns str,List 指定要忽略下载的文件模式,如文件名或文件扩展名
local_dir str 指定模型的下载存放目录,给定后本次下载的模型文件将会被存储在 local_dir/THE_MODEL_FILES

如果cache_dirlocal_dir参数同时被指定,local_dir 优先级高,cache_dir 将被忽略;更多参数使用说明可以参见开源代码的接口文档。如需指定下载或过滤下载某种/某类文件模式,可以使用 allow_patternsignore_patterns参数,示例如下:

  • 指定下载某些文件

以指定下载Qwen/QwQ-32B-GGUFq4_k_m量化版本到path/to/local/dir目录下为例。

from modelscope.hub.snapshot_download import snapshot_download

model_dir = snapshot_download('Qwen/QwQ-32B-GGUF',allow_patterns='qwq-32b-q4_k_m.gguf',local_dir='path/to/local/dir')
  • 过滤指定文件

以将deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B仓库除figures子目录外的所有文件下载到指定的path/to/local/dir目录为例。

from modelscope.hub.snapshot_download import snapshot_download

model_dir = snapshot_download('deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B',ignore_patterns='figures/',local_dir='path/to/local/dir')

下载模型指定文件

您也可以使用model_file_download下载模型指定文件。示例如下:

from modelscope.hub.file_download import model_file_download

model_dir = model_file_download(model_id='Qwen/QwQ-32B-GGUF',file_path='qwq-32b-q4_k_m.gguf')

参数说明

字段名 必填 类型 描述
model_id str 模型 ID
file_path str 待下载文件在远程模型仓库的相对路径
revision str 模型的 Git 版本,分支名或 tag
cache_dir str,Path 指定模型本次下载缓存目录,给定后下载的具体模型文件将会被存储在 cache_dir/models/model_id/THE_MODEL_FILES
local_dir str 指定模型的下载存放目录,给定后本次下载的模型文件将会被存储在 local_dir/THE_MODEL_FILES

如果cache_dirlocal_dir参数同时被指定,local_dir优先级高,cache_dir将被忽略;更多参数使用说明可以参见开源代码的接口文档。

下载私有模型

当下载非公开模型及申请制模型时,您需要先登陆,然后可参考前述文档步骤下载模型。此处以通过 snapshot_download 下载非公开模型为例:

from modelscope import HubApi from modelscope import snapshot_download

# login to ModelScope
api=HubApi()
api.login('YOUR_MODELSCOPE_ACCESS_TOKEN')
# download your model, the model_path is downloaded model path.
model_path =snapshot_download(model_id='the_model_id')

ModelScope SDK 提供了多种登陆方式,您也可以通过命令行等其他方式完成登陆。

通过加载模型触发下载

除了直接下载模型文件外,当使用 ModelScope SDK 加载模型时,也会自动触发模型下载。如果模型和 ModelScope SDK 绑定,则只需要几行代码即可加载模型,同时 ModelScope 还支持通过 AutoModel 等接口来加载模型。此处以使用 Model 加载模型为例:

from modelscope.models import Model

model = Model.from_pretrained('iic/nlp_xlmr_named-entity-recognition_viet-ecommerce-title', revision='v1.0.1')
# revision为可选参数,不指定版本会取模型默认版本,默认版本,默认版本为ModelScope library发布前最后一个版本
# 如何得到发布时间
import modelscope
print(modelscope.version.__release_datetime__)

使用 GIT 下载模型

ModelScope 服务端的模型都是通过 Git 存储,所以也可以在安装 Git LFS 后,通过 git clone 的方式在本地下载模型。

# 公开模型下载
git lfs install

git clone https://www.modelscope.cn/<owner_name>/<model-name>.git
# 例如: git clone https://www.modelscope.cn/iic/ofa_image-caption_coco_large_en.git
# 私有模型下载,前提是您有响应模型权限
# 方法1
# git lfs install
# git clone http://oauth2:your_access_token@www.modelscope.cn/<owner_name>/<model-name>.git

# 方法2
# git clone http://your_user_name@www.modelscope.cn/<owner_name>/<model-name>.git # Password for 'http://your_user_name@modelscope.cn':
# input access token

如果希望跳过 LFS 大文件的下载,可以在 git clone 命令前添加GIT_LFS_SKIP_SMUDGE=1,来只获取LFS指针,而不下载实际的大文件:

GIT_LFS_SKIP_SMUDGE=1 https://www.modelscope.cn/<namespace>/<model-name>.git

如何获取访问令牌

用您的账号登录https://www.modelscope.cn ,在个人中心->访问令牌,新建并拷贝访问令牌.

参考

  1. https://www.modelscope.cn/docs/models/download
  2. https://github.com/modelscope/modelscope/blob/master/README_zh.md
本文总阅读量 次 本站总访问量 次 本站总访客数
Home Archives Categories Tags Statistics