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

IT里的交易员 2024-06-12 17:31:02 阅读 53

文章目录

前言一、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,local_dir): # 使用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" 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" # source_url = "https://huggingface.co/BlinkDL/rwkv-5-world/resolve/main/RWKV-5-World-1B5-v2-20231025-ctx4096.pth" download_model(source_url,local_dir = r'D:\ProgramData\RWKV\models')

在这里插入图片描述

中断后再运行,仍可续传。

在这里插入图片描述

可以看到,速度那是杠杠滴!


总结

通过镜像和程序化下载,可以彻底解决大模型下载,再配合大模型框架就可以自由玩耍了。

【AI之路】使用Jan.ai在本地部署大模型开启AI对话(含通过huggingface下载大模型,实现大模型自由)

后记

如果要下载整个仓库,可使用snapshot_download下载整个仓库快照。需要的小伙伴可以移步:

【AI之路】使用huggingface_hub优雅解决huggingface大模型下载问题

添加以下代码:注意os.environ得在import huggingface库相关语句之前执行。

os.environ[“HF_ENDPOINT”] = “https://hf-mirror.com”



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。