画布 1
大模型
  基础概念
    LM（Language Model，语言模型）
      语言模型是一个自然语言中的词语概率分布模型。
      例如，给定一个长度为𝑚的词序列𝑤1, 𝑤2, ..., 𝑤𝑚，语言模型可以计算这些词的联合概率𝑃(𝑤1, ..., 𝑤𝑚)。通过语言模型，可以确定哪个词语出现的可能性更大，或者基于前面的词语来预测下一个最可能出现的词语。
    LLM（Large Language Model，大语言模型）
      大语言模型是指在超大规模文本数据上进行训练，并且具有超大参数规模的语言模型。
    Token（词元）
      处理文本数据之前，语言模型通常会将原始文本分解成较小的基本单元，这些单元称为词元
        单词
        字符
        子词
    Tokenizer（分词器）
      分词器是将文本分解成词元的工具
        单词的分词器（Word-based Tokenizer）
        基于字符的分词器（Character-based Tokenizer）
        基于子词的分词器（Subword-based Tokenizer）
          主流的分词算法
            BPE
            WordPiece
            SentencePiece
    Vocab（词表）
      词表是指一个数据集中所有不同词元的集合
  RNN（Recurrent Neural Networks，循环神经网络）
    变体
      LSTM（Long Short Term Memory，长短期记忆网络）
        早期的RNN在长序列上效果不佳，且训练时容易出现梯度消失（不收敛）和梯度爆炸（不稳定），为了克服RNN的缺点，LSTM（长短期记忆网络）通过引入三个门控机制——遗忘门、输入门和输出门，来控制信息的传递，从而更好地捕捉长时间依赖关系。
      GRU（Gated Recurrent Unit，门控循环单元）
        GRU借鉴了LSTM的经验，将门控机制简化为两个——重置门和更新门，减少了参数数量和计算复杂度，同时在许多任务中仍能保持与LSTM相近的性能。
    核心思想
      利用循环连接来处理序列数据
        RNN在每个时间步（time step）上接收当前输入和前一个时间步的隐状态（hidden state），然后生成当前时间步的隐状态和输出。
        隐状态的本质是对过去信息的一种编码，用于捕捉序列中的时间信息。
  Word Embedding
    词向量是用于表示单词意义（相似性、类比关系等）的向量，也可以看作词的特征向量。将词映射为词向量的技术称为Word Embedding（词嵌入）。
    2013年Google提出的Word2Vec可能是最为人熟知的Embedding技术之一。Word2Vec通过将词语映射到一个高维向量空间，使得语义相似的词语在向量空间中距离较近，从而有效捕捉词语之间的语义关系。
    后来的Transformer及LLM通常会将Embedding作为模型的第一层，用于将单词或子词转换为向量。
  Encoder-Decoder
    一种新的神经网络架构，包括一个编码器（Encoder）和一个解码器（Decoder），用于将源语言编码为固定长度的向量表示（包含语义和上下文信息），并从该向量表示解码成目标语言。
    Encoder-Decoder架构为机器翻译领域带来了重要的创新，并激发了大量相关研究。后来的Transformer正是基于Encoder-Decoder架构设计的。
    Encoder-Decoder架构为机器翻译领域带来了重要的创新，并激发了大量相关研究。后来的Transformer正是基于Encoder-Decoder架构设计的。
  注意力机制
    当我们观察一幅图像或阅读一段文字时，我们不会一次性处理所有信息，而是会将注意力集中在某些重要部分。类似地，注意力机制允许模型在处理输入序列时，动态地选择性关注输入序列的不同部分。
    三个向量
      Query（查询向量）是用来查询相关信息的向量
      Key（键向量）是用来与当前 Query 计算相关性的向量
      Value（值向量）则是与 Key 对应的实际信息
    基于RNN和注意力机制的Encoder-Decoder模型在处理序列到序列任务时表现出色，但在处理长序列和并行计算方面存在效率瓶颈。2017年，Google的研究人员提出了Transformer架构，采用多头自注意力机制解决了这些问题，在多项自然语言处理任务上取得了非常好的效果，并由此拉开了LLM的序幕。
  Transformer
    Transformer是第一个使用纯注意力机制（不使用RNN或CNN）实现的Encoder-Decoder模型
      其中编码器（Encoder）和解码器（Decoder）都由多个相同的层（称为Transformer layer）堆叠而成。
    由于Transformer不使用RNN的顺序结构，它需要一种机制来捕捉序列中的位置信息。为此，Transformer在Embedding层后面加入了位置编码（Positional Encoding），将位置信息显式地添加到输入向量中。
    编码器和解码器的核心是多头自注意力机制（Multi-Head Self-Attention），其中自注意力机制允许每个位置的表示直接关注序列中的所有其他位置，而多头注意力机制通过并行计算多个注意力头（相当于每个头独立计算各自的注意力输出）来捕捉输入序列中不同位置的多种依赖关系。这样的设计使模型的表达能力非常强大，同时可以有效利用现代GPU的并行计算资源。
  LLM
    三种技术路线
      仅解码器模型（蓝色分支）
      仅编码器模型（粉色分支）
      编码器-解码器模型（绿色分支）
  GPT系列
    GPT-1
      通过在各种未标记文本的语料库上对语言模型进行生成式预训练（generative pre-training，也是GPT这个名字的由来），然后对每个特定任务进行针对性微调（discriminative fine-tuning），可以显著提高模型在各种自然语言处理任务上的表现。
      GPT-1使用BookCorpus（一个包含超过7000本未出版书籍的语料库）作为预训练语料，token数量约8亿。
      GPT-1使用Transformer的解码器作为预训练模型，其中Transformer layer有12层（每层的隐状态大小为768，注意力头数为12），参数规模约1.17亿（117M）。
      对以下任务进行了微调和效果评测：文本分类、文本蕴涵、文本相似性和问答，结果都表现得相当不错。
    GPT-2
      该论文提出了零样本设定（zero-shot setting），即将预训练模型（不经过微调）直接用于下游任务。同时，为了让模型明确知道该做什么，将任务描述也作为输入的一部分，即：（任务描述，输入）-> 输出，这也是Prompt的前身。
      研究人员还发现，当LLM在足够大且足够多样化的数据集上进行训练时，它能够在许多任务上有系统性提升，后来他们专门发表了另外一篇论文，把相关规律称为LLM的Scaling Laws（规模定律）。
      增加了WebText（来自Reddit的高质量新闻网页）作为预训练语料，总计约40亿个token。
      提供了多种不同大小的模型版本，其中最大的模型包含48层Transformer layer（每层的隐状态大小为1600，注意力头数为25），参数规模约为15亿（1.5B）。
      尽管zero-shot非常吸引人，但GPT-2仅在部分任务上表现良好，在摘要和问答等任务上表现不如现有的模型。
    GPT-3
      该论文提出了ICL（in-context learning）和Prompt的概念，将上下文信息作为输入让模型在生成文本时能更好地理解任务，根据输入方式的不同具体又分为zero-shot（零样本示例）、one-shot（单样本示例）、few-shot（多样本示例）。
      增加了Common Crawl（一个免费的网页数据集）作为预训练语料，token数量约45万亿。
      采用了Transformer的改进版本Sparse Transformer（通过引入稀疏注意力机制，在保持模型性能的同时，显著提高了计算和内存效率），并提供多种不同大小的模型版本，其中最大的模型有96层Transformer layer（每层隐状态大小为12288， 注意力头数为192），参数规模约1750亿（175B）。
    InstructGPT
      预训练方式与GPT-3类似，但增加了微调阶段，并使用了RLHF（Reinforcement Learning from Human Feedback）方法，使模型能够更好地与用户在各种任务上的意图保持一致，这种技术后来被称为大语言模型的对齐（Alignment）技术。
      三个步骤
        收集高质量的问答数据（通常来自于人工标注），并使用这些数据对预训练模型进行有监督的微调（Supervised Fine-Tuning，简称 SFT）
        收集偏好数据（SFT的模型生成多个候选答案，人工进行排序和评分），并使用这些数据训练一个奖励模型 (Reward Model，简称RM)
        利用奖励模型，通过近端策略优化（Proximal Policy Optimization，简称 PPO）算法进行强化学习，使模型在任务中表现得越来越好
      InstructGPT的预训练语料与GPT-3类似，token数量约45万亿。
      InstructGPT的预训练模型架构与GPT-3类似，参数规模约1750亿（175B）。
      经过对比实验，InstructGPT上经过微调（图中的SFT）的1.3B的模型，比GPT-3上的175B模型的效果要好，而经过强化学习（图中的PPO和PPO-ptx）的模型效果则更好。
      ChatGPT是InstructGPT的兄弟模型，区别在于ChatGPT加入了大量的对话样本，使其在对话任务上表现更为出色。
    GPT-4
      支持文字和图像作为输入，但输出仍然是纯文字。（2024年推出的GPT-4o支持文字、音频和图像的输入输出）
      据介绍，GPT-4预训练语料token数约13万亿，模型采用了MoE（Mixture of Experts）技术，最大模型的参数规模约18000亿（1800B）。
      MoE模型包含多个专家（即模型的子部分），每个专家在特定的输入上表现优秀。通过一个路由机制来决定对于给定的输入，哪些专家应该被激活，从而提高模型的容量和效率。关于Transforms结合MoE的具体方法
      在多项专业考试上的成绩优于GPT-3.5，部分成绩位于人类前10%，但在某些领域（如算法竞赛、数学竞赛、英语文学、英语阅读写作）仍然表现较差（说明GPT-4也有短板）。