我们知道,RAG旨在将知识检索和语言生成无缝结合,赋予语言模型利用外部知识的能力,Embedding技术在RAG系统中发挥着至关重要的作用:
-
知识表示:RAG系统需要将外部知识库(如维基百科)中的文档表示为连续的向量形式,以便与查询和上下文进行匹配。这里,高质量的文档Embedding是系统性能的关键保证。
-
语义匹配:RAG系统需要在海量文档集合中快速、准确地检索出与查询最相关的证据文档。这依赖于查询和文档Embedding在语义空间中的相似度计算。高质量的Embedding可以显著提升检索的效果。
-
知识融合:RAG系统需要将检索到的证据文档的知识融入到语言生成过程中,以生成知识丰富、语义连贯的答案。这要求语言模型能够理解和利用文档Embedding所承载的知识。高质量的Embedding是知识融合的前提。
可以看到,Embedding技术贯穿了RAG系统的各个环节,是其有效运作的核心基础。没有高质量的Embedding作为支撑,RAG系统就难以实现知识检索和语言生成的无缝连接,也难以在知识密集型任务上取得理想的性能。
因此,深入理解Embedding技术的原理和发展脉络,对于掌握RAG系统的核心要义至关重要。在接下来的章节中,我们全面探讨了Embedding技术的发展历程,从早期的符号表示方法,到浅层词嵌入模型,再到深度预训练语言模型,通过对这些内容的系统梳理和深入分析,读者将对Embedding技术的发展脉络有一个全面的认识。
1 引言
Embedding是一种将离散变量(如单词、用户ID等)映射到连续向量空间的技术。在这个向量空间中,语义相似的对象会被映射到相邻的位置,从而让计算机能够更好地理解和处理这些离散变量之间的关系。Embedding技术广泛应用于自然语言处理、推荐系统、计算机视觉等领域,是现代人工智能的重要基石之一。
在形式化地定义Embedding之前,我们先直观地理解一下这个概念。以自然语言处理中的词嵌入(Word Embedding)为例,我们希望将每个单词映射到一个固定维度的连续向量。这个向量应当捕捉单词的语义信息,使得语义相似的单词(如“king”和“queen”)在向量空间中距离较近,而语义不相关的单词(如“king”和“apple”)在向量空间中距离较远。我们可以将Embedding形式化地定义为一个映射函数:
Embedding技术之所以在机器学习中占据重要地位,主要有以下几个原因:
-
连续化表示:Embedding将离散变量映射到连续向量空间,使得我们可以使用连续优化的方法(如梯度下降)来学习模型参数,克服了离散优化的困难。
-
降维:现实世界中的离散变量集合通常非常大(如自然语言中的单词表),直接对这些高维离散变量进行建模和计算非常困难。Embedding将离散变量映射到一个相对低维的连续空间,在保留重要信息的同时降低了计算复杂度。
-
语义关系建模:通过Embedding学习到的向量表示,我们可以很好地刻画离散变量之间的语义关系。例如,在词嵌入空间中,我们可以进行词的类比推理(如"king - man + woman ≈ queen"),捕捉词之间的语义关系。
-
迁移学习:预训练的Embedding可以作为下游任务的输入,实现知识的迁移和复用。例如,在自然语言处理中,我们可以使用在大规模语料库上预训练的词向量来初始化下游任务的模型参数,提升模型性能。
2 早期符号表示方法
在自然语言处理的早期阶段,研究者主要采用符号化的方法来表示词汇和文本。这些方法将每个词视为一个独立的符号,忽略了词之间的语义关系。下面我们详细介绍几种典型的符号表示方法。
One-Hot Encoding
One-Hot Encoding是最简单、最直观的词表示方法。它为词表中的每个词分配一个唯一的索引,然后用一个长度等于词表大小的二进制向量来表示每个词。这个向量在对应词的索引位置上取值为1,其他位置上取值为0。
One-Hot Encoding的优点是简单直观,易于实现。但它也存在以下问题:
-
维度灾难:对于大型词表,One-Hot向量会变得非常稀疏且高维。例如,一个包含10万个词的词表,每个词的One-Hot向量就有10万维,但其中只有一个元素为1,其余全为0。这样的高维稀疏向量会带来存储和计算的巨大开销。
-
无法表示词之间的相似性:One-Hot Encoding将每个词视为独立的符号,无法刻画词之间的语义相似性。例如,“apple”和“banana”在语义上都属于水果,但它们的One-Hot向量是正交的,无法体现这种相似性。
Bag-of-Words (BoW) 表示
Bag-of-Words是一种常用的文本表示方法。它将一段文本表示为其中出现的词的集合,不考虑词的顺序和语法结构。具体来说,BoW将文本表示为一个长度等于词表大小的向量,向量的每个元素表示对应词在文本中出现的次数或频率。
BoW表示的优点是简单高效,能够快速将文本转化为定长向量。但它也存在一些局限性:
-
忽略了词序信息:BoW只关注词的出现频率,忽略了词在文本中的顺序。例如,"I love apple"和"apple love I"在BoW表示下是一样的,但实际上它们的语义差异很大。
-
无法刻画词之间的语义关系:与One-Hot Encoding类似,BoW表示也无法体现词之间的语义相似性。不同词之间的关系在BoW向量中是不可见的。
TF-IDF 表示
TF-IDF (Term Frequency-Inverse Document Frequency)是一种对BoW表示的改进。它不仅考虑词在文本中的出现频率,还考虑词在整个语料库中的出现频率。TF-IDF的基本思想是,如果一个词在当前文本中出现频率高,但在整个语料库中出现频率低,则认为这个词对当前文本的重要性高。
通过对早期符号表示方法的分析,我们可以看出它们存在以下共同的局限性:
-
高维稀疏:对于大型词表,这些方法得到的向量表示通常是高维稀疏的,带来了存储和计算的困难。
-
无法刻画语义关系:这些方法将词视为独立的符号,无法体现词之间的语义相似性和类比关系。
-
忽略词序和语法结构:尤其是BoW和TF-IDF,它们忽略了词在文本中的顺序和语法结构,无法准确表达文本的语义。
这些局限性阻碍了自然语言处理技术的进一步发展。为了克服这些问题,我们需要一种新的表示方法,能够将词映射到一个低维连续的语义空间,并且能够刻画词之间的语义关系。Embedding技术应运而生,它不仅解决了稀疏高维的问题,还为捕捉语义信息提供了新的可能。
表示学习
表示学习是指通过机器学习的方法,自动学习数据的特征表示。传统的机器学习方法通常依赖人工设计的特征,这些特征的质量直接影响模型的性能。而表示学习旨在让模型自行学习最优的特征表示,从而提高模型的泛化能力和鲁棒性。
神经网络是实现表示学习的重要工具。通过多层非线性变换,神经网络可以将原始输入数据逐步转化为更加抽象、更加信息丰富的特征表示。这些特征表示可以捕捉数据的内在结构和规律,有助于下游任务的学习和预测。
在自然语言处理领域,研究者们早期尝试将神经网络用于词的表示学习。这些方法通常基于以下思路:
-
将词表示为One-Hot向量,作为神经网络的输入。
-
使用浅层神经网络(如单隐藏层的前馈网络)对One-Hot向量进行变换,得到低维稠密的词向量。
-
通过训练神经网络完成特定的任务(如语言模型、词性标注等),间接地学习词向量。
这些早期的尝试虽然取得了一定的效果,但仍然存在局限性:
-
词表征质量有限:由于输入是高维稀疏的One-Hot向量,神经网络难以学习到高质量的词表征。
-
计算效率低:训练浅层神经网络的计算开销较大,难以处理大规模语料库。
-
任务依赖性强:词向量的学习依赖于特定的任务,难以迁移和复用。
尽管存在这些局限性,但早期的Embedding方法为后续的发展奠定了基础。研究者们意识到,将神经网络与表示学习相结合,有望突破传统方法的瓶颈,实现词表征的质的飞跃。与传统的符号表示方法相比,基于神经网络的Embedding方法具有以下优势:
-
低维连续表示:神经网络学习到的Embedding向量通常是低维且稠密的,克服了高维稀疏表示的缺陷。
-
语义信息捕捉:通过神经网络的非线性变换,Embedding向量可以捕捉词之间的语义相似性和类比关系。
-
端到端学习:Embedding向量可以与具体任务的训练目标相结合,实现端到端的联合学习和优化。
-
迁移性和复用性:预训练得到的Embedding向量可以应用于多种下游任务,实现知识的迁移和复用。
这些优势为Embedding技术的进一步发展奠定了坚实的基础。接下来,我们将介绍一系列里程碑式的Embedding模型,如Word2Vec、GloVe、BERT等,看看研究者们如何不断突破界限,推动Embedding技术走向成熟和繁荣。
3 Word2Vec的提出与应用
在前面内容中,我们介绍了神经网络与表示学习的结合,以及早期Embedding方法的尝试和局限性。对此,我们将迎来Embedding技术发展的重要里程碑——Word2Vec模型的提出,看看它如何彻底改变了自然语言处理领域的格局。
Word2Vec是由Tomas Mikolov等人于2013年提出的一种词嵌入模型。它通过简单而高效的神经网络结构,在大规模语料库上训练得到高质量的词向量表示,引发了Embedding技术的革命性突破。
Word2Vec实际上包括两种模型结构:连续词袋模型(Continuous Bag-of-Words, CBOW)和Skip-gram模型。
CBOW模型
CBOW模型的目标是通过上下文词预测中心词。它的输入是当前词的上下文,输出是当前词本身。模型结构如下图所示:
具体来说,CBOW模型的训练过程如下:
-
将上下文词的One-Hot向量作为输入,通过一个线性变换(投影层)得到上下文词的Embedding向量。
-
将上下文词的Embedding向量求和或取平均,得到上下文的整体表示。
-
通过另一个线性变换(输出层)和softmax函数,计算生成中心词的概率分布。
-
使用交叉熵损失函数,比较预测分布与真实分布的差异,并通过反向传播算法更新模型参数。
通过这个过程,CBOW模型可以学习到上下文和中心词之间的语义关系,得到高质量的词向量表示。
Skip-gram模型
Skip-gram模型与CBOW模型的思路相反,它的目标是通过中心词预测上下文词。
Skip-gram模型的训练过程与CBOW类似,区别在于:
-
将中心词的One-Hot向量作为输入,通过投影层得到中心词的Embedding向量。
-
通过输出层和softmax函数,计算生成上下文词的概率分布。
-
使用交叉熵损失函数,比较预测分布与真实分布的差异,并通过反向传播算法更新模型参数。
通过这个过程,Skip-gram模型可以学习到中心词和上下文之间的语义关系,得到高质量的词向量表示。
尽管CBOW和Skip-gram模型结构简单,但在实际训练过程中仍然面临挑战。其中最主要的问题是,softmax函数需要遍历整个词表(通常包含数十万甚至上百万个词),计算每个词的概率,导致计算开销非常大。
为了解决这个问题,研究者提出了两种改进方法:负采样(Negative Sampling)和层次Softmax(Hierarchical Softmax)。
负采样和层次Softmax都大大提高了Word2Vec模型的训练效率,使得在大规模语料库上训练高质量词向量成为可能。
Word2Vec模型的提出,掀起了Embedding技术的革命浪潮。它不仅在学术界引发了广泛的关注和研究,也在工业界得到了大规模应用。Word2Vec的影响主要体现在以下几个方面:
-
词的语义表示:Word2Vec学习到的词向量可以很好地捕捉词之间的语义相似性和类比关系。例如,vec(“king”) - vec(“man”) + vec(“woman”) ≈ vec(“queen”),展现了词向量的语义运算能力。
-
预训练词向量的广泛应用:基于大规模语料库预训练得到的词向量,可以作为下游任务的输入,显著提升模型性能。这种预训练+微调的范式,已经成为自然语言处理的标准流程。
-
Embedding思想的推广:Word2Vec的成功,启发研究者将Embedding思想拓展到其他领域,如图表示学习、推荐系统、知识图谱等,催生了一系列创新性工作。
-
工业界的普及应用:Word2Vec凭借其简洁高效的特点,在工业界得到了广泛应用。许多大型科技公司,如Google、Facebook、Amazon等,都将Word2Vec集成到其产品和服务中,如搜索引擎、广告推荐、智能助手等。
Word2Vec的提出是Embedding技术发展的重要里程碑。它不仅彻底改变了自然语言处理的研究范式,也为其他领域的Embedding研究指明了方向。在Word2Vec的基础上,研究者们不断探索新的模型和方法,推动Embedding技术走向更加成熟和繁荣。
GloVe模型的发展
GloVe(Global Vectors for Word Representation)是由斯坦福大学的Pennington等人于2014年提出的一种词嵌入模型。与Word2Vec不同,GloVe从词共现统计的角度出发,试图显式地编码词之间的全局统计信息,以学习更加有效的词向量表示。
GloVe和Word2Vec都是经典的词嵌入模型,它们在学习词向量的方式上存在一些差异:
-
训练目标不同:Word2Vec采用预测的方式,通过最大化中心词生成上下文词(Skip-gram)或上下文词生成中心词(CBOW)的概率来学习词向量;而GloVe采用重构的方式,通过最小化词向量内积与共现概率对数之间的差异来学习词向量。
-
信息利用不同:Word2Vec主要利用局部的上下文信息,通过滑动窗口在语料库中采样训练样本;而GloVe不仅利用局部的上下文信息,还显式地编码了全局的共现统计信息。
-
对稀疏词的处理不同:Word2Vec对高频词和低频词一视同仁,可能导致低频词的词向量质量较差;而GloVe在损失函数中引入了权重函数,可以根据词频的不同赋予不同的重要性,从而更好地学习稀疏词的词向量。
尽管存在这些差异,但GloVe和Word2Vec在很多任务上都取得了相近的性能。它们可以看作是从不同视角来学习词向量,互为补充。
GloVe模型的提出,进一步推动了Embedding技术的发展。GloVe的主要贡献包括:
-
全局统计信息的利用:GloVe首次明确提出利用全局共现统计来学习词向量,开辟了一条新的研究思路。这启发了后续一系列基于全局信息的Embedding模型,如FastText、Swivel等。
-
任务无关的词向量学习:与Word2Vec类似,GloVe学习到的词向量是任务无关的,可以作为下游任务的预训练初始化,带来显著的性能提升。这种预训练范式已成为自然语言处理的标配。
-
开源工具包的普及:斯坦福大学开源了GloVe的训练代码和预训练词向量,使得研究者和开发者可以方便地使用和fine-tune GloVe模型。这极大地推动了GloVe在学术界和工业界的应用。
-
多语言和领域适配性:GloVe在多种语言和领域的数据上都展现出了良好的性能,表明其可以有效地捕捉不同语言和领域的词汇语义。这为跨语言和跨领域的研究提供了重要工具。
GloVe模型在词嵌入技术的发展历程中占据着重要地位。它与Word2Vec一起,构成了经典词嵌入模型的双璧,为后续的研究奠定了坚实的基础。
4 深度学习时代的崛起
在前面内容中,我们探讨了Embedding技术的发展历程,从早期的符号表示方法,到Word2Vec和GloVe等经典词嵌入模型。至此,我们将进入深度学习时代,看看深度神经网络如何为Embedding技术注入新的活力,带来更加强大和灵活的表示学习能力。
深度学习是机器学习的一个子领域,它利用多层神经网络来自动学习数据的层次化表示。与传统的浅层模型相比,深度学习模型具有更强的表示能力和灵活性,能够从海量复杂数据中学习到高级抽象特征。近年来,深度学习在计算机视觉、语音识别、自然语言处理等领域取得了突破性进展,成为人工智能的核心技术之一。
深度神经网络与Embedding技术的结合,主要体现在以下几个方面:
-
Embedding层的引入:在DNNs中,我们可以显式地引入Embedding层,将离散变量(如单词、用户ID等)映射为稠密向量。这些Embedding向量可以随着网络的训练而不断更新,学习到最优的表示。
-
上下文感知的Embedding表示:传统的词嵌入模型(如Word2Vec、GloVe)学习的是静态的词向量,即每个词都对应唯一的向量表示。而在DNNs中,我们可以通过上下文编码器(如RNN、Transformer等)来学习动态的、上下文感知的词向量。这使得同一个词在不同上下文中可以有不同的向量表示,更好地捕捉词义的多样性。
-
任务驱动的Embedding学习:在DNNs中,Embedding层通常与具体任务(如分类、序列标注等)的损失函数紧密相连。这使得Embedding的学习是任务驱动的,能够自动优化出最适合当前任务的向量表示。
-
多模态Embedding的融合:DNNs为多模态Embedding的融合提供了便捷的框架。我们可以设计专门的融合层(如Concatenation、Attention等),将不同模态(如文本、图像、音频等)的Embedding向量有机结合,实现跨模态的信息交互和对齐。
-
预训练与微调:在DNNs中,我们可以先在大规模无监督数据上对Embedding层进行预训练,然后在具体任务上进行微调。这种预训练-微调范式能够有效利用无监督数据,提高Embedding表示的质量和泛化能力。
深度学习技术的引入,极大地拓展了Embedding技术的边界。它使得我们能够学习更加强大、灵活、适应性强的向量表示,更好地服务于下游的人工智能任务。
5 多模态Embedding的出现
随着人工智能技术的快速发展,我们面临的数据越来越多样化,不仅包括文本,还有图像、音频、视频等多种模态。这些不同模态的数据虽然形式各异,但往往蕴含着相关的语义信息。例如,一张图像和一段文字描述可能指向同一个物体或场景;一段语音和一段文本可能表达相同的意思。如何有效地利用这些跨模态数据,实现全面准确的语义理解和生成,是人工智能面临的重要挑战。
多模态Embedding技术应运而生,其目标是将不同模态的数据映射到一个共享的语义空间,使得不同模态的数据可以用统一的向量表示,并在这个空间中进行比较、匹配、转换等操作。这不仅有助于解决数据稀疏、知识迁移等问题,还为跨模态的检索、生成、问答等应用奠定了基础。多模态Embedding可以形式化地定义为一个映射函数:
根据不同模态数据的特点和交互方式,多模态Embedding可以分为以下几类:
-
对齐型Embedding:对齐型Embedding旨在学习不同模态数据之间的对应关系,使得语义等价的跨模态数据在共享空间中尽可能对齐。典型的任务包括图像-文本检索、视频-文本对齐等。常用的方法有Canonical Correlation Analysis (CCA)、Deep CCA、Ranking Loss等。
-
转换型Embedding:转换型Embedding旨在学习不同模态数据之间的转换关系,使得一种模态的数据可以转换或生成另一种模态的数据。典型的任务包括图像描述、语音合成、文本生成等。常用的方法有Sequence-to-Sequence模型、Generative Adversarial Networks (GANs)、Variational Autoencoders (VAEs)等。
-
融合型Embedding:融合型Embedding旨在将不同模态的数据有机融合,生成一个联合的、信息更丰富的表示。典型的任务包括多模态分类、多模态情感分析、多模态问答等。常用的方法有Multimodal Deep Learning、Tensor Fusion Network、Attention-based Fusion等。
-
协同型Embedding:协同型Embedding利用一种模态的数据来辅助另一种模态数据的表示学习,实现跨模态的知识迁移和信息增强。典型的任务包括零样本学习、跨模态检索等。常用的方法有Cross-modal Transfer Learning、Heterogeneous Embedding等。
这些不同类型的多模态Embedding方法,适用于不同的应用场景和任务需求。在实践中,我们需要根据具体问题的特点,选择合适的多模态Embedding技术,并进行针对性的设计和优化。
6 预训练模型的崛起
在前面内容中,我们探讨了多模态Embedding技术,了解了如何将文本、图像、音频等不同模态的数据统一表示,实现跨模态的语义理解和生成。现在为止,我们将目光聚焦于近年来自然语言处理领域的一个重大突破——预训练语言模型的崛起,看看它是如何革新Embedding技术,引领NLP技术走向新的高度。
预训练语言模型(Pre-trained Language Models)是指在大规模无监督文本数据上预先训练的通用语言表示模型。与传统的词嵌入模型(如Word2Vec、GloVe等)相比,预训练语言模型具有以下优势:
-
上下文感知:预训练语言模型能够学习到上下文相关的词表示,即同一个词在不同上下文中可以有不同的向量表示。这使得模型能够更好地理解词语的语义和句法角色。
-
深层次抽象:预训练语言模型通常采用深层的神经网络结构(如Transformer),能够学习到更加抽象和高级的语言表示。这有助于模型捕捉长距离依赖和复杂的语言结构。
-
迁移性强:在大规模语料库上预训练得到的通用语言表示,可以方便地迁移到下游的各种NLP任务中,并显著提升任务性能。这种"预训练-微调"范式极大地节省了任务特定数据的标注成本。
-
知识丰富:预训练语言模型在海量文本数据中学习,能够自动捕捉到大量的语言知识和世界知识。这些知识可以通过恰当的机制(如注意力、知识蒸馏等)引入到下游任务中,增强模型的语义理解和推理能力。
可以说,预训练语言模型的出现,标志着NLP技术进入了一个全新的时代。它不仅极大地提升了各类NLP任务的性能,也为NLP技术的工业化应用奠定了坚实的基础。下面,我们将重点介绍几个里程碑式的预训练语言模型。
-
ELMo:ELMo(Embeddings from Language Models)是由AI2(Allen Institute for Artificial Intelligence)在2018年提出的预训练语言模型。ELMo采用双向LSTM(Long Short-Term Memory)网络,在大规模文本语料库上训练两个语言模型:一个前向模型(从左到右)和一个后向模型(从右到左)。通过concatenate三个不同层次(词、句法、语义)的隐藏状态,ELMo能够生成上下文相关的词表示。在下游任务中,ELMo生成的词向量可以与任务特定的架构(如CNN、LSTM等)相结合,实现端到端的微调训练。实验表明,ELMo在多个NLP任务(如问答、文本蕴含、语义角色标注等)上取得了显著的性能提升,展现出预训练语言模型的巨大潜力。
-
GPT:GPT(Generative Pre-Training)是由OpenAI在2018年提出的预训练语言模型。与ELMo不同,GPT采用单向的Transformer结构,通过自回归的方式(预测下一个词)训练语言模型。GPT在大规模无监督语料库(如BooksCorpus)上进行预训练,学习通用的语言表示。在下游任务中,GPT采用两阶段的微调方式:第一阶段在任务特定的有标注数据上微调,第二阶段在无标注数据上进行无监督微调。这种方式能够充分利用任务数据和无监督数据,进一步提升模型性能。GPT在多个NLP任务(如文本分类、问答、语言推理等)上取得了State-of-the-art的结果,展示了预训练语言模型的强大泛化能力。
-
BERT:BERT(Bidirectional Encoder Representations from Transformers)是由Google在2018年提出的预训练语言模型,被誉为NLP领域的"ImageNet时刻"。BERT采用双向的Transformer编码器结构,通过Masked Language Model(MLM)和Next Sentence Prediction(NSP)两个预训练任务,在大规模无监督语料库(如Wikipedia、BooksCorpus)上学习通用的语言表示。与GPT不同,BERT在预训练阶段采用双向的注意力机制,能够同时利用上下文的左右信息。这使得BERT能够学习到更加全面和准确的语言表示。在下游任务中,BERT采用简单的微调方式,通过在顶层添加任务特定的输出层,实现端到端的微调训练。BERT在11项NLP任务上取得了显著的性能提升,刷新了多项记录,引发了学术界和工业界的广泛关注和追捧。
7 后BERT时代
BERT的成功,掀起了预训练语言模型的研究热潮。此后,大量的BERT变体和改进模型不断涌现,推动NLP技术不断向前发展。其中具有代表性的有:
-
RoBERTa:通过改进训练过程(如动态掩码、更大批次、更多数据等),进一步提升BERT的性能。
-
XLNet:融合了自回归语言建模(如Transformer-XL)和自编码建模(如BERT)的优点,引入排列语言建模(Permutation Language Modeling)的预训练任务,在多个任务上超越BERT。
-
ALBERT:通过参数共享和嵌入分解,大幅减少BERT的参数量,同时保持甚至提升性能。
-
T5[7]:将NLP任务统一表示为文本到文本的形式,采用编码器-解码器结构,在多个NLP任务上取得SOTA性能。
-
GPT-3:进一步扩大模型和数据规模(1750亿参数),通过Few-shot Learning的方式,在多个NLP任务上展现出惊人的性能,掀起了大模型和小样本学习的新浪潮。
-
M3E:是由 MokaAI 开发的开源中文 Embedding 模型,采用先进的训练方法和千万级中文语料库训练而成,在文本分类、情感分析、问答系统等 NLP 任务中表现出新 SOTA 水平。
-
BGE是由智源研究院推出的开源语义向量模型,被誉为“最强语义向量模型”,在语义理解和跨语言映射方面取得了显著进展。它在各项语义表征能力评测中全面超越同类开源模型,尤其在语义检索能力上大幅领先。BGE 支持多语言、多种检索方式和多粒度输入,适用范围广泛
这些预训练语言模型的快速迭代和演进,推动NLP技术不断突破性能上限,也为复杂NLP任务的解决提供了新的思路和方法。预训练语言模型已经成为当前NLP技术的核心范式,正在深刻影响和重塑整个NLP领域。
如何学习大模型 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 的正确特征了。