由于不知名原因,現(xiàn)在下載huggingface的模型和數(shù)據(jù)集非常慢,甚至無法下載。
https://hf-mirror.com是一個(gè)非常好用的huggingface鏡像,可以加速模型和數(shù)據(jù)集的下載,這里簡要介紹其使用方法。
假設(shè)這是我們加載模型的代碼main.py:
import torch
from transformers import BertModel
model = BertModel.from_pretrained("bert-base-uncased")
如果沒有提前下載好模型,也沒有設(shè)置鏡像和proxy的話,直接運(yùn)行python main.py可能無法下載。這里我們推薦使用非侵入式的方式設(shè)置環(huán)境變量,從而順利從鏡像站下載模型。以下是兩種設(shè)置環(huán)境變量的方式,任選其一即可。
- 永久環(huán)境變量設(shè)置
- 在
.bashrc文件中添加一行:
export HF_ENDPOINT=https://hf-mirror.com - 執(zhí)行
source .bashrc - 重新運(yùn)行
main.py,即可下載、加載模型。
- 臨時(shí)環(huán)境變量設(shè)置
- 在
main.py文件的最前面添加以下代碼:
import os
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
- 重新運(yùn)行
main.py,即可下載、加載模型。
除了能夠進(jìn)行模型的加載,huggingface鏡像還可以加速數(shù)據(jù)集和大文件的下載,可以作為一個(gè)文件中轉(zhuǎn)站,這里我們介紹如何使用huggingface鏡像下載大文件
準(zhǔn)備工作
需要提前注冊一個(gè)huggingface賬號,然后在https://huggingface.co/username中生成一個(gè)token,用于后續(xù)的上傳、下載文件。
需要安裝git,git lfs工具
創(chuàng)建倉庫
首先,需要在huggingface上創(chuàng)建一個(gè)倉庫,用于存放上傳的文件,可以選擇模型或者數(shù)據(jù)集,這里以模型為例。點(diǎn)擊右上角的New model,輸入模型名稱,選擇Upload a model,然后點(diǎn)擊Create repository。
這樣就創(chuàng)建了一個(gè)倉庫,可以看到倉庫的地址,比如https://huggingface.co/username/model_name。
上傳文件
這里推薦使用命令行的方式上傳文件。
- 克隆倉庫:
git clone https://hf-mirror.com/username/model_name - 進(jìn)入倉庫:
cd model_name - 將要上傳的文件放到倉庫中,比如
cp /path/to/model.bin . - 跟蹤大文件:
git lfs track "*.bin",如果是其他類型的文件,可以修改*.bin為對應(yīng)的文件類型,比如*.pth.*。 - 提交文件:
git add .,git commit -m "add model"。 - 上傳文件:
git push,這里的main是分支名稱,如果是其他分支,可以修改為對應(yīng)的分支名稱。
注意:如果上傳文件失敗,說明需要權(quán)限。我們使用上面生成的token,添加權(quán)限。
git remote set-url origin https://<user_name>:<token>@hf-mirror.com/<repo_path>
然后再上傳。
具體參考這里:https://huggingface.co/blog/password-git-deprecation
上傳成功后,可以在倉庫主頁中看到上傳的文件。
這里只展示了大文件的上傳,如果是小文件,可以直接使用git add、git commit、git push上傳。
下載文件
這里介紹命令行直接下載源目錄的方法。
首先,下載以下腳本:https://gist.githubusercontent.com/unikcc/9f146b74118ab194ca604b6733d82361/raw,命名為download.sh,并且加上可執(zhí)行權(quán)限:chmod +x download.sh
然后,將以下文件保存為run.sh
#!/usr/bin/bash
export HF_ENDPOINT="https://hf-mirror.com"
./down.sh username/model_name --hf_username xxx --hf_token hf_xxx --tool aria2c -x 4
把username/model_name替換為你要下載的文件的名稱,例如facebook/bart-large-mnli
最后,執(zhí)行bash run.sh,即可下載文件。