解決Hugging Face模型下載難題

凡琪7發表於2024-12-04

解決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_pretrainedwgetcurl如何設定認證 token。

相關文章