llama-2-7b权重文件转hf格式及模型使用

目录

[1. obtain llama weights](#1. obtain llama weights)

[2. convert llama weights files into hf format](#2. convert llama weights files into hf format)

[3. use llama2 to generate text](#3. use llama2 to generate text)


1. obtain llama weights

(1)登录huggingface官网,搜索llama-2-7b

(2)填写申请表单,VPN挂在US,表单地区选择US,大约10min,请求通过,如下图

(3)点击用户头像来获取token

Because you just need read and download the resource,so token type of 'Read' is engough.

After you access your token,please save it!if not,you have to generate it again.

(4)下载llama-2-7b的权重文件

安装依赖

bash 复制代码
pip install -U huggingface_hub

设置hugging face镜像

bash 复制代码
vim ~/.bashrc
bash 复制代码
export HF_ENDPOINT=https://hf-mirror.com
bash 复制代码
source ~/.bashrc

使用刚刚获取的token下载llama-2-7b的权重文件

bash 复制代码
huggingface-cli download --token hf_*** --resume-download meta-llama/Llama-2-7b --local-dir ./llama-2-7b

下载成功后llama-2-7b权重目录如下图

2. convert llama weights files into hf format

Follow instructions provided by Huggingface to convert it into Huggingface format.

其实就两步:

(1)点击链接,下载转换脚本convert_llama_weights_to_hf.py

(2)执行命令

bash 复制代码
python ./convert_llama_weights_to_hf.py --input_dir /hy-tmp/Llama-2-7b --model_size 7B --output_dir /hy-tmp/llama-2-7b-hf

Maybe you need a long time to solve dependencies version conflicts, be patient!

转换成功后llama-2-7b-hf目录如下图

网上有很多地方会直接提供hf格式的llama模型文件,那我们便无需上述复杂的转换操作,只需下载到实例即可,很简单。

3. use llama2 to generate text

(1)代码内容

python 复制代码
import os
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from torch.cuda.amp import autocast

# 设置环境变量避免显存碎片化
os.environ['PYTORCH_CUDA_ALLOC_CONF'] = 'max_split_size_mb:128'

# 清理缓存
torch.cuda.empty_cache()

# 加载Llama-2-7b模型和分词器
model_name = "/hy-tmp/llama-2-7b-hf"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name,torch_dtype=torch.float16)

# 加载模型到GPU
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
model = model.to(device)

input_text = "How to learn skiing?"

# 输入文本的编码
input_ids = tokenizer.encode(input_text, return_tensors="pt").to(device)

# 设置生成文本参数
max_length = 256
temperature = 0.7 
top_k = 50 
top_p = 0.95 

# 使用混合精度加速进行推理
with autocast():
    output = model.generate(
        input_ids,
        max_length=max_length,
        num_return_sequences=1,
        temperature=temperature,
        top_k=top_k,
        top_p=top_p,
        do_sample=True  # 使用采样,避免贪婪生成
    )

# 解码生成的文本
generated_text = tokenizer.decode(output[0], skip_special_tokens=True)

print(generated_text)

(2)执行结果

相关推荐
手写码匠19 小时前
手写 AI 推理加速引擎:从零实现 KV Cache 与 Speculative Decoding
人工智能·深度学习·算法·aigc
海的辽阔19 小时前
如何在MAC下安装EcomGpt模型
macos·大模型·ecomgpt
文歌子20 小时前
TorchGeo 入门:用 PyTorch 处理遥感数据,从零搭建卫星图像分类模型
深度学习
通信小呆呆20 小时前
神经网络在通信与雷达领域:从信号处理到智能决策
人工智能·神经网络·信号处理
茗创科技20 小时前
Nat Hum Behav | 特征选择会导致基于脑影像的机器学习生物标志物产生迥异的神经生物学解释
python·深度学习·机器学习·matlab·脑网络
dr_yingli21 小时前
MedGemma皮肤肿瘤6分类LLM fineturn流程
人工智能·深度学习
放下华子我只抽RuiKe521 小时前
React 从入门到生产(一):JSX 与组件思维
前端·javascript·人工智能·pytorch·深度学习·react.js·前端框架
RSTJ_162521 小时前
PYTHON+AI LLM DAY FIFITY
人工智能·深度学习
qqqweiweiqq21 小时前
Jetson Orin nx 无法train pi0
人工智能·python·深度学习
koharu12321 小时前
PointNet 与 PointNet++ 详解
人工智能·深度学习·神经网络·三维点云