Llama2的快讯
2023 年7月19日,一条重磅消息推出,免费商用版本的开源大模型——Llama2正式发布。或许有很多萌新还不了解Llama2,希望本篇文章能帮助大家初步了解Llama2(^▽^)此外,文章中还将提供体验平台和教程,方便大家自行尝试使用,记得看到最后哟!
Github下载地址:github.com/facebookres…
相关的Paper:LLaMA: Open and Efficient Foundation Language Models
arxiv.org/abs/2307.09…Llama 2: Open Foundation and Fine-Tuned Chat Modelsarxiv.org/abs/2307.09…
英文博客:Llama 2 is here - get it on Hugging Face
一、什么是Llama2?
Llama 2大语言模型是经过预训练和微调的生成式文本模型,可免费用于研究和商业用途。对于其性能特征,伯克利大学的人工智能专业博士Nathan Lambert在其博客中写道,“相较于上一代,Llama2的训练数据提升了40%,包含了70亿、130亿和700亿参数 3个版本,接受了 2 万亿个 tokens 的训练,其上下文长度是 Llama 的两倍,其微调模型也接受了超过 100 万个人类注释的训练。”猎豹移动创始人傅盛表示,700亿参数版本的回答质量已经与GPT3.5的水平相当。由此可见,Llama2在实用性和安全性上均有所提升。Llama家族如下图所示:
Llama家族
二、Llama2有什么价值?
(一)从模型使用角度——让训练大模型跨越了算力鸿沟
大模型训练有四大步骤——预训练(pre-training)、 监督微调(supervised fine tuning)、奖励建模(reward modeling)和强化学习(reinforcement learning)。其中预训练堪称鸿沟,算力时长占四个步骤的99%以上。而Llama2的开源让训练大模型的企业可直接基于Llama2进行微调和优化,从而节约了高昂的算力成本。
(二)从企业经营角度——降低了创造大模型应用的企业的成本
Llama2的开源,可让科技企业以较低的成本创造系统型超级应用,无需像大模型研发一样,导致投入-产出失衡。而且较低的成本,也会让更多企业加入创造大模型应用的领域,加速创造商业上的核心价值,发挥AI行业对于现代社会发展的重要作用。
(三)从行业发展角度——推动了开源社区和从业者技术水平的发展
Llama2的diff是实战型技术学习资料,尤其是在sft和rlhf上。技术人员总是希望从失败经验和找diff中学习, diff可以让技术人员验证差异,并进行实践验证;失败的经验可以让技术人员了解每一步骤的上分细节和上分权重,加速未来成功的次数。
Llama2的免费开源将成为开源大模型的新起点。评价一个开源社区的大模型水平需要看它的生态。而未来,更多的AI行业企业和从业者将会因为Llama2的免费开源,而尝试应用大模型,从而提升大模型的使用效果。在众多人的实践检验下,金子总会绽放其光芒。
三、云平台计算环境安装
本地部署实在是高消费劝退(70亿以上的参数量,需要多卡并行推理)。如果你本地没有资源,又想体验LLaMA2的话可使用线上平台如揽睿星舟具体见这个吧:揽睿星舟-一站式AI服务平台和AI应
step1 : 选择环境
Jupter进入环境
四、系统版本
查看系统版本:Ubuntu 11.3.0-1ubuntu1~22.04
系统版本
查看显卡版本:GeForce系列卡
显卡版本
查看python版本:3.10.6
查看python版本
五、Git安装Llama
#安装包
sudo git clone https://github.com/facebookresearch/llama.git
cd llama
sudo pip install -e .
#一会儿就安装好了
#切换root权限:sudo su
六、Llama测试
测试对话能力:
from typing import Optional
import fire
from llama import Llama
def main(
ckpt_dir="/home/user/imported_models/llama-2-7b-chat/Llama-2-7b-chat",
tokenizer_path="/home/user/imported_models/llama-2-7b-chat/Llama-2-7b-chat/tokenizer.model",
temperature: float = 0.6,
top_p: float = 0.9,
max_seq_len: int = 512,
max_batch_size: int = 4,
max_gen_len: Optional[int] = None,
):
generator = Llama.build(
ckpt_dir=ckpt_dir,
tokenizer_path=tokenizer_path,
max_seq_len=max_seq_len,
max_batch_size=max_batch_size,
)
dialogs = [
[{"role": "user", "content": "介绍一下北京?"}],
[
{"role": "user", "content": "计算机专业怎么样?"},
]
]
results = generator.chat_completion(
dialogs, # type: ignore
max_gen_len=max_gen_len,
temperature=temperature,
top_p=top_p,
)
for dialog, result in zip(dialogs, results):
for msg in dialog:
print(f"{msg['role'].capitalize()}: {msg['content']}\n")
print(
f"> {result['generation']['role'].capitalize()}: {result['generation']['content']}"
)
print("\n==================================\n")
if __name__ == "__main__":
fire.Fire(main)
运行:torchrun --nproc_per_node 1 example_chat_completion.py
结果:
问答结果
可以看到是中文提问,英文的回答,效果还可以。
七、结语
从现在看过去,2007年11月5日,Android系统的发布,彻底改变了移动互联网的格局。从现在看未来,2023年7月19日,Llama2免费商用版本的发布,是否将改变AI行业的格局,让我们拭目以待。