当前位置: 首页 > article >正文

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

目录

1. obtain llama weights

2. convert llama weights files into hf format

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的权重文件

安装依赖

pip install -U huggingface_hub

设置hugging face镜像

vim ~/.bashrc
export HF_ENDPOINT=https://hf-mirror.com
source ~/.bashrc

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

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)执行命令

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)代码内容

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


http://www.kler.cn/a/515403.html

相关文章:

  • Flutter项目和鸿蒙平台的通信
  • javaweb之HTML
  • FFmpeg常用命令
  • 微软Win10 RP 19045.5435(KB5050081)预览版发布!
  • 【mptcp】ubuntu18.04和MT7981搭建mptcp测试环境操作说明
  • AI模型提示词(prompt)优化-实战(一)
  • 初步搭建并使用Scrapy框架
  • 深入探讨:如何在 Debian 系统中实施有效的安全配置
  • 《2024年度网络安全漏洞威胁态势研究报告》
  • Flask之SQL复杂查询
  • 高级java每日一道面试题-2025年01月22日-JVM篇-乐观锁和悲观锁的理解及如何实现,有哪些实现方式?
  • 青少年编程与数学 02-007 PostgreSQL数据库应用 08课题、索引的操作
  • [MCAL]Mcu配置
  • 免费代理抓包工具SniffMaster(嗅探大师)抓取https
  • leetcode919. 完全二叉树插入器,队列只保存右子树为空的节点
  • 【STM32G4xx的CAN驱动记录】
  • TCP断开通信前的四次挥手(为啥不是三次?)
  • H3C-防火墙IPSec配置案例(主模式)
  • 监控与调试:性能优化的利器 — ShardingSphere
  • JavaScript系列(40)--虚拟DOM实现详解
  • FPGA中场战事
  • Mac下安装ADB环境的三种方式
  • 光谱相机在智能冰箱的应用原理与优势
  • 【嵌入式开发】stm32 st-link 烧录
  • 详细介绍:云原生技术细节(关键组成部分、优势和挑战、常用云原生工具)
  • Web 音视频(三)在浏览器中创建视频