【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_download

def 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}')
            break
            
if __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.mfbz.cn/a/308591.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

优雅处理并发:Java CompletableFuture最佳实践

第1章:引言 大家好,我是小黑,今天,小黑要和大家聊聊CompletableFuture,这个Java 8引入的强大工具。 在Java传统的Future模式里,咱们都知道,一旦开始了一个异步操作,就只能等它结束…

整形数据在内存中的存储(C语言)

整形数据在内存中的存储 1.整形家族2.(原码、反码、补码)基础知识3.大小端3.1 什么是大小端3.2 为什么有大端和小端3.3 一道关于大小端字节序的面试题3.4 关于整形数据存储的题目(7题)3.4.13.4.23.4.33.4.43.4.53.4.63.4.7 4.总结 1.整形家族 signed可省可不省,一般…

尝试OmniverseFarm的最基础操作

目标 尝试OmniverseFarm的最基础操作。本地机器作为Queue和Agent,同时在本地提交任务。 主要参考了官方文档: Farm Queue — Omniverse Farm latest documentation Farm Agent — Omniverse Farm latest documentation Farm Examples — Omniverse Far…

蜗牛目标检测数据集VOC格式480张

蜗牛,一种缓慢而坚韧的软体动物,以其螺旋形的外壳和黏附力极强的黏液而为人所熟知。 蜗牛体型呈螺旋形,有一个硬壳保护其柔软的身体。壳的形状和纹理因种类而异,有的光滑如玻璃,有的则布满细纹。蜗牛的头部有两对触角…

构建安全可靠的系统:第十一章到第十五章

第三部分:实现系统 原文:Part III. Implementing Systems 译者:飞龙 协议:CC BY-NC-SA 4.0 一旦您分析并设计了您的系统,就该是实现计划的时候了。在某些情况下,实现可能意味着购买现成的解决方案。第十一章…

【AI】CycleGan对抗生成网络遥感影像生成地图效果测试

今天看到一个有趣的项目,CycleGan对抗生成网络把马生成成斑马,还有一个测试用例是用遥感影像生成平面地图的效果,效果如下图所示,我大学是遥感专业,看到遥感影像就触动了我的原神,于是原神启动,…

JavaFx踩坑

github:https://gitee.com/forgot940629/java-fx-demo helloworld 直接用idea即可创建 MANIFEST.MF 没有MANIFEST.MF 直接用idea生成的JavaFX没有MANIFEST.MF这个文件,需要配置 jar包中MANIFEST.MF不一致 target文件中的MANIFEST.MF有Main-Clas…

Beauty algorithm(七)瘦脸

瘦脸的实现采用局部平移法。 一、skills 前瞻 局部平移 二、目标区域定位 左脸: 关键点选择3、5点,基点30 rmax:计算两点5-3间的距离, |x-c|:图像任一点到固定基点c的距离 |m-c|:两固定点距离 右脸: 关键点选择

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

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

C++ 给父类带参构造函数的赋值

在类的使用中,默认的构造函数不带任何参数,但是也会因为需要而使用带参数的构造函数。 在带参的构造函数中,是如何继承的呢,这里我们通过使用基类,子类,孙类的两重继承来观察,如何给带参构造函数…

谓词-量词、主析取、主和取范式、前束范式、推理证明

这部分内容,主要需要掌握谓词推理,而前提是掌握将自然语言符号化为谓词、用量词来限定辖域,量词的消去、剩下就是推理过程。还需要掌握的是主析取、主和取范式和前束范式。 存在量词∃:至少有一个 全称量词∀:全都是…

5,sharding-jdbc入门-sharding-jdbc广播表

执行sql #在数据库 user_db、order_db_1、order_db_2中均要建表 CREATE TABLE t_dict (dict_id BIGINT (20) NOT NULL COMMENT 字典id,type VARCHAR (50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 字典类型,code VARCHAR (50) CHARACTER SET utf8 COLLAT…

跟着我学Python进阶篇:02.面向对象(上)

往期文章 跟着我学Python基础篇:01.初露端倪 跟着我学Python基础篇:02.数字与字符串编程 跟着我学Python基础篇:03.选择结构 跟着我学Python基础篇:04.循环 跟着我学Python基础篇:05.函数 跟着我学Python基础篇&#…

【C++】STL 算法 ⑨ ( 预定义函数对象示例 - 将容器元素从大到小排序 | sort 排序算法 | greater<T> 预定义函数对象 )

文章目录 一、预定义函数对象示例 - 将容器元素从大到小排序1、sort 排序算法2、greater<T> 预定义函数对象 二、代码示例 - 预定义函数对象1、代码示例2、执行结果 一、预定义函数对象示例 - 将容器元素从大到小排序 1、sort 排序算法 C 标准模板库 ( STL , Standard Te…

CSS响应式布局

目录 rem单位 媒体查询 rem 媒体查询 rem适配方案&#xff08;了解&#xff09; 响应式布局总结 rem单位 1.设置文字大小的单位 px&#xff1a;设置为固定的css像素 em&#xff1a;相对于父元素字体的大小 %&#xff1a;相对于父元素字体的大小 rem&#xff1a;相对于…

VScode 画图插件

开源免费的插件 随着http://draw.io开源vs code插件之后&#xff0c;它一跃成为最强大的流程图工具。 目前http://draw.io支持3种文件后缀&#xff0c;你只需要新建3种后缀之一的文件就可以在vs code中画流程图&#xff0c;它们分别是&#xff1a; *.drawio*.dio*.drawio.sv…

国家发改委:《电能质量管理办法(暂行)》2024年4月1日起施行

中华人民共和国国家发展和改革委员会令 第8号 《电能质量管理办法(暂行)》已经2023年12月26日第7次委务会议审议通过,现予公布,自2024 年4月1日起施行。 主任 郑栅洁 2023年12月27日 电能质量管理办法&#xff08;暂行&#xff09; 第一章 总则 第一条 为加强电能质量管理&…

红队打靶练习:TOMMY BOY: 1

目录 信息收集 1、arp 2、nmap 3、nikto 4、whatweb WEB robots.txt get flag1 get flag2 FTP登录 文件下载 更改代理 ffuf爆破 get flag3 crunch密码生成 wpscan 1、密码爆破 2、登录wordpress ssh登录 get flag4 信息收集 get flag5 信息收集 1、arp …

springBoot-Dev tools、Lombok、Spring initializr

1、lombok &#xff08;idea已经有快捷键实现&#xff09; 可以简化Bean的开发&#xff0c;使用注解的形式替代get、set方法&#xff0c;toString方法&#xff0c;全参数构造器&#xff0c;无参构造器&#xff0c;重写equals、hashCode方法。 没卵用&#xff0c;知道即可 1.1配…

112.Qt中的窗口类

我们在通过Qt向导窗口基于窗口的应用程序的项目过程中倒数第二步让我们选择跟随项目创建的第一个窗口的基类, 下拉菜单中有三个选项, 分别为: QMainWindow、QDialog、QWidget如下图&#xff1a; 常用的窗口类有3个 在创建Qt窗口的时候, 需要让自己的窗口类继承上述三个窗口类的…
最新文章