【AI之路】使用huggingface_hub通过huggingface镜像站hf-mirror.com下载大模型(附代码,实现大模型自由)

news/2025/2/12 8:48:36/

文章目录

  • 前言
  • 一、Hugging face是什么?
  • 二、huggingface镜像站hf-mirror.com
  • 三、大模型一键下载
    • 1. 准备工作
    • 2. 下载代码
  • 总结
  • 后记


前言

要玩AI大模型,Hugging face 不可错过,但资源虽不错,可奈何国内下载速度很慢,动则GB的大模型,下载很容易超时,经常下载不成功。很是影响玩AI的信心。(有人说用迅雷啊,试试就知道了。)

经过多次测试,终于搞定了下载,即使超时也可以继续下载。就算程序中断,再打开仍可断点续传。真正实现下载无忧,大模型自由!


一、Hugging face是什么?

Hugging face 起初是一家总部位于纽约的聊天机器人初创服务商,本来打算创业做聊天机器人,在Github上开源了一个Transformers库,虽然聊天机器人业务没搞起来,但是他们的这个库在机器学习社区迅速大火起来。目前已经共享了超100,000个预训练模型,10,000个数据集。俨然陈国了AI开发者的GitHub,提供了模型、数据集(文本|图像|音频|视频)、类库(比如transformers|peft|accelerate)、教程等。

官网网址:https://huggingface.co/

二、huggingface镜像站hf-mirror.com

hf-mirror.com是 huggingface.co镜像,国内下不下来的模型,通过这个就可以轻松下载。
在这里插入图片描述

这里可检索模型,如:rwkv-4-novel
在这里插入图片描述

在对应的模型文件上点右键复制链接地址,如下,后面程序会用到:

https://hf-mirror.com/BlinkDL/rwkv-4-novel/blob/main/RWKV-4-Novel-7B-v1-ChnEng-20230426-ctx8192.pth

三、大模型一键下载

1. 准备工作

安装huggingface_hub包

pip install huggingface_hub

2. 下载代码

下面代码中,无论是使用huggingface.co地址,还是通过镜像地址均可以完成转换,使用镜像进行下载。

import os
# 注意os.environ得在import huggingface库相关语句之前执行。
os.environ["HF_ENDPOINT"] = "https://hf-mirror.com"
from huggingface_hub import hf_hub_downloaddef download_model(source_url):# 使用huggingface原地址# source_url ="https://huggingface.co/BlinkDL/rwkv-4-novel/blob/main/RWKV-4-Novel-7B-v1-ChnEng-20230426-ctx8192.pth"# 使用huggingface-镜像地址# source_url = "https://hf-mirror.com/BlinkDL/rwkv-4-novel/blob/main/RWKV-4-Novel-7B-v1-ChnEng-20230426-ctx8192.pth"if 'blob' in source_url:sp = '/blob/main/'else:sp = '/resolve/main/'if 'huggingface.co' in source_url:url = 'https://huggingface.co/'else:url = 'https://hf-mirror.com'location = source_url.split(sp)repo_id = location[0].strip(url) # 仓库ID,例如:"BlinkDL/rwkv-4-world" local_dir = r'D:\RWKV\models'cache_dir = local_dir + "/cache"filename = location[1]# 大模型文件,例如:"RWKV-4-World-CHNtuned-7B-v1-20230709-ctx4096.pth"print(f'开始下载\n仓库:{repo_id}\n大模型:{filename}\n如超时不用管,会自定继续下载,直至完成。中途中断,再次运行将继续下载。')while True:   try:hf_hub_download(cache_dir=cache_dir,local_dir=local_dir,repo_id=repo_id,filename=filename,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__':source_url = "https://huggingface.co/BlinkDL/rwkv-4-novel/blob/main/RWKV-4-Novel-7B-v1-ChnEng-20230426-ctx8192.pth"source_url = "https://hf-mirror.com/BlinkDL/rwkv-4-novel/blob/main/RWKV-4-Novel-7B-v1-ChnEng-20230426-ctx8192.pth"download_model(source_url)

在这里插入图片描述
中断后再运行,仍可续传。
在这里插入图片描述
可以看到,速度那是杠杠滴!


总结

通过镜像和程序化下载,可以彻底解决大模型下载,再配合大模型框架就可以自由玩耍了。
【AI之路】使用Jan.ai在本地部署大模型开启AI对话(含通过huggingface下载大模型,实现大模型自由)

后记

如果要下载整个仓库,可使用snapshot_download下载整个仓库快照。需要的小伙伴可以移步:
【AI之路】使用huggingface_hub优雅解决huggingface大模型下载问题

添加以下代码:注意os.environ得在import huggingface库相关语句之前执行。
os.environ[“HF_ENDPOINT”] = “https://hf-mirror.com”


http://www.ppmy.cn/news/1299192.html

相关文章

2024--Django平台开发-Django知识点(三)

day03 django知识点 项目相关路由相关 urls.py视图相关 views.py模版相关 templates资源相关 static/media 1.项目相关 新项目 开发时,可能遇到使用其他的版本。虚拟环境 老项目 打开项目虚拟环境 1.1 关于新项目 1.系统解释器命令行【学习】 C:/python38- p…

【leetcode100-033】【链表】排序链表

【题干】 给你链表的头结点 head ,请将其按 升序 排列并返回 排序后的链表 。 【思路】 递归版归并法链表版~没什么特别好说的(非递归版归并也是可以哒,但是马上要考试了今天懒得写了!打个flag在这里也许哪天想起来…

2024-01-01 K 次取反后最大化的数组和和加油站以及根据身高重建队列

1005. K 次取反后最大化的数组和 思路:每一次取反最小值即可!贪心的思路就是先排序,反转负数的值,后在贪心反转最小值 class Solution:def largestSumAfterKNegations(self, nums: List[int], k: int) -> int:count 0while …

@DependsOn:解析 Spring 中的依赖关系之艺术

欢迎来到我的博客,代码的世界里,每一行都是一个故事 DependsOn:解析 Spring 中的依赖关系之艺术 前言简介基础用法高级用法在 XML 配置中使用 DependsOn通过 Java Config 配置实现依赖管理 生命周期与初始化顺序Bean 生命周期的关键阶段&…

Java微服务系列之 ShardingSphere - ShardingSphere-JDBC

🌹作者主页:青花锁 🌹简介:Java领域优质创作者🏆、Java微服务架构公号作者😄 🌹简历模板、学习资料、面试题库、技术互助 🌹文末获取联系方式 📝 系列专栏目录 [Java项…

【simple-admin】FMS模块如何快速接入阿里云oss 腾讯云cos 服务 实现快速上传文件功能落地

让我们一起支持群主维护simple-admin 社群吧!!! 不能加入星球的朋友记得来点个Star!! https://github.com/suyuan32/simple-admin-core 一、前提准备 1、goctls版本 goctls官方git:https://github.com/suyuan32/goctls 确保 goctls是最新版本 v1.6.19 goctls -v goct…

【qml】第一次尝试qml与c++交互

背景: 目的是学习qml,因为看到很多qml的酷炫效果,想试一试。 看过网上一些代码,qt提供的工具类好几个,看着就晕。只想提炼一下,做个记录。 我先整理了一套自己的想法:所谓交互,还…

基于 SpringBoot + magic-api + Vue3 + Element Plus + amis3.0 快速开发管理系统

Tansci-Boot 基于 SpringBoot2 magic-api Vue3 Element Plus amis3.0 快速开发管理系统 Tansci-Boot 是一个前后端分离后台管理系统, 前端集成 amis 低代码前端框架,后端集成 magic-api 的接口快速开发框架。包含基础权限、安全认证、以及常用的一…