doc: 更新readme目录

This commit is contained in:
KMnO4-zx
2025-05-13 21:34:06 +08:00
parent ab3e092186
commit ba29bde6b1

233
README.md
View File

@@ -2,130 +2,125 @@
## 大纲 ## 大纲
### 第一章 NLP 基础概念 志学 Done ### 第一章 NLP 基础概念
- 1.1 什么是 NLP - 1.1 什么是 NLP
- 1.2 NLP 发展历程 - 1.2 NLP 发展历程
- 1.3 NLP 任务 - 1.3 NLP 任务
- 1.3.1 中文分词 - 1.3.1 中文分词
- 1.3.2 子词切分 - 1.3.2 子词切分
- 1.3.3 词性标注 - 1.3.3 词性标注
- 1.3.4 文本分类 - 1.3.4 文本分类
- 1.3.5 实体识别 - 1.3.5 实体识别
- 1.3.6 关系抽取 - 1.3.6 关系抽取
- 1.3.7 文本摘要 - 1.3.7 文本摘要
- 1.3.8 机器翻译 - 1.3.8 机器翻译
- 1.3.9 自动问答 - 1.3.9 自动问答
- 1.4 文本表示的发展历程 - 1.4 文本表示的发展历程
- 1.4.1 词向量 - 1.4.1 词向量
- 1.4.2 语言模型 - 1.4.2 语言模型
- 1.4.3 Word2Vec - 1.4.3 Word2Vec
- 1.4.4 ELMo - 1.4.4 ELMo
### 第二章 基础架构-Transformer 雨衡 Done ### 第二章 Transformer 架构
- 2.1 注意力机制 - 2.1 注意力机制
- 2.1.1 注意力机制详解 - 2.1.1 什么是注意力机制
- 2.1.2 自注意力与多头注意力 - 2.1.2 深入理解注意力机制
- 2.1.3 注意力掩码与因果注意力 - 2.1.3 注意力机制的实现
- 2.2 Encoder-Decoder - 2.1.4 自注意力
- 2.2.1 Seq2Seq 模型 - 2.1.5 掩码自注意力
- 2.2.2 Encoder - 2.1.6 多头注意力
- 2.2.3 Decoder - 2.2 Encoder-Decoder
- 2.3 Transformer - 2.2.1 Seq2Seq 模型
- 2.3.1 Transformer 结构总览 - 2.2.2 前馈神经网络
- 2.3.2 Tokenizer 与 Embedding 层 - 2.2.3 层归一化
- 2.3.3 位置编码 - 2.2.4 残差连接
- 2.3.4 Transformer 中的其他结构 - 2.2.5 Encoder
- 2.2.6 Decoder
- 2.3 搭建一个 Transformer
- 2.3.1 Embeddng 层
- 2.3.2 位置编码
- 2.3.3 一个完整的 Transformer
### 第三章 预训练语言模型 Partly Done ### 第三章 预训练语言模型
- 3.1 Encoder-Only PLM
- 3.1.1 BERT
- 1模型架构Encoder Only
- 2预训练任务
- 3针对下游任务微调
- 3.1.2 RoBERTa
- 3.1.3 ALBERT
- 3.2 Encoder-Decoder PLM
- 3.2.1 T5
- 1模型架构Encoder-Decoder
- 2预训练任务
- 3大一统思想
- 3.2.2 BART
- 3.2.3 XLNet
- 3.3 Decoder-Only PLM
- 3.3.1 GPT
- 1模型架构Decoder Only
- 2预训练任务
- 3GPT 的发展历程
- 3.3.2 LLaMA
- 1模型架构优化
- 2预训练数据
- 3LLaMA1 到 LLaMA2
- 3.3.3 ChatGLM
- 1模型架构Prefix-Decoder
- 2预训练数据
- 3ChatGLM 的发展历程
### 第四章 大语言模型 雨衡 Done - 3.1 Encoder-only PLM
- 4.1 什么是 LLM - 3.1.1 BERT
- 4.1.1 LLM 的定义 - 3.1.2 RoBERTa
- 4.1.2 LLM 的能力 - 3.1.3 ALBERT
- 4.1.3 LLM 的特点 - 3.2 Encoder-Decoder PLM
- 4.2 训练 LLM 的三个阶段 - 3.2.1 T5
- 4.2.1 Pretrain - 3.3 Decoder-Only PLM
- 4.2.2 SFT - 3.3.1 GPT
- 4.2.3 RLHF - 3.3.2 LLaMA
- 3.3.3 GLM
- 3.3.4 DeepSeek [WIP]
### 第四章 大语言模型
- 4.1 什么是 LLM
- 4.1.1 LLM 的定义
- 4.1.2 LLM 的能力
- 4.1.3 LLM 的特点
- 4.2 如何训练一个 LLM
- 4.2.2 Pretrain
- 4.2.3 SFT
- 4.2.4 RLHF
### 第五章 动手搭建大模型 ### 第五章 动手搭建大模型
- 5.1 模型架构-LLaMA Done
- 5.1.1 LLaMA Attentœion
- 5.1.2 LLaMA Decoder Layer
- 5.1.3 LLaMA MLP
- 5.1.4 LLaMA RMSNorm
- 5.1.5 A Whole LLaMA
- 5.2 训练 Tokenizer
- 5.2.1 Word-based Tokenizer
- 5.2.2 Character-based Tokenzier
- 5.2.3 Subword Tokenizer
- 1BPE
- 2Word Piece
- 3Unigram
- 5.2.4 训练一个 Tokenizer
- 5.3 训练一个小型LLM
- 5.3.1 训练Tokenizer
- 5.3.2 数据预处理
- 5.3.3 训练模型
- 5.3.4 使用模型生成文本
### 第六章 训练 LLM - 5.1 动手实现一个 LLaMA2 大模型
- 6.1 框架介绍 - 5.1.1 定义超参数
- 6.1.1 transformers - 5.1.2 构建 RMSNorm
- 6.1.2 deepspeed - 5.1.3 构建 LLaMA2 Attention
- 6.1.3 peft - 5.1.3.1 repeat_kv
- 6.1.4 trl - 5.1.3.2 旋转嵌入
- 6.2 LLM Pretrain - 5.1.3.3 组装 LLaMA2 Attention
- 6.2.1 初始化 LLM - 5.1.4 构建 LLaMA2 MLP模块
- 6.2.2 预训练数据处理 - 5.1.5 LLaMA2 Decoder Layer
- 6.2.3 使用 Trainer 进行预训练 - 5.1.6 构建 LLaMA2 模型
- 6.3 LLM SFT - 5.2 训练 Tokenizer
- 6.3.1 加载预训练模型 - 5.3.1 Word-based Tokenizer
- 6.3.2 微调数据处理 - 5.2.2 Character-based Tokenizer
- 6.3.3 使用 Trainer 进行微调 - 5.2.3 Subword Tokenizer
- 6.4 基于强化学习的偏好对齐 - 5.2.4 训练一个 Tokenizer
- 6.4.1 DPO 训练 - 5.3 预训练一个小型LLM
- 6.4.2 KTO 训练 - 5.3.0 数据下载
- 6.4.3 GRPO 训练 - 1 处理预训练数据
- 6.5 高效微调-LoRA - 2 处理SFT数据
- 6.5.1 LoRA 原理 - 5.3.1 训练Tokenize
- 6.5.2 使用 peft 进行 LoRA 微调 - 5.3.2 Dataset
- 5.3.3 预训练
- 5.3.4 SFT 训练
- 5.3.4 使用模型生成文本
### 第六章 大模型训练流程实践
- 6.1 模型预训练
- 6.1.1 框架介绍
- 6.1.2 初始化 LLM
- 6.1.3 预训练数据处理
- 6.1.4 使用 Trainer 进行训练
- 6.1.5 使用 DeepSpeed 实现分布式训练
- 6.2 模型有监督微调
- 6.2.1 Pretrain VS SFT
- 6.2.2 微调数据处理
- 6.3 高效微调
- 6.3.1 高效微调方案
- 6.3.2 LoRA 微调
- 6.3.3 LoRA 微调的原理
- 6.3.4 LoRA 的代码实现
- 6.3.5 使用 peft 实现 LoRA 微调
### 第七章 大模型应用 ### 第七章 大模型应用
- 7.1 LLM 的评测
- 7.1.1 LLM 的评测方法 - 7.1 LLM 的评测
- 7.1.2 主流的评测榜单 - 7.1.1 LLM 的评测数据集
- 7.1.3 特定的评测榜单 - 7.1.2 主流的评测榜单
- 7.2 RAG - 7.1.3 特定的评测榜单
- 7.2.1 RAG 的基本原理 - 7.2 RAG
- 7.2.2 搭建一个 RAG 框架 - 7.2.1 RAG 的基本原理
- 7.3 Agent - 7.2.2 搭建一个 RAG 框架
- 7.3.1 Agent 的基本原理 - 7.3 Agent
- 7.3.2 搭建一个 Multi-Agent 框架 - 7.3.1 什么是 LLM Agent
- 7.3.2 LLM Agent 的类型
- 7.3.3 动手构造一个 Tiny-Agent