cxl
Published on 2025-04-09 / 20 Visits
0
0

modelscope与huggingface cli 下载模型

modelscope

安装

首先,参考文档 安装配置Anaconda环境。 安装完成后,执行如下命令为ModelScope library创建对应的Python环境。

  conda create -n modelscope python=3.11 
  conda activate modelscope
  pip install modelscope

使用

modelscope下载有三种方法,分别是 命令行下载,sdk下载,git下载:

命令行

模型可以通过 模型库平台 页面搜索

  modelscope download --model qwen/Qwen2-Audio-7B-Instruct  # 下载一个完整的模型仓库,未指定下载目录则默认目录为 ~/.cache/modelscope/hub/models
  modelscope download --model qwen/Qwen2-Audio-7B-Instruct README.md  # 只下载特定文件(如 README.md)
  modelscope download --model qwen/Qwen2-Audio-7B-Instruct tokenizer.json config.json # 只下载列出的多个特定文件
  modelscope download --model qwen/Qwen2-Audio-7B-Instruct --include 'onnx/*' '*.tflite'    # 只下载特定的目录
  modelscope download --model qwen/Qwen2-Audio-7B-Instruct --exclude 'onnx/*' '*.tflite'    # 排除特定的目录
  modelscope download --model qwen/Qwen2-Audio-7B-Instruct --include '*.json' --cache_dir './cache_dir'  # 指定缓存下载目录
  modelscope download --model qwen/Qwen2-Audio-7B-Instruct --include '*.json' --local_dir './local_dir'  # 指定下载存放目录,如果cache_dir和local_dir参数同时被指定,local_dir优先级高,cache_dir将被忽略。

下载私有模型需要登录,通过 modelscope login 命令使用 token 登录,token则需要在 令牌页面 新建

最后在命令行输入登录指令

  modelscope login --token xxxxxxxxxxxxxxxxx  # 没报错说明登录成功了
sdk下载

进入python命令编程界面,执行以下命令

  from modelscope.hub.snapshot_download import snapshot_download

  model_dir = snapshot_download('deepseek-ai/DeepSeek-V3-0324')

git下载

进入具体模型详情页面,点击模型文件tab -> 右边模型下载按钮 -> 弹出下载方式页面 -> 选择git下载方式

    # 公开模型下载
    git lfs install
    git clone https://www.modelscope.cn/<owner_name>/<model-name>.git
    # 例如: git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-V3-0324.git
    
    # 私有模型下载,前提是您有响应模型权限 , git token获取方式与上面modelscope login 中的令牌相似
    # 方法1,将token加入到下载链接当中
    git lfs install
    git clone http://oauth2:your_git_token@www.modelscope.cn/<owner_name>/<model-name>.git
    # 方法2,手动输入token
    git clone http://your_user_name@www.modelscope.cn/<owner_name>/<model-name>.git
    # Password for 'http://your_user_name@modelscope.cn':
    # input git token  

huggingface cli

Hugging Face CLI (huggingface-cli) 是 Hugging Face 官方提供的命令行工具,旨在简化与 Hugging Face Hub 的交互过程。它允许用户轻松地上传、下载、管理和分享各种自然语言处理模型和数据集。

安装

接着上面 conda创建的 modelscope 环境,安装 huggingface_hub 库

  pip install huggingface_hub

安装完成后,可以运行 huggingface-cli --help 来验证安装是否成功并查看可用命令的帮助信息,忽略我这里切换到了另外一个python环境

使用

下载私有模型或上传内容一样需要登录,可以通过生成一个 访问令牌 并在命令行中登录或使用环境变量的方式来完成:

生成访问令牌:访问 Hugging Face 官网 并登录您的账户,进入设置页面中的 Access Tokens 部分创建一个新的令牌,创建令牌时选择Read权限即可

命令行登录:在终端执行以下命令以输入刚刚生成的访问令牌:huggingface-cli login ,这里我又新建了一个关于blog的token

环境变量认证:如果您更倾向于通过环境变量来进行认证,可以在 Linux/macOS 系统上执行如下命令:

  export HUGGINGFACE_TOKEN=your_access_token

若是Windows环境则在 PowerShell 中使用:

  $env:HUGGINGFACE_TOKEN = "your_access_token"

完成认证后,您可以使用 huggingface-cli whoami 来确认当前登录状态及用户信息。

单个文件下载

要从 Hugging Face Hub 下载单个文件,请确保已经完成了前面提到的安装和认证步骤,然后可以使用如下命令格式:

  huggingface-cli download <repo_id> <filename>

例如,如果您想要下载 Qwen/Qwen2.5-Omni-7B 模型中的 config.json 文件,可以执行:

  huggingface-cli download Qwen/Qwen2.5-Omni-7B config.json

该命令会将指定文件下载到当前工作目录中。如果希望指定不同的下载路径,则可以添加 --local-dir 参数:

  huggingface-cli download Qwen/Qwen2.5-Omni-7B config.json --local-dir /path/to/download
特定版本文件下载

有时可能需要下载某个特定版本的文件,在这种情况下,只需在命令中加入 --revision 参数即可:

  huggingface-cli download Qwen/Qwen2.5-Omni-7B config.json --revision 1.0.0 --local-dir /path/to/download

这条命令会下载版本号为 1.0.0 的 config.json 文件,并将其放置在 /path/to/download 目录下。

断点续传

对于大型文件或不稳定网络连接的情况,huggingface-cli 支持断点续传功能,即如果下载中途被中断,重新启动时可以从上次停止的地方继续。启用此特性只需添加 --resume-download 标志:

  huggingface-cli download --resume-download Qwen/Qwen2.5-Omni-7B config.json --local-dir /path/to/download
创建与管理仓库

除了基本的下载功能外,huggingface-cli 还提供了用于创建新仓库和上传文件的功能。例如,要创建一个新的仓库,可以使用:

  huggingface-cli repo create my-new-repo

而上传文件则可以通过如下命令实现:

  huggingface-cli upload-file --path_or_fileobj ./local/path/to/file.txt --repo_id my-new-repo --repo_type model --path_in_repo remote/path/in/repo/file.txt

这里 --repo_type 可选值包括 model 和 dataset,取决于您正在处理的是模型还是数据集。

高级配置

对于更加复杂的场景,比如设置自定义下载路径、启用多线程下载或是配置代理服务器等,huggingface-cli 同样提供了相应的选项和支持。例如,要设置自定义下载路径,可以利用 --local-dir 参数;若想启用多线程下载,则需查阅官方文档了解具体方法。

此外,针对国内用户面临的网络问题,还可以通过设置镜像站的方式来加速下载过程。比如,可以通过设置环境变量 HF_ENDPOINT 来指向国内镜像站点 https://hf-mirror.com :

export HF_ENDPOINT="https://hf-mirror.com" # Linux/macOS
$env:HF_ENDPOINT = "https://hf-mirror.com" # Windows PowerShell

或者另外一个镜像加速站点:https://aifasthub.com,不知道如何食用可直接打开该网站查看。


Comment