大模型第一讲笔记

目录

1、人工智能基础概念全景介绍... 2

1.1 人工智能全景图... 2

1.2 人工智能历史... 2

1.3 人工智能——机器学习... 3

监督学习、非监督学习、强化学习、机器学习之间的关系... 3

监督学习... 4

无监督学习... 5

强化学习... 5

深度学习... 6

2、语言模型的发展及核心算法... 8

2.1 大模型发展格局、大模型直观功能展示... 8

2.2 大模型之“大”——数据量大... 9

2.3 大模型之“通用” 10

2.4 大模型之“最大功臣”:Transformer 10

3、Transformer内部发生着什么... 13

3.1 Transformer第一步:数据预处理... 13

3.2 Transformer第二步:编码器... 13

3.3 Transformer第三步:解码器... 14

3.4 Transformer第四步: Linear层和Softmax层... 15

4、类Chatgpt产品的诞生之路... 16

4.1 大语言模型诞生的全过程... 16

4.2 无监督学习—>基座大模型... 17

4.3 有监督学习—>可对话... 17

4.4 有监督学习—>奖励模型... 18

4.5 强化学习—>提升模型回复质量... 18

1.人工智能基础概念全景介绍

1.1 人工智能全景图

 

1.2 人工智能历史

人工智能的提出——达特茅斯会议

1956年的达特茅斯会议正式确立了“人工智能”这一-领域。1956年夏,麦卡锡说服克劳德:香农(信息论的发明者)、内森尼尔罗切斯特(电气工程先驱)和马文明斯基参与他提出的一个人工智能研究项目,这个项目为期2个月。项目在达特茅斯组织了研讨会,约翰 麦卡锡(John Mc-Carthy)在组织会议的过程中,提出"人工智能"一-词,推动了人工智能作为一个独立学科的形成。

1.3 人工智能——机器学习

概念:让计算机通过大量数据,自行识别模型总结规律

监督学习、非监督学习、强化学习、机器学习之间的关系

监督学习、非监督学习、强化学习和机器学习是机器学习领域的几个重要概念,它们之间的关系密切而复杂。

首先,机器学习是一个更为广泛的概念,它涵盖了所有使用算法和统计模型来让计算机系统从数据中“学习”并改进其性能的技术。机器学习算法可以自动地从数据中提取特征和模式,并基于这些特征和模式进行预测或决策。

监督学习是机器学习的一种形式,它使用带有标签的数据集进行训练。在监督学习中,模型通过学习输入特征和对应标签之间的关系,从而能够预测新数据的标签。监督学习广泛应用于分类、回归等任务,如图像识别、语音识别等。

非监督学习是另一种机器学习形式,与监督学习不同,非监督学习的数据集没有标签。非监督学习算法通过对数据进行聚类、降维等操作,发现数据中的内在结构和模式。这种方法常用于数据探索、异常检测等任务。

强化学习是机器学习的另一种形式,它关注于智能体如何在与环境的交互中学习最佳行为策略。在强化学习中,智能体通过尝试不同的行动并观察结果(奖励或惩罚)来学习,目标是最大化累积奖励。强化学习在游戏AI、机器人控制等领域有广泛应用。

监督学习

监督学习是机器学习中的一种重要方法,其利用一组已知类别的样本来调整算法的参数,以达到所要求的性能。这一过程也称为监督训练或有教师学习。在监督学习中,每个实例都由一个输入对象(如矢量)和一个期望的输出值(也称为监督信号)组成。学习算法通过分析这些训练数据,能够产生一个推断功能,用于映射出新的实例。

监督学习的核心在于从标记的训练数据中推断一个功能。训练数据包括一套训练示例,这些示例的输入和输出都是已知的。学习算法的任务就是通过分析这些示例,找到一个模型或函数,能够准确地映射新的输入到相应的输出。

无监督学习

无监督学习是机器学习领域内的一种重要学习方式。与监督学习不同,无监督学习在训练过程中使用的数据没有明确的标签或结果。它主要是从大量无标签的数据中发现隐藏的结构或模式。

强化学习

强化学习是机器学习中的一个重要领域,它主要关注智能体如何在一个复杂且不确定的环境中通过不断试错来最大化其获得的奖励。强化学习的灵感来源于心理学中的行为主义理论,即有机体如何根据环境给予的奖励或惩罚来调整其行为。

在强化学习的框架中,智能体(agent)通过与环境的交互来学习策略。智能体首先获取环境的当前状态,并根据这个状态选择一个动作(决策)。执行这个动作后,环境会进入一个新的状态,并给智能体一个奖励值作为反馈。智能体的目标是通过不断尝试和调整策略,以最大化累积的奖励。

强化学习的一个显著特点是延迟奖励即当前所做的动作可能很多步之后才会产生相应的结果和奖励。因此,智能体需要具备记忆和规划能力,以处理这种延迟效应

强化学习可以分为基于模式的强化学习(model-based RL)和无模式强化学习(model-free RL),以及主动强化学习(active RL)和被动强化学习(passive RL)。此外,深度强化学习是强化学习与深度学习的结合,通过深度神经网络来近似强化学习中的值函数或策略函数,从而处理高维状态空间和动作空间的问题。

深度学习

答案:每一类都有深度学习的对应实现,故而都可以包含

深度学习是机器学习领域中一个新的研究方向,可以理解为“深度”和“学习”这两个名词的组合。

深度”体现在神经网络的层数上,一般来说,神经网络的层数越多,也就是越深,则学习效果越好。而“学习”体现为神经网络可以通过不断地输入数据来自动校正权重偏置等参数,以拟合更好的学习效果。

深度学习是一个复杂的机器学习算法,它是以人工神经网络为架构,对数据进行特征学习的算法。在特征提取方面,深度学习没有复杂的人工特征提取过程,特征提取过程可以通过深度神经网络自动完成。此外,深度学习需要大量的训练数据集,并需要强大的算力支持。

深度学习最典型最广泛的应用就是图像识别,此外,还可以应用于语音、自然语言等领域。现在主流的深度学习框架有TensorFlow、Keras、Caffe、PyTorch等。

生成式AI是一种特定类型的AI,专注于生成新内容,如文本、图像和音乐。这些系统在大型数据集上进行训练,并使用机器学习算法生成与训练数据相似的新内容。生成式AI在创意、设计、娱乐等领域展现出强大的潜力,可以广泛应用于创建艺术、音乐和聊天机器人生成文本等场景。

2.语言模型的发展及核心算法

2.1 大模型发展格局、大模型直观功能展示

2.2 大模型之“大”——数据量大

训练数据巨大:意味着模型可以从海量的数据中提取丰富的信息。这些数据涵盖了各种不同的场景、情境和实例,为模型提供了广泛的上下文和多样化的经验。通过大量的数据训练,模型能够学习到更多的特征和模式,从而提高其泛化能力和准确性。这使得大模型在处理复杂的自然语言处理、图像识别、语音识别等任务时表现出色

参数量巨大:使得模型具有更高的灵活性和表示能力。每个参数都代表了模型在训练过程中对数据的某种理解和表示。参数量越大,模型就越能够捕捉到数据中的细微差别和复杂关系。这使得大模型能够更好地适应各种变化,并在细节上进行微调,以提升性能。此外,大模型通常使用深层的神经网络结构,每一层都包含大量的参数,这使得模型能够逐层提取和抽象特征,从而构建出更加复杂和精确的模型。

2.3 大模型之“通用”

2.4 大模型之“最大功臣”:Transformer

Transformer是一个基于自注意力(self-attention)机制的神经网络结构,它最初是为自然语言处理(NLP)任务而设计的,但随后也被应用于其他领域,如计算机视觉和语音识别。Transformer模型的主要特点是能够捕捉输入序列中的长距离依赖关系,并且能够有效地并行化计算,从而提高了模型的训练效率和性能。

在大模型(如Transformer)之前,循环神经网络(Recurrent Neural Networks,简称RNN)是处理序列数据的主要神经网络结构。RNN特别适用于处理具有时间依赖性的数据,例如文本、语音等。

RNN的基本思想是在网络中引入循环机制,使得模型能够记住之前的信息。在每个时间步,RNN接收当前的输入并更新其内部状态,然后将这个状态传递给下一个时间步。这样,RNN就能够捕捉序列中的长期依赖关系。

然而,RNN在处理长序列时存在一些局限性。由于RNN在传播信息时是通过逐个时间步进行的,这导致了梯度消失或梯度爆炸的问题。当序列很长时,RNN很难有效地捕捉到早期的信息,这限制了其在处理长序列数据时的性能。

此外,RNN在处理复杂任务时,其表达能力也受到一定限制。尽管可以通过堆叠多个RNN层来增加模型的深度,但这也会增加计算的复杂性和训练的难度

自注意力机制是Transformer模型的核心,它通过计算输入序列中每个位置与其他位置之间的相似度得分,来生成一个注意力权重矩阵。这个矩阵描述了不同位置之间的相对重要性,使得模型能够关注到输入序列中的关键信息。通过自注意力机制,Transformer模型能够捕捉到序列中的长距离依赖关系,克服了传统循环神经网络(RNN)在处理长序列时面临的梯度消失和计算效率低下的问题。

大模型中的位置编码(Positional Encoding)是其显著优势之一,尤其在处理序列数据时表现得尤为突出。位置编码解决了模型在处理序列信息时无法有效识别位置顺序的问题,从而增强了模型对序列数据的理解和处理能力。

在自然语言处理(NLP)等任务中,序列中单词的位置信息往往至关重要。例如,在句子“我喜欢吃苹果”中,单词“喜欢”和“吃”的位置决定了它们之间的关系和整个句子的含义。如果模型无法区分这些位置信息,那么它将很难准确理解句子的含义。

位置编码通过为序列中的每个位置分配一个独特的向量表示,帮助模型捕捉位置信息。这些向量表示可以与单词嵌入(word embeddings)相结合,作为模型的输入。这样,模型在处理序列数据时,不仅能够理解单词的语义信息,还能够考虑到单词的位置信息,从而更准确地捕捉序列的整体含义。

 3.Transformer内部发生着什么

3.1 Transformer第一步:数据预处理

在使用Transformer模型进行自然语言处理任务(如机器翻译、文本摘要、情感分析等)时,数据预处理是第一步也是非常重要的一步。数据预处理涉及将原始文本数据转换为模型可以理解和处理的格式。以下是Transformer模型数据预处理的主要步骤:

分词(Tokenization)

将文本拆分为单词或子词(subword)单元,这些单元称为tokens。

对于英文,通常使用空格作为分隔符;对于中文,可能需要使用特定的分词工具。

Transformer模型(如BERT、GPT等)通常使用基于字节对编码(Byte Pair Encoding, BPE)或WordPiece的分词方法。

编码(Embedding)

将每个token转换为一个数值向量,即嵌入向量(embedding vector)。

通常使用预训练的词嵌入(如Word2Vec、GloVe)或模型自带的嵌入层。

对于新的或未登录词(OOV),可以使用特殊标记(如<UNK>)或子词嵌入。

位置编码(Positional Encoding):

在Transformer模型中扮演着至关重要的角色。Transformer模型本身具有置换不变性(permutation invariant),这意味着输入序列的顺序变化不会影响模型的输出结果。然而,在自然语言处理任务中,序列中单词的位置信息通常是至关重要的。为了解决这个问题,Transformer模型引入了位置编码。

3.2 Transformer第二步:编码器

进入编码器,自注意力机制发挥作用

1、关联词与其他所有词:首先计算句子中每个词与其他所有词之间的相关性得分。这些得分反映了词与词之间的关联程度,可以用于确定哪些词在当前上下文下更加重要

2、权重赋予:关性得分被转化为权重,用于调整每个词的表示。权重高的词将获得更大的关注,而权重低的词则相对被忽略。

2、权重加权:使用这些权重,对输入序列中每个位置的嵌入向量进行加权求和,得到一个新的表示向量。

3.3 Transformer第三步:解码器

解码器接收:

编码器的输出+上一轮文本的输入

不同之处:当编码器在处理各个词的时候,会关注输入序列里所有其他词。在解码器中,自注意力只会关注这个词他前面的其他词,确保生成过程的顺序性和正确性。

3.4 Transformer第四步: Linear层和Softmax层

输入到Linear层和Softmax层

1、Linear层: 将输入的向量映射到一个更大的logits向量上。logits向量的长度通常与词汇表的大小-致,假设输出词汇为0000则Logits向量的输 出也为10000,每-一个向量上的

数字对应一个词汇。

2、Softmax层: softmax层 将Logits向量中的每-个数字都转换成0到1之间的概率值,这些概率值表示对应词汇在当前位置被选择的概率,并且所有位置的概率之和为1。最终得到每个可能token的概

4.类Chatgpt产品的诞生之路

4.1 大语言模型诞生的全过程

首先通过无监督学习得到基座大模型,然后再通过有监督微调得到可以对话的模型,再通过有监督学习得到能够评估回答质量的奖励模型,最后通过强化学习,使模型的生成结果符合人类期望。

4.2 无监督学习—>基座大模型

数据准备

1、数据准备与预处理:海量文本作为原料,使用分词器(tokenizer)将这些文本数据转化为token序列。如GPT3,训练数据的整体规模是3,000亿的token。

任务构建

2、任务构建:采用无监督学习的方式训练模型,常见的方法是掩码语言建模(Masked Language Modeling, MLM) 。在这个任务中,我们随机选择输入序列中的一些token进行掩码(即用特殊符号替换),然后要求模型根据上下文预测这些被掩码的token。

模型训练

3、模型训练:将预处理后的token序列输入到Transformer模型中,经过Transformer得到每个可能token的预测概率。将预测的概率分布与真实值(即被掩码的token)进行比较,计算交叉熵损失。通过反向传播算法,计算损失函数对模型参数的梯度,并使用优化算法(如梯度下降)更新模型的权重。这个过程迭代进行,直到模型在验证集上达到满意的性能。

4.3 有监督学习—>可对话

监督微调(Supervised Fine-tuning)是一种在预训练模型的基础上,使用与目标任务直接相关的有标签数据集进行有监督训练的方法。其核心思想是通过调整模型的权重和参数,使模型更好地适应新的任务或领域

4.4 有监督学习—>奖励模型

有监督学习的背景下,奖励模型的应用可能并不像在无监督学习或强化学习环境中那么直接。然而,有监督学习仍然可以为奖励模型提供有价值的信息和指导。

4.5 强化学习—>提升模型回复质量

强化学习(Reinforcement Learning)是一种机器学习技术,它通过让智能体(agent)在与环境交互的过程中学习策略,以最大化某种累积奖励信号。强化学习非常适合解决那些难以用传统监督学习方法解决的问题,特别是那些需要智能体在不确定环境中进行探索和学习的任务。

在提升模型回复质量的上下文中,强化学习可以发挥重要作用。例如,当模型需要与用户进行自然语言交互时,回复的质量直接影响到用户体验和模型的实用性。通过强化学习,模型可以学习如何生成更恰当、更有用的回复。

以下是一些利用强化学习提升模型回复质量的可能方法:

定义奖励函数首先,需要定义一个奖励函数来衡量模型回复的质量。这个函数可以根据任务的具体需求来设计,例如,它可以基于回复的相关性、流畅性、多样性或用户满意度等因素。

采样与探索在训练过程中,模型需要不断地尝试不同的回复策略,并通过观察奖励信号来更新其策略。这涉及到采样和探索的权衡,即模型既要利用当前已知的最优策略,又要探索可能更优的新策略

策略优化基于收集到的经验(即状态、动作和奖励的序列),模型可以更新其策略,以最大化累积奖励。这通常涉及到使用某种形式的优化算法,如策略梯度方法、Q-learning 或 Actor-Critic 方法等

用户反馈集成用户的直接反馈是非常宝贵的信息。可以通过某种方式让用户对模型的回复进行评分或提供其他形式的反馈,并将这些信息整合到奖励函数中,以便模型能够更好地理解用户的期望和需求。

离线与在线学习强化学习可以在离线环境中进行,也可以在与用户实时交互的在线环境中进行。离线学习允许模型在大量数据上进行预训练,而在线学习则允许模型根据实时反馈进行快速调整。

模型集成与迁移学习强化学习可以与其他机器学习方法(如监督学习、无监督学习等)相结合,以提高模型的性能。此外,还可以利用迁移学习技术,将从其他任务或领域中学习到的知识迁移到当前任务中,以加速学习过程并提高回复质量。

通过结合这些技术和方法,强化学习可以有效地提升模型回复的质量,为用户提供更自然、更智能的交互体验。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/280192.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解并优化Android中的文件描述符(FD)

文章目录 一、文件描述符&#xff08;FD&#xff09;概述二、为什么要优化文件描述符&#xff1f;三、实际开发中的文件描述符优化策略3.1 及时关闭文件和资源3.2 使用try-with-resources3.3 检查并优化第三方库3.4 使用文件描述符检查工具3.4.1 使用/proc文件系统3.4.2 使用ls…

算法·动态规划Dynamic Programming

很多人听到动态规划或者什么dp数组了&#xff0c;或者是做到一道关于动态规划的题目时&#xff0c;就会有一种他很难且不好解决的恐惧心理&#xff0c;但是如果我们从基础的题目开始深入挖掘动规思想&#xff0c;在后边遇到动态规划的难题时就迎难而解了。  其实不然&#xff…

PyTorch 深度学习(GPT 重译)(一)

第一部分&#xff1a;PyTorch 核心 欢迎来到本书的第一部分。在这里&#xff0c;我们将与 PyTorch 迈出第一步&#xff0c;获得理解其结构和解决 PyTorch 项目机制所需的基本技能。 在第一章中&#xff0c;我们将首次接触 PyTorch&#xff0c;了解它是什么&#xff0c;解决了…

linux之权限管理和组

一&#xff0c;ACL权限 1.1&#xff0c;什么是acl权限&#xff1f; ACL是Access Control List的缩写&#xff0c;即访问控制列表。可以通过下列的实例来理解ACL的作用&#xff1a; 思考如何实现如下的权限控制&#xff1a; 每个项目成员在有一个自己的项目目录&#xff0c;…

mysql数据库如何安装

1.第一步需要下载mysql,直接官方下载。如果想要现成的可以私聊我。 2.解压mysql-5.7.44-winx64.zip文件 3.新建my.ini 注意&#xff1a;basedir、datadir改成你自己的按照路径 需要新建data文件夹设置 mysql 数据库的数据的存放目录 [mysql] # 设置 mysql 客户端默认字符…

uniapp——第3篇:自定义组件、组件间传数据

前提&#xff0c;建议先学会前端几大基础&#xff1a;HTML、CSS、JS、Ajax&#xff0c;还有一定要会Vue!&#xff08;Vue2\Vue3&#xff09;都要会&#xff01;&#xff01;&#xff01;不然不好懂 一、组件是啥玩意&#xff1f; 我之前讲vue2的文章讲过 Vue全家桶:vue2vue3全…

AI大模型-Grok搭建

Grok搭建 硬件要求项目下载Checkpoint下载运行代码 马斯克又搞事情了&#xff0c;正式开源AI大模型Grok-1&#xff0c;免费还可商用&#xff0c;国内AI技术即将迎来重大突破。笔者简单整合了一下&#xff0c;如何搭建Grok-1的思路&#xff0c;供后期自己搭建以及读者学习使用。…

AIGC——ComfyUI工作流搭建、导入与常用工作流下载

工作流 ComfyUI工作流是一个基于图形节点编辑器的工作流程&#xff0c;通过拖拽各种节点到画布上&#xff0c;连接节点之间的关系&#xff0c;构建从加载模型到生成图像的流程。每个节点代表一个与Stable Diffusion相关的模型或功能&#xff0c;节点之间通过连线传递图片信息。…

JavaScript实现简单的表单验证

关键代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title><s…

【Kotlin】扩展属性、扩展函数

1 类的扩展 Kotlin 提供了扩展类或接口的操作&#xff0c;而无需通过类继承或使用装饰器等设计模式&#xff0c;来为某个类添加一些额外的属性或函数&#xff0c;我们只需要通过一个被称为扩展的特殊声明来完成。通过这种机制&#xff0c;我们可以将那些第三方类不具备的功能强…

爬虫基础:Web网页基础

爬虫基础&#xff1a;Web网页基础 前言Web网页基础网页的组成网页的结构节点树及节点间的关系选择器 前言 用浏览器访问不同的网站时&#xff0c;呈现的页面各不相同&#xff0c;你有没有想过为何会这样呢&#xff1f;了解一下网页的组成、结构和节点等内容。了解这些内容有助于…

如何实现图片上传至服务器

在绝大多数的项目中都会涉及到文件上传等&#xff0c;下面我们来说一下技术派中是如何实现原生图片上传的&#xff0c;这个功能说起来简单&#xff0c;但其实对于技术还是有考验的。图片的上传涉及到IO读写&#xff0c;一个文件上传的功能&#xff0c;就可以把IO流涉及到的知识…

MySQL中的基本SQL语句

MySQL中的基本SQL语句 查看操作 1. 查看有哪些数据库 show databases; 2.切换数据库 use 数据库名;比如切换至 mysql数据库 use mysql;3.查看数据库中的表 show tables;4.查看表中数据 select 要查询的东西 from 表名 [ where 条件 ];select * from 表名…

极简生活|2024年让自己越来越好的18个极简好习惯

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 转眼间已经进入了2024年&#xff0c;新的一年&#xff0c;新的开始。 俗话说&#xff1a;百尺高台起于垒土&#xff0c;千里之堤毁于蚁穴。 好习惯积累的越多&#xff0c;坏习惯越来越少&#xff0c;我们的生活才能越…

echarts饼图图例换行

legend: {left: "5%",bottom: "10%",orient: vertical,}, 完整代码 option {tooltip: {trigger: item},legend: {left: "5%",bottom: "10%",orient: vertical,},// legend: [// {// x: left,// left:"5%",// bottom: …

在Linux环境底下 用C语言执行Python程序

在Linux环境底下 用C语言执行Python程序 文章目录 在Linux环境底下 用C语言执行Python程序1、环境安装&检测2、C语言调用Python语句2.1 直接调用python语句2.2 调用无参python函数2.3 调用有参python函数 1、环境安装&检测 通过C语言调用Python代码&#xff0c;需要先安…

matlab 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面

1、内容简介 略 65-可以交流、咨询、答疑 2、内容说明 matlab 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面 混沌系统李雅普洛夫指数谱相图分岔图和庞加莱界面 李雅普洛夫指数谱、相图、分岔图、庞加莱界面 3、仿真分析 略 4、参考论文 略

Java基础学习笔记三

环境变量CLASSPATH classpath环境变量是隶属于java语言的&#xff0c;不是windows操作系统的&#xff0c;和PATH环境变量完全不同classpath环境变量是给classloader&#xff08;类加载器&#xff09;指路的java A 。执行后&#xff0c;先启动JVM&#xff0c; JVM启动classload…

目标检测---IOU计算详细解读(IoU、GIoU、DIoU、CIoU、EIOU、Focal-EIOU、SIOU、WIOU)

常见IoU解读与代码实现 一、✒️IoU&#xff08;Intersection over Union&#xff09;1.1 &#x1f525;IoU原理☀️ 优点⚡️缺点 1.2 &#x1f525;IoU计算1.3 &#x1f4cc;IoU代码实现 二、✒️GIoU&#xff08;Generalized IoU&#xff09;2.1 GIoU原理☀️优点⚡️缺点 2…

浏览量这么低,还要不要继续坚持?

哈喽&#xff0c;你好啊&#xff0c;我是雷工&#xff01; 曾经在一个群里聊天&#xff0c;有群友看到我两位数的浏览量&#xff0c;说到&#xff1a;浏览量这么低还坚持什么&#xff1f; 浏览量低是事实&#xff0c;大多数是十几二十的&#xff0c;上百的都是少数&#xff0c…