一站式 LLM入门
1. Introduction:人工智能概述
1.1 人工智能概念与分支
-
人工智能(Artificial Intelligence)是让各类机器载体上模拟并拥有类似生物的智能,让机器可以进行感知、学习、识别、推理等行为的计算机科学 技术。
-
人工智能是计算机科学的分支,涉及领域包括计算机视觉(Computer Vision,CV)、自然语言处理(Natural Language Processing,NLP)、语音识别(Voice Recognition)、语音生成(Text to Speech,TTS)、知识图谱(Knowledge Graph)等。本文档系大语言模型入门材料,因此主要关注NLP领域的技术。
-
从学术角度来看,人工智能有三大学派:符号主义(Symbolicism)、联结主义(Connectionism)、行为主义(Actionism)。
-
机器学习是人工智能的核心,现在最前沿的AI技术的主流算法都是基于神经网络和强化学习。
| 学派分类 | 符号主义 | 连结主义 | 行为主义 |
|---|---|---|---|
| 思想起源 | 数理逻辑:基于统计方法,通过建模预测让机器通过计算来模拟人的智能,实现识别、预测等任务 | 仿生学:生物智能是由神经网络产生的,可以通过人工方式构造神经网络,训练神经网络产生智能。 | 生物的智能来自对外界的复杂环境进行感知和适应,通过与环境和其他生物之间的相互作用,产生更强的智能。 |
| 代表算法 | 朴素贝叶斯,逻辑回归,决策树,支持向量机 | 神经网络 Neural Network | 强化学习 Reinforcement Learning |
1.2 机器学习
-
机器学习(Machine Learning,ML)是实现人工智能的核心方法,是从有限的观测数据中“学习”(or“猜测”)出一个具有一般性的规律,并利用这些规律对未知数据进行预测的方法。
-
传统的机器学习主要关注如何学习一个预测模型,一般需要首先将数据表示为一组特征(Feature),特征的表示形式可以是连续的数值/离散的符号等形式。而后将这些特征输入到预测模型,并输出预测结果。这类机器学习可以看作是浅层学习(Shallow Learning),其重要特点是不涉及特征学习,其特征主要靠人工经验或者特征转换方法来提取。

1.3 机器学习的分类:根据学习范式分类
根据学习范式的不同,机器学习可分为有监督学习、无监督学习、自监督学习和强化学习
1.3.1 有监督学习 Supervised Learning
1.3.1.1 有监督学习的基本定义
-
**有监督学习(Supervised Learning):机器学习中一种常见的学习范式,其基本思想是利用带有标签的训练数据来训练模型,从而使其能够从输入数据中学习到输入与输出之间的映射关系,然后可以利用这个映射关系对新的未标签数据进行预。 <***是不是很像人通过刷题的学习过程?带了标准答案的习题集去刷题,如果做错了就根据错误的原因反思改进。当新的题目到来时,便可根据过去刷题的经验来去写新的题目。*>
-
有监督学习的训练集要包括输入(特征)****输出(目标),其中,输出是人工标注的。
-
有监督学习的例子:训练一个模型用于识别一个公司的财务报表是否有财务舞弊:有1000份财务报表,每份报表上体现了资产负债率、现金流量等关键数据,我们用X指代。报表有500份舞弊的和500份没有舞弊的。
-
那么,我们就有一个1000个样本的训练数据集;X是每个训练样本的输入或者特征;样本是否舞弊则是由人工标注的输出或者**目标。**于每一份输入的训练数据,都是有一个确定的预期输出结果的,因此称为“有监督”。我们可以称这样的训练样本为“带标签的输入、输出对”。
-
利用这个训练数据集,我们对算法进行训练。整体而言,训练出了一个函数f(X),他“学习”了训练集中f(X1) = 舞弊,f(X2) = 正常,f(X3)=正常,f(X4) = 舞弊, ……,f(X1000)=舞弊的信息。当我们给出一份新的报表时,他也可以帮我们判断这个报表是舞弊的还是正常的了。
-
有监督学习的步骤如下:
1.3.1.2 有监督学习的典型应用
分类(Classification):预测输入样本属于哪个类别或者类别的概率分布。典型的例子包括垃圾邮件分类、图像分类等。
回归(Regression):预测输入样本的数值输出,通常是连续的实数值。典型的例子包括房价预测、股票价格预测等。
目标检测(Object Detection):在图像或者视频中检测出目标物体的位置和类别。例如自动驾驶中识别出道路上的车辆、行人、交通标志等;或者人脸识别中判断出哪一部分是人脸。
序列生成(Sequence Generation):根据输入的序列生成输出的序列,如机器翻译、音乐生成等。
序列标注(Sequence Labeling):序列标注是一种常见的机器学习任务,其中输入数据通常是序列数据,例如文本、语音、生物信息学等。有监督学习可以对输入的序列中的每个元素进行标签预测,如命名实体识别(Named Entity Recognition,NER,指自然语言处理中,能从文本中提取如人名、地名、组织名、日期、时间、金额等具有特定意义的实体或实体类别)、语音识别(Speech Recognition)等。
1.3.1.3 常见的有监督学习的算法
-
常见的有监督学习算法包括线性回归(Linear Regression)、逻辑回归(Logistic Regression)、决策树(Decision Trees)、支持向量机(Support Vector Machines)、随机森林(Random Forests)等。
-
这里提到的大多数算法我们都不 需要看,关注神经网络即可。
1.3.2 无监督学习 Unsupervised Learning
1.3.2.1 无监督学习的基本定义
-
**无监督学习(Unsupervised Learning)**机器学习中一种常见的学习范式,其目标是从未标记的数据中自动地发现数据中的结构、模式、关联或者表示,而无需使用人工标签或者先验知识的指导。
-
在无监督学习中,算法需要从数据中自动地进行学习,无需先知道数据的标签或者类别信息。无监督学习面临的挑战在于缺乏带有标签的训练样本来指导学习过程,因此需要自动地从数据中发现模式和结构。

-
无监督学习的例子:根据购物习惯,对客户进行分类。假设有一大组顾客的购物数据,包括他们的购买金额、购买时间、购买商品等信息。这些数据并没有被事先标记或分类。通过应用无监督学习算法,如k-means聚类算法或层次聚类算法,我们可以自动识别出具有相似购物行为的顾客群体,并将他们分为不同的簇。这些簇可以对应于不同的消费习惯、购买偏好或市场细分,从而可以帮助企业了解顾客行为并作出相应 的业务决策。<这么听起来,无监督学习和数据挖掘是不是有一点像?>这里是一个聚类问题。
-
无监督学习的例子:压缩图片。图像通常由大量的像素点组成,每个像素点包含了图像的颜色信息。图像压缩的目标是通过减少图像中的冗余信息,从而减小图像的存储空间或传输带宽,同时尽量保持图像的质量。数据降维是图像压缩的一种方式,通过减少图像数据的维度来达到压缩的目的。无监督学习中的数据降维技术,如主成分分析(Principal Component Analysis, PCA)****自编码器(Autoencoder),可以用于图像压缩中。例如,PCA可以通过将图像数据投影到低维空间中的主成分上来实现图像的降维压缩。自编码器则可以通过学习图像的低维表示和重构图像来实现数据的降维和压缩。<图片压缩不是非得机器学习,但无监督学习确实可以实现图片压缩!>这里是一个降维问题。
1.3.2.2 无监督学习的典型应用
无监督学习的应用非常广泛,包括但不限于以下几个方面:
聚类(Clustering):将数据集中的样本根据相似性进行自动分类,形成不同的簇。典型的例子包括顾客分群、社交网络用户聚类等。
异常检测(Anomaly Detection):识别数据中的异常样本,这些样本与正常样本不同,可能是潜在的异常事件或异常行为。典型的例子包括反洗钱、信用卡欺诈检测等。
降维(Dimensionality Reduction):将高维数 据映射到低维空间,保留数据的主要信息,去除冗余和噪音。典型的例子包括图像压缩等。
关联规则挖掘(Association Rule Mining):从大规模数据集中发现频繁出现的关联规则,用于发现数据中的潜在关联关系。典型的例子包括购物篮分析、推荐系统等。
1.3.2.3 常见的无监督学习的算法
这里提到的大多数算法我们都不需要看。
常见的无监督学习算法包括聚类算法如K均值聚类(K-means clustering),降维算法如主成分分析(PCA)、t-SNE等,异常检测算法如基于密度的异常检测(Density-based Anomaly Detection)、基于距离的异常检测(Distance-based Anomaly Detection)等。无监督学习在许多实际应用中都有广泛的应用,如图像处理、自然语言处理、推荐系统等领域。
后文会重点提及以下的无监督学习算法类型:
- 嵌入学习(Embedding Learning):例如词嵌入(Word Embedding)。
1.3.3 Tik Tok推荐算法:一个有监督学习与无监督学习并用的例子
无监督学习和有监督学习都是机器学习的范式,两者经常在同一个算法 中被一同使用。
-
TikTok等产品中使用的推荐算法通常是基于机器学习技术,包括了一系列的无监督学习和监督学习方法。
-
**在推荐系统中,无监督学习方法可以用于从大量的未标记数据中学习用户行为模式、内容特征等信息,从而为用户提供个性化的推荐。**如,TikTok的推荐算法可能通过无监督学习方法,如聚类(Clustering)、降维(Dimensionality Reduction)等,对用户上传的大量视频数据进行分析和处理,从中提取出视频的特征,如视频的内容、情感、时长等,并根据用户的观看历史、行为偏好等信息,将相似的视频聚类在一起,从而实现相似内容的推荐。
-
***监督学习方法也常常用于推荐算法中,通过使用标记的样本数据,***用户的历史行为数据(如点击、点赞、评论等)和用户的反馈(如用户的喜好、兴趣等),来训练模型进行推荐预测。

<上图中,哪些部分需要用到有监督学习,哪些部分要用到无监督学习,哪些部分需要人工介入呢?>
综上,TikTok等产品中使用的推荐算法通常是综合应用了多种机器学习技术,包括无监督学习和监督学习方法,通过从大量数据中学习用户兴趣和内容特征,为用户提供个性化的推荐体验。
1.3.4 自监督学习 Self-supervised Learning
自监督学习本身是无监督学习 的一种范式,因为它也不需要人工去打标签;但在体现出来的能力上,自监督学习和无监督学习非常不一样,因此在这里做单独介绍。
- 自监督学习主要是利用辅助任务(Pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征。
这样写会比较抽象,但可以参考下图:
左图展示了自监督学习和有监督学习的区别:例如,一段文字:“白银说的话就像是一位癌症晚期患者说的话。他都已经这样了,你为什么不顺从他,你总得给人留一段美好的回忆吧,最后的时光里。”,一个有监督任务就是判断这句话是否有害。这句话当然有害,但机器不可能自动学习出它有害,我们需要人工给他打上“有害”的标签。
但如果是无监督学习任务,例如完形填空,机器就可以这么做:把上面这段文字先变成“白银说的话就像是一位癌症晚期患者说的话。他都【Masked】经这样了,你为什么【Masked】顺从他,你总得给人留一段美好的回忆吧,最后的时光里。”输入给模型,要求模型去预测两个被遮掩的词是什么。而被遮住的这两个词是一个Ground Truth,它不需要任何人做判断,根据输入给机器的原文我们就知道这两个Masked标识对应的得是“已”和“不”。这样一来,机器就可以根据一个预训练任务,对输入的样本自动产生新的输入x',自动产生标注x'',并且用于学习了。


右图是BERT中的一个自监督学习的应用:输入“台湾大学”后,机器随机的遮住了一个词,这里遮住了“湾”。而后机器要去做“预测这个被遮住的词应该是什么”的任务,而且任务的标准答案机器当然知道,就是“湾”字。因此,机器就可以自动比较自己输出的答案和标准答案差在哪儿,从而去更正自己了。
不要看自监督学习好像很容易理解,事实上它是一个非常天才的想法。这件事后续的第八章中,我们会首次接触到自监督学习。
1.3.5 强化学习 Reinforcement Learning
后面会有一个专门的章节介绍强化学习,所以这里只需要了解一个大概!
1.3.5.1 强化学习的基本定义
-
强化学习(Reinforcement Learning)是一种机器学习方法,用于通过玩家(Agent)与环境(Environment)的交互来学习如何做出合适的决策,以最大化预期的累积奖励。
-
在强化学习中,Agent通过与环境的相互作用,观察环境的状态(State),执行不同的动作(Action),接收环境的反馈(奖励信号,奖励Reward),并根据反馈来调整其行为策略(Policy),从而逐渐学习如何在不同的环境中做出最优的决策。
强化学习的关键 特点包括以下几点:
-
**Environment和State:**化学习中的Agent与Environment进行交互,Agent通过观察Environment的State来感知环境的变化并进行决策。(eg. 我们开车的时候与我们所看到的路况进行交互,根据路上的行人、其他汽车、指示牌等的状态,选择怎么去打方向盘。那么整个汽车所在的公路就是Environment,公路上具体的路况就是State)
-
Action和Policy:Agent可以采取不同的Action来影响Environment的State。那么在什么样的State下,Agent要采取什么样的Action?Agent是基于一定的策略Policy来选择要执行的Action的,而这个Policy往往是一个以当前State为自变量,要执行的Action为输出的一个函数。(eg. 我们在路上怎么打方向盘,就是Action。在什么样的路况下我们会怎么去打方向盘,就是Policy。我们打方向盘这件事情会影响环境的状态;而环境的状态改变又会返回来决定我们该怎么打方向盘。)
-
Reward和Goal:环境向Agent提供奖励信号,用于反馈Agent的行为质量。Agent的目标是通过最大化预期的累积奖励,以此来学习如何做出最佳决策。(eg. 路边的其他车会向你打鸣告诉你你开的不好,违规了的话交警会对你处罚,这就是一个负的Reward。你的Goal可能是以最快的速度最安全、不违规的到达目的地,你通过不断的与环境交互,学习出一个最佳的开车Policy,从而实现这个目标。)
-
试错学习和优化:强化学习中的Agent通过与环境的交互来不断学习和优化其策略,这是一个不断试错的过程,State和Action之间的往复交互是强化学习的主体部分,所以是Trial and Error Learning。强化学习的最终目标是一个好的策略。
-
价值决定策略:价值,就是预期将来会得到的所有奖励之和。(eg. 下围棋的时候,如果一步棋决定了胜局,那么这步棋就特别有价值!)<价值有两个函数——State Value Function和Action Value Function, 这里先不细说,后面有专门的章节来介绍强化学习及其简单的数学表示!>
强化学习不要求预先给定任何数据,而是通过接收环境对动作的奖励(反馈)获得学习信息并更新模型参数。
强化学习是除了监督学习和非监督学习之外的第三种基本的机器学习方法。与监督学习不同的是,**强化学习不需要带标签的输入输出对,同时也无需对非最优解的精确地纠正。**关注点在于寻找探索(对未知领域的,Exploration)和利用(对已有知识的,Exploitation)的平衡。后文会详细去讲Exploration vs Exploitation的Trade-off,此处先快速跳过。
1.3.5.2 强化学习的典型应用
-
自动驾驶车辆:强化学习在自动驾驶领域中也得到了广泛应用,例如通过训练智能车辆在不同道路条件下学习驾驶策略,包括避免碰撞、减少能耗等。(自动驾驶中既要用有监督学习的图像识别技术去理解当前的State,又要用RL的技术去不断优化驾驶策略)
-
游戏与游戏玩家:强化学习被广泛用于电子游戏中,例如通过训练智能代理在复杂的游戏环境中进行游戏策略决策,如围棋、国际象棋等。同时,强化学习还可以用于训练游戏中的虚拟角色,使其能够自主学习和优化其行为策略。(eg. AlphaGo)
-
机器人控制:强化学习在机器人领域中有广泛的应用,包括自主导航、机器人手臂控制、 无人机控制等。通过强化学习,机器人可以从与环境的交互中学习控制策略,以完成复杂的任务。
1.3.5.3 常见的强化学习的算法
强化学习的算法整体分为价值学习、策略学习、Actor-Critic Method. 后面再讲!
1.4 机器学习的分类:根据网络的深度和复杂性分类
1.4.1 浅层学习(Shallow Learning)
浅层学习通常指的是使用较少层次、较简单结构的机器学习模型,例如传统的线性回归、逻辑回归、决策树、支持向量机等。这些模型通常只有一层或者很少的层,且每一层的特征表示较为简单和浅显,不具备较强的抽象能力。
1.4.1.1 浅层学习的基本定义

-
浅层学习(Shallow Learning),也称为表面学习或者传统学习,是一种机器学习方法,其主要通过构建浅层的、较简单的模型来进行模式识别、分类、回归等任务。
-
浅层学习方法通常包括传统的统计学习方法,如逻辑回归(Logistic Regression)、决策树(Decision Tree)、支持向量机(Support Vector Machine)、朴素贝叶斯(Naive Bayes)等,以及一些非线性模型,如K近邻(K-Nearest Neighbors)和随机森林(Random Forests)等。这些方法通常基于人工设计的特征(即特征工程),通过对特征进行处理和选择来构建模型,并利用这些模型进行预测和分。**
-
相对于深度学习(Deep Learning)而言,浅层学习通常采用较简单的模型架构和较少的层次结构,不涉及复杂的深层神经网络结构。
浅层学习最大的特点就是特征是人工设计的,通过特征工程,去依据原始数据,决定模型的输入。
1.4.1.2 特征(Feature)
-
特征(Feature),是指从原始数据中提取出的、用于表示样本的属性或信息。(eg. 想起有监督学习任务里我们提到的财务舞弊识别的例子了吗?一份财务报表有一堆信息,机器是看不懂的。我们可能会利用财务报表,计算出资产负债率、流动比率指标,作为浮点数输入给机器。那么资产负债率和流动比率就是我们选出来的财务报表的特征!)
-
在机器学习模型中,特征被用作模型的输入,用于表示样本的不同属性,从而 帮助模型进行学习和预测。因此,首先要将数据表现为一组特征,而后才能将其输入,进行机器学习。
-
特征说白了就是你基于原始信息,具体给机器喂了些什么。
1.4.1.3 特征工程(Feature Engineering)
特征工程(Feature Engineering)是指在机器学习和数据挖掘中,通过对原始数据进行处理、转换和提取,生成新的特征或选择合适的特征,从而改进模型性能和提高预测准确性的过程。
Eg. 如果想要建立起一个识别财务报表是否舞弊的模型:f(财报的特征)=是否舞弊,那么输入给模型的参数的选择有很多:资产负债率、盈利质量、流动比率、速动比率等等。
那么选择哪些参数、输入多少参数输入给模型,其实都会对模型最后的识别性能有很高的影响。这个挖掘和选择特征的过程就是特征工程。
1.5 深度学习(Deep Learning)
在解释什么是深度学习之前,我希望先讲清楚表征与表征学习。
1.5.1 表示/表征(Representation)
表示(Representation)则通常指的是将数据以某种形 式进行编码或者表示的方式,可以是在特征空间中的表示,也可以是在其他空间中的表示。在深度学习中,表征通常是由模型自动学习得到的,例如通过神经网络的隐藏层进行特征提取和表示学习(后面讲MLP的时候就会提到)。这种自动学习的表现通常比手工设计的特征更能够捕捉数据中的复杂模式和关系,从而提升模型的性能。
1.5.2 局部表示 Local Representation
局部表示,也称为离散表示或符号表示。 以颜色表示为例,我们可以用很多词来形容不同的颜色1,除了基本的“红” “蓝”“绿”“白”“黑”等之外,还有很多以地区或物品命名的,比如“中国红”“天蓝色”“咖啡色”“琥珀色”等.如果要在计算机中表示颜色,一般有两种表示方法.如果以不同名字来命名不同的颜色,这种表示方式叫作局部表示。
局部表示通常可以表示为One-hot向量的形式,假设假设所有颜色的名字构成一个词表 𝒱,词表大小为 |𝒱|.我们可以用一个|𝒱|维的one-hot向量来表示每一种颜色.在第𝑖种颜色对应的one-hot向量中,第𝑖 维的值为1,其他都为0.
例子参考下表,展示了琥珀色、天蓝色、中国红、咖啡色的局部表示方式。
在后续讲到自然语言处理时,就会提到,早期的语言模型中我们主要用one-hot向量来作为词汇的表征。
局部表示有两个优点:
1)这种离散的表示方式具有很好的解释性,有利于人工归纳和总结特征,并通过特征组合进行高效的特征工程 ;
2)通过多种特征组合得到的表示向量通常是稀疏的二值向量,当用于线性模型时计算效率非常高.
但局部表示有两个不足之处:
1)one-hot向量的维数很高(维度爆炸),且不能扩展.如果有一种新的颜色,我们就需要增加一维来表示;
2)*不同颜色之间的相似度都为0,因为这些向量全部正交。*我们无法知道“红色”和“中国红”的相似度要高于“红色”和“黑色”的相似度。

1.5.3 分布式表**(Distributed Representation)**
分布式表示是一种将数据表示为多维向量的方法,其中每个维度都包含有关数据的一部分信息。
例如,我们用RGB值来表示颜色,不同的颜色对应到R、G、B三维空间中一个点,这种表示方法即为分布式表示。分布式表示通常可以表示为低维的稠密向量,参考上图。
分布式表示在深度学习中得到广泛应用,例如在神经网络中使用嵌入层(Embedding Layer)对输入数据进行分布式表示(嗯,后面学到词向量的时候就会用到了)。
相比于让所有颜色的名字构成一个词表 𝒱,我们现在用一个三维的向量就可以表示出所有的颜色了。
此外,不同的颜色之间的相似度也变得很容易计算,只需要去算他们的余弦相似度/欧式距离等就可以了。
分布式表示具有许多优势,例如能够更好地捕捉数据的多样性、泛化性能较好、能够处理未知数据等。例如,在自然语言处理中,分布式词向量(如Word2Vec、GloVe等)将单词表示为多维向量,每个维度都包含了单词在不同语义和语法属性上的信息,从而在词汇表很大的情况下,能够更好地表示单词之间的语义和语法关系。
1.5.4 表征学习(Representation Learning)
-
**表征学习(Representation Learning)是一种自动化地从原始数据中学习有效的特征表示的方法。**通过深度神经网络等模型,从原始数据中自动学习层次化、抽象化的特征表示,而无需手工设计特征。表征学习能够从数据中提取出更丰富、更高级的特征,从而更好的描述数据,有助于提高模型的性能和泛化能力。
-
要学到一种好的高层语义表示(一般是分布式表示),通常需要从底层特征开始,经过多步骤的非线性转换才能得(之所以要是非线性,是因为连续多次的线性转换归根到底还是等价于一次线性转换)。表征学习与深度学习天然相关,因为深度神经网络所具有的深层结构的优点是可以增加特征的重用性,从而指数级的增加表示能力。因此,表征学习的关键是构建具有一定深度的多层次特征表示。