一文搞懂大模型的预训练(Pre-training)
今天来聊一聊BERT和GPT的预训练,从而了解大模型的第四步:Pre-training。
预训练(Pre-training)是大语言模型(如BERT、GPT)训练的第一阶段,其核心目标是通过自监督学习从海量无标注文本中学习通用的语言表示(Language Representation)。这一阶段的目标是让模型掌握语言的语法、语义、常识等基础能力,为后续的微调(Fine-tuning)打下基础。
一、BERT(MLM + NSP)
BERT的预训练:MLM与NSP
基于Transformer编码器的双向架构,BERT通过掩码语言模型(MLM)和下一句预测(NSP)任务学习上下文语义。MLM随机遮盖15%的输入词,强制模型从双向语境中预测缺失词,突破传统单向模型的局限;NSP则通过判断句子对是否连贯,强化跨句推理能力。
一、MLM(Masked Language Modeling)
在BERT的预训练中,模型通过Masked Language Modeling(MLM)任务学习双向上下文,即随机遮盖输入文本中15%的词,并基于被遮盖词左右两侧的上下文预测该词。
(1)任务:随机遮盖输入文本中的15%的词,要求模型预测被遮盖的词。
(2)示例:输入句子为“The cat sits on the [MASK]”,模型需要预测 “[MASK]” 为 “mat”。
二、NSP(Next Sentence Prediction)
BERT通过Next Sentence Prediction(NSP)任务,以50%概率输入连续句子和50% 概率输入随机句子,训练模型学习句子间的逻辑关系,以提升问答、文本分类等任务的性能。
(1)任务:判断两个句子是否是连续的(50%是连续的,50%是随机的)。
(2)正例:“I like cats” + “They are cute.”
(3)负例:“I like cats” + “The sky is blue.”
三、新手学习建议:
阶段1:理论入门(2-3天)
(1)目的:理解MLM和NSP的设计动机与核心逻辑。
(2)BERT论文:重点阅读《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》的 Section 3(预训练任务设计)。
(3)类比理解:MLM就像你在玩“填空游戏”,需要根据前后文猜出被遮盖的词(如“I like [MASK]” → “cats”);NSP就是判断两句话是否来自同一篇文章(如“I like cats” + “They are cute.”是连续的,而“I like cats” + “The sky is blue.”是随机的)。
阶段2:代码复现(5-7天)
(1)目标:通过代码理解MLM和NSP的实现细节。
(2)代码:无需从零实现,直接基于transformers库调用预训练模型微调。
from transformers import BertTokenizer, BertForMaskedLM, BertForNextSentencePrediction, Trainer, TrainingArguments
import torch
# 加载预训练模型和tokenizer
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased")
model_mlm = BertForMaskedLM.from_pretrained("bert-base-uncased") # MLM专用
model_nsp = BertForNextSentencePrediction.from_pretrained("bert-base-uncased") # NSP专用(旧版BERT支持)
# 示例输入(MLM)
text = "The cat sits on the [MASK]."
inputs = tokenizer(text, return_tensors="pt")
outputs = model_mlm(**inputs)
predicted_token_id = torch.argmax(outputs.logits[0, -1]).item()
print(tokenizer.decode(predicted_token_id)) # 输出预测的词(如"mat")
# 示例输入(NSP)
sentence1 = "I like cats."
sentence2 = "They are cute."
sentence3 = "The sky is blue."
inputs_nsp = tokenizer(sentence1 + " [SEP] " + sentence2, return_tensors="pt") # 正例
inputs_nsp_neg = tokenizer(sentence1 + " [SEP] " + sentence3, return_tensors="pt") # 负例
model_nsp = BertForNextSentencePrediction.from_pretrained("bert-base-uncased") # 注意:新版本BERT已合并MLM+NSP
二、GPT(CLM)
GPT的预训练:因果语言建模(CLM)
GPT的因果语言建模(CLM)通过单向自回归,擅长生成连贯文本,但无法利用后文,更适配“创作”任务;而BERT的掩码语言建模(MLM)类似双向“完形填空”,更擅长上下文理解,适配“理解”任务。
一、CLM(Causal Language Modeling)
在GPT的预训练中,模型使用因果语言建模(CLM)通过单向上下文(仅前文)预测下一个词(数学表达为 P(wt∣w1,...,wt−1)),像“逐字听写”或“打字机”一样,每次只能看到之前输入的内容,逐步生成后续文本。
GPT系列模型(GPT-1/2/3/4)均基于CLM,通过Transformer的单向注意力掩码实现。
(1)任务:基于前文预测下一个词,类似于人类逐字阅读文本的过程。
(2)示例:输入“The cat sits on the”,模型需要预测下一个词是“mat”。
二、新手学习建议:
阶段1:理论入门(2-3天)
(1)目的:理解CLM的核心概念、数学原理及其与GPT的关系。
(2)BERT论文:重点阅读《Improving Language Understanding by Generative Pre-Training》(GPT-1原始论文)的 Section 2(模型架构与预训练任务)和《Language Models are Unsupervised Multitask Learners》(GPT-2论文),理解CLM在生成任务中的扩展应用。
(3)类比理解:CLM就像你在写作文时,只能根据之前写的内容决定下一个词(如“The cat sits on the [?]”),无法回头修改或参考后文。
阶段2:代码复现(5-7天)
(1)目标:通过代码理解CLM的实现细节,包括Transformer的单向注意力掩码。
(2)代码:同样无需从零实现,直接基于transformers库调用预训练模型微调。
from transformers import GPT2LMHeadModel, GPT2Tokenizer
import torch
# 加载预训练模型和tokenizer
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
# 输入文本(CLM任务)
input_text = "The cat sits on the"
inputs = tokenizer(input_text, return_tensors="pt")
# 生成下一个词
outputs = model.generate(**inputs, max_length=20, num_return_sequences=1)
print(tokenizer.decode(outputs[0])) # 输出完整句子(如"The cat sits on the mat and sleeps."
如何学习AI大模型?
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;
第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;
第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;
第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;
第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;
第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;
第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。
1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集
👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓