大模型第一讲笔记

目录

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.mzph.cn/news/758144.shtml

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

相关文章

演讲恐惧症?别怕!这3招帮你克服舞台紧张

演讲恐惧症&#xff1f;别怕&#xff01;这3招帮你克服舞台紧张 在人生的舞台上&#xff0c;演讲往往被视为展现个人才华、传递思想观点的重要平台。然而&#xff0c;对于许多人来说&#xff0c;站在舞台上却成为了一种难以克服的恐惧。演讲恐惧症&#xff0c;这个看似微不足道…

PMP备考心得 | 策略与技巧大揭秘

1.理解考试大纲&#xff1a;首先&#xff0c;你需要熟悉PMP考试的内容和结构。PMI官网提供了详细的考试大纲&#xff0c;包括项目管理的五个过程组&#xff08;启动、规划、执行、监控、收尾&#xff09;和十个知识领域&#xff1b; 2.制定学习计划&#xff1a;根据个人的时间…

发布镜像到阿里云仓库

发布上一篇Dockerfile实战-自定义的centos镜像。 1、登录阿里云 2、找到容器镜像服务 3、创建命令空间 4、创建镜像仓库 5、点击进入这个镜像仓库&#xff0c;可以看到所有的信息 6、根据操作指南测试推送发布 6.1登录阿里云 [rootzhoujunru home]# docker login --usernam…

【MySQL】锁信息

title: MySQL 锁信息 tags: MySQL abbrlink: 364637211 date: 2021-07-26 18:34:34 1 MySQL 锁定义 MySQL 锁&#xff08;Lock&#xff09;是数据库管理系统用于管理并发访问的一种机制。 在多用户同时访问数据库的环境下&#xff0c;可能会出现多个事务同时对相同的数据进行…

【工具】Docker 入门及常用指令

SueWakeup 个人主页&#xff1a;SueWakeup 系列专栏&#xff1a;为祖国的科技进步添砖Java 个性签名&#xff1a;保留赤子之心也许是种幸运吧 目录 1. 什么是 Docker &#xff1f; 2. Docker 安装 3. Docker 镜像 4. Docker 容器 4.1 运行容器 4.2 查看正在运行的容器 4…

milvus安装

milvus安装 sudo curl -L “https://github.com/docker/compose/releases/download/1.29.2/docker-compose- $ (uname -s)- $ (uname -m)” -o /usr/local/bin/docker-compose sudo chmod x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/…

代码随想录算法训练营第二十九天 | 491. 非递减子序列、46. 全排列、47.全排列 II

代码随想录算法训练营第二十九天 | 491. 非递减子序列、46. 全排列、47.全排列 II 491. 非递减子序列题目解法 46. 全排列题目注意解法 47.全排列 II题目解法 感悟 491. 非递减子序列 题目 解法 使用unordered_set去重 class Solution { private: vector<vector<int&g…

Day62:WEB攻防-PHP反序列化CLI框架类PHPGGC生成器TPYiiLaravel等利用

目录 反序列化链项目-PHPGGC&NotSoSecure NotSoSecure(综合类) PHPGGC(单项类) 反序列化框架利用-ThinkPHP&Yii&Laravel [安洵杯 2019]iamthinking Thinkphp V6.0.X 反序列化 CTFSHOW 反序列化 267 Yii2反序列化 CTFSHOW 反序列化 271 Laravel反序列化 知识…

Linux入门-常见指令及权限理解

目录 1、Linux背景 1.1、发展历史 1.2、开源 1.3Linux企业应用现状 2、Linux下的基本命令 2.1、ls 指令 2.2、pwd 命令 2.3、cd 命令 2.4、touch命令 2.5、mkdir 命令 2.6、rmdir 指令和 rm指令 2.7 man 指令 2.8、cp指令 2.9、mv 指令 2.10 cat 2.11 more 2…

掌握 Istio:部署完成后如何运用?

一、环境情况 环境&#xff1a;Ubuntu20.04 机器数量&#xff1a;单机1台 IP&#xff1a;10.9.2.83 二、准备知识 为什么使用 Istio&#xff1f; Istio提供了一种更高级别的服务网格解决方案&#xff0c;它可以简化和加强 Kubernetes 集群中的服务间通信、流量管理、安全…

C++ STL(交集、并集)

交集、并集&#xff1a;set_intersection()、set_union()) 1.交集(求两个数组共同有的元素) #include <bits/stdc.h> using namespace std;const int N 11111;int x[N],y[N];int n;vector<int> vt;int main() {cin>>n;for(int i0;i<n;i) cin>>x[…

如何利用RunnerGo简化性能测试流程

在软件开发过程中&#xff0c;测试是一个重要的环节&#xff0c;需要投入大量时间和精力来确保应用程序或网站的质量和稳定性。但是&#xff0c;随着应用程序变得更加复杂和庞大&#xff0c;传统的测试工具在面对比较繁琐的项目时非常费时费力。这时&#xff0c;一些自动化测试…

Visual Studio 2013 - 输出窗口一闪而过问题解决

Visual Studio 2013 - 输出窗口一闪而过问题解决 1. Visual Studio Console 一闪而过问题解决1.1. set Debug1.2. set Release References 1. Visual Studio Console 一闪而过问题解决 工程 -> 属性 -> 配置属性 -> 链接器 -> 系统 -> 子系统 -> 下拉框 -&g…

进程及进程状态

1.PCB及task_struct 进程信息被放在一个叫做进程控制块的数据结构中&#xff0c;可以理解为进程属性的集合。 书上称之为 PCB &#xff08; process control block &#xff09;&#xff0c; Linux 操作系统下的 PCB 是 : task_struct。 task_struct是PCB的一种。 task_struc…

西瓜书机器学习AUC与ℓ-rank(loss)的联系理解以及证明(通俗易懂)

前言 在学习到这部分时&#xff0c;对 ℓ-rank 以及AUC的关系难以理解透彻&#xff0c;在网上看到其他博主也并未弄明白&#xff0c;大家大多写自己的理解&#xff0c;我希望您在看完这篇文章时能够深刻理解这二者的关系&#xff0c;如果我的理解有误&#xff0c;希望您在评论…

JAVA实战开源项目:无代码动态表单系统(Vue+SpringBoot)

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 动态类型模块2.2 动态文件模块2.3 动态字段模块2.4 动态值模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 动态类型表3.2.2 动态文件表3.2.3 动态字段表3.2.4 动态值表 四、系统展示五、核心代码5.1 查询档案类型5.…

实现接口自动化测试

最近接到一个接口自动化测试的case&#xff0c;并展开了一些调研工作&#xff0c;最后发现&#xff0c;使用pytest测试框架并以数据驱动的方式执行测试用例&#xff0c;可以很好的实现自动化测试。这种方式最大的优点在于后续进行用例维护的时候对已有的测试脚本影响很小。当然…

基于SWAT-MODFLOW地表水与地下水耦合实践技术教程

原文链接&#xff1a;基于SWAT-MODFLOW地表水与地下水耦合实践技术教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247598169&idx3&sn16d726694ca77f9cda3aa95716a18cc1&chksmfa8201becdf588a846bc1d461b8c985536e6191e7288df035e5bef6fc85b933030f…

【二分查找】算法例题

目录 十八、二分查找 114. 搜索插入位置 ① √- 115. 搜索二维矩阵 ② 116. 寻找峰值 ② √- 117. 搜索旋转排序数组 ② 118. 在排序数组中查找元素的第一个和最后一个位置 ② √ 119. 寻找寻钻排序数组中的最小值 ② 120. 寻找两个正序数组的中位数 ③ 136. 直线上最多…

顺序表的动态分配基本操作

#include <stdio.h> #include <stdlib.h>// 顺序表存储空间动态分配 #define InitSize 10 // 顺序表初始长度 typedef int ElemType; // int类型重命名为ElemType&#xff0c;方便后续调整typedef struct { // 定义结构体ElemType *data; // 用静…