前言
现在从下载huggingface的文件一般使用git,下载单个小型模型的文件使用git也还是可以的,那么想一次下载多个文件呢?
现介绍pycrawlers这个python包,使用这个包可以轻松实现批量下载,以及进度显示,断点续传
。
一、git下载的例子
上面的例子使用git下载了bert-base-chinese,可以从图片上看到只有下载的大概情况,并没有每个文件的详细下载情况。
当模型文件较大的时候,会卡在 Unpacking objects: 100% (52/52), done.
,
等模型全部下载完成才会显示 Filtering content: 100% (4/4), 1.59 GiB | 9.47 MiB/s, done.
这会导致我们无法知道下载的进度,进而不知道多久才能下完,是否要选择后台下载。
二、pycrawlers的使用
1. 安装
pip install pycrawlers
2. 批量下载
代码如下(示例):
from pycrawlers import huggingface
# 实例化类
hg = huggingface()
urls = ['https://huggingface.co/albert-base-v2/tree/main',
'https://huggingface.co/dmis-lab/biosyn-sapbert-bc5cdr-disease/tree/main']
# 批量下载
# 默认保存位置在当前脚本所在文件夹 ./
hg.get_batch_data(urls)
# 自定义下载位置
# paths = ['./model_1/albert-base-v2', './model_2/']
# hg.get_batch_data(urls, paths)
3. 单个下载
代码如下(示例):
from pycrawlers import huggingface
# 实例化类
hg = huggingface()
url = 'https://huggingface.co/albert-base-v2/tree/main'
# 单个下载
# 默认保存位置在当前脚本所在文件夹 ./
hg.get_data(url)
# 自定义下载位置
# path = './model_1/albert-base-v2'
# hg.get_data(url, path)
4. 示例
以下载 https://huggingface.co/albert-base-v2/tree/main 为例
5. 后台下载
可以使用nohup 执行python文件实现后台下载,当下载大的文件的时候非常方便。
例:
nohup python3 -u download_models.py > dm.log 2>&1 &
使用下面命令同步查看日志:
tail -f dm.log
6. 断点续传
版本1.0.0以上支持断点续传,无需配置
总结
以上就是使用pycrawlers批量下载huggingface上的模型与数据文件的全部内容了,欢迎交流。
pycrawlers以后还会拓展其他下载功能,敬请期待。
特别说明:
目前还不支持登陆huggingface账号,有需下载登陆才能下载的模型文件,可以参考手动下载或参考官方下载函数。
官方下载函数链接:https://huggingface.co/docs/huggingface_hub/v0.10.1/en/package_reference/file_download#huggingface_hub.hf_hub_download
本文仅供学习交流,未经同意严禁转载