我发现我身边很多的算法同事,还不能自如的下载大模型权重文件,诸如 huggingface 太慢,链接不上等问题。
确实,大模型现在小的几个 G,大的几十 G,甚至上百 G,想要下载模型真的比以往要难很多了。
能够高速下载模型是大家训练微调模型的前提条件。
这里分享下我常用的下载方式。
现在大模型下载最常用的两个平台是huggingface
和modelscope
。
如何高速下载 huggingface 模型
huggingface 是国外的一个社区平台,地址是 https://huggingface.co/
当然了,现在国内访问很慢,想要下载模型很难。
这里推荐一个 huggingface 的镜像网站 https://hf-mirror.com/
,国内可以高速下载,支持模型,数据集等等。
下载方式和 huggingface 一样。有几种方式。
这里以在下 Qwen1.5-0.5B-chat 为例子,来一步步交大家如何配置,如何下载。
1、网页直接下载
https://hf-mirror.com/Qwen/Qwen1.5-0.5B-Chat/tree/main
单个文件可以直接点击下载链接,下载到本地就可以。
实测下载速度 5M/s
2、huggingface 专用 CLI 工具
使用 Hugging Face 官方提供的 huggingface-cli
命令行工具。
huggingface-cli
隶属于 huggingface_hub 库,不仅可以下载模型、数据,还可以可以登录 huggingface、上传模型、数据等。
一定要设置镜像
export HF_ENDPOINT="https://hf-mirror.com"
安装依赖库 huggingface_hub
pip install -U huggingface_hub
下载方式
huggingface-cli download --resume-download Qwen/Qwen1.5-0.5B-Chat --local-dir Qwen/Qwen1.5-0.5B-Chat
这里的参数resume-download
为下载的模型名称,local-dir
为本地存储模型的地址,不用事先新建,会创建。
模型的名称获取方式,复制下面图中箭头的位置。
https://hf-mirror.com/Qwen/Qwen1.5-0.5B-Chat/tree/main
下载之后的模型文件是这样的。
这里的模型文件是个软链接,默认会存储在 ~/.cache/huggingface
下面(我自己改过软链的位置了),是这个参数控制的 --local-dir-use-symlinks
,默认为True
。
这也是很多人会问下载后的模型存储到哪里去了?
的原因。
如果想要下载模型文件到 local-dir
,可以把参数值设置为 False
huggingface-cli download --resume-download Qwen/Qwen1.5-0.5B-Chat --local-dir Qwen/Qwen1.5-0.5B-Chat-m --local-dir-use-symlinks False
这种方式不错,使用官方推荐的工具可以下载。
不过要搞清楚模型下载的位置和模型加载的方式。
3、python 脚本
snapshot_download
方式下载。
snapshot_download
方法是 huggingface 官方提供的,这里是介绍的链接:
https://huggingface.co/docs/huggingface\_hub/v0.17.3/en/package\_reference/file\_download#huggingface\_hub.snapshot\_download
参数很多,支持断点续传、多线程、指定路径、配置代理等。
from huggingface_hub import snapshot_download
snapshot_download(repo_id='Qwen/Qwen1.5-0.5B-Chat',
repo_type='model',
local_dir='./Qwen/Qwen1.5-0.5B-Chat/',
resume_download=True)
当然这种和上面一样,local_dir_use_symlinks
控制模型是否下载到缓存中,我更喜欢设置到 True, 也就是下载到模型缓存文件中,一个好处是方便模型加载,另一个好处是方便空间管理,节省不必要的重复利用。
以下是官方给出的参数说明
local_dir_use_symlinks
( "auto" 或 bool , 默认为 "auto" )— 与
local_dir
一起使用 。如果设置为“auto”,则将使用缓存目录,并且文件将根据其大小复制或符号链接到本地目录。它设置为
True
,无论文件大小如何,都将创建一个符号链接。如果设置为False
,则文件将从缓存中复制(如果已存在)或从 Hub 下载且不缓存。
上面三种方法,我常用的是命令行CLI的方式
和snapshot
的方式。
都记得要设置镜像,可以写进到 ~/.bashrc
vim ~/.bashrc
export HF_ENDPOINT="https://hf-mirror.com"
ModelScope 如何下载模型
另外一个常用的就是 ModelScope,魔塔社区,国内平台。
链接:https://community.modelscope.cn/
魔塔社区属于国内平台,所以不需要什么镜像之类的国内下载速度就很快。
这里简单介绍下下载方式。
还是以 Qwen1.5-0.5B-Chat
为例。
https://modelscope.cn/models/qwen/Qwen1.5-0.5B-Chat/files
提供了两种下载方式,SDK
和Git
。
依赖安装 pip install -U modelscope
SDK 的下载方式就是 python 脚本snapshot_download
。
#模型下载
from modelscope import snapshot_download
model_dir = snapshot_download('qwen/Qwen1.5-0.5B-Chat')
默认模型会下载到~/.cache/modelscope/hub
中,如果需要修改下载目录,可以手动指定环境变量:MODELSCOPE_CACHE
,modelscope 会将模型和数据集下载到该环境变量指定的目录中。
也可以指定cache_dir
,或者下载单个文件。
from modelscope.hub.snapshot_download import snapshot_download
model_dir = snapshot_download('damo/nlp\_xlmr\_named-entity-recognition\_viet-ecommerce-title', cache_dir='path/to/local/dir', revision='v1.0.1')
from modelscope.hub.file_download import model_file_download
model_dir = model_file_download(model_id='AI-ModelScope/rwkv-4-world',file_path='RWKV-4-World-CHNtuned-7B-v1-20230709-ctx4096.pth',revision='v1.0.0')
这里有详细的下载模型文档。
https://modelscope.cn/docs/%E6%A8%A1%E5%9E%8B%E7%9A%84%E4%B8%8B%E8%BD%BD
也可以采用 git clone 的方式,但是都不怎么推荐。
总结一下
以上是我目前下载模型常用的方式,其中镜像的方式是目前应用最多的,因为要用
transformers
库开发。如果大家还有更好的方式欢迎交流,包括遇到的问题。
<-End->
往期推荐
Kimi 太慢了,200万字上下文还没开放,不等了,先用下kimi的插件
免魔法,非套壳API,国内使用GPT plus,和官网功能一模一样,强烈推荐!
就在刚刚,Claude 3发布了,推出了三个模型,Haiku、Sonnet 和 Opus,效果又震惊四方
我是大林,持续关注 AIGC 趋势发展,和大家一起交流。微信(dalinvip2023),备注【公众号 AIGC】,进 AIGC 交流群一起交流。
如果文章对你有一点点 🤏🏻 帮助,关注公众号并星标,可以及时收到最新 AI 信息,点赞、在看、帮忙转发给更多的朋友,是最大的支持,谢谢。