当前位置: 首页 > news >正文

huggingface下载数据和模型,部分下载,本地缓存等常见问题踩坑

huggingface

注:系统环境为windows11 23H2,macOS和Linux用户可以查看下【参考】里的链接文档,差异不大

安装huggingface-cli

虽然可以通过代码下载模型和数据集(下文会提及),但我依然推荐你用此方法来管理和下载,更直观可控一些。
pip install huggingface-cli 将hugginface-cli安装到全局的python环境下,这样打开terminal就能直接使用命令。

可选:修改huggingface镜像地址和缓存地址

win+r 搜索 修改系统环境变量(或者edit system variables 在用户变量或者系统变量分区下添加如下新变量:
HF_HOME=F:\hf_home (huggingface根地址)
HF_DATASETS_CACHE = F:\hf_home\datasets (数据集的存放地址,之后也会再说明)
HF_ENDPOINT=https://hf-mirror.com (镜像地址,新的模型同步需要时间)
HF_HUB_DOWNLOAD_TIMEOUT=60 (超时重试间隔,秒数)

预下载

以whisper-small为例,在网页点击按钮复制完整模型名,
在这里插入图片描述
terminal中输入命令下载:
huggingface-cli download --resume-download openai/whisper-small
下载数据集的命令:
huggingface-cli download --resume-download --repo-type dataset mozilla-foundation/common_voice_13_0

等待下载完成,就可以在ollaMA或者脚本里直接使用下载好的模型了。

边用边下载

  • 模型
from huggingface_hub import hf_hub_download
import joblibmodel = joblib.load(hf_hub_download(repo_id='openai/whisper-small', repo_type="model", local_dir="./downloaded_models", filename='model.safetensors')
)
''' 加入local_dir可以指定下载位置:如 model = joblib.load(hf_hub_download(repo_id='openai/whisper-small', repo_type="model", local_dir="./downloaded_models", filename='model.safetensors'))'''
  • 数据集
from huggingface_hub.hf_api import HfFolder
from huggingface_hub import snapshot_downloadsnapshot_download(repo_id="mozilla-foundation/common_voice_13_0", force_download=True, repo_type="dataset")
  • 只下载&加载部分数据集

有的数据集非常之大但我们只需要部分进行训练,例如commonvoice包含了几百种世界语言,但我想使用单语言(如中文或者英文)的语音文件(全部下载大约需要500g以上)

from datasets import load_datasetcache_dir = "F:/hf_home/datasets"  # 这里指定了dataset的缓存目录,和上文提到的HF_DATASETS_CACHE 系统环境变量一致common_voice['train'] = load_dataset('mozilla-foundation/common_voice_13_0', 'en', split='train+validation', trust_remote_code=True, cache_dir=cache_dir, data_files="audio/en/*", download_mode="reuse_cache_if_exists" )
common_voice['test'] = load_dataset('mozilla-foundation/common_voice_13_0', 'en', split='test', trust_remote_code=True, cache_dir=cache_dir, data_files="audio/en/*", download_mode="reuse_cache_if_exists")

另外,有的数据集下载前需要登录huggngface账号,先前往HF个人资料在token设置页创建一个只读的token,
在这里插入图片描述
获取到token值,如hf_abc12345efg 后在snapshot_download 执行前新建一行:

hf_token = HfFolder.save_token('hf_abc12345efg')

使用命令行下载时候先huggingface-cli login 输入token登录后再下载即可,token会存储在%hf_home% 下同名文件里。

下载之后的数据集和模型在哪儿?

模型还好32b的ds也不过几十G,数据集动辄几十甚至上百g接近1T 不是小数目,这里我做了大概的总结,反复删除下载的确是个恼人的工作。
这里我做了大概总结,没什么必要的东西就可以删掉节约空间了。

如果你没按我先前说的修改huggingface根地址,那么你的数据集和模型都会下载到:C:\Users\用户名\.cache\huggingface,这就是 %hf_home%。也可以在资源管理器使用 %hf_home% 直接访问hf根目录:

  • 模型
    这个位置是固定的,一直在%hf_home%/models 下除非你手动修改下载模型到的地址:
    F:\hf_home\hub\models--openai--whisper-small

  • 数据集
    这里有两个目录,一个用来存放真正的(未解压的数据集),均以mozzila/commonvoice/en/* 为例,即只下载和加载部分数据集

    • 通过cli下载的模型, 和模型一样放在%hf_home%/hub/ 下,如F:\hf_home\hub\datasets--distil-whisper--librispeech_long
    • 未解压的数据集:%hf_home%/datasets/downloads/extracted/... (这里不能确定具体的文件)
    • 解压的数据集(在加载过程中会越来越大,删掉的话下次load会重新生成):%hf_home%/datasets//mozilla-foundation___common_voice_13_0/en-93cf6a7a474e4b7d/

参考

https://huggingface.co/docs/huggingface_hub/en/guides/cli

https://huggingface.co/docs/datasets/v1.12.0/cache.html

https://huggingface.co/docs/datasets/en/loading#local-and-remote-files

https://zhuanlan.zhihu.com/p/684178533

http://www.xdnf.cn/news/230059.html

相关文章:

  • 计算机视觉综合实训室解决方案
  • Java 未来技术栈:从云原生到 AI 融合的企业级技术演进路线
  • 正向代理、反向代理机制与 Windows和Linux系统代理设置
  • 插入到word里面的用origin画的图,怎么获取图片细节?
  • AI伦理与监管:全球政策对比与中国实践
  • 【MongoDB篇】MongoDB的文档操作!
  • 数字中国的建设之路:超聚变以“智算数能”四大密钥,共建智能体时代
  • Django 学习指南:从入门到精通(大体流程)
  • VSU虚拟化主机
  • Qwen3 模型架构和能力概览
  • C# 接口 概述
  • 数据结构之双链表
  • Vue3中到达可视区域后执行
  • mac电脑pytest生成测试报告
  • Java高阶程序员学习计划(详细到天,需有一定Java基础)
  • Webug4.0通关笔记06- 第8关CSV注入
  • golang接口和具体实现之间的类型转换
  • 分布式架构:Dubbo 协议如何做接口测试
  • 定时任务xxl-job国产化改造,适配磐维数据库(PostgreSQL)
  • OpenHarmony - 小型系统内核(LiteOS-A)(完),内核编码规范
  • Arduino项目实战与编程技术详解
  • Python爬虫学习路径与实战指南 04
  • (Go Gin)Gin学习笔记(三)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
  • 【思考】欧洲大停电分析
  • 0.安装两个版本的JDK8和JDK17并配置环境变量
  • 用Ai学习wxWidgets笔记——自制wxWidgets开发参考手册(主体)
  • MVC与MVP设计模式
  • 数据接收全流程图(物理网卡 → 应用层)
  • 第16篇:Linux设备驱动程序入门<三>
  • 自定义项目中导入文件import顺序