【论文精读】LLaMA1

摘要

       以往的LLM(Large Languages Models)研究都遵从一个假设,即更多的参数将导致更好的性能。但也发现,给定计算预算限制后,最佳性能的模型不是参数最大的,而是数据更多的。对于实际场景,首选的模型不是训练速度最快的,而是推理速度最快的,训练时间较长的较小的模型最终在推理时的成本会更低。故提出改进:

  • 通过训练比通常模型使用的更多的token,训练一系列语言模型,在各种推理预算中实现尽可能好的性能。所得模型称为LLaMA,参数范围从7B到65B
  • 模型只使用公开可用的数据训练,与开源兼容

框架

预训练数据

image
       如上图,预训练数据集使用CommonCrawl、C4、Github、Wikipedia、Books、ArXiv、StackExchange各自不同比例的混合,具体:

       CommonCrawl[67%]:使用CCNet pipeline预处理了从2017年到2020年的五个CommonCrawl数据。该过程在行级别对数据进行去重;用fastText线性分类器进行语言识别,删除非英语页面;用n-gram语言模型过滤低质量内容;此外,训练了一个线性模型,对维基百科中参考文献页与随机抽样页进行分类,并丢弃非参考文献页。

       C4[15%]:实验发现使用不同的预处理CommonCrawl数据集可以提高性能,故将C4数据集包含进预训练数据中。预处理阶段进行了数据去重和语言识别过滤,与CCNet的主要区别是质量过滤方法,其依赖于启发式方法,如是否存在标点符号或网页中的单词和句子的数量大小。

       Github[4.5%]:使用谷歌BigQuery上可用的公共GitHub数据集。只保留了在Apache、BSD和MIT许可下分发的项目;根据行长或字母数字字符的比例,使用启发式方法过滤低质量的文件;使用正则表达式删除样板文件,如headers等;最后,在文件级别对数据集进行精确匹配去重。

       Wikipedia[4.5%]:使用2022年6月至8月期间的维基百科数据,包括20种使用拉丁语或西里尔文字的语言:bg、ca、cs、da、de、es、fr、hr、hu,nl、pl、pt、ro、ru、sl、sr、sv、uk。处理这些数据时删除了超链接、注释和其他格式化的样板文件。

       Books[4.5%]:使用了两个图书语料库:古登堡项目,其中包含公共领域的书籍;以及ThePile的Books3部分。并删除了内容重复超过90%的图书。

       ArXiv[2.5%]:使用了arXiv的Latex文件,每个文件都删除了first section之前的所有内容,以及参考书目;删除了来自.tex文件中的注释,以及由用户编写的内联扩展的定义和宏。

       StackExchange[2.0%]:使用了StackExchange数据,包含从计算机科学到化学的各种主要领域的高质量问答网站。其中保留了来自28个最大的网站的数据,并从文本中删除了HTML标签,并按分数(从最高到最低)对答案进行了排序。

       Tokenizer:本文使用字节对编码(BPE)算法对数据进行tokenize,使用Sentence-Piece的实现。处理过程中,将所有数字字符串拆分为单个数字,并在bytes级别分解未知的UTF-8字符。

       总体而言,整个预训练数据集在tokenize后包含大约1.4T的token,除了Wikipedia和Books使用了大约两个epoch,其余token只使用一次。

模型架构

       模型基于原始transformer架构,但做出一些改动:

  • 为了提高训练稳定性,模型对每个transformer子层的输入进行归一化,而不是对输出归一化。归一化函数使用RMSNorm
  • 为了提高性能,用SwiGLU激活函数取代了ReLU,维度变为 2 3 4 d \frac 234d 324d
  • 将绝对位置嵌入替换为旋转位置嵌入(RoPE)
    image

       详细模型配置如上图。

优化器

       模型使用AdamW优化器进行训练,超参数 β 1 = 0.9 β_1 = 0.9 β1=0.9 β 2 = 0.95 β_2 = 0.95 β2=0.95

<think>嗯,用户问怎么入门了解大模型。首先,我需要确定用户的基础知识水平。可能是个刚接触AI的新手,或者有一些编程经验但想深入大模型的人。先回想之前的对话,用户已经问过大模型的基础知识,所以现在可能需要更具体的入门路径。 用户的需求应该是想系统地学习大模型,但不知道从哪里开始。可能需要分步骤的指导,包括理论学习和实践操作。考虑到大模型涉及的内容广泛,需要从基础架构、学习资源、工具使用、项目实践等方面入手。 接下来要整理出清晰的步骤。首先,基础理论部分,比如Transformer架构,这是大模型的核心。然后是数学基础,比如线性代数、概率论,这些对理解模型原理很重要。接着是机器学习基础,因为大模型属于深度学习的范畴。 然后是学习资源,可能需要推荐书籍、在线课程和论文。比如《深度学习》花书,吴恩达的课程,还有经典的论文如Attention Is All You Need。这些资源能帮助用户建立理论基础。 工具和框架也是关键。Hugging Face的Transformers库、PyTorch或TensorFlow,这些工具是实际操作中必须掌握的。还需要介绍实践步骤,比如从预训练模型入手,做微调,参与开源项目等。 另外,用户可能对数学和编程有顾虑,是否需要强调先修知识?比如Python编程、PyTorch基础。可能需要在步骤中提到这些前提,或者提供学习这些基础的建议。 还要考虑用户的学习路径是否包括社区和最新动态,比如关注顶级会议、参与论坛讨论,保持知识更新。以及项目实战的重要性,通过实际项目加深理解。 最后,是否需要给出学习计划示例?比如分阶段学习,每个阶段的目标和时间安排。这样用户更容易执行。 总结下来,应该分几个大点:基础理论、学习资源、工具掌握、实践项目、持续学习。每个部分给出具体的建议和资源推荐,确保用户有明确的路径可循。</think>以下是系统化的入门学习路径,从基础知识到实践应用逐步展开: --- ### 一、**前置知识储备** 1. **数学基础** - **线性代数**:矩阵运算(如$WX + b$)、特征分解 - **概率统计**:条件概率、最大似然估计(MLE) - **微积分**:梯度下降($\theta_{t+1} = \theta_t - \eta \nabla_\theta L$) 2. **编程能力** - **Python**:掌握基础语法与常用库(NumPy/Pandas) - **深度学习框架**:PyTorch或TensorFlow(重点学习张量操作、自动求导) --- ### 二、**核心理论入门** 1. **机器学习基础** - 理解监督学习、无监督学习基本概念 - 掌握神经网络基础(前向传播、反向传播) 2. **Transformer架构精讲** - 自注意力机制(公式推导:$\text{Attention}(Q,K,V) = \text{softmax}\left( \frac{QK^T}{\sqrt{d_k}} \right)V$) - 编码器-解码器结构(推荐精读[《Attention Is All You Need》](https://arxiv.org/abs/1706.03762)论文) - 扩展架构:BERT(双向编码)、GPT(单向自回归) --- ### 三、**学习资源推荐** 1. **书籍与课程** - 书籍:《深度学习》(花书)、[《Natural Language Processing with Transformers》](https://www.oreilly.com/library/view/natural-language-processing/9781098136791/) - 课程:吴恩达《深度学习专项课》、李沐《动手学深度学习》 2. **论文精读清单** - 奠基论文:Transformer、BERT、GPT-3 - 进阶论文LLaMA(高效训练)、RLHF(对齐技术) 3. **工具库学习** - **Hugging Face Transformers**:掌握`pipeline()`快速调用、模型微调(Fine-tuning) - **LangChain**:学习大模型应用开发框架 --- ### 四、**实践路线图** 1. **从小模型上手** - 使用Hugging Face运行BERT/GPT-2(示例代码): ```python from transformers import pipeline classifier = pipeline("text-classification", model="bert-base-uncased") print(classifier("I love machine learning!")) ``` 2. **微调实战** - 选择特定任务(如文本分类),用自定义数据集微调预训练模型 - 参考教程:[Hugging Face Fine-tuning指南](https://huggingface.co/docs/transformers/training) 3. **参与开源项目** - 复现经典论文代码(如GitHub上的BERT实现) - 加入AI社区(如Hugging Face、OpenAI论坛) --- ### 五、**持续进阶方向** 1. **深入优化技术** - 模型压缩:量化(Quantization)、知识蒸馏(Knowledge Distillation) - 高效训练:LoRA(低秩适配)、混合精度训练 2. **跟踪前沿动态** - 关注顶会:NeurIPS、ICML、ACL - 订阅简报:The Batch(DeepLearning.AI)、Hugging Face博客 --- ### 六、**避坑指南** 1. **硬件选择** - 入门阶段:Colab免费GPU → 进阶使用A100/V100 - 显存不足时:启用梯度检查点(`gradient_checkpointing=True`) 2. **常见误区** - 避免直接啃读万亿参数模型论文(先掌握基础架构) - 不要过度追求模型规模(从百亿参数模型实践开始) --- **学习计划示例(3个月)** | 阶段 | 目标 | 时间分配 | |------|------|----------| | 第1月 | 掌握Python/PyTorch + 神经网络基础 | 60%编程+40%理论 | | 第2月 | 精读Transformer论文 + Hugging Face实战 | 50%代码+50%论文 | | 第3月 | 微调模型 + 参与开源项目 | 70%实践+30%社区交流 | 如果需要具体资源链接或某个环节的详细解释,可以进一步说明! 🚀
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值