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)执行结果

相关推荐
哥布林学者12 小时前
吴恩达深度学习课程一:神经网络和深度学习 第三周:浅层神经网络(三)
深度学习·ai
MIXLLRED12 小时前
YOLO学习——训练进阶和预测评价指标
深度学习·学习·yolo
Scc_hy13 小时前
强化学习_Paper_2000_Eligibility Traces for Off-Policy Policy Evaluation
人工智能·深度学习·算法·强化学习·rl
来酱何人13 小时前
低资源NLP数据处理:少样本/零样本场景下数据增强与迁移学习结合方案
人工智能·深度学习·分类·nlp·bert
王彦臻13 小时前
YOLOv3 技术总结
深度学习·yolo·目标跟踪
Chunyyyen13 小时前
【第十八周】自然语言处理的学习笔记03
笔记·学习·自然语言处理
jerryinwuhan13 小时前
对图片进行解释的大语言模型
人工智能·语言模型·自然语言处理
CoovallyAIHub13 小时前
Mamba-3震撼登场!Transformer最强挑战者再进化,已进入ICLR 2026盲审
深度学习·算法·计算机视觉
JY1906410614 小时前
从点云到模型,徕卡RTC360如何搞定铝单板测量?
深度学习
山顶夕景19 小时前
【RL】DAPO的后续:VAPO算法
大模型·强化学习·dapo·vapo