[NLP]Huggingface模型/数据文件下载方法

问题描述

作为一名自然语言处理算法人员,hugging face开源的transformers包在日常的使用十分频繁。在使用过程中,每次使用新模型的时候都需要进行下载。如果训练用的服务器有网,那么可以通过调用from_pretrained方法直接下载模型。但是就本人的体验来看,这种方式尽管方便,但还是会有两方面的问题:

  • 如果网络很不好,模型下载时间会很久,一个小模型下载几个小时也很常见
  • 如果换了训练服务器,又要重新下载。

一 迅雷下载

实测发现迅雷比命令行速度快许多,而且在库中文件非常多的时候也比较方便断点重下,非常推荐

首先 运行以下代码得到所有文件下载URL:

把URL全部复制到迅雷中批量下载:

python 复制代码
from huggingface_hub import hf_hub_url
from huggingface_hub.utils import filter_repo_objects
from huggingface_hub.hf_api import HfApi

repo_id = "decapoda-research/llama-7b-hf"
repo_type = "model" # 如果是数据 dataset

repo_info = HfApi().repo_info(repo_id=repo_id, repo_type=repo_type) # 有时候会连接Error,多试几次
files = list(filter_repo_objects(items=[f.rfilename for f in repo_info.siblings]))
urls = [hf_hub_url(repo_id, filename=file, repo_type=repo_type) for file in files]
print("\n".join(urls))

二 Git LFS 模型下载方案(优雅,但不够灵活)

准备工作

mac: brew install git-lfs

Git LFS的方案相较于前面自行实现的方案要简洁的多得多。我们需要在安装git的基础上,再安装git lfs。以Windows为例,命令如下

复制代码
git lfs install

这种方案也存在着一定的问题,即会下载仓库中的所有文件,会大大延长模型下载的时间。我们可以看到在目录中包含着flax_model.msgpack、tf_model.h5和pytorch_model.bin三个不同框架模型文件,在bert-base-uncased的版本中,还存在着rust版本的rust_model.ot模型,如果我们只想要一个版本的模型文件,这种方案就无法实现了。

三 Hugging Face Hub 模型下载方案(优雅,强烈推荐)

复制代码
from huggingface_hub import snapshot_download

snapshot_download(repo_id="bert-base-chinese")

如何下载指定版本的内容呢?在snaphot_download方法中,提供了allow_regex和ignore_regex两个参数,简单来说前者是对指定的匹配项进行下载,后者是忽略指定的匹配项,下载其余部分。我们只需要使用其中一种就可以了,这里以ignore_regex为例演示下如何只下载Pytorch版本的模型,代码如下。

复制代码
snapshot_download(repo_id="bert-base-chinese", ignore_regex=["*.h5", "*.ot", "*.msgpack"])

可以看到,此时下载项相较于前面完整的下载少了几项,我们再打开文件目录查看一下,可以看到此时就没有了TensorFlow和Flax的模型了!

如何优雅的下载huggingface-transformers模型 - 知乎 (zhihu.com)

相关推荐
ZPC82101 分钟前
YOLO26 识别串番茄果梗
人工智能·深度学习·算法·机器学习
jsl_jsl_jsl4 分钟前
《不给小团队上数据库:用 Git 仓库当需求看板的实践》
人工智能
IamZJT_6 分钟前
Agent 系统工程 01|模型之外,Harness 到底该负责什么?
人工智能·python·程序员
沧海一笑-dj6 分钟前
【Python】Python学习笔记-Python 核心基础
人工智能·python·ai·解释型语言
VertGrow AI销冠9 分钟前
放弃破解微信协议、放弃提示词生成:一次产品上线前的两次技术方案推翻
人工智能
海宇数据13 分钟前
零信任架构实战:基于海宇公安二要素认证即时版构建自动化对公账户准入网关
运维·人工智能·架构·自动化
Aloudata13 分钟前
指标平台与 Data Agent 协同指南:如何让 AI 问数调用可信指标
大数据·人工智能·数据分析·data agent·语义层
TMT星球14 分钟前
网易有道周枫:AI能力竞争,正在进入「Model + Agent + Workflow」时代,网易有道AI Open Day展示AI时代“有道解法”
人工智能·科技
m4Rk_14 分钟前
【论文阅读】Agent 记忆机制(73):MemGAS——让长期对话记忆按问题选择粒度并关联证据
论文阅读·人工智能·学习·开源·github
韩曙亮23 分钟前
【AI 大模型】各 AI 大厂 Agent 平台各等级订阅会员对比分析 ( 字节 TRAE、腾讯 Buddy、阿里 Qoder CN、百度 DuMate )
人工智能·ai·大模型·ai大模型·qoder·workbuddy·traecode