【Meta-Al】llama GPT 测试

2023-4-28 更新:

github有兄弟合并+量化了7B、13B的权重,Chinese-Alpaca项目部署体验更简单:

GitHub - ymcui/Chinese-LLaMA-Alpaca: 中文LLaMA&Alpaca大语言模型+本地CPU/GPU部署 (Chinese LLaMA & Alpaca LLMs)

 


github地址:

GitHub - facebookresearch/llama: Inference code for LLaMA models

在 LLaMA 发布三天后,初创公司 Nebuly AI 开源了 RLHF 版 LLaMA(ChatLLaMA)的训练方法。它的训练过程类似 ChatGPT,该项目允许基于预训练的 LLaMA 模型构建 ChatGPT 形式的服务。目前知乎上已经有兄弟中文训练起来了,有按照 bert4torch 方式能比较方便快捷的进行尝试。

首先进行安装:

cd llama

pip install -r requirements.txt

pip install -e .

 然后到github地址上找到申请入口,填写邮箱之后等待邮件:

下载模型,执行 download.sh ,修改需要下载的模型尺寸 MODEL_SIZE,只保留7B,同时替换下载链接 PRESIGNED_URL:
PRESIGNED_URL=""             # 需要从邮箱中查找,
MODEL_SIZE="7B"  # 只下载最小
TARGET_FOLDER="./"             # 下载目录

查看下载脚本原来实际上也就是下载的下面几个文件:

wget ${PRESIGNED_URL/'*'/"tokenizer.model"} -O ${TARGET_FOLDER}"/tokenizer.model"

wget ${PRESIGNED_URL/'*'/"tokenizer_checklist.chk"} -O ${TARGET_FOLDER}"/tokenizer_checklist.chk"

wget ${PRESIGNED_URL/'*'/"${i}/consolidated.${s}.pth"} -O ${TARGET_FOLDER}"/${i}/consolidated.${s}.pth"

wget ${PRESIGNED_URL/'*'/"${i}/params.json"} -O ${TARGET_FOLDER}"/${i}/params.json"

wget ${PRESIGNED_URL/'*'/"${i}/checklist.chk"} -O ${TARGET_FOLDER}"/${i}/checklist.chk"

然后下载模型:

download.sh

如果下载失败可以参考国内教程也就是通过pyllama进行下载:

如何评价 LLaMA 模型泄露? - 知乎

ChatGPT平替模型:LLaMA(附下载地址,平民玩家和伸手党的福音!) - 知乎

推理,替换两个文件路径即可:

torchrun --nproc_per_node 1 --nnodes 1 example.py --ckpt_dir ./weight/7B --tokenizer_path ./weight/tokenizer.model

官方源码推理使用的 torchrun 针对并行推理。下面演示使用 bert4torch 对 llama-7b 进行推理(需要权重model转为bin),首先下载最新版bert4torch:

pip install git+https://www.github.com/Tongjilibo/bert4torch.git

教程如下:

#! -*- coding: utf-8 -*-
# 基本测试:llama的7b模型的测试, fp32精度的单卡占用约27g,fp16的显存占用约14g
# 使用前需要安装最新版本的bert4torch并进行权重转换 https://github.com/Tongjilibo/bert4torch/blob/master/examples/convert_script/convert_llama_facebook.py# 0. Install lastest bert4torch: `pip install git+https://www.github.com/Tongjilibo/bert4torch.git` or git clone
# 1. Download weights:[Github](https://github.com/facebookresearch/llama) | [huggingface](https://huggingface.co/decapoda-research/llama-7b-hf) | [torrent](https://pan.baidu.com/s/1yBaYZK5LHIbJyCCbtFLW3A?pwd=phhd),本人实现是基于第三种
# 2. Convert weights:https://github.com/Tongjilibo/bert4torch/blob/master/examples/convert_script/convert_llama_facebook.py
# 3. Inference script:https://github.com/Tongjilibo/bert4torch/blob/master/examples/basic/basic_language_model_llama.py
# 4. VRAM request in single gpu:fp32 27G, fp16 14gimport torch
from bert4torch.models import build_transformer_model
from bert4torch.tokenizers import SpTokenizer
from bert4torch.snippets import AutoRegressiveDecoderconfig_path = 'F:/Projects/pretrain_ckpt/llama/7B/bert4torch_config.json'
checkpoint_path = 'F:/Projects/pretrain_ckpt/llama/7B/bert4torch_pytorch_model.bin'
spm_path = 'F:/Projects/pretrain_ckpt/llama/tokenizer.model'
device = 'cuda' if torch.cuda.is_available() else 'cpu'tokenizer = SpTokenizer(spm_path, token_start='<s>', token_end=None, keep_accents=True)model = build_transformer_model(config_path=config_path, checkpoint_path=checkpoint_path, model='llama').half().to(device)  # 建立模型,加载权重class ArticleCompletion(AutoRegressiveDecoder):@AutoRegressiveDecoder.wraps(default_rtype='logits')def predict(self, inputs, output_ids, states):token_ids = torch.cat([inputs[0], output_ids], 1)logits = model.predict([token_ids])return logits[:, -1, :]def generate(self, text, n=1, topp=0.95):token_ids, _ = tokenizer.encode(text)results = self.random_sample([token_ids], n, topp=topp)  # 基于随机采样return [text + tokenizer.decode(ids.cpu().numpy()) for ids in results]article_completion = ArticleCompletion(start_id=None,end_id=2,  # </s>标记maxlen=256,minlen=20,device=device
)for text in [u'I believe the meaning of life is ']:print(article_completion.generate(text))

权重转换脚本:

bert4torch/convert_llama_facebook.py at master · Tongjilibo/bert4torch · GitHub

转换脚本底部有 bert4torch_config.json 文件配置:

{

   "hidden_size": 4096,

    "intermediate_size": 11008,

   "multiple_of": 256,

   "num_attention_heads": 32,

   "num_hidden_layers": 32,

   "norm_eps": 1e-06,

   "hidden_act": "silu",

   "vocab_size": 32000,

   "segment_vocab_size": 0

}

推理脚本:

bert4torch/basic_language_model_llama.py at master · Tongjilibo/bert4torch · GitHub

转换得到的bin权重:

然后推理,按照注释,修改文件路径:

config_path = 'F:/Projects/pretrain_ckpt/llama/7B/bert4torch_config.json'

checkpoint_path = 'F:/Projects/pretrain_ckpt/llama/7B/bert4torch_pytorch_model.bin'

spm_path = 'F:/Projects/pretrain_ckpt/llama/tokenizer.model'

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

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

相关文章

华为HCIP-DATACOM题库解析

111.RSTP协议中提供了多种保护功能&#xff0c;例如当边缘端口配置为保护状态时&#xff0c;边缘端口接收到BPDU报文后的处理方法是 A:根据要求转发BPDU报文 B:BPDU报文后获取相关信息 C:关闭该端口 D:直接丢弃BPDU报文 C 解析&#xff1a;当边缘端口被设置为保护状态后&am…

华为机考,华为笔试,软件类,2020年8月19日题目,超详细解答。

这次的题目根据身边同学反映普遍较难&#xff0c;仔细看了一下题目其实也并不难&#xff0c;因为都没有涉及比较复杂的算法&#xff0c;但是这次的题目都比较繁琐&#xff0c;写起来比较费时间。 题目一 题目描述&#xff1a; 已知有一堆人排成M行N列&#xff0c;&#xff0…

华为HCIP-DATACOM题库解析(821)61-79

61.当两台优先级相同的设备同时竞争Master角色时&#xff0c;则IP地址较小的接口所在的设备应当被选为Master设备 错误 解析&#xff1a;当两台优先级相同的设备同时竞争Master角色时&#xff0c;则IP地址较大的接口所在的设备应当被选为Master设备 62.VRRP的接口IP地址和虚拟…

华为HCIP-DATACOM题库解析21-30(821)

1、下面那些策略或工具不能够应用于ospf A:access-list B:prefix-list C:route-policy D:as-path filter 解析&#xff1a;as-path filter命令用来创建as路径过滤器&#xff0c;ospf属于igp协议&#xff0c;不涉及到as号。 2、某企业大楼有大量员工&#xff0c;通常都在上…

华为数通HCIA考试高分指导(含全套题库)

华为认证考试600分就能上岸拿证&#xff0c;考试并不难。今天将从6大重要考点考题分析&#xff0c;帮助大家高峰通过HCIA考试。 想要HCIA考试通过并获得高分&#xff0c;必须掌握以下6大板块&#xff1a; 1、选举规则汇总&#xff08;易混淆考点&#xff09; 2、三大设备详解&a…

2021亚太杯数学建模竞赛

亚太杯数学建模竞赛 数据类型题涉及的知识点及基本模型讲解 本人曾参加亚太杯四次&#xff0c;三次都是 First Prize&#xff0c;其中有一次因中途电脑烧坏了就暂停编写建模论文因而拿了Second Prize&#xff1b;我们立足当前&#xff0c;着眼长远&#xff0c;按照社会价值导…

2019年华中杯数学建模B题数据处理代码

在5月一号晚上&#xff0c;我参加了华中杯数学建模。对于数据处理&#xff0c;我用到了下面代码&#xff0c;希望能帮助到大家。 myDivision.py文件&#xff0c;用于对附件一的数据进行划分&#xff1a; import pandas as pd #分析excel表格 import matplotlib.pyplot as plt…

2021 年第十一届 MathorCup 高校数学建模挑战赛A题分析

2021 年第十一届 MathorCup 高校数学建模挑战赛A题分析 题目&#xff1a;自动驾驶中的车辆调头问题问题分析前言综述问题一分析问题二分析问题三分析问题四分析问题五分析问题六分析 题目&#xff1a;自动驾驶中的车辆调头问题 自动驾驶是近年人工智能应用的热门研究领域之一&…

【数学建模】2018年数学建模国赛C题解答 基于RFMT 模型的百货商场会员画像描绘

文章目录 问题一问题二求出RFM数据评分K- Means聚类 问题三问题四问题五参考文献 问题一 利用该大型百货商场提供的附件一中的会员信息以及附件三中的会员消费明细&#xff0c;完善该商场的会员画像。本文从购买力、购买时间偏好两个维度分析会员的消费特征。以会员消费总金额…

2022年华中杯数学建模挑战赛B题量化投资问题求解全过程文档及程序

2022年华中杯数学建模 B题 量化投资问题 原题再现&#xff1a; 量化投资是指通过数量化方式及计算机程序化发出买卖指令&#xff0c;以获取稳定收益为目的的交易方式。投资者通过数据分析探索市场运行规律&#xff0c;并预测市场走势&#xff0c;从而进行决策交易。随着大数据…

【数模国赛参赛情况浅析】

今天给大家带来近几年的国赛参赛以及国奖评阅等情况。由于19年开始国赛才新增C题&#xff08;据说是鼓励数学学得较浅的文商科等专业学生参加&#xff09;&#xff0c;因此我们从19年开始对19-21年的参赛数据进行浅析。 •参赛规模 19-20&#xff1a; 21&#xff1a; 2021数模…

2022年第三届MathorCup高校数学建模挑战赛——大数据竞赛

&#xff08;1&#xff09;2022年11月1日-12月20日 报名阶段 &#xff08;2&#xff09;2022年12月20日18:00至2023年1月19日20:00&#xff0c;初赛阶段 &#xff08;3&#xff09;2023年3月6日18:00-2023年3月13日20:00&#xff0c;复赛阶段 关注我&#xff0c;后续分享数学…

2022MathorCup高校数模挑战赛D题思路

D 题 移动通信网络站址规划和区域聚类问题 目录背景阐述问题 1描述解题思路 问题 2描述解题思路 问题 3描述解题思路 结语 今年D题应该选择的人比较多&#xff0c;是典型的目标优化类题目。这道题难度简单一点&#xff0c;估计很多同学都会选这道题&#xff0c;当然拿奖也会难一…

数模比赛经验分享(美赛分享)

目录 队员寻找 队员任务分配 赛前准备 知识准备 模拟赛 相互监督 每个阶段的主要任务 学习阶段 论文研读阶段 实践阶段 改进阶段 比赛注意事项 有用的资源分享 数模学习 数据网站 画图工具 祝愿 队员寻找 对于队员的要求&#xff0c;我认为只要一个特点就行…

2020年MathorCup高校数学建模挑战赛—大数据竞赛A题移动通信基站流量预测求解全过程文档及程序

2020年MathorCup高校数学建模挑战赛—大数据竞赛 A题 移动通信基站流量预测 原题再现&#xff1a; 随着移动通信技术的发展&#xff0c;4G、5G 给人们带来了极大便利。移动互联网的飞速发展&#xff0c;使得移动流量呈现爆炸式增长&#xff0c;从而基站的流量负荷问题变得越来…

数模美赛分享(时间安排+获奖技巧+比赛思路)

数模美赛分享&#xff08;时间安排获奖技巧比赛思路数模分工&#xff09; 本贴所有内容全部干货&#xff0c;时间有限&#xff0c;先简单分享一下&#xff0c;深入学习&#xff0c;请见附录b站视频 一、 时间安排 二、获奖技巧 三、 比赛思路 四、 数模分工 三个人分工如下&…

2023年MathorCup数模A题赛题

A 题 量子计算机在信用评分卡组合优化中的应用 在银行信用卡或相关的贷款等业务中&#xff0c;对客户授信之前&#xff0c;需要先通过 各种审核规则对客户的信用等级进行评定&#xff0c;通过评定后的客户才能获得信 用或贷款资格。规则审核过程实际是经过一重或者多重组合规则…

2022 年 MathorCup 高校数学建模挑战赛——大数据竞赛(北京移动用户体验影响因素研究全套代码)

赛道 B&#xff1a;北京移动用户体验影响因素研究 移动通信技术飞速发展&#xff0c;给人们带来了极大便利&#xff0c;人们也越来越离不开移动通信技术带来的各种便捷。随着网络不断的建设&#xff0c;网络覆盖越来越完善。各个移动运营商&#xff0c;越来越重视客户的网络使…

2023年MathorCup数模C题赛题

C 题 电商物流网络包裹应急调运与结构优化问题 问题C&#xff0c;题目的设置就是本科生专科生选题&#xff0c;因此在题目难度上应该会和AB&#xff0c;有明显的区别。整个问题的设置还是很符合妈杯的风格设置&#xff0c;下面我们简要的看一下各个题目设置。 问题 1&#xff1…

【数模研赛】“华为杯”第十九届中国研究生数学建模竞赛C题分享——(四)问题二模型建立

写在前面&#xff1a; 第十九届数模研赛在22年10月6-10日开展&#xff0c;我和我的两名队友肝了5天&#xff0c;整出来一篇论文。因为不确定自己做的好不好&#xff0c;所以一直没写博客。前两天结果出来了&#xff0c;我们队拿了国二&#xff0c;在C题里排名88/1134&#xff0…