提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔
文章目錄
- 前言
- 一、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、其它的模型復刻這種模式就行了。