- transformer
- scaling law
- 分布式训练
自然语言处理包括几大任务
- NLP: 文本分类,词性标注,信息检索
- NLG:机器翻译,自动摘要,问答QA、对话机器ChatBot
- 下游任务: 词性标注(POS),句法分析(DP),命名实体识别(NER)和自然语言推理(NLI),文档摘要,跨语种翻译,自然语言推理与情感分类
Transformer
几大范式
- BERT
- 预训练,MLM, NSP
- 下游任务:通过finetune实现分类, NER, 句子相似度, 问答系统等
- GPT
- 预训练, Next token prediction
- 下游任务: Prompting实现文本生成,语言翻译,对话生成,摘要生成等
- T5
- 预训练任务: span corruption
T5
Bert
GPT
- 下游任务, 相比BERT对下游任务需要参数微调的代价,GPT3提出的prompt design, 通过instruction+prompt进行下游任务无需任何额外操作。后续Prefix-tuning: Optimizing continuous prompts for generation提出了prompt tuning效果更好
- in context learning: (few shot prompting, zero-shot transfer) 不需要进行反向传播、参数更新,在模型inference阶段,为了让模型的能力迅速迁移到某个特定task,先给一些参考样例,模型就迅速领会,也就是example放在context里,模型从context领会,也就可以按照这个例子里的task输出了 .
- instruction learning: 更符合人类表达习惯的方式与LLM交互
GLM
大模型
大模型时代,则需要重点关注其zero-shot,few-shot,推理等能力。NLG通过prompt也能够实现NLU任务,主线逐渐变成了NLG任务。
PaLM: Pathways Language Model
- 数据
- 评测
- 模型
- 效果
Flan
LLama
scaling law
大模型时代,很多观念都需要更新了。scaling地方在于数据量,任务量,模型参数量。
分布式训练
- 分布式通信库:CPU上用MPI,GPU上用NCCL
- 点对点通信(Point-to-point Communication, P2P): 两个节点间通信,集合通信(Collective Communication, CC):一组节点内通信
- 数据并行(DP)、模型并行(TP)、流水线并行(PP)
- 流水线并行: Gpipe,
- 模型的拓扑序,切分成p段,每一段为一个stage
- mini-batch进一步切分为几个大小的micro-batch
- zero使用的几个阶段
reference
- Gpipe-如何有效地阅读PyTorch的源代码? - OpenMMLab的回答 - 知乎
- [Transformer 101系列] LLM分布式训练面面观 - aaronxic的文章 - 知乎
- 预训练语言模型之GPT-1,GPT-2和GPT-3 - 大师兄的文章 - 知乎
- Prompt Tuning 相比于 Fine Tuning 在哪些场景下表现更好? - hibo的回答 - 知乎
- 面对“大模型+大规模预训练+重视SOTA的审稿人”,AI科研除了轻量化还有什么出路? - codebird的回答 - 知乎
- UL2: Unifying Language Learning Paradigms
- 2024年,AI的机会在行业大模型吗? - 段淇源的回答 - 知乎
- 浅谈后向传递的计算量大约是前向传递的两倍 - 回旋托马斯x的文章 - 知乎