大模型基础之大语言模型的进展

news2024/11/24 19:57:19

关键字:LLM大语言模型,fine-tuning微调

预训练语言模型的两种范式

1 特征提取器

提取语言的特征和表示,作为下游模型的输入。例如有名的word2vec模型。

use the output of PLMs as the input of downstream model

2 fine-tuning(微调)

既能提取语言的特征,同时又是下游模型,参数随着训练被更新。例如有名的gpt和bert。

GPT

一个强大的生成模型

从左到右自回归学习地去做预训练。

BERT

双向理解文本,加入mask去遮盖一些词,可以理解成完形填空。随机mask一些词,比例是15%,然后在模型最后一层去预测这些被遮盖的词。

BERT高效的预训练任务:Masked的词预测;下一个句子预测。

BERT存在的问题

预训练和微调间存在鸿沟,[mask] token在预训练中很重要,但是在下游任务中不会出现,也就是不会出现在微调阶段。

预训练效率低,只能预测15%的词。

预训练大语言模型的进展(2023)

参考论文:Harnessing the Power of LLMs in Practice: A Survey on ChatGPT and Beyond

论文链接:https://arxiv.org/pdf/2304.13712.pdf

 目前大模型进化图如上所示。

什么是大语言模型

LLM是在大量数据集上预先训练的巨大语言模型(模型参数很多),它没有使用数据对特定任务进行微调。

fine-tuned models微调模型通常是较小的语言模型,这些模型也经过预训练,然后在较小的、特定于任务的数据集上进一步调整,以优化它们在该任务上的性能。

从实际的角度来看,我们认为参数小于20B的模型是微调模型。虽然可以微调像PlaM(540B)这样的大型模型,但实际上,这可能非常具有挑战性,特别是对于学术研究实验室和小型团队。对于许多个人或组织来说,使用 3B 参数微调模型仍然是一项艰巨的任务。

大模型分类

如上图所示,大概三种类型:编码器-解码器、仅编码器语言模型、仅解码器语言模型。

仅解码器模型已经逐渐主导了LLM的发展。在LLMs开发的早期阶段,仅解码器模型并不像仅编码器和编码器-解码器模型那样流行。然而,在 2021 年之后,随着改变游戏规则的 LLM - GPT-3 的推出,仅解码器模型经历了显着的繁荣。与此同时,在BERT带来的最初爆炸性增长之后,仅编码器模型逐渐开始消失。

类别训练类型模型类型预训练任务LLMs
Encoder-Decoder or Encoder-only (Bert style)掩码语言模型判别式模型预测被mask的单词BERT、T5

Decoder-only

(GPT style)

自回归语言模型生成式模型预测下一个单词GPT3、GPT4、BLOOM

BERT风格的语言模型:编码器-解码器或仅编码器

由于自然语言数据很容易获得,并且已经提出了无监督训练范式以更好地利用非常大的数据集,这激发了自然语言的无监督学习。
一种常见的方法是在考虑周围上下文的同时预测句子中的屏蔽单词。
这种训练范式称为掩码语言模型。这种类型的训练使模型能够更深入地理解单词之间的关系以及使用它们的上下文。
这些模型使用Transformer架构等技术在大量文本语料库上进行训练,并在许多NLP任务中取得了最先进的结果,例如情感分析和命名实体识别。掩蔽语言模型的著名例子包括BERT,RoBERTa 和T5 。MLM由于其在广泛的任务中的成功而成为自然语言处理领域的重要工具。

GPT 式语言模型:仅解码器

尽管语言模型在体系结构中通常与任务无关,但这些方法需要对特定下游任务的数据集进行微调。

研究人员发现,扩大语言模型可以显著提高少数样本甚至零样本的表现。游戏规则改变者 GPT-3 首次通过提示和上下文学习展示了合理的少数样本甚至零样本性能,从而展示了自回归语言模型的优越性。

大模型的预训练数据

预训练数据的多样性在塑造模型性能方面也起着至关重要的作用,LLM的选择在很大程度上取决于预训练数据的组成部分。

例如,PaLM 和 BLOOM 擅长多语言任务和机器翻译,具有丰富的多语言预训练数据。此外,PaLM在问答任务中的表现通过结合大量的社交媒体对话和书籍语料库而得到增强。同样,GPT-3.5 (code-davinci-002) 的代码执行和代码完成功能通过在其预训练数据集中集成代码数据来增强。

简而言之,在为下游任务选择 LLM 时,建议选择在类似数据字段上预先训练的模型。

大模型的微调数据

零注释数据:在注释数据不可用的情况下,在零样本设置中使用LLM被证明是最合适的方法。LLM已被证明优于以前的零样本方法。此外,缺少参数更新过程可确保避免灾难性遗忘,因为语言模型参数保持不变。

很少有注释的数据:在这种情况下,将少数样本直接纳入LLM的输入提示中,称为上下文学习,这些示例可以有效地指导LLM推广到任务中。但是,与使用 LLM 相比,由于微调模型的规模较小且过度拟合,性能可能较差。

丰富的注释数据:对于特定任务的大量注释数据可用,可以考虑微调模型和LLM。在大多数情况下,微调模型可以很好地拟合数据。在此方案中,使用微调模型或 LLM 之间的选择是特定于任务的,还取决于许多因素,包括所需的性能、计算资源和部署约束。简要总结:LLM在数据可用性方面更通用,而微调模型可以考虑丰富的注释数据。

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

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

相关文章

【代码随想录 | Leetcode | 第一天】数组 | 二分查找 | 边界问题 | 34-35-69-367-704

前言 欢迎来到小K的Leetcode|代码随想录|专题化专栏,今天将为大家带来二分查找边界问题(循环不变量规则)的分享✨ 目录 前言704. 二分查找367. 有效的完全平方数69. x 的平方根35. 搜索插入位置34. 在排序数组中查找元素的第一个和最后一个位…

PN结、形成过程、单向导电性、伏安特性、电容效应

目录 1.1.3PN结 PN结形成过程: PN结的单向导电性: PN结的伏安特性 PN结的电容效应 1.1.3PN结 形成:由于扩散运动而形成 扩散运动:物质总是从浓度高的地方向浓度低的地方运动,这种由于浓度差而产生的运动称为扩散运…

微服务 云原生:微服务相关技术简要概述

后端架构演进 单体架构 所谓单体架构,就是只有一台服务器,所有的系统、程序、服务、应用都安装在这一台服务器上。比如一个 bbs 系统,它用到的数据库,它需要存储的图片和文件等,统统都部署在同一台服务器上。 单体架…

ubuntu20.04配置vscode

下载: https://az764295.vo.msecnd.net/stable/660393deaaa6d1996740ff4880f1bad43768c814/code_1.80.0-1688479026_amd64.debhttps://az764295.vo.msecnd.net/stable/660393deaaa6d1996740ff4880f1bad43768c814/code_1.80.0-1688479026_amd64.deb 安装&#xff1a…

MySQL基础篇第9章(子查询)

文章目录 1、需求分析与问题解决1.1 实际问题1.2 子查询的基本使用1.3 子查询的分类 2、单行子查询2.1 单行比较操作符2.2 代码示例2.3 HAVING中的子查询2.4 CASE中的子查询2.5 子查询中的空值问题2.6 非法使用子查询 3、多行子查询3.1 多行比较操作符3.2 代码示例3.3 空值问题…

vuepress - - - 首页底部版权信息加a标签超链接跳转或备案信息跳转链接

修改前 默认的底部版权信息只能填写纯文本,加不了超链接跳转等。 对应\docs\README.md内容: 修改后 修改后,点击Zichen跳转会打开新的网页。 看官网例子 底部添加了备案号跳转链接。 找到官网的github部署的文件。点导航栏中的“指…

flutter开发实战-实现webview与Javascript通信JSBridge

flutter开发实战-实现webview与H5中Javascript通信JSBridge 在开发中,使用到webview,flutter实现webview是使用原生的插件实现,常用的有webview_flutter与flutter_inappwebview 这里使用的是webview_flutter,在iOS上,…

【IMX6ULL驱动开发学习】20. input子系统(按键实现ls命令)

一、input子系统相关结构体 二、input子系统实例实现: static struct input_dev *key_input;...... ....../* 1.申请空间 */ key_input input_allocate_device(); if(key_input NULL){printk("input alloc failed\n");return -ENOMEM; } /* 2.设置事件类…

Go实现WebSocket

Go语言标准包里面没有提供对WebSocket的支持,但是在由官方维护的go.net子包中有对这个的支持,你可以通过如下的命令获取该包: go get golang.org/x/net/websocket WebSocket分为客户端和服务端,接下来我们将实现一个简单的例子:…

云进销存是什么意思,云进销存系统该如何选?

云进销存是指基于云计算技术的一种进销存管理系统,云进销存系统可以帮助企业或中小商户实时监控库存情况、优化采购和销售流程、提高物流效率,以及生成各类报表和统计分析,从而提升企业或商户的运营效率和管理水平。 一、云进销存对中小商户有…

C#,数值计算——不完全 Beta 函数(incomplete beta function)的源代码

Incomplete Beta Function The incomplete beta function (also called the Euler Integral) is a generalized β-function; An independent integral (with integral bounds from 0 to x) replaces the definite integral. The formula is: Where: 0 ≤ x ≤ 1, a, b > 0…

Pro白嫖esri数据

最近用Pro比较多,想跟大家谈谈一些关于Pro的 技巧。在谈之前,我想问大家一个问题,你真的了解ArcGIS Pro吗? 我想大多数刚刚接触Pro的用户应该是把Pro当做像Map一样的数据处理分析工具,只是简单的从其他地方下载数据来加入工程进行处理和分析 或许在你眼里的Pro和Map仅有…

在Orangepi上使用raspberry的dashboard

树莓派实验室整了一个比较酷的dashboard,可以用来显示树莓派状态,主要内容是基于js和php来实现,因为orangepi的用户名和密码都是一个套路,首先想到能不能移植。 https://www.rstk.cn/news/860562.html?actiononClick 首先需要做…

Docker把公共镜像推送到harbor私服的流程(企业级)

如果构建项目时,使用了k8s docker Jenkins的模式。 那么我们在docker构建镜像时,如果需要使用了Nodejs,那么我们必须得从某个资源库中拉取需要的Nodejs。 在企业里,正常都会把自己项目涉及的库都放在harbor私服里。 下面讲一下&…

数据分类分级

数据分类是数据管理的第一步,是数据治理的先行条件。当前,数据应用方兴未艾。“数据”作为新的生产要素资源,支撑供给侧结构性改革、驱动制造业转型升级的作用日益显现,正成为推动质量变革、效率变革、动力变革的新引擎。但与此同…

python3+requests+unittest实战系列【二】

前言:上篇文章python3requestsunittest:接口自动化测试(一)已经介绍了基于unittest框架的实现接口自动化,但是也存在一些问题,比如最明显的测试数据和业务没有区分开,接口用例不便于管理等&…

ROS中bag的录制、播放和使用

文章目录 前言一、bag录制二、bag信息查看三、bag播放四、bag的使用(以A-LOAM为例) 前言 传感器获取到的信息,有时我们可能需要实时处理,有时可能只是采集数据,事后分析,比如: 机器人导航实现中&#xff0…

Tomcat 基础

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、概述 二、安装 三、 目录结构 四、启停 五、配置文件 1. server.xml (1) Server (2) Listener (3) GlobalNamingResources (4) Service 01.Connector (1) port…

硬件故障恢复出文件之后数据库故障处理---惜分飞

客户那边硬件故障(raid损坏磁盘超过了极限,导致raid offline),通过硬件恢复出来数据文件,然后尝试自行恢复,我接手的时候大量数据文件resetlogs scn异常. 重建控制文件报错 WARNING: Default Temporary Tablespace not specified in CREATE DATABASE command Default Tempora…

Git安装详解(写吐了,看完不后悔)

Git 是一个非常流行的分布式版本控制系统,它帮助开发者管理和跟踪项目中的代码变化。通俗地说,可以认为 Git 就像是一个代码的时间机器,它记录了项目从开始到结束的每一次代码变动。 无论你是个人开发者还是团队成员,掌握 Git 都能…