四川大学 XLearning 实验室近期对深度聚类工作进行了总结,实验室深耕无监督学习领域多年,完成了 PARTY [1](国际上最早三个深度聚类方法之一)、TELL [2](首个可解释无监督聚类方法)、CC [3](基于对比学习实现聚类表示)、TAC [4](外部引导聚类范式)等创新工作。
本文中,我们从一个新的角度,即深度聚类的本质在于对先验知识的整合和利用,梳理并分析了从经典到最新的深度聚类方法。接下来,我们首先科普聚类任务的背景与基础知识。
论文标题:
A Survey on Deep Clustering: From the Prior Perspective
论文链接:
https://link.springer.com/article/10.1007/s44336-024-00001-w
聚类的定义及应用
引言: 人工智能方法根据数据标注的可用性可分为有监督、无监督及弱监督学习三大范式。其中,有监督学习通过最小化训练集的风险损失,在原始数据与标签间建立映射,以任务相关知识为核心,方法简单有效。然而,该范式严重依赖于高质量的标注数据,而在当今数据爆炸的背景下,人工标注成本高昂且精度难以保障,极大限制了其大规模应用。
为摆脱对标注数据的依赖,无监督与弱监督学习应运而生,旨在从无标注或弱标注数据中挖掘有价值信息。无监督学习作为重要代表,通过设计自监督信号从数据本身中学习信息,近年来取得了突破性进展,如 ChatGPT 和 AlphaFold 等里程碑式成果。
研发 AlphaFold 的谷歌 DeepMind 团队指出无监督学习是通向通用人工智能之路的台阶;图灵奖得主 Yann Lecun 教授把人工智能比喻为一块蛋糕,其中有监督学习是外面的一层糖霜,而无监督学习则是蛋糕的胚体,形象地体现了无监督学习的重要性和巨大的潜力。
作为无监督学习领域的代表任务之一,聚类分析旨在根据样本间的相似性,将具有相同语义的样本划分到同一个类簇,而不同类簇间的样本语义各不相同。得益于其强大的语义挖掘能力,聚类分析已被广泛应用于异常检测,社群发现,图像分割和生物分析等场景。
定义:聚类旨在将数据集中的样本划分成若干簇,同一簇中的样本彼此相似,而不同簇的样本差异较大。
如图 1 所示,我们将不同的动物进行聚类,会把同一类动物分到一个簇里面。在蓝色的簇中,样本都是猫猫,彼此之间相似,而不同的蓝色簇(猫)和绿色簇(狗)之间,样本差异较大。在该例中,聚类可以有效地帮助人们区分不同种类的动物。
▲ 图1 聚类任务示例
更通用地讲,聚类可以揭示数据背后隐藏的语义结构,有利于下游任务,相关的应用可以分为直接应用和间接应用。
直接应用:将聚类直接应用于下游的特定任务。以下是一些常见的直接应用领域:
-
市场细分:通过对消费者行为数据进行聚类,企业可以将消费者分为不同的群体,进而为每个群体提供定制化的产品和服务。
-
文档分类:对文本数据进行聚类可以用于新闻分类、主题分析等,帮助用户更好地浏览和理解海量文本数据。
-
社会网络分析:通过对社交网络中的用户进行聚类,可以识别出社区、群体,帮助了解网络结构和用户行为。
-
异常检测:在数据集中,聚类可以用于识别异常或不寻常的数据点,例如用于金融欺诈检测、设备故障检测等。
间接应用:将聚类作为辅助技术,为其他技术提供数据预处理、监督信号、模型优化等方面的支持。
-
数据预处理:利用聚类进行数据划分、噪声消除。例如,在文本分类任务中,聚类可以用于初步划分数据集,通过去除与各类不相关的样本,以达到消除噪声样本的目标。再比如,在推荐系统中,通过对用户行为数据的聚类,可以识别出相似的用户群体,并基于这些群体行为做出推荐,即为不同的用户群体提供个性化推荐内容。
-
引导半/无监督学习:在半监督和无监督任务中,聚类可以对无标签数据进行分簇,并将同一簇中的样本视为具有相似的特征,从而生成伪标签,提供监督信号。例如,在 MoDE [5](CVPR 2024)中,使用 -means 获得粗粒度和细粒度的聚类中心,然后生成伪标签做监督信号来辅助训练,以提升在 CLIP 在 Zero-Shot 分类和检索任务上的性能。
从先验的视角剖析当前的深度聚类方法
首先解释一下先验的概念。先验通常指的是在模型训练之前已经存在的、有助于模型学习的知识或信息。先验可能来自数据本身的结构特征、人类的直觉、领域知识或历史经验。举例来说,邻域一致性先验指人类通常认为两个相似的物体属于同一个簇,例如布偶猫和蓝猫长得很像,所以我们认为它俩属于一个簇(猫科动物)。
如图 2 所示,从先验的视角来看,我们认为现有的聚类方法主要分为结构先验、分布先验、增广不变性、邻域一致性、伪标签引导、外部知识引导六种先验。接下来我们来详细描述这六个先验。
▲ 图2 从先验的角度分析当前的深度聚类方法
2.1 结构先验
早期的深度聚类方法主要侧重于将浅层聚类的思想和先验知识结合到深度网络的优化过程中。因此,这一时期的深度聚类方法的灵感和许多浅层方法类似,基于对数据固有结构的保留和增强,进行深度表征学习。
▲ 图3 基于结构先验的聚类
例如 ABDC [6] 作为比较早期的深度聚类方法,其假设数据的潜在结构可以通过深度特征提取和聚类优化的交替过程得到有效表达,先训练一个 AutoEncoder 进行特征提取,然后在特征空间使用 -means 进行优化,一方面,计算 -means 的类指派和重新计算类中心点,再用最小类内方差优化神经网络,最终完成 EM 算法和 AutoEncoder 的交替优化,数据在潜在空间中的分布更紧凑。
而像 DEN [7],SpectralNet [8] 受到谱聚类中的线性局部结构特点的启发,利用原始数据构造拉普拉斯图,使用其局部相似性对特征空间的分布进行正则化。同样的,子空间聚类中的稀疏性先验认为类簇的内在维度远低于实际的数据维度,可以利用远远小于数据数量的点表示整个数据分布,PARTY [1] 利用稀疏性约束对特征空间的分布进行正则化。
还有一些方法,例如 JULE [9],受到层次化聚类的启发,在特征学习过程中采用自下而上的逐渐合并类指派。
总体而言,基于结构先验的方法依赖于数据固有的结构特征,在处理结构明确的数据时表现良好,但对于复杂、高维或动态变化的数据可能效果有限。
2.2 分布先验
分布先验是指同簇的样本遵循相同的数据分布,而不同簇的样本遵循不同的数据分布。分布先验启发了生成式的聚类方法,它们通常利用变分编码器(VAE)或生成式对抗网络(GAN)来学习数据分布(在聚类领域数据分布通常指聚类分配)。
具体而言,生成式聚类方法认为从相似分布中生成的样本往往属于同一个簇,它们往往以生成尽可能真实的各簇数据为优化目标,从而鼓励模型产生有利于聚类的分布。
▲ 图4 基于分布先验的聚类
在生成式聚类方法中,ClusterGAN [10] 是最经典的算法之一,它在浅空间中使用 GAN 来显式地学习数据分布。
具体来说,如图 3 所示,除了样本在浅空间中的特征变量 ,ClusterGAN 引入了 one-hot 变量 来显示代表聚类分配,其优化目标为
其中, 代表融合的特征变量, 是将数据从原空间映射到潜在空间的逆网络, 是 GAN 中的判别网络, 是 GAN 中的生成网络, 指的是交叉熵, 和 是参数。
前两项是传统的 GAN 的优化损失,目的是让判别器能区分真实的样本和生成的样本,让生成器能生成接近于真实的样本。第三项使得样本使得逆网络具备把样本从原空间映射到浅空间中的能力(类似于重构损失),作为基础,促使第四项通过逆网络输出更明显的聚类分配(让聚类分配与 one-hot 变量逼近)。在评估时,通过将样本输入逆网络,得到的 即可表示样本的聚类结果。
此外,VaDE [11](Variational Deep Embedding)也是经典的生成式聚类方法。与 ClusterGAN 和 DCGAN 这类基于 GAN 网络来拟合数据分布的方法不同,VaDE 在潜空间中利用高斯混合模型来拟合数据分布,并通过变分编码器的损失来优化模型。
2.3 增广不变性先验
近年来,基于图像增广的方法受到了广泛关注,其核心先验是同一实例的不同增广具有一致的语义信息。这种增广不变性先验激发了如何利用具有相似语义的正样本对(即同一图像的不同增广)的探索,如图 5 所示。这里我们将重点介绍其中具有代表性的基于互信息和基于对比学习的聚类方法。
▲ 图5 基于增广不变性先验的聚类
IMSAT 是一种基于信息论的聚类方法。它的核心思想是在增广不变性的基础上,实现高置信(unambiguous)且均匀(uniform)的聚类分配。具体来说,IMSAT [12] 鼓励实例的聚类分配 与其增广的聚类分配 与尽可能相似:
这一方面可以看作是探索实例与其增广之间的互信息最大化。此外,IMSAT 受 RIM [13] 启发,为聚类实现信息量最大化(即所有样本尽可能平均分配到不同的簇中)。具体来说,IMSAT 试图最大化实例与其聚类分配之间的互信息:
其中, 和 指的是熵和条件熵, 指的是所有样本在第 个簇上的平均分配概率。
第一项的增大意味着信息量的增大,鼓励所有样本平均分配到不同的簇中,即对于每个簇而言,样本平均分配概率趋近于 。第二项则鼓励样本置信地分到某一个簇中,即 尽可能逼近 one-hot 的聚类分配。
注意第二项是指个体,第一项是指整体,比较容易混淆。与之类似的基于互信息的聚类方法还有 IIC [14] 和 Completer [15],它们都是最大化正样本对之间聚类分配的互信息。
与基于互信息的方法类似,基于对比学习的方法将来自同一实例的不同增广视为正样本对,其余成对数据视为负样本对。设 和 表示第个实例的两个增广表示,对比损失公式如下:
其中, 表示成对的对比损失, 控制着 softmax 的温度, 用的是余弦相似度。这种损失鼓励正样本更加接近,同时与负样本分开,促进了样本的表示学习,进而能形成更好的聚类分布。
CC [3] 提出了对比聚类范式,其在实例级对比学习的基础上,提出了类别级的对比学习,从而促使模型获取更具判别性的表征。
具体而言,对于概率矩阵 而言( 的矩阵, 是样本数, 是类别数),每行对应样本表示,每列对应聚类表示,从行上进行对比学习提升了表征质量,从列上进行对比学习鼓励了聚类分配(PICA [16])。
其中,聚类级别的对比损失为:
其中, 是聚类分配, 是实例及其增广的聚类分配的熵。
一方面,该损失有助于让正样本对的聚类分配尽可能相似,隐式地鼓励更置信的聚类分配。另一方面,最大化 有助于保证聚类分配是均匀的(在 IMSAT 那讨论过),有效防止了聚类级对比学习可能会导致的 trivial solution,即所有样本都分配到同一个类上。
2.4 邻域一致性先验
自监督表示学习不断发展,通过 pretext 任务获得的浅空间数据表示已具有一定的语义信息。这为实现领域一致性先验提供了基础条件,即在浅空间中实例及其邻域的实例通常属于同一个簇,如图 6 所示。
▲ 图6 基于领域一致性先验的聚类
SCAN [17] 是基于领域一致性先验的经典方法,通过利用 pretext 任务获得的编码器 将数据投影至浅空间,然后让实例的聚类分配与其最近邻的聚类分配预测尽可能相似:
其中, 指的是第 个实例的 个邻居。第一项让领域样本之间的预测尽可能相似,第二项则是防止所有样本分配到同一个簇内(IMSAT 讨论过的)。此外,像 NNM [18] 和 GCC [19] 则是利用了对比学习实现了邻域一致性。
2.5 伪标签引导
随着聚类方法的不断进步,所预测的类别也越来越准确,尤其是一些可信度比较高的样本点,其聚类指派完全可以作为伪标签来使用。换句话说,一个非常重要的先验是,聚类结果中的一些样本可以作为半监督学习的标签来使用,将无监督的聚类表示学习,逐渐过渡到伪标签引导的半监督学习方式,提升聚类的性能。
▲ 图6 基于伪标签引导的聚类
首先来讲一个非常经典的方法 DEC [20],在模型 warm up 后,利用 -means 初始化聚类中心 ,然后采用 t 分布获得每个样本聚类指派的 soft label :
接着,我们对伪标签进行“锐化”:假定模型预测的结果 就是样本i的真实标签,我们希望朝着这样的的 one-hot 向量优化,其“锐化”后的 soft label 为:
其中 ,接着我们利用 KL 散度去拉进 和 。
不过,伪标签中存在大量噪声,DEC 显然没有进行筛选和过滤,导致了错误累计和效果不佳。伪标签引导能否起效的关键就是伪标签的质量,比如 SCAN [17] 中划定一个阈值,将置信度较高的样本才作为学习样本:
注意这里的 与前面定义不一样,是聚类头的类指派。
TCL [21] 将这种筛选进一步优化,对每个类都进行高置信度样本的筛选:
这样做可以让挑选的伪标签类别分布更加平衡,使得模型对简单和困难类簇的关注度得到一定的平衡。
在 SPICE [22] 中,还利用了半监督学习方法 FixMatch 中许多技术,比如增广不变性 Loss 等。
总结来说,这类方法的核心就在于如何挑选伪标签样本和如何对伪标签进行有效利用。
2.6 外部知识引导
目前,已有大量聚类方法专注于利用数据本身的先验(如结构先验、分布先验和增广不变性先验)来对数据进行聚类。然而,它们忽略了如何利用丰富的外部知识来指导聚类。
举例来说,柯基和巴哥犬的图片有明显的差异,但其和柴犬在外观上十分相似,仅依据图像本身难以对二者进行区分。但值得注意的是,在数据内蕴信息之外,现实世界中还存在着大量有助于聚类的外部知识。在上述例子中,假设模型具备来自知识库的“柯基腿较短,而柴犬腿较长”等非图像域的外部先验,则能更准确地对二者的图像进行区分。
换而言之,与其从数据中竭力地挖掘内部监督信号,利用更加丰富且容易获得的外部知识来引导聚类,有望起到事半功倍的效果。如图 8 所示,最近的工作 TAC [4] 提出了外部引导的深度聚类新范式,通过利用文本模态中的语义信息,显著提升了图像聚类性能。
▲ 图8 基于外部知识引导的聚类方法
具体而言,TAC 主要包括三个主要步骤:
1. 文本空间构建:
从 WordNet 中挑选出最能区分图像语义中心的文本,构建文本语义空间。具体地,首先利用 -means 生成图像的语义中心:
其中, 表示图像的特征向量, 是指示函数, 是图像语义中心的数量。然后,WordNet 中所有文本嵌入 按相似性分配到语义中心:
选取每个语义中心中最具代表性的 个文本,形成文本语义空间。
2. 获取图像的 Counterpart
为每个图像生成对应的文本特征(counterpart),这里的 counterpart 是由第一步筛选出的文本嵌入表示加权融合得到的,计算方式如下:
其中 为温度参数。
3. 跨模态互蒸馏
通过互蒸馏更好地利用图像模态和文本模态的特征,相互促进以获取更精确的聚类分配。首先,分别对图像特征和文本特征(counterpart)计算聚类分配。
图像模态:
文本模态:
其中, 和 分别是图像和文本的聚类分配, 和 分别是其最近邻的聚类分配。
然后,通过对齐模态间的邻居信息(即图像对齐文本的邻居,文本对齐图像的邻居)实现互蒸馏,注意是从类别级做对齐(参考增广不变性先验中 CC 的类别级对比学习),该损失包含从图像到文本的蒸馏,以及从文本到图像的蒸馏,即:
其中, 表示相似度(如余弦相似度), 是温度参数, 和 是对应的聚类表示,即 和 的列向量。总的损失如下:
值得注意的是,TAC 还发现即使没有使用互蒸馏的损失进行训练,仅仅将图像和图像的 counterpart 进行组合,然后再进行 -means,即可在无需任何额外训练的情况下提高了聚类性能。这充分说明了利用额外的语义来辅助聚类过程,能赋予样本更准确的语义(增强样本的判别性),从而有助于提升聚类性能。
数据集及方法对比
3.1 数据集
早期的浅层方法在相对较小且低维度的数据集(例如 COIL-20、YaleB)上进行评估。最近,随着深度聚类方法的快速发展,聚类任务的性能评估往往在数据量更大、类别数更多,数据维度更广的数据集(上进行。目前有五个被广泛使用的基准数据集:
-
CIFAR-10 由来自 10 个不同类别的 60000 张 RGB 图像组成,包括飞机、汽车、鸟、猫、鹿、狗、青蛙、马、船和卡车。
-
CIFAR-100 包含 100 个类别,分为 20 个超类。每张图像都带有一个 “细粒度” 类别标签和一个 “粗粒度” 超类标签。
-
STL-10 包含来自 10 个对象类别的 13000 张有标签图像。此外,它还提供了 100000 张无标签图像用于自监督学习,以提高聚类性能。
-
ImageNet-10 是 ImageNet 数据集的一个子集。它包含 10 个类别,每个类别有 1300 张高分辨率图像。
-
ImageNet-Dog 是 ImageNet 的另一个子集。它由属于 15 个犬种的图像组成,适用于细粒度聚类任务。
除了这些数据集之外,一些最近的工作还采用了两个更具挑战性的大规模数据集,即 Tiny-ImageNet 和 ImageNet-1K,以评估其有效性和效率,细节如表 1 所示。
▲ 表1 图像聚类常见数据集
常见的评价指标是Accuracy(ACC),Normalized Mutual Information(NMI),and Adjusted Rand Index (ARI)。由于很多工作都讲了,我们也不过多赘述。数据集在这里有:
https://github.com/XLearning-SCU/2024-ICML-TAC
3.2 方法对比
由于神经网络具备更强的特征提取能力,基于结构和分布先验的早期深度聚类方法比经典的 -means 方法实现了更好的性能。接着,一系列对比聚类方法通过数据增广引入额外的先验,显著提高了性能。之后,更先进的方法通过进一步考虑邻域一致性(GCC 与 CC 相比)和利用伪标签(SCAN 与 SCAN 相比)提升了性能。
值得注意的是,不同先验的性能提升是独立的。例如,ProPos 通过同时利用增广不变性和伪标签先验,显著优于 DEC 和 CC。最近,基于外部知识的方法实现了最 SOTA 的性能,这证明了这种新的深度聚类范式具有广阔的前景。此外,当类别数量增加(从 CIFAR-10 到 CIFAR-100)或语义变得更复杂(从 CIFAR-10 到 ImageNet-Dogs)时,聚类变得更具挑战性。
这些结果表明,在未来的工作中,像完整的 ImageNet-1K 这样更具挑战性的数据集有望成为基准。具体的效果对比如表 2 所示。
▲ 表2 图像聚类算法性能对比
未来展望
前面提到的这些聚类方法和先验知识,都是针对比较常见的聚类任务,然而,有一些聚类任务因为数据特点和先验知识的改变,带来了新的问题和挑战。在最后这一节,我们来聊一聊未来的聚类研究方向和一些聚类分支任务。
4.1 细粒度聚类
常用的聚类数据集中,类别一般都是粗粒度的一些常见物体,例如向 CIFAR-10 中,有汽车、飞机、猫、狗等 10 个类别,这些类别整体上的差异就比较大,易于区分。
而对细粒度的类别之间通常只有很微小的区别,例如,不同品种的鸟类的总体形态上可能差异小,需要通过羽毛的颜色、不同的花纹、喙的形状的细粒度特征来区分。这就会导致一些先验知识在细粒度聚类中失效,例如增广不变性中的颜色增广(color jitter)就会变成错误的先验。目前,细粒度聚类仍然是一个非常有挑战性的方向。
4.2 无参数聚类
一般的聚类算法虽然聚类过程是无监督的,但是类别个数 k 通常是提前给定的,这种需求在很多实际应用中带来了挑战,特别是在没有人工标注数据的情况下,很难准确地确定数据集所包含的潜在类别数。如图像分割、文本聚类和生物信息学分析等,数据的结构可能是复杂的,类别之间的边界不明显。
这就使得通过人工方式选择合适的 k 变得非常困难。例如,在基因表达数据中,基因的聚类并非总是具有明确的分界,因此,如何在没有先验知识的情况下自动推断出类别数量,就成为了一个重要的研究问题。
4.3 公平聚类
数据的收集通常伴随着一些数据集Bias,例如不同地域、种族和文化导致的偏见等等。同时,一些少数群体和个例也往往会被忽视,导致聚类的结果不能真实反映最根本的数据特征。
为了克服这种问题,公平聚类的概念被提出:在聚类过程中避免数据中的敏感属性,例如性别,种族,RNA 测序技术等主导聚类结果。目前公平聚类的数据集、评价指标都不是非常完善,仍然有很大的研究空间。
4.4 多模态聚类
多模态/视图聚类也是一个比较重要的方向,随着现在数据收集手段的进步,我们对样本能跟拥有更全面的感知,例如可见光图像、红外、3D 点云等,这些多模态信息在聚类任务中如何相互补充、相互利用,帮助模型更好的对不同类别的样本进行聚类,也是未来重要的研究方向。
如何学习大模型 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 的正确特征了。