提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、Huggingface是什么?
- 二、基于官方huggingface-cli下载(基础,断线风险)
- 1.安装hf下载环境
- 2.配置环境变量
- 3.注册hf账号
- 4.激活hf账号
- 5.绑定gemma认证
- 6.获取下载token
- 7.开始下载
- 三、基于hfd.sh下载(建议,不易断线)
- 1.下载工具
- 2.赋予权限
- 3.设置环境变量
- 4.开始下载
- 1.Linux系统
- 2.Windows系统
- 总结
前言
最近在研究大语言模型,找到了一个不用科学上网就能下载Huggingface的模型的方法。当然,科学上网也支持。
一、Huggingface是什么?
研究大模型的人都知道Huggingface是什么,是一个开源的LLM收录网站,在这里你不仅能下载到各种开源的大模型,还能下载到各种开源的数据集训练自己的LLM。
为了方便书写以下简称Huggingface为hf
二、基于官方huggingface-cli下载(基础,断线风险)
以前hf下载模型是不需要登录的,现在需要注册账号了,有些特殊的模型还需要额外的认证,比如最近开源的google的gemma。今天就围绕着gemma来讲解怎么下载hf上的模型。
因为gemma需要额外认证,所以应该能覆盖大部分hf的情形。其它的模型也可能需要绑定额外认证,这里不专门论述。
1.安装hf下载环境
需要安装hf的下载工具,这里建议使用conda环境即可。
conda create -n hf python=3.9
conda activate hf
pip install -U huggingface_hub
2.配置环境变量
理论上MacOS是继承自Unix,应该和Linux是一样的环境变量。
Linux
export HF_ENDPOINT=https://hf-mirror.com
Windows
$env:HF_ENDPOINT = "https://hf-mirror.com"
3.注册hf账号
这一步是必须的,因为后面gemma需要token才能下载,其它模型可能也要token,我没有一个个试。
这一步可能需要科学上网
Huggingface官网
准备一个live或gmail的邮箱,QQ我没有试(有些外站不支持QQ邮箱),可以的话最好。
填邮箱密码,一步步来,我就不细讲了,会的都会,不会的…
4.激活hf账号
基于上面注册成功后,这个时候还不能使用账号。hf会给你注册邮箱发送一份验证邮件,你点击链接激活账号就可以正常使用了。
5.绑定gemma认证
主页找到Models->google/gemma-7b
点击进去会有个认证,点击认证并通过就行了。
6.获取下载token
主页->个人头像
7.开始下载
这里要使用上面的token,使用上面安装的工具。
huggingface-cli download --token <你刚才复制的token> --resume-download google/gemma-7b --local-dir gemma-7b
等待下载完成就行了。
这个模式也有个缺点,有时候会不稳定,无法实现无人看守。但也没关系,重试就行了,会自动断点续传!
三、基于hfd.sh下载(建议,不易断线)
上面的huggingface-cli有个缺点,有时候会断线,不能完全保证无人坚守。hfd.sh方法我测试没遇到过中断的情况。
1.下载工具
wget https://hf-mirror.com/hfd/hfd.sh
2.赋予权限
chmod a+x hfd.sh
3.设置环境变量
Linux
export HF_ENDPOINT=https://hf-mirror.com
Windows
$env:HF_ENDPOINT = "https://hf-mirror.com"
如果在Shell配置,每打开一个新Shell都要执行下环境变量,你可以配置在系统变量或用户变量里,优先建议用户环境变量,防止配置错误对系统造成破坏。具体方法:
Linux系统
添加用户环境变量(不需要sudo权限)
sed -i '$aexport HF_ENDPOINT=https://hf-mirror.com' ~/.bashrc
source ~/.bashrc
添加系统环境变量(需要sudo权限,`谨慎选择`)
sed -i '$aexport HF_ENDPOINT=https://hf-mirror.com' /etc/profile
source /etc/profile
Windows系统
我的电脑->右键属性->高级系统设置->环境变量,上面是用户变量,下面是系统变量,依然是建议添加用户变量。左边是变量名,右边是变量值。
注意:Windows系统添加完环境变量必须打开一个新的Shell才能读取新的变量!
4.开始下载
1.Linux系统
依然是先注册账户,拿到token。这里以chatglm3-6b为模板介绍下载方法:
./hfd.sh THUDM/chatglm3-6b --hf_username <你的huggingface账户名> --hf_token <你的token> --tool aria2c -x 4
--tool
:可以选wget
和aria2c
两种,建议选aria2c
-x
:指定的线程数
,依据自身带宽和机器性能决策,我这里限带宽,测不出来实际差别
wget下载工具是Linux系统自带的,aria2c一般都不会预装。
安装aria2c
sudo apt update
sudo apt install aria2
2.Windows系统
hfd.sh是基于Linux系统
编写的脚本,Windows系统无法直接运行,这里有个替代方法可以在Windows上运行,那就是安装Cygwin
,使用Cygwin安装aria2
和wget
两个工具。
这里不能再用Windows的环境变量了,Cygwin是在Windows上模拟的Linux环境,Windows的环境变量在Cygwin不生效。还是需要导出Linux的环境变量:
导出环境变量
export HF_ENDPOINT=https://hf-mirror.com
开始下载
./hfd.sh THUDM/chatglm3-6b --hf_username <你的huggingface账户名> --hf_token <你的token> --tool aria2c -x 4
--tool
:可以选wget
和aria2c
两种,建议选aria2c
-x
:指定的线程数
,依据自身带宽和机器性能决策,我这里限带宽,测不出来实际差别
aria2和wget都不是Cygwin预装的,需要手动添加!
这种方法适合那种需要在Windows上开发,又不想使用huggingface-cli的用户(断线困扰)。如果你是C或C++开发者,那么你的电脑应该是有Cygwin的,如果没有的话,这个方法对你来说就有点折腾了。依据个人需要来选择吧。
总结
1、总体来说还是方便的,不科学上网也能下载。
2、其它的模型复刻这种模式就行了。