今天给大家推荐的是加拿大滑铁卢大学大模型公开课资源,根据QS世界大学排名,其计算机专业排名全球22。
课程内容主要分为五部分:大模型基础、Transformer架构、大语言模型、多模态大模型、智能体。
课程官方地址:
https://cs.uwaterloo.ca/~wenhuche/teaching/cs886/
每一课除了PPT和视频链接,还有相关论文链接。
后台回复886获取ppt下载链接。
下面我对每一课内容进行概括总结,同时将内容串联起来帮助大家建立一个知识地图。
Part1:大模型基础
第一课:初识大模型及其应用
能了解多久的过去,就能知道多远的未来。
如果真的想了解大模型,并且参与到由此引发的通用人工智能的讨论,我想有必要先了解下机器学习、深度学习以及AI的历史。
从需要手动提取特征到自动提取特征,从完成单一具体任务到具有通用能力,从监督学习到自监督、强化学习,从RNN、CNN到Transformer。
大模型的发展,离不开模型架构的迭代、训练方式的改进、算力的支撑以及海量数据的加持,更离不开人类对于机器智能孜孜不倦的探索追求。
第三课:RNN & CNN
2012年,AlexNet赢得了ImageNet挑战赛第一名,历史上首次深度学习打败了SIFT+传统机器学习。
在经历两次AI寒冬后,这种模拟人类大脑神经元链接的神经网络让人们再次看到了希望,从此具有自动提取特征并且能够拟合任意复杂函数的神经网络开始登上历史舞台。
在NLP领域,RNN也开始取代了基于统计的方法。
但探索的脚步并没有停止,从RNN到LSTM、GRU再到Transformer;从AlexNet到ResNet再到ViT。
每一次改进都克服了前一代的不足。
从处理表格数据的ANN、处理图像的CNN、处理时序数据的RNN、再到处理图数据的GNN,深度学习开始入侵各个领域,并且多点开花。
第四课:NLP & CV
自从有了能够处理文本和图像的神经网络模型,对于该领域的探索就会勇往直前。
对于智能的探索就是希望机器能够像人一样理解图像和文本。
在CV领域,从一开始简单的图片分类、目标检测、分割,到图像理解,和生成。
在NLP中,从一开始的机器翻译、情感分析,到文本生成。
借助模型架构的迭代、数据的积累、算力的升级,机器的智能越来越强大。
Part2:Transformer架构
第五课:Self Attention & Transformers
前面的RNN以及改进版本都是前Transformer时代的产物,这句话的意思是Transformer比它们都强大。
目前,所有大模型都是基于Transformer架构,其核心是自注意力机制。
这种机制能够让其在经过大量文本预训练后:
不仅知道it指代的是bank,而且bank指的是金融机构而不是河岸。
The bank was near the river, and it offered great financial services.
而且还能知道乔丹是篮球运动员这种事实:
Michael Jordan plays -> basketball.
第六课:Efficient Transformers
道有所能,则必有所不能。
Transformers虽然很强大,但有计算性能问题,在自注意力的计算过程中,随着输入序列长度的增加,计算量呈二次增长(O(n^2))。
根据scaling law,模型的能力与参数量线性相关,所以,为了实现通用人工智能,必须解决计算性能问题。
因此,计算高效的Transformers架构应运而生。
但据我所知,由于Transformer中MLP层占据了2/3的参数,所以由多个小的专家模型来替换MLP层是目前应用比较多的。
第八课:Language Model Pretraining
预训练是让模型在海量数据上进行自监督学习,从而获得通用知识。
自监督学习有两种方式:
一种像Bert那样,随机Mask掉部分词汇,让模型预测被Mask掉的词汇是什么。
另一种像GPT那样,预测下一个词。
第七课:Parameter-efficient Tuning
先来看下ChatGPT的制作过程:先在海量数据上进行预训练得到预训练模型,然后再用有监督数据进行指令微调,最后通过强化学习向人类偏好对齐。
预训练模型具有通用的知识,但它不知道如何响应用户的各种指令(翻译、总结)。
微调让预训练模型具备了这种能力。
微调过程,可以全量更新参数,也可以只更新部分参数,这样就可以在磁盘上只保留一份预训练模型,对于不同的任务,只需要加载不同的参数即可。
CV:这都是我玩剩下的了!!!这不就是迁移学习嘛!
微调是为了让LLM完成不同任务,例如,翻译,chat,总结等等。除了微调,还有一种常用的模式是增量预训练,它解决的是领域问题,例如,llama3擅长英文,但中文效果不好;我们就可以用中文对其进行预训练,再例如,让通用大模型具有医疗领域知识。
Part3:大语言模型
第九课:Large Language Models
有了Transformr这个强大的模型,也知道了如何基于Transformr进行预训练和微调。
接下来就通过它构建一个强大的语言模型吧!
语言模型就是能够理解和生成符合语法和语义的自然语言。
例如,给出上下文让预测缺失的词,或者给出一段文本进行续写等等。
传统的Transformer由一个Encoder和一个Decoder构成。
Bert仅使用了Encoder,由于Encoder的对称性,也就是每个词都会与整个句子的所有词计算注意力,所以适合理解型任务,例如,文本分类,命名实体识别等等。
GPT仅使用了Decoder,由于Decoder的因果性,也就是每个词只会与它前面的词计算注意力,所以适合生成型任务,例如,文本生成,文本摘要等等。
还有一类模型,它同时使用了Encoder和Decoder,例如,T5,MT5等等。
第十课:Scaling Law
是否真的能实现通用人工智?以及多久能实现?对于这样的问题,科技界仍没有达成共识,但坚定的支持者认为这个时间点可能是2047年。
无论是支持还是持否定态度的人,都是基于经验做出的判断。
目前的经验当然来自一些事实:
从GPT3.5到GPT4-o,模型的能力提升有目共睹,而这种能力的提升基本上来自模型参数,算力和数据量的提升。
而Scaling law就是对这种关系的总结。
怀疑AGI的人认为机器智能不可能达到人类的水平,因为人类具有意识。
目前已有的一些事实证明你可以用磁带,磁盘,硬盘,内存存储信息,同样,你可以用晶体管计算机,量子计算机处理信息。
这说明信息的存储和计算都是独立于硬件物质存在的。
对于学习和意识目前也没有证据证明不可以独立于物质层面而存在。
那么具有记忆,计算,学习,意识能力的智能体就不一定需要血肉和C原子,例如硅基生命。
第十一课:Instruction Tuning & RLHF
预训练模型具有通用的知识,但它不知道如何响应用户的各种指令(翻译、总结)。
指令微调让预训练模型具备了响应用户指令的能力。
RLHF则是让大模型向人类喜好对齐,如果真的有超级智能出现,让超级智能的目标与人类一致,可能是唯一选择也是我们急需解决的问题。
但根据对过去文明的观察,高级智能不太可能向低级智能对齐!所以应该寻找比RLHF更高级的方法。
第十二课:Efficient LLM Training
大模型最大的特征就是大!
如果想本地运行llama 70B模型,需要168GB的显存,而训练过程由于要存储梯度和优化器参数等信息,需要的显存是推理过程的两倍。
以目前的GPU配置,单机单卡肯定是不行的,所以就出现了并行训练方法。
典型的有数据并行,pipeline 并行和模型并行,也就是分而治之的策略。
除了并行,还可以用混合精度训练,也就是用FP16代替FP32,用INT8代替FP16,从而减少显存占用。
第十三课:Efficient LLM Inference
大模型的推理效率对于用户体验至关重要,如何能用最小的内存占用,尽快的给出用户答复是推理优化思考的问题。
在内存上,首先想到的是量化技术降低参数内存占用。
其次采用kv-cache避免重复计算。
同时为了提高内存使用效率,避免内存碎片化,page-attention借鉴了操作系统分页内存管理机制。
第十四课:Compress and Sparsify LLM
前面利用参数的精度,内存的管理,缓存技术提升了训练和推理过程的效率。
还有一种方式是从模型入手,改进模型的架构。
由于Transformer中MLP的参数占据了2/3,所以用一种更高效的架构来替换MLP就是一种好的选择,MoE就是利用多个小的专家模型来替换MLP。
第十五课:LLM Prompting
这一课还是大模型优化主题,但这次不需要更改模型,也不是修改参数精度,也不需要微调模型。
这次从Prompting下手,而是让Prompting变的更好,Prompting是人类与大模型交互的唯一方式,Prompting质量的好坏决定了模型的输出质量。
举个例子吧!
前一段时间,大模型对于“9.3比9.11哪个大”的问题集体哑火了,但如果加个“think step by step”就能给出准确答案了。
Part4:多模态大模型
第十六课:Vision transformer
Transformer在NLP中取得了成功,人们迅速将其引入到了CV中,在CV中称之为Vision transformer,简称ViT。
把图像划分成小的patch,类似于nlp中的token。
同样,我可以在ViT上进行预训练,然后再进行微调用于不同的任务,例如,目标检测和分割,或者多模态中用于图像编码器。
第十七课:Diffusion models
扩散模型是当下主流的文本生成图像模型。
扩散模型通过逐步向数据添加噪声并学习如何反向去噪,从而生成与真实数据相似的新样本。
第十八课:Image Generation
对于文本生成图像,除了扩散模型,还有VAE和GAN。
图像生成多样性,图像质量,图像生成效率是综合评估一个模型的三个指标。
第十九课:Multimodal model pre-train
多模态就是模型能输入多重模态,如图像,文本,视频等。
主要分为理解和生成两类任务。
前面讲图像生成,理解任务典型的像视觉问答,基于输入图片进行问答。
多模态主要包括图像编码器和文本编码器,还有一个多模态融合模块。
多模态融合让两个原本不是同一个世界的人,可以进行交流。
多模态开山之作是CLIP,分别用VIT和Transforner Encoder对图像和文本进行编码,然后通过对比学习,也就是计算正负图像文本对向量点积,来让正样本拉进,负样本疏远。
到这个简单的融合模块有点弱。
后续模型基本上就是增强融合模块能力,例如,用Transforner Encoder。
为了能够生成文本,也增加了Transforner Decoder。
第二十课:Large Multimodal model
当前大语言模型就有很强的语言理解和生成能力,具有in context few-shot推理能力,那能不能利用这些LLM资源呢?
视觉编码器用预训练好的ViT模型,例如BeiT,如果训练过程中参数保持不变,直接将视觉编码器的输出给LLM肯定不是对齐的,那如何实现多模态的融合?要么微调ViT的参数,要么中间加一个Adapter。Flamingo选择冻结大语言模型以及视觉预训练模型参数,然后通过加一个Adapter实现模态之间的对齐。
Part5:智能体
第二十一课:Tool Augmentation
大模型是被动式的一问一答,我们需要的智能体是主动的,还能执行决策的,不光是只输出文本,这就要求能访问外部工具的能力。
例如,作为一个网络安全智能体,当检测到威胁后,能够发邮件预警。
一个理财智能体,当检测到机会后,能自动买入股票。
第二十二课:Retretal Augmentation
大模型有时会出现幻觉问题,就是说着说着就跑调了,文不对题了。
你当然可以通过增加模型参数,增加训练数据去改善这个问题。
但目前有个低成本的方案,就是检索增强生成。
例如,先针对用户输入内容搜索互联网,然后再对检索到的内容进行总结。
也可以用自己内部资料制作向量检索数据。