• Llama 2: 深入探讨ChatGPT的开源挑战者


    Llama 2:开源挑战者深度解析

    摘要

    本文深入探讨了Llama 2的能力,并提供了在Google Colab上通过Hugging Face和T4 GPU设置这个高性能大型语言模型的详细指南。Llama 2是由Meta与Microsoft合作开发的开源大型语言模型,旨在重新定义生成式人工智能和自然语言理解的领域。本文还介绍了Llama 2的规模、上下文长度、组查询注意力等创新之处,以及如何通过Hugging Face在Google Colab上运行Llama 2模型。最后,本文总结了Llama 2与GPT模型及其前身Llama 1的区别,以及当前面临的挑战。

    1. Llama 2简介

    Llama 2是由Meta与Microsoft合作开发的开源大型语言模型,旨在重新定义生成式人工智能和自然语言理解的领域。Llama 2不仅是一个在数TB数据上训练的统计模型,更是一种哲学的体现,强调开源方法作为人工智能发展的基础,特别是在生成式人工智能领域。

    2. 技术深度解析

    2.1 训练架构

    Llama 2使用自动回归变压器架构进行预训练,并在人类反馈的强化学习(Reinforcement Learning with Human Feedback, RLHF)的基础上进行微调,以更好地符合人类行为和偏好。

    2.2 预训练与数据效率

    Llama 2的预训练创新在于其预训练制度。模型从其前身Llama 1中汲取灵感,但引入了几个关键的改进来提升其性能。特别是,总训练令牌数增加了40%,上下文长度扩大了两倍。此外,模型利用分组查询注意力(Grouped Query Attention, GQA)来放大推理的可扩展性。

    2.3 监督微调与强化学习

    Llama-2-chat已经通过监督微调(Supervised Fine-Tuning, SFT)和强化学习与人类反馈(RLHF)进行了严格的微调。在RLHF框架中,SFT是一个重要组成部分,用于调整模型的响应,使其更符合人类的偏好和期望。

    3. 设置Llama 2

    3.1 从Meta Git仓库下载

    1. 访问Meta官方网站,点击“下载模型”。
      1. 填写详细信息,阅读并接受条款和条件。
      1. 提交表格后,您将收到来自Meta的电子邮件,其中包含从其git仓库下载模型的链接。
      1. 执行download.sh脚本。

    3.2 从Hugging Face下载

    1. 在获得Meta的访问权限后,前往Hugging Face。
      1. 选择所需的模型并提交访问请求。
      1. 在1-2天内,您将收到“授予访问”的电子邮件。
      1. 在Hugging Face账户的“设置”中创建访问令牌。

    4. 在Google Colab上运行Llama 2

    4.1 安装包

    !pip install transformers
    !huggingface-cli login
    
    • 1
    • 2

    4.2 导入必要的Python库

    from transformers import AutoTokenizer
    import transformers
    import torch
    
    • 1
    • 2
    • 3

    4.3 初始化模型和分词器

    model = "meta-llama/Llama-2-7b-chat-hf"
    tokenizer = AutoTokenizer.from_pretrained(model)
    
    • 1
    • 2

    4.4 设置管道

    pipeline = transformers.pipeline(
        "text-generation",
            model=model,
                torch_dtype=torch.float16,
                    device_map="auto")
                    ```
    ### 4.5 生成文本序列
    
    ```python
    sequences = pipeline(
        'Who are the key contributors to the field of artificial intelligence?\n',
            do_sample=True,
                top_k=10,
                    num_return_sequences=1,
                        eos_token_id=tokenizer.eos_token_id,
                            max_length=200)
                            for seq in sequences:
                                print(f"Result: {seq['generated_text']}")
                                ```
    ## 5. Llama 2的特点
    
    ### 5.1 规模多样性
    
    Llama 2提供不同参数的多种模型选项,规模从70亿到7亿参数不等,为不同的计算需求提供多种配置。
    
    ### 5.2 增强的上下文长度
    
    模型的上下文长度比Llama 1增加了4K个令牌,使其能够保留更多信息,从而提高其理解和生成更复杂和广泛内容的能力。
    
    ### 5.3 组查询注意力(GQA)
    
    该架构使用GQA的概念,通过缓存之前的令牌对来加速注意力计算过程。这有效地提高了模型的推理可扩展性,从而提高其可访问性。
    
    ## 6. 结论
    
    本文介绍了如何在Google Colab上通过Hugging Face支持设置Llama 2模型以进行文本生成。Llama 2的性能得益于从自动回归变压器架构到强化学习与人类反馈(RLHF)的一系列先进技术。凭借高达700亿个参数和诸如Ghost Attention等功能,该模型在某些领域超越了当前行业标准,并且由于其开源性质,为自然语言理解和生成式人工智能的新时代铺平了道路。
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
  • 相关阅读:
    FPGA 学习笔记:Vivado 工程管理技巧
    Spring Boot集成JWT快速入门demo
    第二周 day03
    Axure RP医疗在线挂号问诊原型图医院APP原形模板
    聊聊Qt中的Widget调色板QPalette
    文件存储解决方案-云存储阿里 OSS
    权限提升Linux篇
    Redis入门完整教程:客户端通信协议
    基于JavaSwing开发选课系统的设计与实现 课程设计 大作业 毕业设计
    Java(五)(Object类,克隆,Objects类,包装类,StringBuilder,StringJoiner,BigDecimal)
  • 原文地址:https://blog.csdn.net/L1558198727/article/details/136780219