几种高速下载大模型的方法

技术

我发现我身边很多的算法同事,还不能自如的下载大模型权重文件,诸如 huggingface 太慢,链接不上等问题。

确实,大模型现在小的几个 G,大的几十 G,甚至上百 G,想要下载模型真的比以往要难很多了。

能够高速下载模型是大家训练微调模型的前提条件。

这里分享下我常用的下载方式。

现在大模型下载最常用的两个平台是huggingfacemodelscope

如何高速下载 huggingface 模型

huggingface 是国外的一个社区平台,地址是 https://huggingface.co/

picture.image

当然了,现在国内访问很慢,想要下载模型很难。

这里推荐一个 huggingface 的镜像网站 https://hf-mirror.com/,国内可以高速下载,支持模型,数据集等等。

picture.image

下载方式和 huggingface 一样。有几种方式。

这里以在下 Qwen1.5-0.5B-chat 为例子,来一步步交大家如何配置,如何下载。

1、网页直接下载

https://hf-mirror.com/Qwen/Qwen1.5-0.5B-Chat/tree/main

picture.image

单个文件可以直接点击下载链接,下载到本地就可以。

实测下载速度 5M/s

picture.image

2、huggingface 专用 CLI 工具

picture.image

使用 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  

      

picture.image

这里的参数resume-download为下载的模型名称,local-dir为本地存储模型的地址,不用事先新建,会创建。

模型的名称获取方式,复制下面图中箭头的位置。

https://hf-mirror.com/Qwen/Qwen1.5-0.5B-Chat/tree/main

picture.image

下载之后的模型文件是这样的。

picture.image

这里的模型文件是个软链接,默认会存储在 ~/.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  

      

picture.image

这种方式不错,使用官方推荐的工具可以下载。

不过要搞清楚模型下载的位置和模型加载的方式。

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

参数很多,支持断点续传、多线程、指定路径、配置代理等。

picture.image

picture.image

picture.image


        
          
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

picture.image

picture.image

提供了两种下载方式,SDKGit

依赖安装 pip install -U modelscope

SDK 的下载方式就是 python 脚本snapshot_download


        
          
#模型下载  
from modelscope import snapshot_download  
model_dir = snapshot_download('qwen/Qwen1.5-0.5B-Chat')  

      

picture.image

默认模型会下载到~/.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,和官网功能一模一样,强烈推荐!

自那之后,heygen更新了蛮多功能的

云端如何部署测试Qwen1.5-MoE模型

就在刚刚,Claude 3发布了,推出了三个模型,Haiku、Sonnet 和 Opus,效果又震惊四方

谁也没想到,阿里发布的新项目,竟然遭受了谩骂

我是大林,持续关注 AIGC 趋势发展,和大家一起交流。微信(dalinvip2023),备注【公众号 AIGC】,进 AIGC 交流群一起交流。

如果文章对你有一点点 🤏🏻 帮助,关注公众号并星标,可以及时收到最新 AI 信息,点赞、在看、帮忙转发给更多的朋友,是最大的支持,谢谢。

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动 XR 技术的探索与实践
火山引擎开发者社区技术大讲堂第二期邀请到了火山引擎 XR 技术负责人和火山引擎创作 CV 技术负责人,为大家分享字节跳动积累的前沿视觉技术及内外部的应用实践,揭秘现代炫酷的视觉效果背后的技术实现。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论