huggingface学习 | 云服务器使用hf_hub_download下载huggingface上的模型文件

系列文章目录

huggingface学习 | 云服务器使用git-lfs下载huggingface上的模型文件


文章目录

  • 系列文章目录
  • 一、hf_hub_download介绍
  • 二、找到需要下载的huggingface文件
  • 三、准备工作及下载过程
  • 四、全部代码


一、hf_hub_download介绍

hf_hub_download是huggingface官方支持(Downloading files/hf_hub_download)的下载模型或数据集的方法。该方法涉及的参数如下:
在这里插入图片描述实际上用到的参数并不多,一般情况下只需设置repo_id,filename,subfolder,local_dir,token参数即可

  • repo_id:仓库名称
  • filename:需要下载的文件名
  • subfolder:需要下载的文件在仓库中的哪一个文件夹(可选)
  • repo_type:仓库类型(可选),如果不填写就默认下载的是model,否则需要设置对应值(如下载数据集就设为datase)
    在这里插入图片描述
  • revision:指定Git的修订版本(可选)
  • library_name:对象对应的库的名称(可选)
  • library_version:库的版本号(可选)
  • cache_dir:缓存文件存储的文件夹路径(可选)
  • local_dir:下载的文件存放的目录(可选)
  • local_dir_use_symlinks:与 local_dir 参数一起使用的选项。如果设置为 “auto”,则会使用缓存目录,并根据文件大小将文件复制或创建符号链接到本地目录。如果设置为 True,则无论文件大小如何,都将创建符号链接。如果设置为 False,则文件将从缓存中复制(如果已存在),或者从Hub下载而不缓存。
  • user_agent:指定用户代理信息,可以是一个字典或一个字符串(可选)
  • force_download:如果该文件已经在本地缓存中存在,是否强制性下载文件(可选)
  • proxies: 设置代理服务器(可选)
  • etag_timeout:当获取ETag时,等待服务器发送数据的最长时间(以秒为单位)。如果服务器在这段时间内没有响应,将放弃请求(可选)
  • resume_download:如果设置为 True,可以继续之前中断的下载操作,即继续下载先前未完成的文件(可选)
  • token:用于下载的身份验证令牌,如果设置为 True,则从HuggingFace配置文件夹中读取令牌。如果是一个字符串,它将被用作身份验证令牌。(可选)
  • local_files_only:如果设置为 True,则避免下载文件,如果本地缓存中存在文件,则返回本地缓存文件的路径(可选)
  • legacy_cache_layout:如果设置为 True,则使用旧的文件缓存布局,即只需调用 hf_hub_url() 然后进行缓存下载。这已经不推荐使用,因为新的缓存布局更强大。(可选)

二、找到需要下载的huggingface文件

huggingface官网链接:https://huggingface.co/

以stable-diffusion-xl-base-1.0中unet文件夹里的diffusion_flax_model.msgpack文件为例:链接为stable-diffusion-xl-base-1.0。该文件大小为10.3G,如果采用官网直接下载的方法,会耗费较长的时间,采用git-lfs的方法在运行过程中容易自动跳过部分大文件,因此可以采用官网提供的hf_hub_download函数进行下载。
在这里插入图片描述

三、准备工作及下载过程

  1. 安装huggingface_hub包
pip install huggingface_hub
  1. 导入相关包,并使用hf-mirror.com镜像进行下载
import os
# 注意os.environ得在import huggingface库相关语句之前执行。
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
from huggingface_hub import hf_hub_download
  1. 确定身份验证令牌token
    在注册完成huggingface账户后,访问huggingface个人主页(profile)里的settings:https://huggingface.co/settings/profile
    在这里插入图片描述
    点击左侧:SSH AND GPG keys
    在这里插入图片描述
    如果已有token,复制即可,如果没有则点击new token设置完毕后再进行复制
    在这里插入图片描述

  2. 确定相关参数
    local_dir:你想要将文件保存到的地址
    repo_id:想要下载的文件所在的仓库
    filename:文件名
    subfolder:如果文件不是直接在仓库里,而是在仓库的文件夹里,需要指定文件夹
    token:身份验证令牌

repo_id=‘stabilityai/stable-diffusion-xl-base-1.0’
filename=‘diffusion_pytorch_model.safetensors’
subfolder=‘unet’
token=‘第三步中复制得到的’
local_dir = r’models\sdxl’

  1. 定义下载函数
    这个函数可以将下载的进程呈现出来,只需要输入local_dir,repo_id,filename,subfolder,token参数即可完成下载。(参考自【AI之路】使用huggingface_hub通过huggingface镜像站hf-mirror.com下载大模型(附代码,实现大模型自由))
def download_model(local_dir,repo_id,filename,subfolder,token):print(f'开始下载\n仓库:{repo_id}\n大模型:{filename}\n如超时不用管,会自定继续下载,直至完成。中途中断,再次运行将继续下载。')while True:   try:hf_hub_download(local_dir=local_dir,repo_id=repo_id,token=token,filename=filename,subfolder=subfolder,local_dir_use_symlinks=False,resume_download=True,etag_timeout=100)except Exception as e :print(e)else:print(f'下载完成,大模型保存在:{local_dir}\{filename}')break
  1. 运行代码进行下载
if __name__ == '__main__':repo_id='stabilityai/stable-diffusion-xl-base-1.0'filename='diffusion_pytorch_model.safetensors'subfolder='unet'token='第三步复制得到'local_dir = r'models'download_model(local_dir,repo_id,filename,subfolder,token)

开始下载:
在这里插入图片描述
如超时不用管,会自定继续下载,直至完成。中途中断,再次运行将继续下载;

最终下载完成界面:
在这里插入图片描述

四、全部代码

import os
# 注意os.environ得在import huggingface库相关语句之前执行。
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
from huggingface_hub import hf_hub_downloaddef download_model(local_dir,repo_id,filename,subfolder,token):print(f'开始下载\n仓库:{repo_id}\n大模型:{filename}\n如超时不用管,会自定继续下载,直至完成。中途中断,再次运行将继续下载。')while True:   try:hf_hub_download(local_dir=local_dir,repo_id=repo_id,token=token,filename=filename,subfolder=subfolder,local_dir_use_symlinks=False,resume_download=True,etag_timeout=100)except Exception as e :print(e)else:print(f'下载完成,大模型保存在:{local_dir}\{filename}')breakif __name__ == '__main__':repo_id='stabilityai/stable-diffusion-xl-base-1.0'filename='diffusion_pytorch_model.safetensors'subfolder='unet'token='复制得到'local_dir = r'models'download_model(local_dir,repo_id,filename,subfolder,token)

参考:
如何快速下载huggingface模型——全方法总结
【AI之路】使用huggingface_hub通过huggingface镜像站hf-mirror.com下载大模型(附代码,实现大模型自由)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/638457.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速上手Flask(二) flask-restful以及全局响应配置

文章目录 快速上手Flask(二) flask-restful以及全局响应配置什么是flask-restful安装flask_restfulflask_restful 使用flask 使用app.route 装饰器自定义路由 全局响应配置flask的自带的jsonify方法JSONIFY_PRETTYPRINT_REGULARJSONIFY_MIMETYPE重写jsonify方法 快速上手Flask(…

力扣【四数之和】

一、题目描述 18. 四数之和 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复&#x…

大数据开发之电商数仓(hadoop、flume、hive、hdfs、zookeeper、kafka)

第 1 章:数据仓库 1.1 数据仓库概述 1.1.1 数据仓库概念 1、数据仓库概念: 为企业制定决策,提供数据支持的集合。通过对数据仓库中数据的分析,可以帮助企业,改进业务流程、控制成本,提高产品质量。 数据…

C#中chart控件

C#中chart控件 图表的5大集合 例子 第一步:创建工程 放入chart控件 series集合 选择图标类型 选择绘制曲线的宽度和颜色。 显示数据标签 Title集合 添加标题 调整标题字体:大小和颜色 CharsArea集合 对坐标轴进行说明 设置间隔 设置刻度…

【线性代数与矩阵论】矩阵的谱半径与条件数

矩阵的谱半径与条件数 2023年11月18日 文章目录 矩阵的谱半径与条件数1. 矩阵的谱半径2. 谱半径与范数的关系3. 矩阵的条件数下链 1. 矩阵的谱半径 定义 设 A ∈ C n n {A\in \mathbb C^{n \times n} } A∈Cnn , λ 1 , λ 2 , ⋯ , λ n { \lambda_1,\lambda_2…

第11章_常用类和基础API拓展练习(字符串相关练习,日期时间API练习,比较器练习,其它API练习)

文章目录 第11章_常用类和基础API拓展练习字符串相关练习1:阅读题1、length说明2、阅读代码,分析结果3、阅读代码,分析结果4、阅读代码,分析结果5、阅读代码,分析结果6、阅读代码,分析结果7、阅读代码&…

【Linux】Linux基本操作(二):rm rmdir man cp mv cat echo

承接上文: 【【Linux】Linux基本操作(一):初识操作系统、ls、cd、touch、mkdir、pwd 】 目录 1.rmdir指令 && rm 指令: rmdir -p #当子目录被删除后如果父目录也变成空目录的话,就连带父目录一…

Elasticsearch 字段更新机制

目录 不支持原地更新 更新过程 段合并(Segment Merge) 结论 不支持原地更新 Elasticsearch 不支持原地更新(in-place update)索引中的单个字段。由于 Elasticsearch 使用了不可变的倒排索引,一旦文档被写入&#x…

崩溃了!我说用attach进行问题定位,面试官问我原理

Arthas(阿尔萨斯)是一款开源的Java诊断和监控工具,可以在生产环境中进行实时的应用程序分析和故障排查。Arthas的实现原理主要基于Java Instrumentation API和Java Agent技术。 Java Agent 是 Java 编程语言提供的一种特殊机制,允…

多模态是什么意思,在生活工业中有哪些应用?

问题描述:多模态是什么意思,在生活工业中有哪些应用? 问题解答: 多模态(Multimodal)指的是同时利用多种不同模式或传感器的情境、系统或技术。在不同领域,多模态可以涉及到多种感官或信息源的…

第4周:综合应用和实战项目 Day 25-27: 模型调优和优化学习高级技巧

第4周:综合应用和实战项目 Day 25-27: 模型调优和优化学习高级技巧 在这个阶段,我们将专注于提高模型的性能,通过使用高级技巧如正则化、dropout、批标准化等。这些技术对于防止过拟合和提高模型的泛化能力非常重要。 重点学习内容&#xff…

springboot(ssm电子产品销售网站 在线购物商城系

springboot(ssm电子产品销售网站 在线购物商城系统Java系统 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0)…

3.php开发-个人博客项目输入输出类留言板访问IPUA头来源

目录 知识点 : 输入输出 配置环境时: 搜索框: 留言板: 留言板的显示(html): php代码显示提交的留言: 写入数据库 对留言内容进行显示: php全局变量-$_SERVER 检测来源 墨…

AMEYA360:航顺HK32AUTO39A—适用车载娱乐系统优化方案

车载娱乐系统,顾名思义最开始其功能主要是为驾驶员和乘客提供娱乐体验,但现在智能座舱时代到来,车载信息娱乐系统已成为“人-车-环境”交互的重要载体,是除了驾驶以外的其他任务的中心。 从功能模块上看,车载娱乐系统从…

【算法练习Day50】下一个更大元素II接雨水

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 下一个更大元素II接雨水单调…

批量终结ascp linux系统中,批量停止kill进程

假如我想批量kill ascp进程 #!/bin/bash# Get PIDs of all running ascp processes pids$(ps -ef | grep [a]scp | awk {print $2})# Loop through each PID and try to terminate the process gracefully for pid in $pids; doecho "Attempting to gracefully terminat…

Apache Wicket 9.10.0发布

Apache Wicket 是一个开源的面向 Java 组件的 Web 应用框架,为政府、商店、大学、城市、银行、电子邮件提供商等成千上万的 Web 应用和网站提供支持。 Wicket 的开发中使用了语义版本,因此与 9.0.0 相比,9.10 版本没有出现 API 中断。 9.10…

9.4 Lambda表达式

9.4 Lambda表达式 1 Lambda语法2. 基于Lambda实现函数式编程3. Stream流式处理 1 Lambda语法 2. 基于Lambda实现函数式编程 3. Stream流式处理

常见的点云下载地址/点云集合/点云库30个

1、pcl库自带教程所需的点云数据下载地址 Point Cloud Library - Browse /PCD datasets at SourceForge.net 另外一个地址 https://github.com/PointCloudLibrary/data 31、新增:VTK库的点云数据下载地址,包含.vtk\ply\pdb\vtp\tif\stl等格式的点云数据 …

【C++】结构体

目录 1.结构体基本概念 2.结构体的定义和使用 3.结构体数组 4.结构体指针 5.结构体嵌套结构体 6.结构体做函数参数 7.结构体中const使用场景 1.结构体基本概念 结构体属于用户 ---- 自定义的数据类型,允许用户储存不同的数据类型 2.结构体的定义和使用 语法…