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

大模型之语言大模型技术

本文作为大模型综述第篇,介绍语言大模型基本技术。

近年来,在 Transformer 架构基础上构建的预训练语言模型为自然语言处理领域带来了一系列突破式进展,成为人工智能主流技术范式。预训练语言模型采用“预训练+微调”方法,主要分为两步: 1)将模型在大规模无标注数据上进行自监督训练得到预训练模型, 2)将模型在下游各种自然语言处理任务上的小规模有标注数据进行微调得到适配模型。由于预训练语言模型参数越大模型表现越好,这激发了语言大模型(Large Language Model, LLM)研究热潮。

目录:

1.Transformer 架构

2.语言大模型架构

3.语言大模型关键技术

1.Transformer 架构

Transformer 架构是目前语言大模型采用的主流架构, 其基于自注意力机制(Self-attention Mechanism)模型。其主要思想是通过自注意力机制获取输入序列的全局信息,并将这些信息通过网络层进行传递。标准的 Transformer 如图所示,是一个编码器-解码器架构,其编码器和解码器均由一个编码层和若干相同的 Transformer 模块层堆叠组成,编码器的 Transformer 模块层包括多头注意力层和全连接前馈网络层,这两部分通过残差连接和层归一化操作连接起来。与编码器模块相比,解码器由于需要考虑解码器输出作为背景信息进行生成,其中每个 Transformer 层多了一个交叉注意力层。相比于传统循环神经网络(Recurrent Neural Network, RNN)和长短时记忆神经网络(Long Short-Term Memory Network, LSTM), Transformer 架构的优势在于它的并行计算能力,即不需要按照时间步顺序地进行计算。Transformer 架构包含编码层与 Transformer 模块两个核心组件。

编码层

主要是将输入词序列映射到连续值向量空间进行编码,每个词编码由词嵌入和位置编码构成,由二者加和得到:

1) 词嵌入

在 Transformer 架构中,词嵌入是输入数据的第一步处理过程, 它将词映射到高维空间中的向量, 可以捕获词汇的语义信息,如词义和语法关系。每个词都被转化为一个固定长度的向量,然后被送入模型进行处理。

                                                             Transformer 架构

2)位置编码

由于自注意力机制本身对位置信息不敏感,为了让模型能够理解序列中的顺序信息,引入了位置编码。标准Transformer 架构的位置编码方式是使用正弦和余弦函数的方法。对于每个位置 i,对应的位置编码是一个长度为 d 的向量,其中 d 是模型的嵌入维度。这个向量的第 j 个元素由以下公式计算:如果 j 是偶数,那么编码的第 j 个元素为sin( i/10000 ) j/ d ; 如果 j 是奇数,那么编码的第 j 个元素为 cos( i/10000 ) j/ d 。

         Transformer 自注意力网络

Transformer模块

通过自注意力机制获取输入序列的全局信息,并将这些信息通过网络层进行传递, 包括多头注意力层和全连接前馈网络层,这两部分通过残差连接和层归一化操作连接起来 ,Transformer 模块,由自注意力层、全连接前馈层、残差连接和层归一化操作等基本单元组成:

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

相关文章:

大模型之语言大模型技术

本文作为大模型综述第二篇,介绍语言大模型基本技术。 近年来,在 Transformer 架构基础上构建的预训练语言模型为自然语言处理领域带来了一系列突破式进展,成为人工智能主流技术范式。预训练语言模型采用“预训练+微调”方法,主要分为两步: 1)将模型在大规模无标注数据上…...

浮点数例外 (核心已转储) 的问题记录

一般这种问题,是程序运行过程中出现浮点数运算错误导致的程序崩溃 浮点异常可能由以下几个原因引起: 除以零:当程序中出现除以零的操作时,会触发浮点异常。例如,当一个数除以0时,会导致浮点异常。数值溢出…...

Vite项目中根据不同打包命令配置不同的后端接口地址,proxy解决跨域

在vite.config.ts同级目录添加两个文件 .env.development #开发环境 VITE_APP_ENV developmentVITE_APP_BASE_API .env.production #生产配置 VITE_APP_ENV productionVITE_APP_BASE_API https://www.bdjw.work代码中使用路径 const request axios.create({baseURL: i…...

Java新手启航:JDK 21 版本安装,开启编程之行

在Java开发前,JDK是必不可少的环境,接下来,让我们一起完成JDK 21版本的下载和安装! 种一棵树最好的时间是10年前,其次就是现在,加油! …...

Redis学习[5] ——Redis过期删除和内存淘汰

六、Redis过期键值删除 6.1 Redis的过期键值删除策略 6.1.1 什么是过期键值删除? Redis中是可以对key设置过期时间的,所以需要有相应的机制将已过期的键值对删除,也就是**过期键值删除策略。Redis会用一个过期字典(expires dic…...

书生大模型学习笔记 - Python

Python实现wordcount 请实现一个wordcount函数,统计英文字符串中每个单词出现的次数。返回一个字典,key为单词,value为对应单词出现的次数。 解题思路:首先把字母转小写>然后把单词取出来去除标点>循环单词列表>key已存…...

spring security和核心流程

...

JavaScript青少年简明教程:面向对象编程入门

JavaScript青少年简明教程:面向对象编程入门 JavaScript 支持多种编程范式(programming paradigms),即支持多种不同的编程风格和方法。 前面介绍的编程方式,主要是面向过程编程(Procedural Programming&am…...

电话号的标准

点击标题下「蓝色微信名」可快速关注 最近碰到个电话号码的问题,除了常规数字,可能还会有国内国际的区号,例如中国,86、086、86,这些好像都见过,但什么是标准的?谁来定义的? 国际电信…...

项目实战_表白墙(升级版)

你能学到什么 表白墙(升级版)Mybatis的一些简单应用 正文 前⾯的案例中, 我们写了表⽩墙, 但是⼀旦服务器重启, 数据就会丢失. 要想数据不丢失, 需要把数据存储在数据库中,接下来咱们借助MyBatis来实现数据库的操作。 数据准备 如果我们…...

创意无限:11个设计圈热议的UI设计灵感网站集锦

无论你是一个经验丰富的UI设计师还是一个新的UI设计师,拥有一些高质量、可靠的UI设计网站灵感库都能加速你的设计过程。借助灵感资源,您可以更快、更有效地启动该项目。与此同时,优秀的UI设计网站也能帮助您探索新的设计解决方案,…...

C# Solidworks二次开发------综合小设计-1

一、内容 本文对前面所提及的相关信息做一些小设计 二、代码 public void Open_File(string FileNmae) {Process.Start("explorer.exe", FileNmae); }public void Connect_Excel() {string connectionString "ProviderMicrosoft.Jet.OLEDB.4.0;Data Source&q…...

nginx rtmp服务器搭建

参考链接:https://blog.csdn.net/bitcsljl/article/details/125826323...

打卡第31天------贪心算法

每天抓紧时间刷题,争取尽快上岸,不能再耽误一分一秒了,2024年已经过去大半年了。这个算法编程题是我的痛点。要尽快弥补。 卡尔在讲算法题的时候,思路比较清晰,通俗易懂,以前看见算法题就害怕,因为啥都不会,看懵了,跟了一个月了,每天坚持刷题,偶尔会回顾思路,也会…...

jenkins服务器重启,构建记录消失

1、进入系统管理查看系统运行日志,发现报保存构建日志失败 jenkins module java.base does not "opens java.lang.ref" to unnamed module 5276d6ee Java平台模块系统对类的可见性和访问权限进行了严格的控制。在Java 9及以上版本中,java.la…...

Linux系统部分问题处理方案

目录 一:crontab输出结果控制 二:telnet很慢/ssh很慢 三:Read-onlyfilesystem 四:⽂件删了磁盘空间没释放 五:获取不了⽹关mac地址 六: http服务⽆法启动⼀例 七:ibdata1和mysql-bin致磁盘空间问题 一:crontab输出结果控制 问题: /var/spool/clientmqueue⽬录…...

C语言指针与数组

在上一篇对指针介绍的文章当中,我们初次了解到了指针,并且知道了地址和内存间的关系,懂得了如何取地址和对指针的解引用,算是对指针有了一个初步的了解。而今天让我们对指针进行更深一步的了解吧~ 一、指针与数组名 我们知道&am…...

Stream 33

package Array.collection;import java.util.*; import java.util.stream.Stream;public class stream1 {public static void main(String[] args) {//、如何茯取List集合的Stream流?List<String> names new ArrayList<>();Collections. addAll(names,"方法…...

【Python Loguru】实现日志工具和日志饶接

【Python Loguru】实现日志工具和日志饶接 说明 代码使用第三方库Loguru实现了logging工具&#xff0c;可以直接改名字后就使用&#xff0c;并实现了日志绕接&#xff0c;使用前需要先安装loguru工具。 Code import os import json from loguru import logger# config_file…...

【Linux】-----进度条小程序

目录 前言 基本知识 Ⅰ、回车和换行 Ⅱ、缓冲区 两个有意思的现象 简单定义 刷新缓冲区 简易倒计时程序 进度条代码 多文件下makefile写法 一代(无任何场景) procs1.h代码 procs1.c代码 主函数main1.c 一代运行结果&#xff1a; 二代 (搭配下载场景) procs2.c代…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

基于当前项目通过npm包形式暴露公共组件

1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹&#xff0c;并新增内容 3.创建package文件夹...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)

目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 ​编辑​编辑 UDP的特征 socke函数 bind函数 recvfrom函数&#xff08;接收函数&#xff09; sendto函数&#xff08;发送函数&#xff09; 五、网络编程之 UDP 用…...

Visual Studio Code 扩展

Visual Studio Code 扩展 change-case 大小写转换EmmyLua for VSCode 调试插件Bookmarks 书签 change-case 大小写转换 https://marketplace.visualstudio.com/items?itemNamewmaurer.change-case 选中单词后&#xff0c;命令 changeCase.commands 可预览转换效果 EmmyLua…...