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

2024-01-21 09:04

本文主要是介绍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下载大模型(附代码,实现大模型自由)

这篇关于huggingface学习 | 云服务器使用hf_hub_download下载huggingface上的模型文件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/629006

相关文章

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

MySQL 日期时间格式化函数 DATE_FORMAT() 的使用示例详解

《MySQL日期时间格式化函数DATE_FORMAT()的使用示例详解》`DATE_FORMAT()`是MySQL中用于格式化日期时间的函数,本文详细介绍了其语法、格式化字符串的含义以及常见日期... 目录一、DATE_FORMAT()语法二、格式化字符串详解三、常见日期时间格式组合四、业务场景五、总结一、

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo

Python中配置文件的全面解析与使用

《Python中配置文件的全面解析与使用》在Python开发中,配置文件扮演着举足轻重的角色,它们允许开发者在不修改代码的情况下调整应用程序的行为,下面我们就来看看常见Python配置文件格式的使用吧... 目录一、INI配置文件二、YAML配置文件三、jsON配置文件四、TOML配置文件五、XML配置文件

Go使用pprof进行CPU,内存和阻塞情况分析

《Go使用pprof进行CPU,内存和阻塞情况分析》Go语言提供了强大的pprof工具,用于分析CPU、内存、Goroutine阻塞等性能问题,帮助开发者优化程序,提高运行效率,下面我们就来深入了解下... 目录1. pprof 介绍2. 快速上手:启用 pprof3. CPU Profiling:分析 C

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

MySQL InnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据

《MySQLInnoDB引擎ibdata文件损坏/删除后使用frm和ibd文件恢复数据》mysql的ibdata文件被误删、被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据... 参考:mysql Innodb表空间卸载、迁移、装载的使用方法注意!此方法只适用于innodb_fi

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc

Python中conda虚拟环境创建及使用小结

《Python中conda虚拟环境创建及使用小结》本文主要介绍了Python中conda虚拟环境创建及使用小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录0.前言1.Miniconda安装2.conda本地基本操作3.创建conda虚拟环境4.激活c

Spring中@Lazy注解的使用技巧与实例解析

《Spring中@Lazy注解的使用技巧与实例解析》@Lazy注解在Spring框架中用于延迟Bean的初始化,优化应用启动性能,它不仅适用于@Bean和@Component,还可以用于注入点,通过将... 目录一、@Lazy注解的作用(一)延迟Bean的初始化(二)与@Autowired结合使用二、实例解