当前位置:AIGC资讯 > AIGC > 正文

大模型学习笔记3【大模型】LLaMA学习笔记

文章目录

学习内容 LLaMA LLaMA模型结构 LLaMA下载和使用 好用的开源项目[Chinese-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca) Chinese-Alpaca使用 量化 评估

学习内容

完整学习LLaMA

LLaMA

2023年2月,由FaceBook公开了LLaMA,包含7B,13B,30B,65B。 2023年7月,发布LLaMA2,包含7B,13B,65B。 可商用 模型架构不变,但训练数据增加了40% 34B模型由于未满足安全要求并未发布 包含基座模型和Chat模型:LLaMA 2 - chat

论文部分介绍:

数据来源于公开数据集 目的:在推理预算有限的情况下,达到更好的效果。 LLaMA 13B在大多数测试中优于GBT3-175B,65B相比当时最好的模型也有竞争力。 主要工作:通过更多的token训练语言模型。
主要针对英语进行训练,也使用了部分其他语言。

LLaMA模型结构

和 GPT 系列一样,LLaMA 模型也是 Decoder-only 架构,但结合前人的工作做了一些改进,比如:

Pre-normalization [GPT3]. 为了提高训练稳定性,LLaMA 对每个 transformer 子层的输入进行归一化,使用 RMSNorm 归一化函数,Pre-normalization 由Zhang和Sennrich(2019)引入。 SwiGLU 激活函数 [PaLM]. 将 ReLU 非线性替换为 SwiGLU 激活函数,且使用 2 3 4 d \frac{2}{3} 4d 32​4d 而不是 PaLM 论文中的 4d,SwiGLU 由 Shazeer(2020)引入以提高性能。 Rotary Embeddings [GPTNeo]. 模型的输入不再使用 positional embeddings,而是在网络的每一层添加了 positional embeddings (RoPE),RoPE 方法由Su等人(2021)引入。

LLaMA下载和使用

模型申请:地址 模型代码:地址(可以使用download脚本,只保留7b) 我对校验不太了解,大家可以校验一下,我就肉眼看大小校验了。 模型无法运行LLaMA初始权重,需要用transformers的脚本,convert_llama_weight_to_hf.py 简单推理函数脚本和其中的文件

好用的开源项目Chinese-Alpaca

本地GPU、CPU部署

开源中文LLaMA模型,和指令微调的Alpaca大模型

在原模型的基础上,扩充vocab词表,使用中文数据进行“继续训练”,并使用中文指令数据进行微调。

该仓库的中包含的大模型。Chinese-LLaMA-7B是在原版LLaMA-7B的基础上,在20GB的通用中文语料库上进行预训练。Chinese-LLaMA-Plus-7B是在原版LLaMA-7B的基础上,在120GB的通用中文语料库上进行预训练

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/7af06255ff3449f
ea26e0bbd92aba9b6.jpeg)

完全使用LoRA进行预训练和微调,需要原版的LLaMA模型。

LoRA居然能有这么强……太离谱了。

Chinese-Alpaca使用

根据官方教程即可,仅记录不同之处。 单LoRA权重合并效果一般,建议使用多LoRA合并。(Plus和Pro)

量化

量化:使用llama.cpp进行量化 加入-t和别的参数之后效果极快

评估

使用wikitext或自己构建数据集评估困惑度 也可以使用GPT4或人类打分

总结

文章总结了LLaMA模型及其社区开发的一个重要部分,包括Chinese-Alpaca开源项目。以下是文章要点的概述:
### 1. **LLaMA模型概述**
- **发布时间**:LLaMA在2023年2月由Facebook公开,随后于同年7月发布了LLaMA 2。
- **模型规模**:包含多个版本,如7B、13B、30B(仅LLaMA 1)、65B,以及13B和65B的LLaMA 2版本。
- **特性**:
- 可商用。
- 在模型结构保持不变的情况下,LLaMA 2的训练数据量增加了40%。
- LLaMA 2还包括一个基座模型和Chat模型(LLaMA 2 - chat),主要面向英语数据集,但也包括其他语言。
### 2. **LLaMA模型结构**
- **架构**:采用与GPT系列类似的仅解码器(Decoder-only)架构,但与GPT有明显的改进。
- **主要改进点**:
- 使用Pre-normalization以提高训练稳定性。
- 引入SwiGLU激活函数以提升性能。
- 利用Rotaty Embeddings(RoPE)作为位置嵌入。
### 3. **LLaMA下载和使用**
- 提供了模型申请的地址以及模型代码的下载地址。
- 强调了模型初始权重需使用transformers脚本进行转换(convert_llama_weight_to_hf.py)才能运行。
### 4. **Chinese-Alpaca开源项目**
- **概述**:这是一个本地GPU和CPU均可部署的开源项目,包含中文LLaMA模型和经过指令微调的Alpaca大模型。
- **特点**:
- 在原基础模型上进行扩展,在大量中文语料库上进行了预训练。
- 提供了多种规模的模型选择,如Chinese-LLaMA-7B和Chinese-LLaMA-Plus-7B。
- 使用LoRA方法进行预训练和微调。
### 5. **Chinese-Alpaca使用**
- 概述了在Chinese-Alpaca上使用单LoRA权重和多LoRA合并效果的建议。
### 6. **量化**
- 介绍了使用llama.cpp工具进行量化,以及添加特定参数可以优化量化效果。
### 7. **评估**
- 提供了困惑度评估的方法,包括使用wikitext或自建数据集,以及GPT4或人类打分的方式进行模型评估。
总之,文章详细介绍了LLaMA模型的特性、结构、下载和使用方法,以及基于LLaMA的Chinese-Alpaca开源项目,为希望了解和使用这些模型的读者提供了宝贵的资源和信息。

更新时间 2024-07-18