快速下载Huggingface的大语言模型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、Huggingface是什么?
  • 二、基于官方huggingface-cli下载(基础,断线风险)
    • 1.安装hf下载环境
    • 2.配置环境变量
    • 3.注册hf账号
    • 4.激活hf账号
    • 5.绑定gemma认证
    • 6.获取下载token
    • 7.开始下载
  • 三、基于hfd.sh下载(建议,不易断线)
    • 1.下载工具
    • 2.赋予权限
    • 3.设置环境变量
    • 4.开始下载
      • 1.Linux系统
      • 2.Windows系统
  • 总结


前言

最近在研究大语言模型,找到了一个不用科学上网就能下载Huggingface的模型的方法。当然,科学上网也支持。


一、Huggingface是什么?

研究大模型的人都知道Huggingface是什么,是一个开源的LLM收录网站,在这里你不仅能下载到各种开源的大模型,还能下载到各种开源的数据集训练自己的LLM。

为了方便书写以下简称Huggingface为hf

二、基于官方huggingface-cli下载(基础,断线风险)

以前hf下载模型是不需要登录的,现在需要注册账号了,有些特殊的模型还需要额外的认证,比如最近开源的google的gemma。今天就围绕着gemma来讲解怎么下载hf上的模型。

因为gemma需要额外认证,所以应该能覆盖大部分hf的情形。其它的模型也可能需要绑定额外认证,这里不专门论述。

1.安装hf下载环境

需要安装hf的下载工具,这里建议使用conda环境即可。

conda create -n hf python=3.9
conda activate hf
pip install -U huggingface_hub

2.配置环境变量

理论上MacOS是继承自Unix,应该和Linux是一样的环境变量。

Linux

export HF_ENDPOINT=https://hf-mirror.com

Windows

$env:HF_ENDPOINT = "https://hf-mirror.com"

3.注册hf账号

这一步是必须的,因为后面gemma需要token才能下载,其它模型可能也要token,我没有一个个试。

这一步可能需要科学上网
Huggingface官网

准备一个live或gmail的邮箱,QQ我没有试(有些外站不支持QQ邮箱),可以的话最好。

在这里插入图片描述
填邮箱密码,一步步来,我就不细讲了,会的都会,不会的…

在这里插入图片描述

4.激活hf账号

基于上面注册成功后,这个时候还不能使用账号。hf会给你注册邮箱发送一份验证邮件,你点击链接激活账号就可以正常使用了。

5.绑定gemma认证

主页找到Models->google/gemma-7b

在这里插入图片描述
点击进去会有个认证,点击认证并通过就行了。

6.获取下载token

主页->个人头像
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

7.开始下载

这里要使用上面的token,使用上面安装的工具。

huggingface-cli download --token <你刚才复制的token> --resume-download google/gemma-7b --local-dir gemma-7b

等待下载完成就行了。

这个模式也有个缺点,有时候会不稳定,无法实现无人看守。但也没关系,重试就行了,会自动断点续传!

三、基于hfd.sh下载(建议,不易断线)

上面的huggingface-cli有个缺点,有时候会断线,不能完全保证无人坚守。hfd.sh方法我测试没遇到过中断的情况。

1.下载工具

wget https://hf-mirror.com/hfd/hfd.sh

2.赋予权限

chmod a+x hfd.sh

3.设置环境变量

Linux
export HF_ENDPOINT=https://hf-mirror.com
Windows
$env:HF_ENDPOINT = "https://hf-mirror.com"

如果在Shell配置,每打开一个新Shell都要执行下环境变量,你可以配置在系统变量或用户变量里,优先建议用户环境变量,防止配置错误对系统造成破坏。具体方法:

Linux系统

添加用户环境变量(不需要sudo权限)
sed -i '$aexport HF_ENDPOINT=https://hf-mirror.com' ~/.bashrc
source ~/.bashrc添加系统环境变量(需要sudo权限,`谨慎选择`sed -i '$aexport HF_ENDPOINT=https://hf-mirror.com' /etc/profile
source /etc/profile

Windows系统
我的电脑->右键属性->高级系统设置->环境变量,上面是用户变量,下面是系统变量,依然是建议添加用户变量。左边是变量名,右边是变量值。

在这里插入图片描述
在这里插入图片描述

注意:Windows系统添加完环境变量必须打开一个新的Shell才能读取新的变量!

4.开始下载

1.Linux系统

依然是先注册账户,拿到token。这里以chatglm3-6b为模板介绍下载方法:

./hfd.sh THUDM/chatglm3-6b --hf_username <你的huggingface账户名> --hf_token <你的token> --tool aria2c -x 4

--tool:可以选wgetaria2c两种,建议选aria2c
-x:指定的线程数,依据自身带宽和机器性能决策,我这里限带宽,测不出来实际差别

wget下载工具是Linux系统自带的,aria2c一般都不会预装。

安装aria2c

sudo apt update
sudo apt install aria2

2.Windows系统

hfd.sh是基于Linux系统编写的脚本,Windows系统无法直接运行,这里有个替代方法可以在Windows上运行,那就是安装Cygwin,使用Cygwin安装aria2wget两个工具。

在这里插入图片描述
这里不能再用Windows的环境变量了,Cygwin是在Windows上模拟的Linux环境,Windows的环境变量在Cygwin不生效。还是需要导出Linux的环境变量:

导出环境变量
export HF_ENDPOINT=https://hf-mirror.com开始下载
./hfd.sh THUDM/chatglm3-6b --hf_username <你的huggingface账户名> --hf_token <你的token> --tool aria2c -x 4

--tool:可以选wgetaria2c两种,建议选aria2c
-x:指定的线程数,依据自身带宽和机器性能决策,我这里限带宽,测不出来实际差别

aria2和wget都不是Cygwin预装的,需要手动添加!

这种方法适合那种需要在Windows上开发,又不想使用huggingface-cli的用户(断线困扰)。如果你是C或C++开发者,那么你的电脑应该是有Cygwin的,如果没有的话,这个方法对你来说就有点折腾了。依据个人需要来选择吧。


总结

1、总体来说还是方便的,不科学上网也能下载。
2、其它的模型复刻这种模式就行了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/500989.html

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

相关文章

YOLOv8-TensorRT on Jetson

YOLOv8-TensorRT Jetson 项目地址&#xff1a;https://github.com/triple-Mu/YOLOv8-TensorRT/blob/main/docs/Jetson.md 文档地址&#xff1a;https://github.com/triple-Mu/YOLOv8-TensorRT/blob/main/docs/Jetson.md 注意 engine 文件不跨平台&#xff0c;只能在对应的平台…

【ArcPy】简化ArcGISPro默认Python环境体量

参考文献 安装 ArcPy—ArcGIS Pro | 文档

深入解析Golang的encoding/ascii85库:从基础到实战

深入解析Golang的encoding/ascii85库&#xff1a;从基础到实战 引言基础知识什么是ASCII85编码&#xff1f;ASCII85编码的工作原理ASCII85编码的优点ASCII85编码的缺点 使用Golang的encoding/ascii85库引入encoding/ascii85包ASCII85编码ASCII85解码实战示例小结 进阶技巧和最佳…

如何使用Potplayer远程访问本地群晖NAS搭建的WebDAV中的本地资源

文章目录 本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是&#xff1a;1 使用环境要求&#xff1a;2 配置webdav3 测试局域网使用potplayer访问webdav3 内网穿透&#xff0c;映射至公网4 使用固定地址在potplayer访问webdav ​ 国内流媒体平台的内…

EAS web 界面加载后,隐藏按钮

效果&#xff1a;隐藏下列按钮&#xff1a; 实现方法&#xff1a; 1、创建数据装载事件&#xff1a; 2、隐藏按钮&#xff1a; afterOnloadHideEntryTBBBBBB:function(e){console.log("----------失败222&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&a…

git忽略某些文件(夹)更改说明

概述 在项目中&#xff0c;常有需要忽略的文件、文件夹提交到代码仓库中&#xff0c;在此做个笔录。 一、在项目根目录内新建文本文件&#xff0c;并重命名为.gitignore&#xff0c;该文件语法如下 # 以#开始的行&#xff0c;被视为注释. # 忽略掉所有文件名是 a.txt的文件.…

spring cloud 入门

​ 学习目标&#xff1a; 学习spring cloud项目快速搭建方法&#xff0c;学习nacos注册中心使用&#xff0c;实现两个服务间的调用 学习内容&#xff1a; 一、Spring Cloud介绍 Spring 以 Bean&#xff08;对象&#xff09; 为中心&#xff0c;提供 IOC、AOP 等功能。Sprin…

【PyTorch][chapter 18][李宏毅深度学习]【无监督学习][ VAE]

前言: VAE——Variational Auto-Encoder&#xff0c;变分自编码器&#xff0c;是由 Kingma 等人于 2014 年提出的基于变分贝叶斯&#xff08;Variational Bayes&#xff0c;VB&#xff09;推断的生成式网络结构。与传统的自编码器通过数值的方式描述潜在空间不同&#xff0c;它…

Autosar-诊断配置详解-2

4创建、配置DcM模块 4.1导入DBC文件 按下图的操作步骤导入DBC文件: 导入后可以看到工具生成了3条DcM的Pdu,如下图: 4.2生成通信模块 点击AutoConfig让工具根据Dbc导入的信息生成通信相关的模块: 因为DBC文件中有Dcm的Pdu,因此工具还自动生成了Dcm模块,只是该模块是空…

kafka架构详解

文章目录 概述kafaka架构Kafka的设计时什么样的Zookeeper 在 Kafka 中的作用 概述 Apache Kafka 是分布式发布 - 订阅消息系统&#xff0c;在 kafka 官网上对 kafka 的定义&#xff1a;一个分布式发布 - 订阅消息传递系统。 Kafka 最初由 LinkedIn 公司开发&#xff0c;Linked…

el-input组件当数据为空时, 边框变红,并提示错误信息

1&#xff0c;样式 初始&#xff1a; 当不输入口令&#xff0c; 点击确定时&#xff1a; 2, 思路 主要是使用动态类的方式。 先设置输入框变红的样式以及提示文字的样式class 对于样式class 用变量来控制是否奏效。 3&#xff0c; 代码实现 //html&#xff1a; <div cl…

hippy 调试demo运行联调-mac环境准备篇

适用对于终端编译环境不熟悉的人看&#xff0c;仅mac端 hippy 调试文档官网地址 前提&#xff1a;请使用node16 联调预览效果图&#xff1a; 编译iOS Demo环境准备 未跑通&#xff0c;待补充 编译Android Demo环境准备 1、正常安装Android Studio 2、下载Android NDK&a…