大语言模型基础—语言模型的发展历程--task1

目录

1.语言模型的发展历程

1.1 统计语言模型

1.2 神经语言模型

1.3 预训练语言模型

1.4 大语言模型

1.5 总结

1.6 各阶段对比与演进逻辑


1.语言模型的发展历程

语言模型的发展历程经历了四个主要阶段:统计语言模型、神经语言模型、预训练语言模型和大语言模型。统计语言模型基于统计学习方法,使用马尔可夫假设建立预测模型,但存在数据稀疏问题。神经语言模型使用神经网络建模文本序列,引入了分布式词表示,克服了数据稀疏问题。预训练语言模型在训练架构和数据方面进行了创新,使用大规模无标注数据进行预训练,并通过微调适应特定任务。大语言模型通过规模扩展提升性能,展现出新的涌现能力,如上下文学习。


1.1 统计语言模型

统计语言模型使用统计学习方法,基于马尔可夫假设建立预测模型,通常根据固定长度的前缀预测下一个词。具有固定上下文长度 𝑛 的统计语言模型被称为 𝑛 元语言模型。随着 𝑛 的增加,需要估计的转移概率项数指数级增长,导致数据稀疏问题。为缓解此问题,需要设计专门的语言模型平滑策略,如回退估计和古德-图灵估计。尽管如此,平滑方法对于高阶上下文的刻画能力仍然较弱。

  • 时间线:20世纪90年代至2000年代初
  • 关键技术
    • n-gram模型:基于马尔可夫假设,用前n−1个词预测当前词概率。
    • 平滑技术:解决数据稀疏问题(如低频词组合概率为0),常用方法包括拉普拉斯平滑(加一法)和回退法(Katz回退)。
  • 特点
    • 依赖局部上下文,难以捕捉长距离依赖。
    • 计算高效,但模型泛化能力有限。

1.2 神经语言模型

神经语言模型使用神经网络来建模文本序列的生成,如循环神经网络(RNN)。Yoshua Bengio 引入了分布式词表示概念,构建了基于聚合上下文特征的目标词预测函数。分布式词表示使用低维稠密向量表示词汇的语义,与基于词典空间的稀疏词向量表示不同,能够刻画更丰富的隐含语义特征。稠密向量的非零表征对于复杂语言模型的搭建非常友好,有效克服了统计语言模型中的数据稀疏问题。Word2vec 是一个具有代表性的词嵌入学习模型,构建了一个简化的浅层神经网络来学习分布式词表示,所学习到的词嵌入可以用作后续任务的语义特征提取器。

  • 时间线:2003年(Bengio提出神经网络语言模型)至2010年代中期
  • 关键技术
    • 分布式词表示:将词映射为低维稠密向量(如Word2Vec、GloVe),解决稀疏性问题。
    • 神经网络架构:前馈神经网络、RNN、LSTM,可建模更长上下文。
  • 特点
    • 词向量捕捉语义相似性,如“猫”与“狗”向量距离较近。
    • 计算复杂度高,依赖硬件发展(如GPU加速)

1.3 预训练语言模型

预训练语言模型在训练架构与训练数据两个方面进行了改进与创新。ELMo 是一个早期的代表性预训练语言模型,使用大量无标注数据训练双向 LSTM 网络,预训练完成后所得到的 biLSTM 可以用来学习上下文感知的单词表示。BERT 和 GPT-1 是基于 Transformer 架构的预训练语言模型,BERT 采用仅有编码器的 Transformer 架构,而 GPT-1 采用仅有解码器的 Transformer 架构。预训练语言模型确立了“预训练-微调”这一任务求解范式,预训练阶段建立模型的基础能力,微调阶段使用有标注数据对模型进行特定任务的适配。

  • 时间线:2018年(BERT、GPT发布)为转折点
  • 关键技术
    • Transformer架构:自注意力机制(Self-Attention)并行处理长序列。
    • 预训练+微调范式:通过无监督任务(如掩码语言模型)学习通用表征,再针对下游任务微调。
  • 特点
    • 上下文感知能力:动态生成词表示(如BERT区分“bank”的“银行”与“河岸”义项)。
    • 迁移学习泛化:减少对标注数据的依赖

1.4 大语言模型

研究人员发现,通过规模扩展通常会带来下游任务的模型性能提升,这种现象被称为“扩展法则”。一些研究工作尝试训练更大的预训练语言模型,如 GPT-3 和 PaLM,探索扩展语言模型所带来的性能极限。这些大规模的预训练语言模型在解决复杂任务时表现出了与小型预训练语言模型不同的行为。大语言模型具有涌现能力,如 GPT-3 的上下文学习能力。ChatGPT 将 GPT 系列大语言模型适配到对话任务中,展现出令人震撼的人机对话能力。

  • 时间线:2020年(GPT-3发布)后进入爆发期
  • 关键技术
    • 超大规模参数:千亿级参数(如GPT-3含1750亿参数)提升模型容量。
    • 上下文学习(In-context Learning):通过提示(Prompt)直接生成答案,无需微调。
    • 指令微调与提示工程:如思维链(Chain-of-Thought)引导分步推理。
  • 特点
    • 零样本/少样本学习:仅需少量示例即可适应新任务。
    • 多任务统一架构:问答、翻译、代码生成等任务共用同一模型。

1.5 总结

语言模型的发展从统计语言模型到神经语言模型,再到预训练语言模型和大语言模型,经历了技术方法和架构的不断创新。统计语言模型受限于数据稀疏问题,而神经语言模型通过分布式词表示克服了这一问题。预训练语言模型通过大规模无标注数据预训练和微调,显著提升了自然语言处理任务的性能。大语言模型通过规模扩展进一步提升了模型性能,并展现出新的涌现能力,如上下文学习,为自然语言处理领域带来了新的突破。

1.6 各阶段对比与演进逻辑

阶段核心问题解决方案代表模型/技术
统计语言模型数据稀疏、局部依赖n-gram、平滑技术Trigram模型
神经语言模型语义表示、长距离依赖词嵌入、RNN/LSTMWord2Vec、ELMo
预训练语言模型通用语义表征Transformer、自监督预训练BERT、GPT-2
大语言模型复杂任务泛化超大规模参数、提示工程GPT-3、ChatGPT

 

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

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

相关文章

BIG_EVENT

环境准备: 开发: 跨域问题: 只有浏览器才存在跨域问题, 此时浏览器的地址和前端服务一致,所以不存在跨域问题, 但是当浏览器中的js代码需要向8080发送请求时就会由于存在跨域问题而失败. 简单的说前端和浏览器的地址端口是一致的,浏览器只能向前端服务发送请求, 所以可以使用配…

DAY33 贪心算法Ⅱ

122. 买卖股票的最佳时机 II - 力扣&#xff08;LeetCode&#xff09; 想到把整体利润分解为每天的利润&#xff0c;就豁然开朗了。 class Solution { public:int maxProfit(vector<int>& prices) {int result0;for(int i1;i<prices.size();i){resultmax(0,pric…

【Qt】qApp简单介绍

1. 介绍 在Qt中&#xff0c;qApp是一个全局指针&#xff0c;它指向当前的QApplication或QGuiApplication对象。这个全局指针在Qt应用程序中非常有用&#xff0c;因为它可以让你在任何地方访问到应用程序对象。 在C中&#xff0c;全局指针是一个可以在程序的任何地方访问的指针…

Redis 设置密码无效问题解决

一、验证密码有没有生效 运行cmd&#xff0c;cd到redis的目录下 输入“redis-cli.exe” 回车 输入“auth 123456” 回车 若错误&#xff0c;说明没有设置密码或者设置的密码没有生效 输入“exit” 回车就立即退出redis 二、解决方案是&#xff1a;直接修改后缀是 .conf 的…

手写一些常见算法

手写一些常见算法 快速排序归并排序Dijkstra自定义排序交替打印0和1冒泡排序插入排序堆排序 快速排序 public class Main {public static void main(String[] args) {int nums[] {1,3,2,5,4,6,8,7,9};quickSort(nums,0,nums.length - 1);}private static void quickSort(int[…

VBA即用型代码手册:选择、转到Select、 Go To

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。可以大大提高自己的劳动效率&#xff0c;而且可以提高数据的准确性。我这里专注VBA,将我多年的经验汇集在VBA系列九套教程中。 作为我的学员要利用我的积木编程思想&#xff0c;积木编程最重要的是积木如何搭建…

[CISSP] [1] 访问控制//入侵检测与网络防护

访问控制 检测性访问控制&#xff08;Detective Access Control&#xff09; 作用&#xff1a;用于发现和记录未经授权的活动。方式&#xff1a;这类控制本身不直接阻止攻击或违规行为&#xff0c;而是监测、检测并记录这些事件&#xff0c;以便后续调查或响应。例子&#xff1…

【SpringBoot】MD5加盐算法的详解

目录 一、什么是加盐算法 二、如何实现加盐算法 2.1 加盐算法代码实现 2.2 注册页面中进行密码加盐 2.3 登录页面进行加盐的解密 2.4 注册和登录 一、什么是加盐算法 加盐算法是一种用于增强密码安全性的技术。这种技术通过在密码存储过程中添加一个随机生成的盐值&…

uniapp移动端图片比较器组件,仿英伟达官网rtx光追图片比较器功能

组件下载地址&#xff1a;https://ext.dcloud.net.cn/plugin?id22609 已测试h5和微信小程序&#xff0c;理论支持全平台 亮点&#xff1a; 简单易用 使用js计算而不是resize属性&#xff0c;定制化程度更高 组件挂在后可播放指示线动画&#xff0c;提示用户可以拖拽比较图片…

CI/CD—Jenkins实现自动构建Docker镜像运行Java程序

实现原理 1、Java代码中创建一个dockerfile文件 --> 2、代码上传至GitLab --> 3、Jenkins同步GitLab的代码进行构建生成jar --> 4、Jenkins将jar包和dockerfile文件传到测试服务器上 --> 5、在测试服务器上执行dockerfile构建jar镜像 --> 6、镜像构建完运行容器…

docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境

docker 搭建alpine下nginx1.26/mysql8.0/php7.4环境 docker-compose.yml services:mysql-8.0:container_name: mysql-8.0image: mysql:8.0restart: always#ports:#- "3306:3306"volumes:- ./etc/mysql/conf.d/mysql.cnf:/etc/mysql/conf.d/mysql.cnf:ro- ./var/log…

队列的简单例题

题目如下 模拟队列 首先你要明白队列的话 只有队尾才能进行新增&#xff0c;也就是入队 只有队首才能出队&#xff0c;也就是删除 队首队尾指针一开始默认都是0 相当于队列中一开始是有一个元素的就是 0的位置 队首指针head0 队尾指针tail0 1.入队也就是队尾要先赋值&#xf…

vue3+elementuiplus的table表格动态高度

table表格流体高度 1、前提 了解自定义指令、hooks 2、核心思路 通过自定义指令&#xff08;new ResizeObserver&#xff09;监听表格变化&#xff0c;然后通过hooks去更新表格高度。 3、核心代码 src/directives/resize.ts // import { debounce } from /utils;import { t…

Apache POI详解

目录 前言 Apache POI是一个强大的Java库&#xff0c;广泛用于处理Microsoft Office文档&#xff0c;包括Word、Excel和PowerPoint等。本文将详细介绍如何使用Apache POI库操作Word模板&#xff08;包括替换占位符、操作表格&#xff09;、将Word文档转换为PDF&#xff0c;以及…

AutoGen多角色、多用户、多智能体对话系统

2023-03-11-AutoGen 使用【autoGenchainlitdeepSeek】实现【多角色、多用户、多智能体对话系统】 1-核心思路 01&#xff09;技术要点&#xff1a;autoGenchainlitdeepSeek02&#xff09;什么是autoGen->autogen是微软旗下的多智能体的框架03&#xff09;什么是chainlit-&g…

问deepseek: OpenFOAM并行分区后,是如何实现ldumatrix矩阵向量乘法计算逻辑的?

在OpenFOAM中&#xff0c;lduMatrix 是用于存储稀疏矩阵的类&#xff0c;支持并行计算。并行分区后&#xff0c;lduMatrix 的矩阵向量乘法通过以下步骤实现&#xff1a; 1. 矩阵分区 分区&#xff1a;将矩阵和向量分配到多个处理器上&#xff0c;每个处理器负责一部分。接口&…

数据类设计_图片类设计之4_规则类图形混合算法(前端架构)

前言 学的东西多了,要想办法用出来.C和C是偏向底层的语言,直接与数据打交道.尝试做一些和数据方面相关的内容 引入 接续上一篇,讨论图片类型设计出来后在场景中如何表达,以及图片的混合算法.前面的内容属于铺垫和基础,这篇内容和实际联系起来了. 背景图和前景图 这里笔者想先…

【openwebui 搭建本地知识库(RAG搭建本地知识库)】

安装准备 openwebui 这个本地安装之前写过使用python安装。也可以直接用docker 命令 docker run --rm -d \-p 3080:8080 \-p 3081:8081 \-e WEBUI_AUTHtrue \-e DEFAULT_LOCALEcn \-e GLOBAL_LOG_LEVEL"INFO" \-e AIOHTTP_CLIENT_TIMEOUT100 \--privilegedtrue \-…

Nginx的流式响应配置详解

现在大模型场景繁多&#xff0c;项目中涉及nginx转发大模型的流式数据时&#xff0c;需配置nginx的转发策略&#xff1a; location /streaming {proxy_pass http://backend_server;proxy_cache off; # 关闭缓存proxy_buffering off; # 关闭代理缓冲chunked_transfer_encoding …

git使用命令总结

文章目录 Git 复制创建提交步骤Git 全局设置:创建 git 仓库:已有仓库? 遇到问题解决办法&#xff1a;问题一先git pull一下&#xff0c;具体流程为以下几步&#xff1a; 详细步骤 Git 复制 git clone -b RobotModelSetting/develop https://gitlab.123/PROJECT/123.git创建提…