大语言模型(LLM)快速理解

自2022年,ChatGPT发布之后,大语言模型(Large Language Model),简称LLM掀起了一波狂潮。作为学习理解LLM的开始,先来整体理解一下大语言模型。

一、发展历史

大语言模型的发展历史可以追溯到早期的语言模型和机器翻译系统,但其真正的起点可以说是随着深度学习技术的兴起而开始。

1.1 统计语言模型

在深度学习技术出现之前,语言模型主要基于传统的统计方法,也称为统计语言模型(SLM)。

SLMs是基于统计语言方法开始,基本思想是基于马尔可夫假设建立词预测模型,如根据最近的上下文预测下一个词。具有固定上下文长度n的SLM也称为n—gram语言模型。

然而这些模型虽然简单,但在处理长文本序列时存在着词汇稀疏性和上下文理解能力有限等问题。

1.2 神经语言模型

随着神经网络技术的发展,Bengio等人于2003年提出了神经语言模型,将语言模型建模问题转化为了一个神经网络的学习问题。

循环神经网络(RNN)和长短期记忆网络(LSTM)的提出进一步增强了神经语言模型对文本序列的建模能力。这些模型能够捕捉到文本序列中的长程依赖关系,从而提高了语言模型的性能。

2013年,Google提出了Word2Vec模型,通过词嵌入(Word Embedding)的方式将单词映射到连续的向量空间中,提高了语言模型对单词语义的理解能力。

2017年,谷歌提出了Transformer模型,该模型通过自注意力机制(Self-Attention)实现了并行计算,大大提高了模型的训练速度。

1.3 预训练语言模型

2018年,OpenAI发布了第一个版本的GPT模型,利用Transformer结构进行预训练,这是首个成功利用大规模无监督学习方法来预训练通用语言表示的模型。

2018年,Google提出了BERT模型,与GPT的区别是GPT采用了单向的自回归方式进行预训练,而BERT通过MLM和NSP实现双向上下文建模。使得预训练语言模型的性能得到了进一步的提升。

随后就激发了后续一系列的预训练模型的发展,如XLNet、RoBERTTa、T5、 GPT-2、GPT-3、GPT 3.5、GPT-4 等等。而大语言模型也是在此过程中被定义下来的。

二、什么是大语言模型

2.1 定义

从大语言模型字面意思来理解,“语言”和“模型”很好理解,就是代表着在自然语言处理上的AI模型。而这个大指的是神经网络很大,包括模型的参数数量训练数据量计算资源等。

参数数量

大语言模型通常含有数十亿到数千亿个参数,使得模型能够有更强的语言理解、推理和生成能力。

如果只通过 GPT(生成式预训练 Transformer)模型的演进规模来看:

在这里插入图片描述

训练数据

训练大语言模型通常需要大规模的文本语料库。这些语料库可以包括来自互联网、书籍、新闻等各种来源的文本数据,从而确保模型能够学习到丰富和多样化的语言知识。

如GPT-3,它是在混合数据集上进行训练的;PaLM使用了一个有社交媒体对话、过滤后的网页、书籍、Github、多语言维基百科和新闻组成的预训练数据集。

计算资源

训练大型语言模型需要大量的计算资源,包括高性能的计算机集群、大容量的存储设备以及高速的网络连接。

英伟达价格高昂但依然一卡难求的高性能GPU H100,长期霸占着LLM领域的热门话题,可以说,英伟达垄断了目前的AI算力市场。马斯克甚至戏言:GPU现在比drug还紧俏。

2.2 大语言模型训练方式

现有的神经网络在进行训练时,一般基于反向传播算法(BP算法),先对网络中的参数进行随机初始化,再利用随机梯度下降(SGD)等优化算法不断优化模型参数。

大语言模型的训练通常采用两阶段方法:预训练(pre-training)微调(fine-tuning)

预训练(Pre-training):

  • 在预训练阶段,模型使用大规模无监督的文本数据进行训练,学习文本数据中的语言表示。
  • 通常采用自监督学习方法,即使用文本数据自身作为标签来训练模型。
  • 训练过程中,模型通过最小化损失函数来优化参数,以使得模型能够更好地表示文本中的语义和语法信息。

微调(Fine-tuning):

  • 在预训练完成后,可以将预训练好的模型参数应用于特定的下游任务,如文本生成、文本分类、情感分析等。
  • 在微调阶段,通常使用带标签的数据集对模型进行进一步训练,以适应特定任务的需求。微调可以在预训练模型的顶部添加一个或多个额外的层,并使用标签数据对这些层进行训练。
  • 微调的目标是调整模型参数,使得模型能够更好地适应特定任务的特征和标签,从而提高任务性能。

在微调阶段,模型在与目标任务或领域相关的更具体、更小的数据集上进一步训练。这有助于模型微调其理解,并适应任务的特殊要求。

三、预训练

3.1 数据收集及处理

3.1.1 数据来源

无论是怎样的模型,数据的质量都是相当重要的。现有的大语言模型主要混合各种公共文本数据集作为预训练语料库。如下为一些代表性模型的预训练数据来源的分布情况。

图片

语料库的来源可以广义分为通用文本数据专用文本数据。通用指的就是如网页、书籍和对话文本等广泛可获取的,可以增强模型的泛化能力;专用文本数据就是在想让模型更加专注某一专业领域时所用的,如科学数据、代码等。

如上图中的模型中,就大部分都是使用了通用的预训练数据。

3.1.2 数据预处理

收集数据之后,由于不确定性,所以需要对数据进行预处理,尤其是噪声、荣誉、无关或有害的数据。预处理过程如下:

图片

(1) 质量过滤(Quality Filtering)

删除低质量数据,常采用基于分类器和基于启发式两种方法。

分类器就是使用用高质量数据训练好的二分类的模型来对数据进行分类,不过可能会删除方言、口语和社会语言的高质量文本。

基于启发式就是设计一组精心设计的规则来消除低质量文本,如基于语言、生成文本的评估度量、统计特征、关键词等。

(2)去重(De-duplication)

重复数据会降低语言模型的多样性,所以需要进行去重处理。
从数据颗粒上来说,可以分为在句子级、文档级和数据集级等进行去重;

(3)隐私去除(Privary Reduction)

如涉及敏感个人信息的隐私内容,也是需要去除的,很简单有效的就是用基于如姓名、地址、电话号码等关键词的方法。

(4)分词(Tokenization)

非常关键的步骤,将原始文本分割成词序列。

3.2 架构

3.2.1 编码器-解码器架构(Encoder-Decoder)

图片

如传统Transformer 模型就是建立在此结构上。它使用了6层的Encoder和Decoder

图片

3.2.2 因果编码器架构(Causal decoder)

这时当前主流使用的,采用单向注意力掩码,以确保每个输入标记只能关注过去的标记和它本身。输入输出标记通过解码器以相同的方式处理。典型的模型有 GPT1/23, OPT, BLOOM, Gopher。

3.2.3 前缀解码器架构(Prefix decoder)

修正了因果解码器的掩码机制,以使其能够对前缀标记执行双向注意力,并仅对生成的标记执行单向注意力。
这样与编码器-解码器架构类似,前缀解码器可以双向编码前缀序列并自回归地逐个预测输出标记,其中在编码和解码过程中共享相同的参数。

总的来说,Encoder-Decoder适用于序列到序列的任务,Causal Decoder适用于需要生成自回归序列的任务,而Prefix Decoder适用于需要根据特定前缀生成序列的任务。

3.3 模型训练

在数据处理好,模型搭建好之后,就要开始对模型进行训练。

四、微调和强化学习

在预训练后,大语言模型可以获得解决各种任务的通用能力。然而,还可以通过特定目标进一步调整,也就是微调(Instruction Tuning)

4.1 指令微调

通过在特定的指令性任务数据集上进行训练,提高模型对于指令类输入的理解和响应。

指令的意思,举个例子,对聊天机器人的指令,需要包括如“今天天气如何”和对应的回答,供模型学习。

也就是说需要包含明确指令的数据集,一个指令需要包括一个任务描述、一个输入输出对以及少量实例(可选)。

常用的指令实例格式化方法有格式化已有的数据集还有格式化人类需求。

指令微调对模型的性能改进和任务泛化能够起到很好的作用

4.2 对齐微调

大语言模型有时可能表现出意外的行为,例如制造虚假信息、追求不准确的目标,以及产生有害的、误导性的和偏见性的表达。为了避免这些意外行为,研究提出了人类对齐,使大语言模型行为能够符合人类的期望也就是对齐微调

在预训练阶段使用的训练语料库是没有对模型的主观定性评估的。所以可以在使用人类反馈的数据进行微调,这个过程称为强化学习

五、应用

大语言模型作为具有广泛应用的变革工具而受到重视。

  • 文本生成:这些模型具有理解上下文、含义和语言的微妙复杂性的固有能力。因此,他们可以生成连贯且上下文相关的文本。
  • 问答与信息检索:大语言模型在问答和信息检索领域正在快速发展。他们理解人类语言的卓越能力使他们能够从庞大的数据存储库中提取相关细节。
  • 情感分析与意见挖掘:了解人类的情感和观点在不同的环境中都具有巨大的意义,从塑造品牌认知到进行市场分析。像在社交媒体监控和品牌认知分析领域的应用。
  • 辅助代码生成:如GitHub Copilot、通义灵码

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

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

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

相关文章

「C/C++」C++标准库之#include<fstream>文件流

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

十六:Python学习笔记-- 爬虫(2)requests 模块详解

目录 安装 requests 模块 基本请求方法 GET 请求 POST 请求 PUT 请求 DELETE 请求 添加请求头: 处理查询参数: 文件上传: 常见响应状态码 访问超时 cookie的查询和设置 查询 Cookies 设置 Cookies 设置爬虫代理 小试牛刀 安装 …

无人机敏捷反制技术算法详解!

一、技术概述 无人机敏捷反制技术算法主要通过对非法入侵的无人机进行快速、精准的探测、识别、干扰和摧毁等操作,从而消除无人机威胁,保障人员和财产安全。这一技术涵盖了多种技术手段,如无线电干扰、激光打击、网捕等,并需要综…

8个最佳iMacros替代方案(2024)

1、前言 iMacros是web自动化、抓取和测试的领先工具,它提供了一个浏览器扩展和桌面工具,可以轻松地自动化你的日常任务,然而,自动化所需的关键功能仅在高级版本中可用,iMacros几乎没有其他缺点。 如图所示&#xff1…

数据库数据恢复—Oracle ASM磁盘组掉线 ,ASM实例无法挂载的数据恢复案例

Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储…

解决电脑突然没有声音

问题描述:电脑突然没有声音了,最近没有怎么动过系统,没有安装或者卸载过什么软件,也没有安装或者卸载过驱动程序,怎么就没有声音了呢? 问题分析:仔细观察,虽然音量按钮那边看不到什…

filebeat+elasticsearch+kibana日志分析

1 默认配置 1.1 filebeat filebeat-7.17.yml,从网关中下载k8s的配置,指定es和kibana的配置 通过kibana查询可以查询到日志了,但此时还不知道具体怎么用。 1.2 kibana 在Discover中创建索引格式:filebeat-*,得到如下图&#xf…

【书生.浦语实战营】——入门岛

【书生.浦语实战营】——入门岛_第一关_Linux基础 任务分布1. 本地vscode远程连接并进行端口映射端口映射What——何为端口映射How——怎么进行端口映射 2. Linux基础命令touch :创建文件mkdir :创建目录cd:进入 退出 目录pwd :确定当前所在目录cat:可以…

Metasploit(MSF)使用

目录 Metasploit简要介绍 主要功能 漏洞利用: Payload 生成: 辅助模块: 后渗透模块: 报告生成: 使用教程以及案例 基础命令使用 生成被控端 命令介绍 kali启动主控端 1.启动以及设置载荷等配置 漏洞检测…

zynq PS端跑Linux响应中断

这篇文章主要是讲述如何在Zynq的PS上跑Linux启动IRQ,环境为vivado2019.1,petalinux2019.1 ubuntu20.04,本人初学者,欢迎批评指正 1. Vivado硬件设计 确保自定义IP的中断信号通过 IRQ_F2P 连接到PS端。在开始Petalinux配置之前&a…

SpringBoot篇(监控)

目录 学习前言 一、什么是监控? 二、监控的意义 1. 简介 2. 总结 3. 思考 三、可视化监控平台 1. 简介 2. 实操 2.1. 服务端开发 2.2. 客户端开发 配置多个客户端 2.3. 总结 2.4. 思考 四、监控原理 1. 简介 2. 总结 五、自定义监控指标 1. 简介…

huggingface的lora与resume方法训练模型(以BERT为列)

文章目录 前言一、LoRA训练与Resume方法Demo1、LoraConfig配置文件介绍2、PEFT的LoRA训练的完整Demo3、LoRA训练与LoRA的resume训练1、LoRA训练2、LoRA的resume训练 4、PEFT的LoRA训练方法 二、权重载入1、参数2、文件路径获取3、config加载更新4、权重文件加载1、不同条件权重…

比微软的GraphRag更加强大的LightRAG:简单快速的检索增强生成

🚀 LightRAG:简单快速的检索增强生成 该存储库托管了 LightRAG 的代码。该代码的结构基于nano-graphrag。 请添加图片描述 🎉 新闻 [2024.10.29]🎯📢LightRAG 现在支持多种文件类型,包括 PDF、DOC、PPT …

Unreal Engine 5 C++(C#)开发:使用蓝图库实现插件(二)编辑BPLibrary.h中的枚举及结构体

目录 引言 一、头文件编写 1.1Kismet/BlueprintFunctionLibrary.h 1.2BPLibrary.generated.h的作用 1.3IImageWrapper.h 1.4 IImageWrapperModule.h 1.5 Engine/Texture2D.h 1.6CoreMinimal.h 二、定义图片/路径类型的枚举 2.1图片枚举类EImageType 2.2路径枚举类EPath…

Qgis 开发初级 《ToolBox》

Qgis 有个ToolBox 的,在Processing->ToolBox 菜单里面,界面如下。 理论上Qgis这里面的工具都是可以用脚本或者C 代码调用的。界面以Vector overlay 为例子简单介绍下使用方式。Vector overlay 的意思是矢量叠置分析,和arcgis软件类似的。点…

Docker可视化工具 Portainer 安装及配置

文章目录 拉取镜像安装和启动容器访问 Portainer设置密码完后即代表安装完毕安装完成 拉取镜像 rootyx-PowerEdge-R730:~# docker pull portainer/portainer Using default tag: latest latest: Pulling from portainer/portainer Digest: sha256:47b064434edf437badf7337e516…

Oracle视频基础1.1.4练习

1.1.4 dbb,ddabcPMON,SMON,LGWR,CKPT,DBWna5,b4,c2,d3,e1ad,a,c,b,eOracle instance,Oracle databaseSGA,background processcontrol file,data file,online redo file 以下是一篇关于 Oracle 基础习题 1.1.4 的博客: Oracle 基础习题解析:1.1.4 本篇文…

每日读则推(十四)——Meta Movie Gen: the most advanced media foundation models to-date

premiere n.首映,首次公演 v.首次公演(戏剧、音乐、电影) a.首要的,最早的 Today we’re premiering Meta Movie Gen: the most advanced media foundation models to-date. 迄今,到现在为止 …

uniapp实现【时间戳转换为日期格式(年-月-日 时-分-秒)】

这是接口返回的数据: 转换成日期格式 具体代码: <view class="time">{{formatDate(res.data.time)}

前端代码注释

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言类注释属性注释函数注释函数参数注释解构 & 函数返回结果 注释Vue Props 注释注释建议注释内容要清晰简洁注释类型避免不必要的注释采用一致的风格版本与更…