【candle】(2):使用hf-mirror镜像下载TheBloke/Llama-2-7B-GGML的q4_0.bin文件,并设置HF_HOME,example模块可以识别下载的模型

本文主要是介绍【candle】(2):使用hf-mirror镜像下载TheBloke/Llama-2-7B-GGML的q4_0.bin文件,并设置HF_HOME,example模块可以识别下载的模型,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1,视频演示地址

https://www.bilibili.com/video/BV1Dc41117wT/?vd_source=4b290247452adda4e56d84b659b0c8a2

【candle】(2):使用hf-mirror镜像下载TheBloke/Llama-2-7B-GGML的q4

2,安装rust到其他目录

默认的安装模式:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

https://forge.rust-lang.org/infra/other-installation-methods.html

https://static.rust-lang.org/dist/rust-1.74.1-x86_64-unknown-linux-gnu.tar.gz

wget https://static.rust-lang.org/dist/rust-1.74.1-x86_64-unknown-linux-gnu.tar.gztar -zxf rust-1.74.1-x86_64-unknown-linux-gnu.tar.gz
cd rust-1.74.1-x86_64-unknown-linux-gnu/./install.sh  --prefix=/root/autodl-tmp/rust --without=rust-docs

这样就可以将 rust 安装到其他目录了:
同时不要安装 rust-docs 有 700 多MB ,实在是没有用。

./install.sh --list-components# Available components* rustc
* rust-std-x86_64-unknown-linux-gnu
* rust-docs
* rust-docs-json-preview
* rust-demangler-preview
* cargo
* rustfmt-preview
* rls-preview
* rust-analyzer-preview
* llvm-tools-preview
* clippy-preview
* rust-analysis-x86_64-unknown-linux-gnu

然后执行安装即可:

./install.sh  --prefix=/root/autodl-tmp/rust --without=rust-docs# 安装完成,设置好 PATH 路径:export PATH=/root/autodl-tmp/rust/bin:$PATH
# 执行 rustc 就可以生效了:

在这里插入图片描述
可以执行 rust 命令了:
在这里插入图片描述

3,下载 candle 项目

#设置学术加速,不再区分不同地区# 设置hf 路径:
export HF_HOME=/root/autodl-tmp/hf_cache
# 下载项目
git clone https://github.com/huggingface/candle.gitcd candle
# 执行一个简单的demo
cargo run --example quantized

然后就是漫长的下载库:

  Downloaded ttf-parser v0.15.2Downloaded zerofrom v0.1.3Downloaded zstd-safe v6.0.6Downloaded anstream v0.6.5Downloaded approx v0.5.1Downloaded bitflags v1.3.2Downloaded bytemuck v1.14.0Downloaded bytes v1.5.0Downloaded wav v1.0.0
Downloading 81 crates, remaining bytes: 128.3 KB 

4,下载文件方法 huggingface_hub 使用镜像下载

pip3 install huggingface_hub

然后使用模型下载脚本:

download_model.py :

# 设置镜像
# export HF_ENDPOINT="https://hf-mirror.com"import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'from huggingface_hub import snapshot_download# 下载第一个模型
snapshot_download(repo_id="TheBloke/Llama-2-7B-GGML", allow_patterns=["llama-2-7b.ggmlv3.q4_0.bin"])# 下载第二个模型
snapshot_download(repo_id="hf-internal-testing/llama-tokenizer")
# 设置hf home 目录,防止下载到其他目录,磁盘满了。
export HF_HOME=/root/autodl-tmp/hf_cache
# 执行下载方法:
python3 download_model.py

下载速度还可以:

Fetching 1 files:   0%|                                                                                      | 0/1 [00:00<?, ?it/s]
llama-2-7b.ggmlv3.q4_0.bin:  32%|███████████████████▍                                         | 1.21G/3.79G [04:54<10:59, 3.92MB/s]

还可以使用 https://aliendao.cn/#/ 进行加速下载。

5,然后就可以运行模型了

cargo run --example quantized Compiling candle-examples v0.3.1 (/root/autodl-tmp/candle/candle-examples)Finished dev [unoptimized + debuginfo] target(s) in 7.87sRunning `target/debug/examples/quantized`
avx: true, neon: false, simd128: false, f16c: true
temp: 0.80 repeat-penalty: 1.10 repeat-last-n: 64
loaded 291 tensors (3.79GB) in 9.32s
params: HParams { n_vocab: 32000, n_embd: 4096, n_mult: 256, n_head: 32, n_layer: 32, n_rot: 128, ftype: 2 }
model built
My favorite theorem is 0 (
zero). It's just a random

在这里插入图片描述

3,运行yi-6b

cargo run --example yi --features cuda 
# 设置镜像
# export HF_ENDPOINT="https://hf-mirror.com"
# export HF_HOME=/root/autodl-tmp/hf_cacheimport os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
os.environ['HF_HOME'] = '/root/autodl-tmp/hf_cache'from huggingface_hub import snapshot_download
snapshot_download(repo_id="01-ai/Yi-6B")
Yi.svg: 980B [00:00, 1.76MB/s]                                                                      | 0/16 [00:00<?, ?it/s]
LICENSE: 17.4kB [00:00, 14.3MB/s]
config.json: 605B [00:00, 1.20MB/s]
generation_config.json: 132B [00:00, 43.9kB/s]
.gitattributes: 1.52kB [00:00, 1.27MB/s]/s]
md5: 184B [00:00, 377kB/s]██▎                                                               | 1/16 [00:00<00:11,  1.34it/s]
README.md: 24.8kB [00:00, 262kB/s]
model.safetensors.index.json: 23.9kB [00:00, 33.6MB/s]                                      | 3/16 [00:00<00:03,  3.96it/s]
pytorch_model.bin.index.json: 23.9kB [00:00, 34.6MB/s]
tokenizer_config.json: 320B [00:00, 453kB/s]?B/s]
tokenizer.json: 3.56MB [00:00, 6.32MB/s]
tokenizer.model: 100%|████████████████████████████████████████████████████████████████| 1.03M/1.03M [00:00<00:00, 1.16MB/s]
pytorch_model-00001-of-00002.bin:   2%|| 168M/9.94G [00:10<09:14, 17.6MB/s]
pytorch_model-00001-of-00002.bin:   4%|█▉                                              | 409M/9.94G [00:25<09:49, 16.2MB/s]
model-00001-of-00002.safetensors:   4%|██                                              | 430M/9.94G [00:26<09:15, 17.1MB/s]
model-00002-of-00002.safetensors:  20%|█████████▍                                      | 430M/2.18G [00:25<01:37, 17.9MB/s]
pytorch_model-00002-of-00002.bin:  19%|█████████▏                                      | 419M/2.18G [00:25<01:40, 17.5MB/s]

TheBloke/Yi-34B-Chat-AWQ · Hugging Face
还有34b模型,但是没有测试。

4,总结

使用candle 可以运行大模型了,可以运行 yi-6b的模型,使用镜像下载成功。
candle目前支持的模型还不多,但是未来会慢慢流行起来的。
提前做好学习准备。

这篇关于【candle】(2):使用hf-mirror镜像下载TheBloke/Llama-2-7B-GGML的q4_0.bin文件,并设置HF_HOME,example模块可以识别下载的模型的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/535087

相关文章

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Java中的抽象类与abstract 关键字使用详解

《Java中的抽象类与abstract关键字使用详解》:本文主要介绍Java中的抽象类与abstract关键字使用详解,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、抽象类的概念二、使用 abstract2.1 修饰类 => 抽象类2.2 修饰方法 => 抽象方法,没有