LLM大语言模型-AI大模型全面介绍

简介: 大语言模型(LLM)是深度学习的产物,包含数十亿至数万亿参数,通过大规模数据训练,能处理多种自然语言任务。LLM基于Transformer架构,利用多头注意力机制处理长距离依赖,经过预训练和微调,擅长文本生成、问答等。发展经历了从概率模型到神经网络,再到预训练和大模型的演变。虽然强大,但存在生成不当内容、偏见等问题,需要研究者解决。评估指标包括BLEU、ROUGE和困惑度PPL。

大语言模型 (LLM) 背景

🍹大语言模型 (Large Language Model) 是一种人工智能模型, 它们通常包含数千亿甚至更多的参数,并在大规模数据集上进行训练。大语言模型可以处理多种自然语言任务,如文本分类、问答、翻译、对话等等。

  • 自然语言模型的发展经历了从概率模型到神经网络模型,再到大型语言模型的过程。在这个过程中,关键技术的发展推动了模型的演进和性能的提升。
  • LLM通常建立在Transformer架构之上,这种架构使用了多头注意力机制,能够处理长距离的依赖关系。这些模型通过堆叠多个注意力层来提高其处理复杂语言任务的能力。
  • 随着模型参数数量的增加,LLM展现出了小模型所不具备的特殊能力,如上下文学习能力和逐步推理能力。这些能力的涌现使得LLM在多项任务中取得了显著的效果提升。
  • LLM的训练过程通常包括预训练和微调两个阶段。在预训练阶段,模型在大量无标签数据上学习语言的一般性规律;在微调阶段,模型通过有标签数据进行调优,以适应特定的下游任务。
  • LLM的应用产生了深远的影响,例如ChatGPT等模型展现出了强大的人机对话能力和任务求解能力,这对整个AI研究社区产生了重大影响。
  • 尽管LLM在多方面展现出了强大的能力,但同时也带来了一些风险和挑战,如生成不当内容、偏见放大等问题,这些都需要研究者在模型设计和训练过程中予以重视和解决。

🍹语言模型发展的三个阶段 :

  • 第一阶段 :设计一系列的自监督训练目标(MLM、NSP等),设计新颖的模型架构(Transformer),遵循Pre-training和Fine-tuning范式。典型代表是BERT、GPT、XLNet等;
  • 第二阶段 :逐步扩大模型参数和训练语料规模,探索不同类型的架构。典型代表是BART、T5、GPT-3等;
  • 第三阶段 :走向AIGC(Artificial Intelligent Generated Content)时代,模型参数规模步入千万亿,模型架构为自回归架构,大模型走向对话式、生成式、多模态时代,更加注重与人类交互进行对齐,实现可靠、安全、无毒的模型。典型代表是InstructionGPT、ChatGPT、Bard、GPT-4等。

语言模型通俗理解:用来计算一个句子的概率的模型,也就是判断一句话是否是人话的概率 。

标准定义:对于某个句子序列, 如S = {W1, W2, W3, …, Wn}, 语言模型就是计算该序列发生的概率,如果给定的词序列符合语用习惯, 则给出高概率, 否则给出低概率。

🥂让我们通过一些具体的例子来理解语言模型如何计算句子的概率,并判断一句话是否符合自然语言的语用习惯。

假设有一个非常简单的语言模型,它基于词频来计算句子的概率。这个模型会统计每个单词在大量文本中出现的次数,然后用这些频率来估计概率。例如,如果单词 “the” 在训练集中出现了非常多次,那么 P(the) 就会很高。对于句子 “The quick brown fox jumps over the lazy dog,” 模型会计算每个单词的概率,并将它们相乘得到整个句子的概率 P(S)。

P(S)=P(The)×P(quick)×P(brown)×…timesP(dog)

更复杂的语言模型,如n-gram模型,不仅考虑单个单词的频率,还考虑单词序列的频率。例如,一个bi-gram模型会考虑像 “quick brown” 这样的词对在文本中共同出现的频率。这样,它可以捕捉到一些单词之间的概率依赖关系,比如 “quick” 后面很可能会跟着 “brown”。

P(S)=P(The)×P(quick∣The)×P(brown∣quick)×…×P(dog)

现代语言模型,如基于Transformer的模型,使用深度学习来捕捉更加复杂的语言结构。这些模型可以处理长距离的依赖关系,并且能够根据上下文来预测下一个单词。例如,如果你输入了 “The cat is on the”, 模型可能会预测下一个单词是 “mat”,因为它学会了 “on the mat” 是一个常见的短语。

基于语言模型技术的发展,可以将语言模型分为四种类型:

  • 基于规则和统计的语言模型

  • 神经语言模型

  • 预训练语言模型

  • 大语言模型

  1. 基于规则和统计的语言模型:早期的语音识别系统多采用这种语言模型,它通过计算词序列出现的概率来评估句子的合理性。N-gram模型就是一种典型的基于统计的语言模型,它利用大量文本数据来计算单词序列出现的频率。
  2. 神经语言模型:随着深度学习的发展,神经语言模型(Neural Language Model, NLM)开始兴起。这类模型通常使用神经网络结构,如前馈神经网络(FeedForward Neural Network LM)、循环神经网络(RNN LM)等,能够捕捉到更为复杂的语言模式和上下文信息。
  3. 预训练语言模型:预训练语言模型(Pre-trained Language Model, PLM)是在大规模数据集上进行无监督预训练的模型,然后再针对特定任务进行微调。BERT(Bidirectional Encoder Representations from Transformers)就是一个著名的预训练语言模型,它通过预训练获得丰富的语义表示,适用于多种自然语言处理任务。
  4. 大语言模型:大规模语言模型(Large Language Model, LLM)通常拥有数十亿到数万亿个参数,能够处理各种自然语言处理任务,如自然语言生成、文本分类、文本摘要、机器翻译、语音识别等。这些模型基于深度学习技术,使用互联网上的海量文本数据进行训练,具有强大的语言理解和生成能力。

N-gram

N-gram是一种基于统计的语言模型算法,用于预测下一个词或字符出现的概率💡。

N-gram模型的核心思想是将文本分割成连续的n个词(或字符)的序列,这些序列被称为grams。然后,模型统计这些n-grams在文本中出现的频率,以此作为预测下一个词或字符出现概率的依据。这里的n是一个正整数,表示词组中词的个数。例如,在句子“我喜欢学习自然语言处理”中,1-gram(unigram)是单个词,如“我”、“喜欢”、“学习”等;2-gram(bigram)是两个连续的词,如“我喜欢”、“喜欢学习”等;而3-gram(trigram)则是三个连续的词,如“我喜欢学习”、“喜欢学习自然”等。为了解决参数空间过大问题,引入马尔科夫假设:随意一个词出现的概率只与它前面出现的有限的一个或者几个词有关。

  • 如果一个词的出现与它周围的词是独立的,那么我们就称之为unigram也就是一元语言模型:P(S) = P(W_1)P(W_2)…*P(W_n)
  • 如果一个词的出现仅依赖于它前面出现的一个词,那么我们就称之为bigram:P(S) = P(W_1)*P(W_2|W_1)P(W_3|W_2)…*P(W_n|W_{n-1})
  • 如果一个词的出现仅依赖于它前面出现的两个词,那么我们就称之为trigram:P(S) = P(W_1)*P(W_2|W_1)P(W_3|W_2,W_1)…*P(W_n|W_{n-1},W_{n-2})

在实践中用的最多的就是bigram和trigram,接下来以bigram语言模型为例,理解其工作原理:

首先我们准备一个语料库(数据集),为了计算对应的二元模型的参数,即 P ( W i ∣ W i − 1 ) P(W_i|W{i-1}) P(WiWi1),我们要先计数即 C ( W i − 1 , W i ) C(W{i-1},W_i) C(Wi1,Wi),然后计数 C ( W i − 1 ) C(W_{i-1}) C(Wi1) , 再用除法可得到概率。

根据给定的计数结果,我们可以计算bigram语言模型的参数。首先,我们需要将计数结果转换为概率形式,计算一个句子的概率 :

N-gram语言模型的特点:

  • 优点:采用极大似然估计, 参数易训练; 完全包含了前n-1个词的全部信息; 可解释性强, 直观易理解。

  • 缺点:缺乏长期以来,只能建模到前n-1个词; 随着n的增大,参数空间呈指数增长。数据稀疏,难免会出现OOV问题; 单纯的基于统计频次,泛化能力差。

神经网络语言模型

伴随着神经网络技术的发展,人们开始尝试使用神经网络来建立语言模型进而解决N-gram语言模型存在的问题。

  • 模型的输入: w t − n + 1 , … , w t − 2 , w t − 1 w{t-n+1}, …, w{t-2}, w_{t-1} wtn+1,,wt2,wt1就是前n-1个词。现在需要根据这已知的n-1个词预测下一个词 w t w_t wt C ( w ) C(w) C(w)表示 w w w所对应的词向量。
  • 网络的第一层(输入层)是将 C ( w t − n + 1 ) , … , C ( w t − 2 ) , C ( w t − 1 ) C(w{t-n+1}),…,C(w{t-2}), C(w_{t-1}) C(wtn+1),,C(wt2),C(wt1)这n-1个向量首尾拼接起来形成一个 ( n − 1 ) ∗ m (n-1)*m (n1)m大小的向量,记作 x x x
  • 网络的第二层(隐藏层)就如同普通的神经网络,直接使用一个全连接层, 通过全连接层后再使用 t a n h tanh tanh这个激活函数进行处理。
  • 网络的第三层(输出层)一共有 V V V个节点 ( V V V 代表语料的词汇),本质上这个输出层也是一个全连接层。每个输出节点 y i y_i yi表示下一个词语为 i i i 的未归一化log 概率。最后使用 softmax 激活函数将输出值 y y y进行归一化。得到最大概率值,就是我们需要预测的结果。

基于Transformer的预训练语言模型

基于Transformer的预训练语言模型(T-PTLM)是自然语言处理领域的一大创新,它们通过在大量无标注文本数据上进行预训练来学习通用的语言表征,并能够将这些知识迁移到各种下游任务中,以下是一些重要的T-PTLM及其特点:

  1. GPT(Generative Pre-training Transformer):GPT是一种生成型预训练语言模型,它使用Transformer架构从大规模语料库中学习语言的内在结构和语义信息。GPT的核心思想是自回归建模,即通过逐词预测下一个词的方式来生成整个句子或文本。
  2. BERT(Bidirectional Encoder Representations from Transformers):BERT是一个双向的Transformer编码器,它通过预训练任务(如遮蔽语言模型和下一句预测)来捕捉文本中的上下文信息。BERT模型在多种NLP任务中取得了显著的性能提升。
  3. XLNet:XLNet是一种改进的自回归模型,它在GPT的基础上引入了Transformer-XL中的相对位置编码和段级重复机制,旨在克服GPT在长距离依赖学习和复制机制上的不足。

大语言模型

随着对预训练语言模型研究的开展,人们逐渐发现可能存在一种标度定律,随着预训练模型参数的指数级提升,其语言模型性能也会线性上升。2020年,OpenAI发布了参数量高达1750亿的GPT-3,首次展示了大语言模型的性能。

大语言模型的特点💡:

  • 优点:具备了能与人类沟通聊天的能力,甚至具备了使用插件进行自动信息检索的能力。

  • 缺点:参数量大,算力(进行模型训练和推理所需的计算能力)要求高、生成部分有害的、有偏见的内容等等。

语言模型的评估指标

BLEU

BLEU (Bilingual Evaluation Understudy) 是一种广泛使用的评估机器翻译系统输出质量的指标。它通过比较机器翻译的结果和一组参考翻译(通常由人工翻译或被认为是准确的翻译)来计算翻译的准确性。BLEU算法实际上就是在判断两个句子的相似程度.,BLEU 的分数取值范围是 0~1,分数越接近1,说明翻译的质量越高。

在实际应用中,通常会计算BLEU-1到BLEU-4的值,并对它们进行加权平均以得到一个综合的BLEU分数。这样做的原因是不同的n-gram级别能够捕捉翻译质量的不同方面:BLEU-1更侧重于词汇的准确性,而BLEU-2、BLEU-3和BLEU-4则能够更好地衡量句子的流畅性和结构一致性。

candidate: {it, is, a, nice, day, today}

reference: {today, is, a, nice, day}

☕️

其中{today, is, a, nice, day}匹配,所以匹配度为5/6

candidate: {it is, is a, a nice, nice day, day today}

reference: {today is, is a, a nice, nice day}

☕️

其中{is a, a nice, nice day}匹配,所以匹配度为3/5

candidate: {it is a, is a nice, a nice day, nice day today}

reference: {today is a, is a nice, a nice day}

☕️

其中{is a nice, a nice day}匹配,所以匹配度为2/4

candidate: the the the the

reference: The cat is standing on the ground

如果按照1-gram的方法进行匹配,则匹配度为1,显然是不合理的,所以计算某个词的出现次数进行改进。

ROUGE

ROUGE(Recall-Oriented Understudy for Gisting Evaluation)是一种评估自动文本摘要或机器翻译输出质量的指标,它通过比较生成的摘要与一组参考摘要(通常由人工创建)之间的相似度来衡量。与BLEU类似,ROUGE也使用n-gram的概念,但它们的计算方式和侧重点有所不同。

ROUGE指标通常报告为召回率,因为它更关注生成摘要中包含多少参考摘要的信息,而BLEU则更注重精确率,即生成摘要的准确性。

ROUGE分为四种方法:ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S。

  1. ROUGE-N (ROUGE-n): 计算生成摘要中n-gram(连续的n个单词)在参考摘要中出现的频率。ROUGE-N通常用于计算Unigram(N=1),Bigram(N=2)和Trigram(N=3)。

  2. ROUGE-L (ROUGE-L): 基于最长公共子序列(Longest Common Subsequence, LCS)的方法,计算生成摘要与参考摘要之间的LCS长度与参考摘要长度的比例。

  3. ROUGE-W (ROUGE-W): 基于最长公共子串(Longest Common Substring, LCS)的方法,计算生成摘要与参考摘要之间的LCS数量与参考摘要中的单词总数之比。

  4. ROUGE-S (ROUGE-S): 基于序列的匹配,允许间隔性的词匹配,而不是连续的n-gram匹配。

困惑度PPL

困惑度(Perplexity)是衡量概率模型预测样本的好坏程度的一种指标。在自然语言处理中,它常用于评估语言模型的性能。困惑度越低,表示模型的预测能力越好。

PPL=exp(−fraclog(P(X))N),其中,P(X) 是模型对整个数据集的概率分布的连乘积,N 是数据集中的总词数。困惑度能够衡量语言模型对文本的生成能力,即模型预测单词序列的概率分布的准确性~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python-爬虫 下载天涯论坛帖子

为了爬取的高效性,实现的过程中我利用了python的threading模块,下面是threads.py模块,定义了下载解析页面的线程,下载图片的线程以及线程池 import threading import urllib2 import Queue import re thread_lock threading.RL…

宝塔计划任务调用node程序时,log4js日志保存本地位置会发生变化

接我上一篇文章的情况 超简单的nodejs使用log4js保存日志到本地(可直接复制使用)-CSDN博客 原本应当保存在node项目目录下的日志文件,如果使用宝塔的计划任务来定时执行的话,日志保存路径会发生变化到如下图的位置: 如…

JFrame和JScrollPanel布局初步使用

还不是很了解,做了几个程序; import java.awt.Container; import java.awt.Color; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.border.EmptyBorder;public class pa1 {public static void main(String[] agrs){JF…

AWS在国内的持续受欢迎:探究背后的原因

亚马逊云(AWS)作为全球领先的云计算服务提供商,在国内市场仍然保持着强劲的竞争力和广泛的用户群。尽管国内也有一些本土云计算服务提供商的崛起,但AWS在国内仍然有大量的用户在使用。我们九河云,一直致力AWS云相关服务…

如何使用 Swift 中的 GraphQL

文章目录 前言基础知识ApolloGraphQL结论前言 我一直在分享关于类型安全和在 Swift 中构建健壮 API 的更多内容。今天,我想继续探讨类型安全的话题,介绍 GraphQL。GraphQL 是一种用于 API 的查询语言。本周,我们将讨论 GraphQL 的好处,并学习如何在 Swift 中使用它。 基础…

面试-JMM的内存可见性

1.JAVA内存模型 分析: 由于JVM运行程序的实体是线程,而每个线程创建时,JVM都会 为其创建一个工作内存(栈空间),用于存储线程私有的数据。而java内存模型中规定所有变量都存储在主内存中。主内存是共享内存区域,所有线程都可以访问…

国密SSL证书提升网络安全

随着数字化时代的到来,网络安全已经成为全球关注的焦点。在这种背景下,SSL证书作为保护数据传输安全的重要工具,其重要性日益凸显。 数字证书产品有以下几种类别: 单域名SSL证书:为单一网站提供安全保护。 多域名SS…

C++ ─── vector的实现

知识点: ① 因为vector是模版,所以声明和定义都放在.h中,防止出现编译错误 .h不会被编译,在预处理中.h在.cpp中展开所以在编译时只有.cpp 而 .cpp顺序编译,只会进行向上查找,因此至少有函数的声明。 ②memc…

【JavaEE】浅谈线程(二)

线程 线程的常见属性 线程属性可以通过下面的表格查看。 •ID 是线程的唯⼀标识,不同线程不会重复 • 名称是各种调试⼯具⽤到(如jconsoloe) • 状态表示线程当前所处的⼀个情况,下⾯我们会进⼀步说明 • 优先级高的线程理论上来…

报道 | 2024年7月-2024年9月国际运筹优化会议汇总

封面图来源: https://www.pexels.com/zh-cn/photo/1181406/ 2024年7月-2024年9月召开会议汇总: 2024 INFORMS Advances in Decision Analysis Conference (ADA) Location: Finland Important Dates: Conference: July 10-12, 2024 Details:https://w…

【学习】科大睿智解读ITSS认证中咨询机构的作用

企业拥有ITSS认证这不仅将为企业开拓商机,提升竞争力,还能促使企业改进内部运维流程,提高服务质量,为客户提供更优质的IT运维支持。在ITSS认证中,咨询机构扮演着重要的角色,其主要作用包括以下几个方面&…

【服务器】磁盘满载--docker 的日志文件太大造成满载

一.背景 早上过来测试反馈服务器都宕机了,访问不了。一看服务器磁盘都已经满了。所以开始清磁盘数据。 二.解决 主要查看下面目录情况: /home/libe/docker /containers /volumes /overlay21.查看磁盘情况 df -h/ du -a|sort -rn|…

前端开发的工厂设计模式

在前端开发中,工厂设计模式(Factory Pattern)是一种非常有用的设计模式,能够帮助我们在创建对象时减少代码的重复性和复杂性。 一、工厂设计模式概述 工厂设计模式是一种创建型设计模式,主要目的是定义一个用于创建对…

【PL理论深化】(6) Ocaml 语言: 函数 | 匿名函数 | 函数可以接受多个参数 | OCaml 是一种将函数视为 first-class 的语言

💬 写在前面:本章我们继续介绍如何使用 OCaml 进行函数式编程。介绍如何使用 let 定义函数,讲解匿名函数,函数可以接受多个参数,以及讨论 OCaml 将函数视为 first-class。 目录 0x00 函数 0x01 匿名函数&#xff08…

【C语言】--常见类型和概念

❤️个人主页: 起名字真南 &#x1f495;个人专栏:【数据结构初阶】 【C语言】 目录 第一个C语言程序main函数printf函数库函数关键字字符和ASCII码字符串和\0转义字符 第一个C语言程序 #include<stdio.h> int main() {printf("Hello World\n");return 0; }ma…

【神经网络】CNN网络:深入理解卷积神经网络

&#x1f388;个人主页&#xff1a;豌豆射手^ &#x1f389;欢迎 &#x1f44d;点赞✍评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共同学习、交流进步&#xff01; CNN网络&#xff1a;深入理解…

springboot集成达梦数据库,打包后,tomcat中启动报错

背景&#xff1a;springboot集成达梦数据库8&#xff0c;在工具idea中正常使用&#xff0c;但是打包后&#xff0c;无法启动&#xff0c;报错 pom引入的依赖 但是这种情况&#xff0c;只有在idea中启动没问题的解决方法 需要修改引入的依赖&#xff0c;再次打包就可以 <d…

PatchMixer:一种用于长时间序列预测的Patch混合架构

前言 《PatchMixer: A Patch-Mixing Architecture for Long-Term Time Series Forecasting》原文地址&#xff0c;Github开源代码地址GitHub项目地址Some-Paper-CN。本项目是译者在学习长时间序列预测、CV、NLP和机器学习过程中精读的一些论文&#xff0c;并对其进行了中文翻译…

苹果电脑压缩pdf文件,苹果电脑里如何压缩pdf文件

压缩PDF文件是现代办公和日常生活中经常需要处理的一项任务&#xff0c;无论是为了节省存储空间、方便网络传输&#xff0c;还是为了在移动设备上更流畅地阅读文档&#xff0c;学会有效地压缩PDF都显得尤为重要。在本文中&#xff0c;我们将详细探讨压缩PDF的方法&#xff0c;从…