huggingface可谓是深度学习里 最重要的社区之一了。 里面有无数个我们需要的模型和代码。近年来,知名的模型都会在huggingFace里先放一份代码和模型参数。 我们要做的就是下载这些模型。
以Bert为例。
bert-base-chinese at main
截图可以看到有这些文件 都是代码和模型权重,还有其他文件。
如果想下载,点击图中的 那个文件大小后的小小的下载箭头 就可以下载对应文件。
可是,有时候,有些模型的这个页面中有很多个文件夹和文件,一个一个点着去下,让人崩溃。那么有没有什么好的方法呢?
hf_hub_download()
当然是这个函数啦,来自官方的函数,可以下载页面中所有的文件,并安照文件夹放好。 而且还可以筛选不想要的文件,具体看官网api。
Download files from the Hub
代码如下。 ‘bert-base-chinese’ 是网址后面那一截。
a = snapshot_download(repo_id="bert-base-chinese")
a是返回的存储路径。 如果你想指定下载路径。
a = snapshot_download(repo_id="bert-base-chinese", cache_dir='v1-4')
如果你遇到
requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url
这是因为有些模型,不是公开的,或者需要一些协议,必须登录才行。 (Bert是公开的)。
此时我们需要添加 readtoken, 其中, readtoken 是属于每个人自己的专属token,从huggiface 官网注册,然后点开setting, 点token。 即可创建属于自己的token ,复制到下面的代码里即可。
read_token = 'hf_qh ??????????? '
a = snapshot_download(repo_id="bert-base-chinese", cache_dir='v1-4', use_auth_token=read_token)
如果出现
requests.exceptions.HTTPError: 404 Client Error: Not Found for url:
说明你网址输入错了, 注意是huggingface.co 后面 到tree前截至。
二: git clone
直接git clone +网址
不好用的地方在于, 这个方法不会下载权重文件。 需要手动下载或者联网使用
三:
用模型当页推荐使用方法使用。 这个好像也得联网才能调用。
from transformers import AutoTokenizer, AutoModelForMaskedLM
tokenizer = AutoTokenizer.from_pretrained("bert-base-chinese")
model = AutoModelForMaskedLM.from_pretrained("bert-base-chinese")