秒懂生成式AI—大语言模型是如何生成内容的?

news2024/11/26 20:31:38

备受关注的大语言模型,核心是自然语言的理解与文本内容的生成,对于此,你是否好奇过它们究竟是如何理解自然语言并生成内容的,其工作原理又是什么呢?

要想了解这个,我们就不得不先跳出大语言模型的领域,来到机器翻译这里。传统的机器翻译方式,还是采用 RNN 循环神经网络。

循环神经网络(RNN)是一种递归神经网络,以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接。

释义来源:文心一言

就“我画一幅画”这句话而言,它会先将其拆分为“我”、“画”、“一幅”、“画”四个词,然后递进式一个词一个词对这句话进行理解翻译,像是:

在这里插入图片描述

然后输出:I have drawn a picture.

这种方式简单直接,但因为 RNN 自身的线性结构导致其无法对海量文本进行并行处理,运行缓慢,另外还会有“读到后面忘了前面”,使 RNN 在处理长序列时会出现梯度消失或爆炸的状况。

直到2017年,Google Brain 和 Groogle Research 合作发布了一篇名为《Attention Is All You Need》的论文,该论文为机器翻译处理提供了一个崭新的方式,同时起了一个与《变形金刚》相同的名字——Transformer。

Transformer 是一种神经网络,它通过跟踪序列数据中的关系来学习上下文并因此学习含义。该模型在2017年由 Google 提出,是迄今为止发明的最新和最强大的模型类别之一。

释义来源:文心一言

Transformer 能对海量文本进行并行处理,因为它使用的是一种特殊的机制,称为自注意力(self-attention)机制。就像我们在进行长阅读时,大脑会依靠注意力选择重点词进行关联,从而“略读”后对文章更好的理解,该机制的作用就是赋予AI这项能力。

self-attention 是一种注意力机制,它通过对输入序列进行线性变换,得到一个注意力权重分布,然后根据这个分布加权输入序列中的每个元素,得到最终的输出。

释义来源:文心一言

同样还是“请注意垃圾分类”这句话,同样是被分成“我”、“画”、“一幅”、“画”四个词,在 Transformer 中它们会经历输入、编码器(encoder)、解码器(decoder)、输出四个阶段。

在这里插入图片描述

具体来看,当句子拆解后输入到编码器(encoder)中,编码器会先对每个词的生成一个初始表征,可简单理解为对每个词的初始判断,比如“画”是名词,也可以是动词。

然后,利用自注意力(self-attention)机制计算词与词之间的关联程度,可以理解为进行打分,比方第一个“画”与“我”的关联程度高就给打6分,第二个“画”与“一幅”的关联也高打8分,“我”与“一幅”没什么关联就打-2分。

在这里插入图片描述

接着,根据打分对先前生成的初始表征进行加工,第一个“画”与“我”的关联程度高,那就可以降低表征中对名词词性的判断,提升动词词性的判断;第二个“画”与“一幅”的关联程度高,那就可以降低表征中对动词词性的判断,提升名词词性的判断。

最后,将加工过的表征输入到解码器(decoder),解码器(decoder)再根据对每个词的了解结合上下文,再输出翻译。在这期间,每个词与词之间都可以同时进行,大大提高了处理速率。

可这样的 Transformer 和大语言模型有什么关系呢?

大语言模型本就是指使用大量文本数据训练的深度学习模型,而 Transformer 正好能为大量文本数据训练提供足够的动力。另外,在加工过的表征输入到解码器(decoder)后,能依靠这些表征推断下一个词出现的概率,然后从左到右逐字生成内容,在这个过程中还会不断结合先前已生成的这个词共同推断。

在这里插入图片描述

比如根据“一幅”、“画”这两个词推断出下一个词是“风格”的概率最大,再兼顾“一幅”、“画”与“风格”推断下下个词是“水墨”,以此类推再下下下个词,下下下下个词,这才有了我们看到的大语言模型的内容生成。

这也是为什么大家普遍认为,大语言模型的诞生起点,就是 Transformer。

那么,Transformer 中最关键的自注意力(self-attention)机制是如何知道“打多少分”的呢?

这是一套比较复杂的计算公式:

在这里插入图片描述

作简单理解的话,可以想想数学课本上关于向量的知识,当两个向量 a 和 b 同向,a.b=lallb|;当 a 和 b 垂直,a.b=0;当 a 和 b 反向,a.b=-lallbl。

如果把这里的 a、b 两个向量,看作是“我”、“画”、“一幅”、“画”四个词当中的两个在空间中的投射,那 a 乘 b 的数值就是打分。

这个数值越大,两个向量的方向越趋于一致,就代表着两个词的关联程度大;

数值是0,那就是两个向量垂直,同理词之间就没有关联;

数值是负数,那两个向量就是相反,两个词不但没关联,还差距过大。

只是这是简单理解,在现实中还需要一套纷繁复杂的计算过程,并且还需要多次的重复,才能获取到更加准确的信息,确定每个词符合上下文语境的含义。

以上就是大语言模型的工作原理了,强大 Transformer 的实用性还不止于在自然语言处理领域,包括图像分类、物体检测和语音识别等计算机视觉和语音处理任务也都有它的身影,可以说 Transformer 就是是今年大模型井喷式爆发的关键。

当然,Transformer 再强也只是对输入的处理过程,要想生成式 AI 生成的内容更符合我们的需求,一个好的输入是重要前提,所以下一期我们就来聊聊什么是好的输入,Prompt 又是什么?

本文来源百度AI,如有侵权请联系删除

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

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

相关文章

Hadoop初识及信息安全(大数据的分布式存储和计算平台)

目录 什么是Hadoop Hadoop的特点 Hadoop优点 Hadoop的缺点 Hadoop的重要组成 信息安全 什么是Hadoop Hadoop 是一个适合大数据的分布式存储和计算平台。 Hadoop的广义和狭义区分: 狭义的Hadoop:指的是一个框架,Hadoop是由三部分组成:H…

做测试半年,我已经掉了4个坑……

从事软件测试工作已经半年多了,刚入职的时候还是一个缺乏实际经验的小白,而现在拿到需求之后也能比较快速地熟悉业务并顺利开展测试,虽然不能说掌握了很多技能,但是相比之前也是有不少收获的,在这个过程中我总结了一点…

使用vue-cli搭建SPA项目

一.SPA项目的构建 前提 nodeJS环境已经搭建完毕 node -v npm -v 什么是SPA项目 SPA(Single Page Application)项目是一种使用单页面架构的Web应用项目。在SPA项目中,整个应用程序只有一个HTML页面,通过动态加载数据和更新DOM来实…

计算机竞赛 深度学习+opencv+python实现昆虫识别 -图像识别 昆虫识别

文章目录 0 前言1 课题背景2 具体实现3 数据收集和处理3 卷积神经网络2.1卷积层2.2 池化层2.3 激活函数:2.4 全连接层2.5 使用tensorflow中keras模块实现卷积神经网络 4 MobileNetV2网络5 损失函数softmax 交叉熵5.1 softmax函数5.2 交叉熵损失函数 6 优化器SGD7 学…

springboot实现发送邮箱验证码

准备工作 在邮箱官网开放SMTP授权,获取相应密钥,才可以进行发送邮件 这里以网易163邮箱为例,登录邮箱后,依次点击“设置-POP3/SMTP/IMAP” ,然后开启SMTP服务。这时候会提示一个授权码,例如:H…

I2C子系统、读取温湿度的逻辑及代码

一、IIC子系统 两根线: scl:时钟线 sda:数据线 iic有4种信号: 起始信号(start):scl是高电平,sda下降沿 终止信号(stop):scl高电平,sda上升沿 应答信号&#xf…

面试官:说说JavaScript中的数据类型?区别?

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! 目录 一、概述 二、显示转换 Number() parseInt() String() Boolean() 三、隐式转换 自动转换为布尔值 自动转换…

SOLIDWORKS2024新功能--SOLIDWORKS篇(二)

该章节包括以下主题: 切口工具槽口延伸戳记工具薄片和槽口中的切割法线 切口工具 您可以使用切口工具在空心或薄壁圆柱体和圆锥体中生成切口。通过选择圆柱面或圆锥面上的边线,您可以将零件平展为钣金。 在早期版本中,如果您有圆柱形或圆锥形…

CTF是什么?

前言 💻随着大数据、人工智能的发展,人们步入了新的时代,逐渐走上科技的巅峰。 ⚔科技是一把双刃剑,网络安全不容忽视,人们的隐私在大数据面前暴露无遗,账户被盗、资金损失、网络诈骗、隐私泄露&#xff…

spring源码环境搭建

spring源码环境搭建 步骤1 :下载Spring-framework源码 https://github.com/spring-projects/spring-framework/tree/5.1.x步骤2:修改build.gradle配置文件 修改repositories里面的maven使用阿里云镜像 maven { url “https://maven.aliyun.com/reposit…

JVM基础知识(内存区域划分,类加载,GC垃圾回收)

目录 内存区域划分 JVM中的栈 JVM中的堆 程序计数器 方法区(元数据区) 给一段代码,某个变量在哪个区域上? 类加载 类加载时机 双亲委派模型 GC 垃圾回收机制 GC 实际工作过程 1.找到垃圾/判定垃圾 1.可达性分析(Java中的做法) 2.引用计数 2.清理垃圾 1.标记清除…

小程序商城开发搭建;

小程序商城系统是基于移动互联网的一种在线购物平台,提供线上商城购物、在线下单、支付及配送等功能。随着智能手机普及率的加速提升,小程序商城系统也成为更多商家的选择。下面是小程序商城系统的主要功能介绍: 1、商品展示:商家…

Vue路由与node.js环境搭建

目录 前言 一.Vue路由 1.什么是spa 1.1简介 1.2 spa的特点 1.3 spa的优势以及未来的挑战 2.路由的使用 2.1 导入JS依赖 2.2 定义两个组件 2.3 定义组件与路径对应关系 2.4 通过路由关系获取路由对象 2.5 将对象挂载到vue实例中 2.6 定义触发路由事件的按钮 2.7 定…

华为云云耀云服务器L实例评测|云耀云服务器L实例的购买及使用体验

华为云云耀云服务器L实例评测|云耀云服务器L实例的购买及使用体验 一、云耀云服务器L实例介绍1.1 云耀云服务器L实例简介1.2 云耀云服务器L实例特点1.3 云耀云服务器L实例使用场景 二、云耀云服务器L实例支持的镜像2.1 镜像类型2.2 系统镜像2.3 应用镜像 三、购买云…

HOOPS Visualize 2023 SP2 U1 Crack-HOOPS Visualize

HOOPS Visualize 是一个以工程为中心的高性能图形库,用于在桌面、移动和 AR/VR 设备上渲染 3D CAD 模型。该 3D 图形库具有线程安全的 C 和 C# 接口以及 OpenGL 和 DirectX 驱动程序,并由响应迅速的专业图形专家提供支持。通过访问最新的 3D GPU 功能&am…

【业务功能篇112】Springboot + Spring Security 权限管理-登录模块开发实战

合家云社区物业管理平台 4.权限管理模块研发 4.3 登录模块开发 前台和后台的认证授权统一都使用SpringSecurity安全框架来实现。首次登录过程如下图: 4.3.1 生成图片校验码 4.3.1.1 导入工具类 (1) 导入Constants 常量类 /*** 通用常量类* author spikeCong* date 2023/5…

【数据结构】【C++】封装红黑树模拟实现map和set容器

【数据结构】&&【C】封装红黑树模拟实现map和set容器 一.红黑树的完成二.改造红黑树(泛型适配)三.封装map和set的接口四.实现红黑树迭代器(泛型适配)五.封装map和set的迭代器六.解决key不能修改问题七.实现map[]运算符重载 一.红黑树的完成 在上一篇红黑树的模拟实现中…

抖音、知乎、小红书的流量算法

目前我国网民规模已超过10亿,在这互联网时代,更是流量为王。各个平台里的每个视频、每张图片,背后都有着算法的身影,支配着所有人的流量。作为内容创作者及运营者来说,除了制作高质量的内容以外,也需要掌握…

五年全满分 | 求臻医学满分通过2023 NGSST-A 能力验证

近期,求臻医学以满分的优异成绩顺利通过了美国病理学家协会(College of American Pathologists, CAP)组织开展的NGSST-A 2023(Next-Generation Sequencing Solid Tumor)能力验证项目。至此,公司已连续五年满…

如何去除音乐中的人声,只留伴奏?

如何去除音乐中的人声,只留伴奏?看到很多小伙伴都有这种需求,今天给大家分享一个宝藏网站,简易操作,可以轻松提取伴奏,想学的一起来看看吧! 音分轨——人声分离软件,这是一个用了人工…