前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >节省时间:AI 模型靠谱下载方案汇总

节省时间:AI 模型靠谱下载方案汇总

原创
作者头像
soulteary
发布于 2024-01-09 02:07:35
发布于 2024-01-09 02:07:35
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

这篇文章,想分享下我日常是如何下载模型的,包括下载来源和工具使用细节,希望对折腾模型的你也有帮助。

也希望开源和 AI 领域的研究者、从业者在做技术调研和落地实践的时候,都能节约一些时间。

写在前面

之前写了很多模型相关的文章,或多或少都涉及到模型的下载。因为模型文件都比较大,所以相对稳定快速的下载,算是一个比较刚需的事情。

尤其是,需要折腾到本地或者国内服务器上对模型进行后续的微调的时候,首先需要完成模型的下载。

至于各种镜像站,就不展开了,因为多数镜像站的时效性和更新、还有稳定性都有一些问题,暂时只推荐比较稳定或者非盈利的机构服务。

额外的下载经验

我通常会在下载模型的时候,使用 Docker 来做一些辅助的工作,使用一个干净的轻量 Docker Python 镜像来作为基础执行环境。

使用 Docker 快速启动一个干净的下载环境
使用 Docker 快速启动一个干净的下载环境

这样可以比较方便的安装下载工具,而不需要担心因为错过最新版本的工具更新,导致下载速度慢或者下载异常,也不需要担心下载工具的更新损坏或影响本地环境中的其他 Python 程序的依赖。

代码语言:bash
AI代码解释
复制
# 下载一个只有 50MB 的 Python 轻量环境
docker pull python:3.10-slim
# 将本地目录挂载到容器里,一会作为模型下载目录使用
docker run --rm -it -v `pwd`:/models python:3.10-slim bash

接着,进入容器环境后,执行下面的命令将软件源更新:

代码语言:bash
AI代码解释
复制
sed -i 's/snapshot.debian.org/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list.d/debian.sources
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

然后,就可以根据自己的情况下载必要的模型下载工具进行模型下载了。当然,别忘记进入工作目录 /models

代码语言:bash
AI代码解释
复制
cd /models

当然,如果下载的模型时间比较长,我一般会将模型作为后台应用运行:

代码语言:bash
AI代码解释
复制
# 创建一个持续运行的 Python 容器
docker run -d --name=downloader -v `pwd`:/models python:3.10-slim tail -f /etc/hosts
# 使用命令进入容器进行配置和下载模型
docker exec -it downloader bash

我们先来聊聊 HuggingFace。

目前最受欢迎的开源模型社区:抱脸 HuggingFace

HuggingFace 开源 AI 社区
HuggingFace 开源 AI 社区

HuggingFace 是我最常逛和下载模型的网站,也是最早成立的 AI 领域的垂直社区。我之前多次在文章中提到过如何使用 HF 官方的 huggingface-hub CLI 程序下载模型,以及如何使用 HuggingFace 社区的全家桶来玩模型。

GitHub 组织:https://github.com/huggingface/
GitHub 组织:https://github.com/huggingface/

在官方最近推出了新的基于 Rust 构建的下载工具 HF Transfer 后,能够大幅的超越原始的基于 Python 写的 CLI 程序的下载速度,达到 500MB/s 以上的下载速度。

官方 CLI 程序的使用:Huggingface Hub

除了在 HuggingFace 的 Spaces 之外,在各种环境(服务器、Colab)想使用官方 CLI 时,第一步都是下载安装模型工具:

代码语言:bash
AI代码解释
复制
pip install huggingface_hub[cli]

这里不推荐使用流行的 Transformers 包来下载的原因是因为相比较使用 Transformers,使用专用的 CLI 下载工具,能够实现断点续传,能够指定下载路径,更加方便我们对于模型资源的管理、硬件资源的使用。

使用 --help 能够看到 CLI 支持哪些功能:

代码语言:bash
AI代码解释
复制
# huggingface-cli --help
usage: huggingface-cli <command> [<args>]

positional arguments:
  {env,login,whoami,logout,repo,upload,download,lfs-enable-largefiles,lfs-multipart-upload,scan-cache,delete-cache}
                        huggingface-cli command helpers
    env                 Print information about the environment.
    login               Log in using a token from huggingface.co/settings/tokens
    whoami              Find out which huggingface.co account you are logged in as.
    logout              Log out
    repo                {create} Commands to interact with your huggingface.co repos.
    upload              Upload a file or a folder to a repo on the Hub
    download            Download files from the Hub
    lfs-enable-largefiles
                        Configure your repository to enable upload of files > 5GB.
    scan-cache          Scan cache directory.
    delete-cache        Delete revisions from the cache directory.

optional arguments:
  -h, --help            show this help message and exit

对于本篇文章而言,我们只需要关注 download 即可。

HuggingFace CLI 的下载控制能力非常多,我们接下来以去年年末微软发布的 PHI-2 为例,来聊聊使用这个工具的下载。

PHI-2 的 HuggingFace 的网址是 https://huggingface.co/microsoft/phi-2,我们将网址中的“组织和项目名” 复制出来,然后拼在命令中就能够开始模型的下载了:

代码语言:bash
AI代码解释
复制
huggingface-cli download microsoft/phi-2

但是,我非常不建议使用默认命令来下载,因为它会将下载的模型保存在你的根目录的缓存文件夹中,并且会使用 Git Blob 来保存模型文件,存储空间比直接下载模型要大不少。

所以,我推荐在下载参数上,添加一些额外的参数,来完成更高效率的下载:

代码语言:bash
AI代码解释
复制
huggingface-cli download microsoft/phi-2 --local-dir=./models/ --cache-dir=./cache --local-dir-use-symlinks=False --resume-download

比如,在上面的命令中强制的将下载目标文件夹 --local-dir 和下载使用的缓存目录 --cache-dir 都设置到了当前目录下,开启 --local-dir-use-symlinks=False 可以让我们下载的文件后续都以非软链文件保存,方便后续保存或者上传服务器。最后,添加 --resume-download 可以确保我们始终接着之前的下载进度继续,如果我们的下载进度有中断。

如果你只想下载仓库中的指定文件,可以再进一步调整命令,比如:

代码语言:bash
AI代码解释
复制
# 下载 microsoft/phi-2/model-00001-of-00002.safetensors
huggingface-cli download microsoft/phi-2 model-00001-of-00002.safetensors --local-dir=./models/ --cache-dir=./cache --local-dir-use-symlinks=False --resume-download
# 下载 microsoft/phi-2/model-00002-of-00002.safetensors
huggingface-cli download microsoft/phi-2 model-00002-of-00002.safetensors --local-dir=./models/ --cache-dir=./cache --local-dir-use-symlinks=False --resume-download

如果我们需要下载在 HuggingFace 上经过申请登记或者付费才能使用的模型,在上面的命令最后添加 token 参数就好了:

代码语言:bash
AI代码解释
复制
# Token 获取在这里 https://huggingface.co/settings/tokens
之前的命令... --token TOKEN

新版工具的使用:HF Transfer

如果想使用 HuggingFace 的新版工具,我们的安装命令要调整下:

代码语言:bash
AI代码解释
复制
pip install huggingface_hub[cli] hf_transfer

启动新版工具快速下载也很简单,同样的,对之前的命令做一些调整就好:

代码语言:bash
AI代码解释
复制
HF_HUB_ENABLE_HF_TRANSFER=1 huggingface-cli download microsoft/phi-2 model-00001-of-00002.safetensors --local-dir=./models/ --cache-dir=./cache --local-dir-use-symlinks=False

首先是在命令上添加 HF_HUB_ENABLE_HF_TRANSFER=1 切换到新的 Rust 工具的下载模式。其次是去掉上面命令行中的 --resume-download 分块下载,新版工具目前还不支持这个功能。

当命令执行后,我们就能使用更快的速度从 HuggingFace 上下载 AI 模型了。

搭配社区爱好者的加速器:HF Mirror

HF Mirror 镜像站
HF Mirror 镜像站

因为一些原因,HuggingFace 在国内的访问时灵时不灵的,好在有社区爱好者做了一件很值得点赞的事情,使用 Caddy + CloudFlare 对 HuggingFace 做了镜像。

我们只需要在上面的下载命令前面加上一个环境变量就能够进行模型的下载啦:

代码语言:bash
AI代码解释
复制
HF_ENDPOINT=https://hf-mirror.com 上文的命令...

甚至,你还可以通过这个镜像站点来直接访问 HuggingFace 上的仓库 Wiki 页面,比如下面的链接就能够通过加速器域名来访问零一万物的 Yi-34B-Chat 模型页面:

代码语言:bash
AI代码解释
复制
https://hf-mirror.com/01-ai/Yi-34B-Chat

阿里和 CCF 背书的:魔搭 ModelScope

前年年中的时候,ModelScope 成立了,随后在社区的祝福和质疑声中,迅速成为了类似 “海外谷歌,国内百度” 状态的 “海外 HuggingFace,国内 ModelScope”,目前是国内 AI 模型下载量不争的最大社区。

以最近从 HuggingFace 同步的第一个开源 MoE 模型 Mixtral-8x7B-Instruct-v0.1 举例,不到一个月的时间,目前的下载量在 119 万次。

ModelScope 魔搭社区
ModelScope 魔搭社区

因为魔搭社区拥有完整的备案信息,所以能够合法和稳定的向国内社区用户提供稳定的服务。

不过目前,尤其是海外模型基本首发都在 HuggingFace,魔搭需要搬运回来,存在一定的“时差”,以及模型仓库在开源后基本都有持续的更新,在魔搭上的项目因为是官方账号和社区开发者为爱发电地在做陆陆续续的搬运,存在部分模型上架较晚以及上架后的模型程序更新不及时的问题,加上本身是中文站,站内基本只有国内社区开发者互动,整个社区相对还比较早期。

不论如何,期待这个社区也能越来越好。

ModelScope 模型快速下载

ModelScope 推出了类似 HuggingFace Hub CLI 的工具,开源在 GitHub 上 modelscope 有着类似的功能:支持上传和下载模型。

GitHub 组织:https://github.com/modelscope/
GitHub 组织:https://github.com/modelscope/

想要使用魔搭社区的模型,同样需要先完成工具的安装:

代码语言:bash
AI代码解释
复制
pip install modelscope

相比 HuggingFace ,使用 ModelScope 下载会简单一些,暂时没有 CLI 下载工具,只有一条下载的路径,就是调用 Python 代码来下载。以及因为本身服务器和 CDN 都在国内,默认下载速度就挺快,不需要镜像站来打辅助。

具体使用上,通常我们有两种方式。我们以使用 ModelScope 下载上文同款模型:的微软 PHI-2 模型为例。

我们可以将下面的内容保存为 download.py

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
from modelscope import snapshot_download
snapshot_download('AI-ModelScope/phi-2', cache_dir="./models/")

然后,执行 python download.py,就能够开始模型的下载了。

或者,我们也可以在命令行中执行下面的命令,包含上面等价代码的 CLI 命令:

代码语言:bash
AI代码解释
复制
python -c "from modelscope import snapshot_download;snapshot_download('AI-ModelScope/phi-2', cache_dir='./models/')"

命令执行完毕后,同样的,模型也就开始以一个不错的速度进行下载啦。

需要注意的是,目前因为模型基本都靠魔搭官方和社区来人工同步,相比较 HuggingFace 社区能够做到的模型文件和模型程序始终保持最新,ModelScope 是做不到的,所以在 ModelScope 上下载的模型,我们最好是判断和验证下是否是最新的。

通常发布有一段时间的模型,我们可以使用在 ModelScope 上下载的大尺寸的模型(如果模型没有更新的话),以及需要去 HuggingFace 上再下载和更新下相关程序。

借助 Colab 或海外服务器做模型转存

除了上面的方式之外,我们还可以利用 Google Colab 的超大带宽,和国内包括百度盘、阿里盘等等能够下满带宽的网盘来相对快速的下载模型(可能要开个会员啥的,偶尔用用可以借账号)。

Google Colab
Google Colab

在 Colab 下载模型,我们使用上文提到的 HuggingFace CLI 就好,当我们完成模型文件的下载后,使用类似下面的工具,可以相对快速把模型上传到我们自己的网盘。

如果你使用阿里云盘,可以试试这个项目:aoaostar/alidrive-uploader。如果你使用百度网盘,可以试试这个项目:houtianze/bypy。其他的网盘同理。

通用流程是在 Colab 的 Notebook 中完成命令的安装,然后执行程序指定好模型路径作为上传路径,开始上传,耐心等待上传完毕就完事了。

相比较开一台海外的 VPS 或者上传到国内各种云服务器的 OSS 上,上传到网盘,无疑是成本最低的方案。

国内非盈利组织机构的模型下载

除此之外,不得不提一类模型的下载,就是来自国内研究院和实验室的模型下载。

不过这类站点的模型下载和上面是有一些差别的,一般只有“自家”的模型,当你需要使用它们发布的开源模型的时候,可以使用这个方案。

从官方配套网站这种源头下载模型的好处是:

  1. 速度比较有保障,不论是下载速度,还是发布时效。
  2. 能够更大概率确保我下载的模型权重是正确的,总归不能在自家网站上上传错误的模型吧。

这里提两个组织,分别是智源研究院的模型发布站 ,和浦江实验室的模型发布站

这两个网站虽然都写着注册,但是实际上我们只要打开模型文件仓库,点击具体的模型,就能够使用 10MB/s+ 的速度,完成模型文件的下载啦。

最后

这篇文章,就先写到这里啦。

希望你下载模型愉快,早晨很快,中午很快,晚上也很快。

--EOF


本文使用「署名 4.0 国际 (CC BY 4.0)」许可协议,欢迎转载、或重新修改使用,但需要注明来源。 署名 4.0 国际 (CC BY 4.0)

本文作者: 苏洋

创建时间: 2024年01月09日

统计字数: 7523字

阅读时间: 16分钟阅读

本文链接: https://soulteary.com/2024/01/09/summary-of-reliable-download-solutions-for-ai-models.html

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
告别Hugging Face模型下载难题:掌握高效下载策略,畅享无缝开发体验
在模型主页的Files and Version中中可以获取文件的下载链接。无需登录直接点击下载,还可以复制下载链接,用其他下载工具下载。
汀丶人工智能
2024/08/08
1.5K0
告别Hugging Face模型下载难题:掌握高效下载策略,畅享无缝开发体验
使用 Docker 和 Diffusers 快速上手 Stable Video Diffusion 图生视频大模型
本篇文章聊聊,如何快速上手 Stable Video Diffusion (SVD) 图生视频大模型。
soulteary
2024/01/09
9450
使用 Docker 和 Diffusers 快速上手 Stable Video Diffusion 图生视频大模型
国内 huggingface 镜像——帮助 AI 开发者快速稳定的下载模型数据集
huggingface-cli 是 Hugging Face 官方提供的命令行工具,自带完善的下载功能。
轩辕镜像
2024/09/29
3.9K0
【hf-mirror】HuggingFace镜像站助你实现模型自由
随着大模型的发展,越来越多人员参与到大模型炼丹和实践中,但HuggingFace在国内无法方便访问,带来不少问题。
Freedom123
2024/04/15
8.7K0
【hf-mirror】不需要HuggingFace也能实现模型自由实践
随着大模型的发展,越来越多人员参与到大模型炼丹和实践中,但HuggingFace在国内无法方便访问,带来不少问题。
Freedom123
2024/04/12
1.6K0
Mixtral混合专家模型
模型地址:mistralai (Mistral AI_) (huggingface.co),需要在这个网页上申请权限(地址填国外)
aaronwjzhao
2024/08/15
1590
chatglm-6b on ubuntu 本地部署
显卡:NVIDIA Corporation GA106 GeForce RTX 3060 Lite Hash Rate (rev a1) (prog-if 00 VGA controller)
ceagle
2024/09/23
1170
Ollama 升级!支持一键拉取Huggingface上所有的模型,太方便了!(vLLM、Fastgpt、Dify、多卡推理)
我记得,梦的开始,源于Ollama。很早以前的一篇文章教大家如何通过 Ollama 来使用开源 LLM,许多人最初接触 AI 时也是从Ollama开始的。Ollama 之所以出色,是因为它使用了 GGML 格式,这是一种‘轻量版’的大语言模型,以较低精度运行,能够轻松适配普通硬件。这使得在本地系统上运行这些模型变得简单高效,真正为 AI 的广泛应用铺平了道路。
AI进修生
2024/12/02
16.4K0
Ollama 升级!支持一键拉取Huggingface上所有的模型,太方便了!(vLLM、Fastgpt、Dify、多卡推理)
本地运行“李开复”的零一万物 34B 大模型
这篇文章,我们来聊聊如何本地运行最近争议颇多的,李开复带队的国产大模型:零一万物 34B。
soulteary
2023/11/27
1.1K0
本地运行“李开复”的零一万物 34B 大模型
本地运行“李开复”的零一万物 34B 大模型
这篇文章,我们来聊聊如何本地运行最近争议颇多的,李开复带队的国产大模型:零一万物 34B。
soulteary
2023/11/26
1.1K0
本地运行“李开复”的零一万物 34B 大模型
MiniCPM-V 系列模型在多模态文档 RAG 中的应用:无需OCR的高效多模态文档检索与问答系统
本文出处:https://github.com/RhapsodyAILab/Awesome-MiniCPMV-Projects/tree/main/visrag
用户7634387
2024/08/19
1.1K0
MiniCPM-V 系列模型在多模态文档 RAG 中的应用:无需OCR的高效多模态文档检索与问答系统
书生·浦语大模型图文对话Demo搭建
我们将使用 InternStudio 中的 A100(1/4) 机器和 InternLM-Chat-7B 模型部署一个智能对话 Demo
阿提说说
2024/02/28
2560
书生·浦语大模型图文对话Demo搭建
推动全球AI大模型发展的重量级开源大模型Grok-1到底是什么?
摘要: 在本篇博客中,我们将深入探讨Grok-1,这个由xAI团队开发的3140亿参数的混合专家模型。Grok-1不仅仅是一个模型,它是AI领域的一次重大突破,代表了大模型发展的未来方向。这篇文章将覆盖Grok-1的基本信息、如何开始使用、模型规格、下载权重的方法以及其在Apache 2.0许可证下的开放性。无论您是AI领域的新手还是资深专家,本文都将带给您宝贵的见解和知识。关键词包括:Grok-1, 大模型, 开源, 混合专家模型, 参数, Apache 2.0许可证, AI技术, 机器学习, 深度学习。
猫头虎
2024/04/07
5440
推动全球AI大模型发展的重量级开源大模型Grok-1到底是什么?
Hugging Face 下载模型指南:手把手教你玩转
Hugging Face 已成为 NLP 和 AI 开发者的必备工具,它提供了丰富的预训练模型,帮助我们快速进行模型训练与推理。但是,如何高效地将模型下载到本地?
神的孩子都在歌唱
2025/03/31
2.3K0
Hugging Face 下载模型指南:手把手教你玩转
基于 InternLM 和 LangChain 搭建你的知识库
InternStudio (OpenAIDE)[1] 是面向算法开发者与研究员的云端集成开发环境。基于「容器实例」,「镜像中心」,「分布式训练」,「公开数据集」模块为用户提供 “算力、算法、数据” 深度学习模型训练三要素,让算法开发变得更简单、更方便。笔者认为 InternStudio 是支撑书生·浦语大模型全链路开源开放体系的坚实基础,让我们在学习理论之后能够在开发机上实战。
胡琦
2025/05/20
1220
基于 InternLM 和 LangChain 搭建你的知识库
大模型高效下载部署方式
liddytang
2024/07/15
3510
基于InternLM和LangChain搭建自己的知识库
为了突破LLM的局限性,目前有两种范式可行:RAG(检索增强生成)和Finetune(模型微调)。
阿提说说
2024/03/01
1.1K0
基于InternLM和LangChain搭建自己的知识库
丹摩智算:SD3+ComfyUI文生图部署步骤详解
SD3,即Stable Diffusion 3,是由Stability AI开发的一款先进的文生图模型。它能够根据文本描述生成高质量的图像,代表了当前人工智能在图像合成领域的最新进展。
屿小夏
2024/09/26
3200
丹摩智算:SD3+ComfyUI文生图部署步骤详解
一种从 🤗HuggingFace 下载模型的方法
无法直接从 HuggingFace[1] 下载模型时,可借助 https://github.com/AlphaHinex/hf-models 仓库,使用 GitHub Actions[2] 构建一个 Docker 镜像,在镜像中用 huggingface_hub[3] 下载好所需模型,再将镜像推送至 Docker Hub[4],最后以下载镜像方式曲线下载模型。
AlphaHinex
2024/04/09
1.4K0
一种从 🤗HuggingFace 下载模型的方法
使用 modelscope 在离线环境部署模型服务关键点
在 ModelScope 的 本地启动服务[1] 文档中,介绍了使用 modelscope server 发布模型服务的方法。简单来说,就是执行如下命令:
AlphaHinex
2024/05/20
1.6K0
使用 modelscope 在离线环境部署模型服务关键点
推荐阅读
相关推荐
告别Hugging Face模型下载难题:掌握高效下载策略,畅享无缝开发体验
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验