解決Hugging Face模型下載難題
前情提示:
1、找到專案需要什麼模型
一般我們只要透過pycharm的搜尋功能(按三次Shift鍵)去找,以下關鍵字
BertTokenizer #類名
from_pretrained #方法名,這個比較好用
tokenizer
tokenizer = BertTokenizer.from_pretrained("模型名字或模型安裝位置") #為模型名就透過訪問預設安裝位置或網路下載,為安裝位置就是要先下載模型到本地然後透過本地模型位置訪問
然後可以看到
每一個都看過之後發現,主要在這兩個地方有
(1)第一個是把獲取模型封裝成了一個函式,裡面指明瞭模型roberta
(2)第二個是在一個config.py檔案下有一個tokenizer指明瞭模型,bert-base-uncased
2、知道huggingface模型的安裝目錄
在Linux中huggingface模型一般自動下載在當前使用者主目錄下的 .cache/huggingface目錄下的hub中。
~/.cache/huggingface/
具體樣子是這樣的,可以看一下下載的roberta-base模型
3、Huggingface國內開源映象:https://hf-mirror.com/
使用官方huggingface-cli工具
1.安裝依賴
huggingface-cli是 Hugging Face 官方提供的命令列工具,自帶完善的下載功能。
建立專案的虛擬環境後,虛擬環境python版本一定要>=3.9,啟用該環境並執行:
pip install -U huggingface_hub
安裝完成後可以執行huggingface-cli download --h
命令來檢視download功能的引數,如下圖
2.設定環境變數
- Linux
export HF_ENDPOINT=https://hf-mirror.com
建議將上面這一行寫入 ~/.bashrc
。
vim ~/.bashrc
export HF_ENDPOINT=https://hf-mirror.com
source ~/.bashrc #更新一下bashrc
3.下載模型
以下載roberta模型為例,現在huggingface官網或者hf-mirror.com找到想要的模型完整的名字。可以看到有很多我們就找自己要的就行一般專案裡有寫,如果沒寫就一般都是找比較有名的如這裡的FacebookAI。
執行以下命令
#以下命令都可
huggingface-cli download --resume-download 模型名 #沒有下載位置預設安裝在上面說的huggingface的hub目錄中
huggingface-cli download --resume-download roberta-base
huggingface-cli download --resume-download 模型名 --local-dir 下載位置
#如果不用預設下載位置那麼我們呼叫模型時, BertTokenizer.from_pretrained()方法中填入的應該是模型下載的位置,而不是模型名了。
tokenizer = BertTokenizer.from_pretrained("模型下載位置")
#還可以可以新增 `--local-dir-use-symlinks False` 引數禁用檔案軟連結,這樣下載路徑下所見即所得
huggingface-cli download --resume-download --local-dir-use-symlinks False Qwen/Qwen2-7B-Instruct --local-dir /www/algorithm/agent/Qwen2-7B-Instruct
huggingface-cli download --resume-download Qwen/Qwen2-7B-Instruct --local-dir /www/algorithm/agent/Qwen2-7B-Instruct --local-dir-use-symlinks False --token hf_*****
2.下載資料集
huggingface-cli download --repo-type dataset --resume-download wikitext --local-dir wikitext
其他常見問題:
Q1: 有些專案需要登入,如何下載?
A:部分 Gated Repo 需登入申請許可。為保障賬號安全,本站不支援登入,需先前往 Hugging Face 官網登入、申請許可,在官網這裡獲取 Access Token 後回映象站用命令列下載。
部分工具下載 Gated Repo 的方法:
huggingface-cli: 新增--token
引數
huggingface-cli download --token hf_*** --resume-download meta-llama/Llama-2-7b-hf --local-dir Llama-2-7b-hf
hfd: 新增--hf_username``--hf_token
引數
hfd meta-llama/Llama-2-7b --hf_username YOUR_HF_USERNAME --hf_token hf_***
其餘如from_pretrained
、wget
、curl
如何設定認證 token。