【实测】Meta开源大模型LLama2,云端部署微调使用教程,附模型对话实例

473 阅读4分钟

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行业的格局,让我们拭目以待。