Skip to content

Commit

Permalink
update pretraining docs
Browse files Browse the repository at this point in the history
  • Loading branch information
wj-Mcat committed Aug 27, 2024
1 parent 760292a commit d67e6d7
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 3 deletions.
11 changes: 9 additions & 2 deletions docs/01-llm-intro/05-training/01-dataset.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,11 @@ title: "数据准备"

可在训练阶段融入一些类似于文本分类、问答、槽位填充抽取等有标注相关数据,进而提升数据的多样性,同时对于上下文信息抽取的能力。

* 数据扩充
* 数据增强

在传统NLP任务当中,可以通过数据增强的方式来扩充数据、同时也能够增加模型对相似文本的理解能力,进而提升模型的泛化性。

在数据不足的情况下,可以通过数据扩充技术增加训练数据的量。数据扩充技术包括同义词替换、随机插入、随机删除、回译等,这些方法可以在不改变数据本质意义的前提下,生成更多的训练样本。
数据扩充方法包括同义词替换、随机插入、随机删除、回译等,这些方法可以在不改变数据本质意义的前提下,生成更多的训练样本。

## 数据收集

Expand All @@ -60,6 +62,11 @@ title: "数据准备"
| [C4](https://research.google/tools/datasets/c4/) | Google发布的一个大规模的预训练数据集,包含了约750GB的文本数据,是从互联网上爬取的网页内容经过清洗和过滤后的结果。 | 英文 |
| [Project Gutenberg](https://www.gutenberg.org/) | 收录了超过60,000本公有领域的电子书,涵盖文学、历史、科学等多种类型。 | 英文 |
| [BookCorpus](https://yknzhu.wixsite.com/mbweb/) | 包含了从英文小说中抓取的约10,000本电子书的文本,主要用于自然语言处理任务。 | 英文 |
| [CLUECorpus2021](https://github.com/CLUEbenchmark/CLUECorpus2021) | CLUECorpus2021是一个用于中文语言理解的评测基准,包含了多个子任务的数据集,如文本分类、命名实体识别等,适合用于预训练中文大语言模型。 | 中文 |
| [Chinese Wikipedia](https://dumps.wikimedia.org/zhwiki/) | 中文维基百科是一个包含丰富知识的中文语料库,包含大量的文章和条目,可用于大语言模型的预训练。 | 中文 |
| [新闻数据集](https://github.com/sobert/chinese-news-dataset) | 包含大量中文新闻文本的数据集,涵盖了多个新闻领域的文章,适合用于预训练中文大语言模型,以提高模型对新闻文本的理解能力。 | 中文 |
| [网络文本数据集](https://github.com/brightmart/text_classification) | 包含从网络上爬取的中文文本数据集,涵盖了多个领域的文本内容,如小说、新闻、科技等,可用于预训练中文大语言模型。 | 中文 |
| [大规模中文语料库](https://github.com/brightmart/nlp_chinese_corpus) | 一个大规模的中文语料库,包含了多种类型的文本数据,如新闻、小说、科技文章等,适合用于预训练中文大语言模型。 | 中文 |

此外,还有许多其他领域的数据集,如图像领域的ImageNet、MS COCO等,以及金融和经济领域的Quandl等,这些数据集同样可以用于训练特定领域的大模型。

Expand Down
50 changes: 49 additions & 1 deletion docs/01-llm-intro/05-training/02-pre-training.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,52 @@
title: "预训练"
---

TODO(wj-Mcat): 数据准备
## 概览

大语言模型在预训练阶段包含的内容相当丰富且复杂,主要围绕大规模无标签文本数据的处理和模型训练展开,当然此篇内容主要围绕 `decoder-only` 类别模型围绕展开介绍。

### 概念

语言模型(Language Model)很早就出现了,可是大语言模型(**Large** Language Model)在2022年才开始爆火,通常指至少为十亿级别的模型参数。

大语言模型展示了令人出乎意料的自然语言理解能力和解决复杂任务(通过文本生成)的能力。为了快速了解这些大型语言模型是如何工作的,本部分将介绍它们的基本背景,包括规模法则、涌现能力和关键技术。

## Scaling Laws

大语言模型预训练中的Scaling Law是一个描述系统性能如何随着模型规模、训练数据量以及计算资源等因素的增加而变化的规律,Scaling Law是一种数学表达,它揭示了系统性能与其规模(如参数量、训练数据量、计算量等)之间的幂律关系

在大语言模型的预训练中,Scaling Law起到了至关重要的作用。随着模型规模的不断扩大、训练数据的不断增加以及计算资源的不断投入,模型的性能往往会得到显著提升。OpenAI、Google DeepMind等研究机构通过实验验证了这一规律,并将其应用于指导大语言模型的设计和训练。

### **核心公式与推论**

1. **KM缩放规律**:由OpenAI团队在2020年提出,揭示了模型性能L与模型参数量N、训练数据集大小D以及训练计算量C之间的幂律关系。具体公式如下:
- $$ L(N) = (\frac{N_c}{N})^{\alpha_N} $$
- $$ L(D) = (\frac{D_c}{D})^{\alpha_D} $$
- $$ L(C) = (\frac{C_c}{C})^{\alpha_C} $$

其中,$ L(\cdot) $ 表示交叉熵损失,$ N_c $、$ D_c $、$ C_c $ 是常数,$ \alpha_N $、$ \alpha_D $、$ \alpha_C $ 是幂律指数。这些公式表明,当其他因素固定时,模型性能与某个因素呈现幂律关系。

2. **Chinchilla缩放规律**:由Google DeepMind团队提出,旨在指导计算最优训练。他们通过优化损失函数 $ L(N, D) $ 在约束条件 $ C \approx 6ND $ 下的值,导出了模型大小N和数据大小D的最优分配比例。

### 结论与启示

1. **模型性能与规模的关系**:随着模型参数量、训练数据量和计算量的增加,大语言模型的性能通常会得到显著提升。但这种提升并非无限制的,当达到一定规模后,性能提升的速度会逐渐放缓。

2. **资源分配策略**:根据Scaling Law,可以合理地分配模型参数、训练数据和计算资源,以在有限的预算内获得尽可能好的模型性能。不同研究团队对于模型和数据重要性的看法可能存在差异,这需要在具体实践中进行权衡。

3. **未来发展方向**:Scaling Law不仅适用于语言模型,还可能适用于其他模态以及跨模态的任务。随着技术的不断进步和数据的不断积累,未来大语言模型的性能有望得到进一步提升。

大语言模型预训练中的Scaling Law是一个重要的经验性规律,它揭示了系统性能与规模之间的幂律关系。通过理解和应用这一规律,可以指导大语言模型的设计、训练和资源分配,推动自然语言处理领域的持续进步和发展。

### 是否真的有效


## 参考文章

<!-- * [1] []() <div id="" />
* [1] []() <div id="" />
* [1] []() <div id="" />
* [1] []() <div id="" />
* [1] []() <div id="" />
* [1] []() <div id="" />
* [1] []() <div id="" /> -->

0 comments on commit d67e6d7

Please sign in to comment.