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

文章目录

  • 前言
  • 一、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.hqwc.cn/news/340908.html

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

相关文章

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑦

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷7 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷7 模块一 …

数学经典教材有什么?

有本书叫做《自然哲学的数学原理》,是牛顿写的,读完之后你就会感叹牛顿的厉害之处! 原文完整版PDF:https://pan.quark.cn/s/5d5eac2e56af 那玩意真的是人写出来的么… 现代教材把牛顿力学简化成三定律,当然觉得很简单。只有读了原…

算法通关村番外篇-跳表

大家好我是苏麟 , 今天来聊聊调表 . 跳表很少很少实现所以我们只了解就可以了 . 跳表 链表在查找元素的时候,因为需要逐一查找,所以查询效率非常低,时间复杂度是O(N),于是就出现了跳表。跳表是在链表基础上改进过来的&#xff0…

回环屏障CyclicBarrier原理探究

上节介绍的CountDownLatch在解决多个线程同步方面相对于调用线程的join方法已经有了不少优化,但是CountDownLatch的计数器是一次性的,也就是等到计数器值变为0后,再调用CountDownLatch的await和countdown方法都会立刻返回,这就起不…

视图与索引连表查询内/外联和子查询

1.视图 先介绍一下视图: 从SQL的角度来看,视图和表是相同的,两者的区别在于表中存储的是实际的数据,而视图中保存的是SELECT语句(视图本身并不存储数据)。 使用视图可以轻松完成跨多表查询数据等复杂操作…

解析工会排队:动静奖励结合的魅力

每天五分钟讲解一个商业模式知识,大家好我是模式策划啊浩Zeropan_HH。 数字时代数字思想,当你还在苦恼如何让自己的商业城堡扩大时,不如放空思想来看看啊浩的文章,或许可以给你一些启发。今天的给大家分享的模式来源于《微三云赢…

Project软件使用指南:六个关键功能助力项目成功

在项目管理的复杂世界中,Project软件提供了关键的解决方案。主要功能包括:1、任务和进度管理、2、资源分配、3、财务监控、4、风险评估、5、协作增强、6、报告和洞察力。特别是在任务和进度管理方面,Project软件通过动态时间表和任务跟踪工具…

休息一会 sleep

文章目录 休息一会 sleep休息5分钟1小时后提醒我时分秒搭配使用倒计时计时器结合脚本更多信息 休息一会 sleep … note:: 莫听穿林打叶声,何妨吟啸且徐行。 苏轼 Linux sleep命令可以用来将目前动作延迟一段时间。 sleep的官方定义为: sleep - delay …

React之自定义路由组件

开篇 react router功能很强大,可以根据路径配置对应容器组件。做到组件的局部刷新,接下来我会基于react实现一个简单的路由组件。 代码 自定义路由组件 import {useEffect, useState} from "react"; import React from react // 路由配置 e…

YOLOv8 Ultralytics:使用Ultralytics框架进行定向边界框对象检测

YOLOv8 Ultralytics:使用Ultralytics框架进行定向边界框对象检测 前言相关介绍前提条件实验环境安装环境项目地址LinuxWindows 使用Ultralytics框架进行定向边界框对象检测参考文献 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精…

Kali Linux——aircrack-ng无线教程

目录 一、准备 二、案例 1、连接usb无线网卡 2、查看网卡信息 3、开启网卡监听 4、扫描wifi信号 5、抓取握手包 6、强制断开连接 7、破解握手包 三、预防 一、准备 1、usb无线网卡(笔记本也是需要用到) 2、密码字典(Kali 系统自带…

好用便签:如何高效完成待办事项,提高工作效率?

在职场上,很多打工人总会有各种各样的待办事项需要处理,有时候因为手头上正在做的事还没做完,又接到一些其他的任务,导致不知道先做哪个,或者是忘了做某件事,导致工作效率极低。那么,如何高效处…