当前位置: 首页 > news >正文

Showrunner AI技术浅析(二):大型语言模型

1. GPT-3模型架构详解

GPT-3是基于Transformer架构的预训练语言模型,由OpenAI开发。其核心思想是通过自注意力机制(Self-Attention)处理输入序列,并生成自然语言文本。

1.1 Transformer架构基础

Transformer架构由Vaswani等人在2017年提出,主要由编码器(Encoder)和解码器(Decoder)组成。然而,GPT-3仅使用Transformer的解码器部分进行生成任务。

1.1.1 解码器(Decoder)

解码器是GPT-3的核心组件,负责生成自然语言文本。其主要组成部分包括多头自注意力机制、掩码自注意力机制和前馈神经网络。

1.1.1.1 多头自注意力机制(Multi-Head Self-Attention)

多头自注意力机制允许模型在不同的表示子空间里关注输入序列的不同部分。其计算过程如下:

1.输入表示:

  • 输入序列 X=[x_{1},x_{2},...,x_{n}],其中 x_{i} 是第 i 个词的嵌入向量。

2.线性变换:

  • 将输入 X 线性变换为查询(Q)、键(K)和值(V)矩阵:

    其中,W^{Q},W^{K},W^{V} 是可训练的权重矩阵。

3.自注意力计算:

  • 计算注意力得分:

    其中,d_{k} 是键的维度,用于缩放注意力得分,防止梯度消失或爆炸。

4.多头处理:

  • 对 h 个不同的头分别进行上述计算:

  • 将所有头的输出拼接起来,并通过线性变换得到最终输出:

1.1.1.2 掩码自注意力机制(Masked Self-Attention)

掩码自注意力机制防止模型在生成当前词时看到未来的词。其计算过程如下:

1.输入表示: 输入序列 Y=[y_{1},y_{2},...,y_{m}],其中 y_{i}​ 是第 i 个词的嵌入向量。

2.线性变换: 将输入 Y 线性变换为查询(Q)、键(K)和值(V)矩阵。

3.掩码处理: 在计算注意力得分时,屏蔽掉未来的词:

其中,MaskMatrix 是一个掩码矩阵,用于遮蔽未来的词。

1.1.1.3 前馈神经网络(Feed-Forward Neural Network)

前馈神经网络对每个位置的上下文表示进行非线性变换。其计算过程如下:

1.输入: 多头自注意力的输出 Z

2.线性变换和激活函数:

其中,W_{1},W_{2} 是权重矩阵,b_{1},b_{2}​ 是偏置向量,\textrm{max}\left ( 0,\cdot \right )是ReLU激活函数。

3.残差连接和层归一化:

  • 残差连接:

  • 层归一化:

1.2 位置编码(Positional Encoding)

由于Transformer模型本身不包含位置信息,GPT-3使用位置编码来提供序列中词的位置信息。位置编码通常使用正弦和余弦函数生成:

其中,pos 是位置,i 是维度索引,d_{model}​ 是嵌入向量的维度。

2. 模型训练

2.1 训练目标

GPT-3的训练目标是在给定前文的情况下预测下一个词。其损失函数为交叉熵损失:

其中,y_{t} 是目标序列中的第 t 个词,P\left ( y_{t}|y<t \right )是模型预测第 t 个词的条件概率。

2.2 训练过程

1.数据预处理:

  • 收集并清洗大量文本数据,包括书籍、文章、代码等。
  • 使用标记化技术将文本转换为标记序列。

2.模型初始化:

  • 初始化模型参数,使用Xavier或Kaiming初始化方法。

3.前向传播:

  • 输入序列通过解码器生成上下文向量。
  • 使用掩码自注意力机制防止模型看到未来的词。

4.计算损失:

  • 计算生成文本与真实文本之间的交叉熵损失。

5.反向传播:

  • 使用反向传播算法计算梯度。
  • 使用优化算法(如Adam)更新模型参数。

6.梯度裁剪:

  • 防止梯度爆炸,设置梯度裁剪阈值。

7.学习率调度:

  • 动态调整学习率,使用余弦退火或学习率衰减。

3. 生成过程

3.1 推理与生成

1.初始化:

  • 从起始标记(<START>)开始。

2.解码:

  • 使用掩码自注意力机制生成当前词的预测。
  • 使用前馈神经网络生成当前词的预测概率分布。

3.预测:

  • 使用束搜索或采样策略选择下一个词。

4.终止:

  • 当生成终止标记(<END>)时,终止生成过程。
3.2 束搜索(Beam Search)

束搜索通过保留多个候选序列来提高生成文本的质量。以下是束搜索的基本步骤:

1.初始化:

  • 从起始标记开始,生成前 kk 个最可能的词作为候选序列。

2.扩展:

  • 对每个候选序列,生成前 kk 个最可能的下一个词,生成新的候选序列。

3.剪枝:

  • 保留前 kk 个得分最高的候选序列。

4.终止:

  • 当所有候选序列生成终止标记时,终止搜索。
3.3 采样策略

采样策略通过随机采样生成文本,可以增加生成文本的多样性。以下是一些常见的采样策略:

  • Top-K采样: 从概率最高的 k 个词中随机选择一个。
  • Top-p采样(核采样): 从累积概率超过 p 的最小集合中随机选择一个词。
  • 温度采样: 通过调整温度参数 T(T>0)来控制生成文本的随机性。T 越小,生成文本越确定;T 越大,生成文本越随机。

相关文章:

Showrunner AI技术浅析(二):大型语言模型

1. GPT-3模型架构详解 GPT-3是基于Transformer架构的预训练语言模型&#xff0c;由OpenAI开发。其核心思想是通过自注意力机制&#xff08;Self-Attention&#xff09;处理输入序列&#xff0c;并生成自然语言文本。 1.1 Transformer架构基础 Transformer架构由Vaswani等人在…...

Web安全攻防入门教程——hvv行动详解

Web安全攻防入门教程 Web安全攻防是指在Web应用程序的开发、部署和运行过程中&#xff0c;保护Web应用免受攻击和恶意行为的技术与策略。这个领域不仅涉及防御措施的实现&#xff0c;还包括通过渗透测试、漏洞挖掘和模拟攻击来识别潜在的安全问题。 本教程将带你入门Web安全攻防…...

买卖股票的最佳时机 - 合集

************* C 买卖股票问题合集 ************* Since I have finished some stocks problems. I wanna make a list of the stocks to figure out the similarities. Here is the storks topucs list, from easy to hard: 121. 买卖股票的最佳时机 - 力扣&#xff08;L…...

gitlab window如何设置ssh

在GitLab中设置SSH需要以下步骤&#xff1a; 在GitLab账户中&#xff0c;导航到“用户设置”下的“SSH密钥”部分。 生成SSH密钥对&#xff08;如果你还没有的话&#xff09;。在Windows上&#xff0c;你可以使用ssh-keygen命令来生成密钥。 在命令提示符或PowerShell中运行以…...

go配置文件

https://github.com/spf13/viper viper golang中常用的配置文件工具为viper库&#xff0c;是一个第三方库。viper功能&#xff1a; 解析JSON、TOML、YAML、HCL等格式的配置文件。监听配置文件的变化(WatchConfig)&#xff0c;不需要重启程序就可以读到最新的值。...

深度学习之超分辨率算法——SRGAN

更新版本 实现了生成对抗网络在超分辨率上的使用 更新了损失函数&#xff0c;增加先验函数 SRresnet实现 import torch import torchvision from torch import nnclass ConvBlock(nn.Module):def __init__(self, kernel_size3, stride1, n_inchannels64):super(ConvBlock…...

GIT命令使用手册(详细实用版)

一、git常用操作参考 第一次提交完整步骤&#xff1a; 1.git init; 2.git add . 3.git commit -m "初始化" 4.git remote add origin https://github.com/githubusername/demo.git 5.git pull origin master 6.git push -u origin master&#xff08;使用-u选项可以将…...

数据分析实战—IMDB电影数据分析

1.实战内容 1.加载数据到movies_df&#xff0c;输出前5行&#xff0c;输出movies_df.info(),movies_df.describe() # &#xff08;1&#xff09;加载数据集&#xff0c;输出前5行 #导入库 import pandas as pd import numpy as np import matplotlib import matplotlib.pyplo…...

【SQL/MySQL 如何使用三种触发器】SQL语句实例演示

触发器介绍 – 触发器是与表有关的数据库对象&#xff0c;指在insert/update/delete之前(BEFORE)或之后(AFTER)&#xff0c;触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容&#xff0c;这与其他的数据库是相似的。现在触发器还只…...

社区团购管理系统(源码+数据库)

355.基于SpringBoot的社区团购管理系统&#xff0c;系统包含两种角色&#xff1a;管理员、用户,系统分为前台和后台两大模块&#xff0c;主要功能如下 二、项目技术 编程语言&#xff1a;Java 数据库&#xff1a;MySQL 项目管理工具&#xff1a;Maven 前端技术&#xff1a;Vue …...

时钟分频模块

实现时钟的二分频&#xff0c;四分频 1.时钟分频模块&#xff1a; module clk_div(input clk, //50Mhzinput rst_n,input [15:0] lcd_id,output reg lcd_pclk);reg clk_25m; reg clk_12_5m; reg …...

linux ipmitool配置机器的BMC(服务器管理后台)

前置&#xff1a;mgnt口和网卡1连接入内网&#xff0c;并分配静态ip 1. 安装 ipmitool Debian/Ubuntu: sudo apt-get update sudo apt-get install ipmitool CentOS/RHEL: sudo yum install ipmitool2. 配置 BMC 的 IP 地址 #打印当前ipmi 地址配置信息。 ipmitool lan p…...

【Springboot知识】Redis基础-springboot集成redis相关配置

文章目录 1. 添加依赖2. 配置Redis连接3. 配置RedisTemplate&#xff08;可选&#xff09;4. 使用RedisTemplate或StringRedisTemplate5. 测试和验证 集群配置在application.properties中配置在application.yml中配置 主从配置1. 配置Redis服务器使用配置文件使用命令行 2. 配置…...

【数据结构】八大排序

目录 一、直接插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 八、计数排序 稳定性结论 稳定性&#xff1a;排序后相同元素之间的相对顺序是否保持不变。 一、直接插入排序 基本思想&#xff1a;通过构建有序序列&#xff…...

mmdetection:图片推理以及将预测标签转换为YOLO格式标签

本文记录了使用 mmdetection 进行图片推理&#xff0c;并将推理结果坐标格式转换为yolo格式保存在txt中的代码。 文章目录 一、图片推理二、批量处理 一、图片推理 一个图片推理的demo。 import os import mmcv from mmdet.apis import init_detector, inference_detector fr…...

CV-OCR经典论文解读|An Empirical Study of Scaling Law for OCR/OCR 缩放定律的实证研究

论文标题 An Empirical Study of Scaling Law for OCR OCR 缩放定律的实证研究 论文链接&#xff1a; An Empirical Study of Scaling Law for OCR论文下载 论文作者 Miao Rang, Zhenni Bi, Chuanjian Liu, Yunhe Wang, Kai Han 内容简介 本论文在光学字符识别&#xf…...

从混沌到秩序:Python的依赖管理工具分析

Python 的依赖管理工具一直没有标准化&#xff0c;原因主要包括&#xff1a; 历史发展的随意性&#xff1a;Python发展早期对于依赖管理的重视程度不足&#xff0c;缺乏从一开始就进行统一规划和设计的意识 社区的分散性&#xff1a;Python社区庞大且分散&#xff0c;众多开发…...

【系统】Windows11更新解决办法,一键暂停

最近的windows更新整的我是措不及防&#xff0c;干啥都要关注一下更新的问题&#xff0c;有的时候还关不掉&#xff0c;我的强迫症就来了&#xff0c;非得关了你不可&#xff01; 经过了九九八十一难的研究之后&#xff0c;终于找到了一个算是比较靠谱的暂停更新的方法&#x…...

小红书关键词搜索采集 | AI改写 | 无水印下载 | 多维表格 | 采集同步飞书

小红书关键词搜索采集 | AI改写 | 无水印下载 | 多维表格 | 采集同步飞书 一、下载影刀&#xff1a; https://www.winrobot360.com/share/activity?inviteUserUuid595634970300317698 二、加入应用市场 https://www.yingdao.com/share/accede/?inviteKeyb2d3f22a-fd6c-4a…...

【原生js案例】前端封装ajax请求及node连接 MySQL获取真实数据

上篇文章&#xff0c;我们封装了ajax方法来请求后端数据&#xff0c;这篇文章将介绍如何使用 Node.js 来连接 MySQL&#xff0c;并对数据库进行操作。 实现效果 代码实现 后端接口处理 const express require("express"); const connection require("../da…...

Ubuntu将深度学习环境配置移植到新电脑

这里默认新电脑已经安装好了conda、CUDA这些&#xff0c;可以直接创建新的虚拟环境。 参考链接&#xff1a; https://blog.csdn.net/Chujun123528/article/details/143788565https://blog.csdn.net/qq_41779275/article/details/122868946https://blog.csdn.net/YajunLin/art…...

vue基础作业实验十

vue基础作业实验十 实验要求案例要点&#xff1a;代码以及思考style部分Vue.js 部分Vue 实例部分 这段代码是一个基于 Vue.js 的静态页面&#xff0c;功能包括商品品牌的添加、删除和搜索。 实验要求 一、实验的基本内容 &#xff08;1&#xff09;Vue模板语法。 &#xff08…...

冒泡排序(JAVA)

package com.guangyunl.f_array;import java.util.Random; import java.util.Scanner;// 数组的冒泡排序 // 冒泡排序法是采用数组中相邻元素进行比较换位 public class Demo02Bubble {public static void main(String[] args) {Demo02Bubble demo02Bubble new Demo02Bubble()…...

如何测量分辨率

一、什么是分辨率&#xff1f; 分辨率指的是分清物体细节的能力。分辨率是一个成像系统还原空间频率的能力。一些人只是简单的用分辨率去描述极限分辨率&#xff0c;但是相机在在不同的对比度的情况下还原低&#xff0c;中和高频率的能力&#xff0c;也可以显示全面综合的信息。…...

【Mysql索引优化】索引优化的最佳实现

文章目录 【Mysql优化】索引优化的最佳实现1. 全值匹配&#xff1a;索引的最佳使用方式2. 最左前缀法则3. 尽量使用覆盖索引&#xff1a;优化查询性能。减少 select \* 语句4. 范围查询优化5. 不在索引列上做任何操作&#xff08;计算、函数、&#xff08;自动or手动&#xff0…...

centos使用mkisofs构建无人值守镜像(附官方学习文档)

安装mkisofs yum install -y mkisofs 挂载镜像并确认 并拷贝文件(/mnt 为我们的工作目录) 1.3 准备自动应答文件(保存为 ins.ks) 修改系统引导 实际上就是添加inst.ks 这个引导参数 传递应答文件 传统模式引导 UEFI模式引导 打包镜像 通用选项 -v&#xff1a;启用详细模式&a…...

Python获取当前系统中可用的串口设备

import serial.tools.list_portsdef checkDevice(self):port_data []for port in serial.tools.list_ports.comports():port_data.append(port.description)if port_data:for devInfo in port_data:self.toolLogPrinting(可用设备 devInfo)RET Trueelse:self.toolLogPrinti…...

基于蓝牙通信的手机遥控智能灯(论文+源码)

1.系统设计 灯具作为人们日常生活的照明工具为人们生活提供光亮&#xff0c;本次基于蓝牙通信的手机遥控智能灯设计功能如下&#xff1a; &#xff08;1&#xff09;用户可以通过蓝牙通信模块的作用下&#xff0c;在手机端遥控切换智能灯不同的工作模式&#xff1b; &#x…...

【Prometheus 】【实战篇(五)】深入解析 Prometheus 监控指标类型:Counter、Gauge、Histogram 和 Summary

Prometheus 提供了四种核心的指标类型&#xff0c;分别是 Counter&#xff08;计数器&#xff09;、Gauge&#xff08;仪表&#xff09;、Histogram&#xff08;直方图&#xff09;和 Summary&#xff08;摘要&#xff09;。这些指标类型在客户端库中有具体的使用说明&#xff…...

进程间通信方式---消息队列(System V IPC)

进程间通信方式—消息队列&#xff08;System V IPC&#xff09; 文章目录 进程间通信方式---消息队列&#xff08;System V IPC&#xff09;消息队列1.消息队列进程间通信原理2.msgget 系统调用3.msgsnd 系统调用4.msgrcv 系统调用5.msgctl 系统调用6.函数使用案例7.实现生产者…...

【笔记】深度学习模型评估指标

推荐链接&#xff1a; &#xff08;0&#xff09;多分类器的评价指标 &#xff08;1&#xff09;泛化误差的评价方法&#xff1a;【机器学习】模型评估与选择&#xff08;留出法、交叉验证法、查全率、查准率、偏差、方差&#xff09; &#xff08;2&#xff09;机器学习&…...

Python语法之列表(包含检测练习)

看完后有没有学会呢&#xff1f;主页有一个列表知识小检测^V^ 关注我更新更多初学实例 主页还有字典的&#xff0c;这个系列会持续更新 列表 列表中的查找数据&#xff08;index,count,len) 一 列表的格式 【数据1&#xff0c;数据2&#xff0c; 】 index():返回指定数据…...

气象与旅游之间的关系,如果借助高精度预测提高旅游的质量

气象与旅游之间存在密切的关系,天气条件直接影响旅游者的出行决策、旅游体验和安全保障。通过高精度气象预测技术,可以有效提升旅游质量,为游客和旅游行业带来显著的优势。 1. 提高游客出行决策效率 个性化天气服务:基于高精度气象预测,旅游平台可以提供个性化的天气预报服…...

JVM(Java虚拟机)分区详情

JVM(Java虚拟机)运行时数据区是Java虚拟机的内存管理模型,它包括了多个关键的内存区域,这些区域各自承担着不同的职责,共同支持着Java程序的运行。以下是JVM运行时数据区的详细介绍: 一、整体概述 JVM运行时数据区按照线程占用的情况可以分为两类:线程共享和线程独享。…...

计算机组成原理的学习笔记(2)--数据表示与运算·其二 逻辑门和加减乘

学习笔记 前言 本文主要是对于b站尚硅谷的计算机组成原理的学习笔记&#xff0c;仅用于学习交流。 1. 逻辑门 逻辑门是数字电路中用于执行基本逻辑运算的组件。每种逻辑门都有独特的功能和特性&#xff1a; 与门&#xff08;AND Gate&#xff09;&#xff1a; 符号&#xff1…...

数据科学与SQL:如何利用本福特法则识别财务数据造假?

目录 0 本福特法则介绍 1 数据准备 2 问题分析 步骤1:提取首位数: 步骤2:计算首位数字的实际频率分布 <...

Mapbox-GL 的源码解读的一般步骤

Mapbox-GL 是一个非常优秀的二三维地理引擎&#xff0c;随着智能驾驶时代的到来&#xff0c;应用也会越来越广泛&#xff0c;关于mapbox-gl和其他地理引擎的详细对比&#xff08;比如CesiumJS&#xff09;&#xff0c;后续有时间会加更。地理首先理解 Mapbox-GL 的源码是一项复…...

常见网络命令

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 常见网络命令 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 Ping 命令 …...

Ubuntu上如何部署Nginx?

环境&#xff1a; Unbuntu 22.04 问题描述&#xff1a; Ubuntu上如何部署Nginx&#xff1f; 解决方案&#xff1a; 在Ubuntu上部署Nginx是一个相对简单的过程&#xff0c;以下是详细的步骤指南。我们将涵盖安装Nginx、启动服务、配置防火墙以及验证安装是否成功。 1. 更新…...

微店商品详情API:获取商品信息的高效途径

引言 在电商领域&#xff0c;获取商品详情是开发者和商家进行数据分析、精准营销和店铺管理的重要一环。微店作为知名的电商平台&#xff0c;提供了丰富的API接口供开发者使用&#xff0c;其中商品详情API接口尤为关键。本文将详细介绍如何使用微店API接口获取商品详情&#x…...

编程语言注释的方式

Python 单行注释 # 这是一个单行注释多行注释&#xff08;本质上是跨行字符串&#xff09; 这是一个多行注释的示例。它可以跨越多行。 """这是一个多行注释的示例。它可以跨越多行。 """ C 单行注释 // 这是一个单行注释 多行注释 /*这是…...

抓住节假日的机会调整ASO优化策略

节日季和全年的特殊活动为提高应用程序的知名度和下载量提供了独特的机会。忽略节假日意味着错过这些有限的扩大用户群的机会。相反&#xff0c;调整您的应用商店优化 (ASO) 策略以适应这些高流量时段至关重要。以下是如何在假期期间最大限度地提高应用程序的性能。 一、为什么…...

AOI外观缺陷检测机

主要功能&#xff1a; 快速检测产品装配缺陷&#xff0c;包括螺丝、元器件、端子排线、二维码、一维条码、识别读码、产品外观 Logo缺陷以及产品标签、字符缺陷检测等产品的缺陷检测。 设备优势&#xff1a;1.采用轻型可移动支架&#xff0c;可以快速对接产线工艺工序&am…...

BERT模型

目录 1.BERT介绍2.BERT框架2.1 Embedding2.2 Transformer Encoder 3.BERT可视化4.注意力六种模式4.1 模式1&#xff1a;注意下一个词4.2 模式2&#xff1a;注意前一个词4.3 模式3&#xff1a;注意相同或相关的单词4.4 模式4&#xff1a;注意“其他”句子中相同或相关词4.5 模式…...

Ubuntu22.04上安装esp-idf

一、安装准备# 建议使用Ubuntu 20.04 或 Ubuntu 22.04 操作系统 为了在 Ubuntu 22.04 中使用 esp-idf&#xff0c;需要安装一些依赖包 sudo apt-get install git wget flex bison gperf python3\python3-pip python3-venv cmake ninja-build ccache\libffi-dev libssl-dev dfu…...

Synchronous Serial Port 协议详解

1、简介 Synchronous Serial Port (SSP) &#xff0c;基于下图文档的设计标准 1.1、包含3种数据帧格式&#xff1a; a Motorola SPI-compatible interface&#xff08;以下简称SPI&#xff09;a Texas Instruments synchronous serial interface&#xff08;简写SSI&#xff…...

BSM和BMS什么区别?

BSM BSM&#xff08;Battery System Manager&#xff09;是指用于管理和控制电动车辆的电池系统的设备&#xff0c;其功能包括监测电池状态、控制充放电过程、保护电池安全等。 BMS BMS&#xff08;Battery Management System&#xff09;是指用于监测、控制和保护电池组的设…...

基于海思soc的智能产品开发(巧用mcu芯片)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于开发车规级嵌入式软件的同学来说&#xff0c;socmcu这样的组合&#xff0c;他们并不陌生。但是传统的工业领域&#xff0c;比如发动机、医疗或…...

R语言混合模型回归GBTM群组轨迹模型绘图可视化研究

全文链接&#xff1a;https://tecdat.cn/?p38581 在回归分析的广袤领域中&#xff0c;面对具有多条未知函数线的复杂数据时&#xff0c;传统方法常常捉襟见肘。混合模型作为一种强有力的分析手段应运而生&#xff0c;其在处理此类复杂情境时展现出独特的优势与潜力&#xff08…...

Flink2.0未来趋势中需要注意的一些问题

手机打字&#xff0c;篇幅不长&#xff0c;主要讲一下FFA中关于Flink2.0的未来趋势&#xff0c;直接看重点。 Flink Forward Asia 2024主会场有一场关于Flink2.0的演讲&#xff0c;很精彩&#xff0c;官方也发布了一些关于Flink2.0的展望和要解决的问题。 1.0时代和2.0时代避免…...