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

AI入门系列 | 如何优雅地下载最前沿的模型?

​简介

一片白云横谷口,几多归鸟尽迷巢。

小伙伴们好,我是微信公众号《小窗幽记机器学习》的小编:卖铁观音的小男孩。本系列主要基于过往经历,总结当时自身环境中实操经验。倘若能够顺便帮到他人,也是善莫大焉。

本文主要介绍如何从huggingface上下载业界最先进、最前沿的模型和数据。极力推荐本文的下载方式,这是因为这种方式支持断点续传,而且会自动重试。即使,真的由于网络或者其他原因导致下载中断,也可以通过再次执行同样的命令,实现断点续传,持续下载。

准备工作

pip3 install -U huggingface_hub hf-transfer -i https://mirrors.cloud.tencent.com/pypi/simple

环境配置

如果国内无法直接访问 https://huggingface.co/,那么可以设置镜像网址hf-mirror.com。在终端命令行中执行以下命令:

# 可根据实际需要,设置不同的镜像或者代理地址
export HF_ENDPOINT=https://hf-mirror.com

另外,可以尝试设置:

export HF_HUB_ENABLE_HF_TRANSFER=1  
# 如果设置之后,下载模型报这个相关的错误,可设置为0

这里多说两句。设置环境变量HF_HUB_ENABLE_HF_TRANSFER=1 用于启用 Hugging Face Hub 的文件传输功能。当从 Hugging Face Hub 下载模型或其他资源时,这个设置可以提高下载速度。

具体来说,当设置了该环境变量后,Hugging Face Hub 将使用更高效的文件传输协议来下载资源,而不是使用默认的 HTTP 请求方式。这种优化的传输协议能够显著提高下载大型文件的速度,尤其是在网络环境较好的情况下。

需要注意的是,由于一些网络环境的限制(如代理、防火墙等),优化的文件传输协议可能无法正常工作。在这种情况下,您可以取消设置该环境变量,以使用默认的下载方式。

总的来说,设置 HF_HUB_ENABLE_HF_TRANSFER=1 是为了提高从 Hugging Face Hub 下载大型模型和数据集时的传输速度,但并非所有网络环境都能受益于此优化。如果下载速度没有明显提升或出现问题,可以取消该设置。

更多细节可以参考官方说明:

https://huggingface.co/docs/huggingface_hub/v0.24.6/package_reference/environment_variables#hfhubenablehftransfer

下载模型

huggingface-cli download --resume-download --local-dir-use-symlinks False $model_id --local-dir /你的下载目录/$model_id/

这里的$model_id就是你在模型下载页面,如下红色箭头拷贝的内容:

具体到,https://huggingface.co/Qwen/Qwen2-0.5B-Instruct 这个页面,model_id值为Qwen/Qwen2-0.5B-Instruct

下载数据

至于下载数据,只需要多一个参数--repo-type dataset,其他的与下载模型一致。比如,想要下载 https://huggingface.co/datasets/Hello-SimpleAI/HC3 上的数据,则

huggingface-cli download --resume-download --repo-type dataset --local-dir-use-symlinks False Hello-SimpleAI/HC3 --local-dir /你存放数据的目录/Hello-SimpleAI/HC3

总结

本文简要介绍如何便捷地从huggingface上下载模型。该方式从小编自身的实践来看,是目前最为便捷的,特别是支持断点续传的功能,特别符合我们的网络环境。


http://www.mrgr.cn/news/31819.html

相关文章:

  • Spring Cloud 与 Dubbo 的区别及选择指南
  • P1177 【模板】排序
  • 肖扬新书《微权力下的项目管理》读书笔记2
  • Springboot使用ThreadPoolTaskScheduler轻量级多线程定时任务框架
  • 【已解决】编译报错:fatal error: Eigen/Core: 没有那个文件或目录 #include <Eigen/Core>
  • python的多线程
  • Qt (19)【Qt 线程安全 | 互斥锁QMutex QMutexLocker | 条件变量 | 信号量】
  • 轻量级流密码算法Trivium
  • Java模拟鼠标、键盘操作
  • AI少女/HS2甜心选择2 仿崩铁人物卡全合集打包
  • Spring在不同类型之间也能相互拷贝?
  • 【智能大数据分析 | 实验一】MapReduce实验:单词计数
  • 交安安全员考试真题及答案
  • 进程分析工具Process Explorer使用
  • MySQL —— 事务
  • 详解 Pandas 的 reset_index 函数
  • 天猫店铺商品列表API:深度解析商品视频与图文详情的获取
  • 光伏开发:一分钟生成光伏项目报告
  • springboot 集成轻量级规则编排引擎 LiteFlow 使用详解
  • echarts图表刷新