Skip to content
AstroPaper
Go back

《大语言模型》读书笔记

Updated:
Edit page

书籍下载地址

主要是科普,很多知识点还是需要投入大量时间学习

[[toc]]

Part1 背景与基础知识

1. 语言模型发展历程

2. 大预言模型关键技术

3. 大模型构建过程

主要分位大规模预训练、指令微调与人类对齐两个阶段

3-1. 大规模预训练

一般来说,预训练是指使用与下游任务无关的大规模数据进行模型参数的初始训练,可以认为是为模型参数找到一个较好的“初值点”。

早期的预训练技术还是聚焦于解决下游某一类的特定任务,如传统的自然语言处理任务。后面 OPENAI 提出通过大规模文本数据的预训练实现通用任务的求解器,并且将这一思路在 GPT-3 中推广到了当时最大的千亿规模。

预训练数据:收集数据->清洗->词原化

3-2 指令微调与人类对齐

经过大规模数据预训练后的语言模型已经具备较强的模型能力,能够编码丰富的世界知识,但是由于预训练任务形式所限,这些模型更擅长于文本补全,并不适合直接解决具体的任务。

目前比较广泛使用的微调技术是“指令微调”(Supervised Fine-tuning, SFT):通过使用任务输入与输出的配对数据进行模型训练,可以使得语言模型较好地掌握通过问答形式进行任务求解的能力。一般来说,指令微调很难教会大语言模型预训练阶段没有学习到的知识与能力,它主要起到了对于模型能力的激发作用,而不是知识注入作用。

人类对齐:将大语言模型与人类的期望、需求以及价值观对齐。主要引入了基于人类反馈的强化学习对齐方法 RLHF(Reinforcement Learning from Human Feedback)。

4. 扩展法则

在实现上,大语言模型采用了与小型预训练语言模型相似的神经网络结构(基于注意力机制的 Transformer 架构)和预训练方法(如语言建模)。但是通过扩展参数规模、数据规模和计算算力,大语言模型的能力显著超越了小型语言模型的能力。

5. 涌现能力

大语言模型的涌现能力被非形式化定义为“在小型模型中不存在但在大模型中出现的能力”,具体是指当模型扩展到一定规模时,模型的特定任务性能突然出现显著跃升的趋势,远超过随机水平。

6. GPT 模型技术演变

大模型发展时间线

GPT技术发展历程

7. 学习资源

7-1 开源模型

7-2 API

7-3 预训练数据集

7-4 微调数据集

截屏2024-08-06 23.57.54 截屏2024-08-06 23.59.56

7-5 社区


Part2 预训练

这一部分先讲了如何处理预训练数据,接着比较详细介绍了模型的架构,最后介绍了如何用模型做预训练

1. 数据准备

为了确保数据的质量和效用,还需要对数据进行预处理,从而消除低质量、冗余、无关甚可能有害的数据

1.1 数据预处理

YuLan-GARDEN - 预训练数据处理框架

1.2 ⭐️ 词元化(分词)

词元化(Tokenization)是数据预处理中的一个关键步骤,旨在将原始文本分割成模型可识别和建模的词元序列,作为大语言模型的输入数据。

2. ⭐️⭐️Transformer 模型

当前主流的大语言模型都基于 Transformer 模型进行设计的。Transformer 是由多层的多头自注意力(Multi-head Self-attention)模块堆叠而成的神经网络模型。原始的 Transformer 模型由编码器和解码器两个部分构成,而这两个部分实际上可以独立使用,例如基于编码器架构的 BERT 模型和解码器架构的 GPT 模型 。

与 BERT 等早期的预训练语言模型相比,大语言模型的特点是使用了更长的向量维度、更深的层数,进而包含了更大规模的模型参数,并主要使用解码器架构,对于 Transformer 本身的结构与配置改变并不大。

本部分内容将首先介绍 Transformer 模型的基本组成,包括基础的输入、多头自注意力模块和前置网络层;接着分别介绍 Transformer 模型中的编码器和解码器模块。

截屏2024-08-07 01.20.14

2.1 输入编码

主要功能:讲上面步骤生成的词元序列经过一个 Embedding Model 转化为词向量序列*$v_t$,再叠加位置编码信息$p_t$,生成最终的输入序列 X = [$x_1,…x_T$],其中$x_t=v_t+p_t$*

通过这种建模方法的表示,Transformer 模型可以利用位置编码建模不同词元的位置信息。

2.2 多头自注意力机制

相比于循环神经网络(Recurrent Neural Network, RNN)和卷积神经网络(Convolutional Neural Network, CNN)等传统神经网络,多头自注意力机制能够直接建模任意距离的词元之间的交互关系。

TODO:先了解下,更深入的理论知识需要再看看

2.3 前馈神经网络

主要功能:对于每个位置的隐藏状态进行非线性变换和特征提取

2.4 编码器

在 Transformer 模型中,编码器(Encoder)的作用是将每个输入词元都编码成一个上下文语义相关的表示向量。编码器结构由多个相同的层堆叠而成,其中每一层都包含多头自注意力模块和前馈网络模块。在注意力和前馈网络后,模型使用层归一化和残差连接来加强模型的训练稳定度。

2.5 解码器

基于来自编码器编码后的最后一层的输出表示以及已经由模型生成的词元序列,执行后续的序列生成任务。与编码器不同,解码器需要引入掩码自注意力(Masked Self-attention)模块,用来在计算注意力分数的时候掩盖当前位置之后的词,以保证生成目标序列时不依赖于未来的信息。

Part3 微调与对齐

这部分先跳过

Part4 大模型使用

1. Prompting

1.1 提示词工程

针对特定任务设计合适的任务提示。

1.1.1 提示词四要素:
1.1.2 提示词设计原则

1.2 上下文学习

1.3 思维链提示

2. ⭐️ 规划与智能体

规划旨在为目标任务制定包含一系列动作的解决方案,是大语言模型解决复杂问题能力的重要体现,也是自主智能体最重要的核心能力。

规划整体框架

基于大语言模型的规划方法主要由三个组件构成,包括任务规划器(Task Planner)、规划执行器(Plan Executor)以及环境(Environment)。具体来说,大语言模型作为任务规划器,其主要职责是生成目标任务的解决方案。该方案包含一系列执行动作,每个动作通过合适的形式进行表达,例如自然语言描述或代码片段。对于长期任务,任务规划器还可以引入存储机制,用于解决方案与中间执行结果的存储与检索。规划执行器则负责执行解决方案中所涉及到的动作。根据任务性质的不同,规划执行器可以由大语言模型实现,也可以由执行具体物理任务的实体(如机器人)来实现。环境是规划执行器实施动作的具体场景,不同任务对应着不同的执行环境,例如 Web 互联网或像 Minecraft 这样的外部虚拟世界

截屏2024-08-12 23.24.03

智能体的构建

在大语言模型智能体的构建过程主要包含三个基本组件:记忆组件(Memory)、规划组件(Planning) 和执行组件(Execution)。通过这些组件共同协作,智能体能够有效地感知环境、制定决策并执行规划的动作,进而完成相应任务

智能体的应用

WebGPT | ⭐️ MetaGPT | ⭐️ AutoGen

Part5 评测与应用

1. 评测指标

截屏2024-08-12 23.33.04

2. 评测方法

截屏2024-08-12 23.36.38

3. 开源评测体系

3.1 MMLU

MMLU 是一个综合性的大规模评测数据集,旨在全面评估大语言模型在多个领域中的知识理解和应用能力,包括人文科学、社会科学、自然科学和工程技术等。

在任务形式上,MMLU 采用选择题的形式对模型能力进行检验,每个实例都包括一个问题和若干个候选项。模型需要根据任务描述和问题来预测各选项的概率,并选择概率最高的选项作为答案。在评估设置方面,该数据集通常采用少样本学习方式,在输入提示中加入 5 个示例数据。在评测指标方面,主要采用平均准确率作为衡量标准。

3.2 BIG-Bench

BIG-Bench 包含了 204 个任务,广泛涵盖了语言学、儿童发展、数学、常识推理、生物学、物理学、社会偏见、软件开发等多个领域,旨在全面反映模型在不同方面的综合能力。

在任务形式方面,BIG-Bench 主要采用了文本生成与多项选择两种类型。

3.3 其他

HELM | C-Eval

4. 专业领域大模型

介绍了法律、语言、科学研究等场景,其中金融场景如下


Edit page
Share this post on:

Previous Post
Customizing AstroPaper theme color schemes
Next Post
Adding new posts in AstroPaper theme