在过去的十年中,深度监督学习取得了巨大的成功。但是,由于它对手动标签的强依赖以及泛化性不足的缺点,促使人们寻求更好的解决方案。与此同时,在硬件快速增长的帮助下,今天的模型可以轻松地训练上百万张图像并开始尝试训练数亿张图像数据。
然而,有监督方法对数据有着人工标注的要求,从而造成了获取成本过高,因此通过大规模有标签的数据来训练大规模通用预训练模型不现实。此外,即使是耗费大量人力物力获取标签,但是有标签的监督方法仍然会因为人为疏漏造就错误标签(即使是 ImageNet 这种高质量数据集也存在错误标签和混淆概念)。
图灵奖获得者 Yann LeCun 在演讲时表示,如果智能是一块蛋糕,那么蛋糕的主体是无监督学习,蛋糕上的糖衣是监督学习,蛋糕上的樱桃是强化学习,而人类对世界的理解主要来自于大量未标记的信息。
而同时不可忽视的是,无监督/自监督学习这类方法已经革新了自然语言处理的通用范式,如 BERT、GPT 系列在大规模语料上进行无监督预训练,在各类下游任务中均取得了令人惊艳的效果。因此,无监督/自监督学习将是实现人类智能的关键,被广泛认为是通往通用人工智能的重要途径之一。
近些年自监督学习越来越受到广大研究人员的关注,其设计与思想天生就适合训练视觉大模型:利用大量的无标记数据训练模型构建通用的视觉表征,以此来使得所有类型的下游任务受益。自监督学习常用方法是提出不同的上游任务(pretext task)。
网络可以通过学习上游任务的目标函数来训练,视觉特征也在这一过程中获得。如图 2.2-1 所示,在自监督的上游任务训练阶段,自监督方法首先根据数据的某些属性自动生成该前置任务的伪标签,以此来训练神经网络获得预训练模型。在自监督的训练完成之后,可以将学习到的视觉特征迁移到下游任务(downstream task),使用少量带标签的数据进行微调,以提高性能并克服过度拟合的情况。
图 2.2-1 自监督方法框架图
本章节,我们全面回顾了现有的经验方法,并根据代理目标的不同将其概括为四个主要类别:生成式、上下文式、对比式以及多任务式。我们将进一步研究相关的理论分析工作,以提供有关自监督学习如何工作的更深层次的思想。
1.生成式方法
生成式方法的典型代表如图像上色、图像超分辨率等,方法各式各样,但本质都是生成式方法。
**图像上色:**图像上色任务是将彩色图像转化为灰度图像,此灰色图像通过神经网络,并使得上游训练任务为预测原本的彩色图像,逼迫网络来学习图像的结构和上下文信息,框架图如图 2.2-2 所示。
图 2.2-2 图像上色方法框架图
**图像超分辨率:**图像超分辨率任务是将输入图像的尺寸缩小,并使得缩小后的图像通过神经网络,并使得上游训练任务为预测原本的图像,是以此生成对抗的思想逼迫网络来学习图像的结构和上下文信息, 框架图如图 2.2-3 所示。
图 2.2-3 图像超分辨率方法框架图
这些方法是视觉自监督方法最早的启蒙思想,思想的本质是损坏输入图像的部分特征,让神经网络重建回原本的特征。在早期的领域中有着重要的贡献,然而正是因此,这些方法也有很多缺陷,如无法从图像中提取多粒度的特征,仅在某个或某几个任务中有效,很难泛化到各类下游任务。
1.1 上下文式方法
基于上下文的上游任务的设计主要利用图像的上下文特征,如上下文相似性、空间结构等。基于上下文的相似性的典型方法是根据图像的上下文相似性设计的,这种类型的方法主要是图像深度聚类的方法。
基于空间结构任务用于训练基于图像块之间的空间关系的神经网络,这种方法以上下文编码器思想的方法流行。深度图像聚类:深度图像聚类是将聚类与深度结合的方法,这种方法可以学习到一些有用的通用特征,这个框架如图 2.2-4 所示,整个过程包含对特征进行聚类,然后基于聚类的结果作为伪标签,更新网络的参数,让网络预测这些伪标签,这两个过程依次进行。
图 2.2-4 深度聚类框架图
上下文编码器:上下文编码器将图像中的随机区域丢弃,丢弃填补 0 像素值,之后利用卷积神经网络的编码-解码结构和图像先天就具备的上下文信息来学习恢复被丢弃的随机区域,如图 2.2-5 所示。
在训练完成后,将编码-解码模块的部分参数作为预训练模型应用于其他的任务。然而,基于卷积神经网络的上下文编码器方法并没有取得让人印象深刻的性能。但是这种思想却成为自然语言处理自监督学习的标准范式,说明了上下文式方法的极大潜力。
图 2.2-5 上下文编码器框架图
掩码模型:掩码模型也是视觉上下文编码器的一种,但是却取得了极大的突破,其成功基于两方面:
-
视觉 Transformer 的提出,为计算机视觉和自然语言处理的预训练统一奠定了基础;
-
分析了视觉信息和语言信息的不同,证明了视觉信息具备更冗余的特性,以此提出更进一步的上下文编码模型。
掩码模型是自然语言处理预训练一种流行的标准范式,在视觉中采用此种预训练方式有助于统一不同模态的预训练方法,发展通用的人工智能大模型。掩码模型中的代表MAE的框架图如图 2.2-6 所示。图像经过线性层映射成词条(token)集合,并被随机掩码。
将没有被掩码的 token 输入进编码器,与此同时解码器是轻量级的,并且从经过编码器输出的潜在表示和被掩码的 token 中重建输入。此种训练方法可以提取较好的表征,适合在密集预测的下游任务中使用。此外微软亚研院提出的 BEiT[29]、SimMIM[30]也是此类方法中的一种。
图 2.2-6 掩码模型的框架图
这些方法虽然在密集预测的下游任务上表现效果好,然而在流行的线性评估方面效果较差,同时有训练效率低的问题。
(1)对比学习方法
对比学习是近年来自监督研究社区最热门的研究方向,其建立在语义一致性的假设之上:对于同一图像的不同视角(叫做正样本,通常由数据増广获得),网络应该提取相似的特征,对于不同图像(叫做负样本,从数据集中重采样获得),网络提取的特征要尽量远离。此类方法典型代表为 MoCo 系列、SimCLR 系列、SimSiam、BYOL等。
MoCo:此方法基于对比学习的基础上提出了记忆池(memorybank),该方法使用一个在内存中的 memory bank 保存以往样本的特征,并且动量网络在训练过程中会以滑动平均的方式更新,网络中直接输入的样本均为正样本,负样本从记忆池中取,所以不需要很大的批次大小,如图 2.2-7 所示。
图 2.2-7 MoCo 框架图
SimCLR:此方法基于对比学习的基础上,将同一个批次(batch)中的其他样本视为负样本,所以需要非常大的批次大小(批次大小),使用非常多的 GPU 来训练网络。BYOL:提出一种无须负样本就能学习的自监督方法,本质还是对比学习的思想,即对于同一图像的不同视角仍然是一个类别。BYOL训练框架如图 2.2-8 所示。
图 2.2-8 BYOL 框架图
由上可知,对比学习的成功是建立在语义一致性假设的基础之上的,公开的单目标数据集 ImageNet 保证了这种假设,然而若是使用多目标数据集训练神经网络,则会不符合假设,无法提取图像中有用的特征。因此对比学习方法目前不适合在现实场景中训练,同样地,这些方法存在训练效率低的问题。
(2)多任务式方法
上述的 3 类方法都是以一种简单的方式预训练神经网络,然而若是训练一个通用的大模型,简单的任务容易使得模型过拟合当前任务,造成迁移性能变差。因此构建一个通用的上游任务使得网络避免过拟合特定任务,提升网络在下游任务的迁移性能,也是目前的研究方向。多任务学习就是组合多个自监督任务,提升网络表征的方法。
典型代表方法:DeepMind 提出的多任务学习框架,中科院自动化所提出的 MST,以及字节跳动的 iBoT。
DeepMind 提出的方法由 4 个自监督任务组成:
(a)切片的相对位置预测;
(b)图像上色;
©对比学习;
(d)预测视频中下一帧的像素变化。
通过组合多种自监督任务来学习通用的特征表达,证明了多任务学习的优越性。
中科院自动化所提出的 MST 采用了掩码模型和对比学习的方式。在对比学习的基础上,提出了一种注意力引导的掩码策略,利用教师模型产生的注意力指导学生模型掩码,并通过一个全局的解码器对图像进行重建,学习语义特征的同时保留图像的空间分辨率。整体框架如图 2.2-9 所示。
图 2.2-9 MST 框架图
此外,字节跳动也提出了掩码学习和对比学习结合起来的多任务学习工作 iBoT,参考 MST 利用教师模型产生的信息给予学生模型以指导,其对学生模型的 token 进行掩码,并利用教师模型的完整token 当做标签信息进行训练学习。框架图如图 10 所示
图 2.2-10 iBoT 框架图
多任务自监督学习涉及到了多个任务间的兼容、系数调整等问题,当前对于多任务自监督算法的探究还非常少
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。