LLM预训练大型语言模型Pre-training large language models
在上一个视频中,您被介绍到了生成性AI项目的生命周期。
 
如您所见,在您开始启动您的生成性AI应用的有趣部分之前,有几个步骤需要完成。一旦您确定了您的用例范围,并确定了您需要LLM在您的应用程序中的工作方式,您的下一步就是选择一个要使用的模型。
 
您首先的选择将是使用现有的模型还是从头开始训练您自己的模型。在某些特定情况下,从头开始训练您自己的模型可能是有利的,您将在本课程后面了解到这些情况。
 
但是,通常情况下,您将使用现有的基础模型开始开发您的应用程序。许多开源模型都可供像您这样的AI社区成员在您的应用程序中使用。一些主要框架的开发者,如用于构建生成性AI应用的Hugging Face和PyTorch,已经策划了您可以浏览这些模型的中心。
 
这些中心的一个非常有用的特点是包括模型卡片,描述了每个模型的最佳用例、如何进行训练以及已知的限制的重要细节。您将在本周结束时的阅读材料中找到这些模型中心的一些链接。
 
您选择的确切模型将取决于您需要执行的任务的细节。Transformers模型架构的变体适用于不同的语言任务,这主要是因为模型训练方式的差异。为了帮助您更好地了解这些差异,并发展关于哪个模型用于特定任务的直觉,让我们仔细看看大型语言模型是如何被训练的。有了这些知识,您将更容易浏览模型中心并找到最适合您用例的模型。
首先,让我们从高层次看看LLMs的初始训练过程。这个阶段通常被称为预训练。
 
如您在第1课中所见,LLMs编码了语言的深度统计表示。这种理解是在模型的预训练阶段发展起来的,当模型从大量的非结构化文本数据中学习时。这可以是GB、TB,甚至是PB大小的非结构化文本。这些数据来自许多来源,包括从互联网上抓取的数据和为训练语言模型专门组装的文本语料库。
 
在这个自监督学习步骤中,模型内化了语言中存在的模式和结构。这些模式然后使模型能够完成其训练目标,这取决于模型的架构,正如您很快将看到的那样。在预训练期间,模型权重得到更新,以最小化训练目标的损失。编码器为每个令牌生成一个嵌入或向量表示。预训练也需要大量的计算和使用GPUs。
 
请注意,当您从公共网站如互联网抓取训练数据时,您通常需要处理数据以提高质量,解决偏见,并删除其他有害内容。由于这种数据质量策划,通常只有1-3%的令牌用于预训练。当您估计需要收集多少数据时,如果您决定预训练您自己的模型,您应该考虑这一点。
 
本周早些时候,您看到Transformers模型有三种变体;仅编码器、编码器-解码器模型和仅解码器。
 
每一个都是基于一个不同的目标进行训练的,因此学会执行不同的任务。
仅编码器模型也被称为自动编码模型,它们使用遮罩语言建模进行预训练。
 
这里,输入序列中的令牌被随机遮罩,训练目标是预测遮罩令牌以重构原始句子。
 
这也被称为去噪目标。
 
自动编码模型产生了输入序列的双向表示,这意味着模型对令牌的整个上下文有了解,而不仅仅是之前的单词。仅编码器模型非常适合从这种双向上下文中受益的任务。
 
您可以使用它们执行句子分类任务,例如情感分析或令牌级任务,如命名实体识别或单词分类。自动编码模型的一些众所周知的示例是BERT和RoBERTa。
 
现在,让我们看看仅解码器或自回归模型,它们使用因果语言建模进行预训练。这里,训练目标是基于之前的令牌序列预测下一个令牌。
 预测下一个令牌有时被研究人员称为完整的语言建模。基于解码器的自回归模型,遮罩输入序列,只能看到直到问题令牌的输入令牌。
 
模型不知道句子的结尾。然后,模型一个接一个地迭代输入序列来预测下一个令牌。
 
与编码器架构相反,这意味着上下文是单向的。
 
通过学习从大量示例中预测下一个令牌,模型建立了语言的统计表示。这种类型的模型使用原始架构的解码器组件,而不使用编码器。
 
仅解码器模型通常用于文本生成,尽管较大的仅解码器模型显示出强大的Zero shot推理能力,并且通常可以很好地执行一系列任务。GPT和BLOOM是基于解码器的自回归模型的一些众所周知的示例。
 
Transformers模型的最后一个变体是使用原始Transformers架构的编码器和解码器部分的序列到序列模型。预训练目标的确切细节因模型而异。一个受欢迎的序列到序列模型T5,使用Span corruption跨度腐败预训练编码器,这遮罩随机输入令牌序列。那些遮罩序列然后被替换为一个唯一的哨兵令牌,这里显示为x。哨兵令牌是添加到词汇表的特殊令牌,但不对应于输入文本的任何实际单词。
 
解码器然后被分配自回归地重建遮罩令牌序列。输出是哨兵令牌后面的预测令牌。
 
您可以使用序列到序列模型进行翻译、摘要和问答。当您有一体文本作为输入和输出时,它们通常是有用的。除了T5,您将在本课程的实验室中使用,另一个众所周知的编码器-解码器模型是BART,不是Bird。
 
总之,这是一个快速比较不同的模型架构和预训练目标的目标。自动编码模型使用遮罩语言建模进行预训练。它们对应于原始Transformers架构的编码器部分,通常与句子分类或令牌分类一起使用。
 
自回归模型使用因果语言建模进行预训练。这种类型的模型使用原始Transformers架构的解码器组件,并经常用于文本生成。
 
序列到序列模型使用原始Transformers架构的编码器和解码器部分。预训练目标的确切细节因模型而异。T5模型使用span corruption跨度腐败进行预训练。序列到序列模型通常用于翻译、摘要和问答。
 
现在您已经看到了这些不同的模型架构是如何被训练的,以及它们适合的特定任务,您可以选择最适合您用例的模型类型。还有一件事要记住的是,任何架构的较大模型通常更有能力很好地执行它们的任务。研究人员发现,模型越大,就越有可能在没有额外的上下文学习或进一步训练的情况下按照您的需要工作。这种观察到的模型能力随大小增加的趋势,近年来推动了更大模型的发展。
 
这种增长是由研究中的拐点驱动的,如高度可扩展的Transformers架构的引入,用于训练的大量数据的访问,以及更强大的计算资源的开发。
 
这种模型大小的稳定增长实际上使一些研究人员推测LLMs存在一个新的摩尔定律。像他们一样,您可能会问,我们是否可以只是继续添加参数来增加性能并使模型更智能?这种模型增长可能会导致什么?
 
虽然这听起来很棒,但事实证明,训练这些巨大的模型是困难和非常昂贵的,以至于不断地训练更大和更大的模型可能是不可行的。让我们在下一个视频中仔细看看与训练大型模型相关的一些挑战。
参考
https://www.coursera.org/learn/generative-ai-with-llms/lecture/2T3Au/pre-training-large-language-models
相关文章:
 
LLM预训练大型语言模型Pre-training large language models
在上一个视频中,您被介绍到了生成性AI项目的生命周期。 如您所见,在您开始启动您的生成性AI应用的有趣部分之前,有几个步骤需要完成。一旦您确定了您的用例范围,并确定了您需要LLM在您的应用程序中的工作方式,您的下…...
[Machine Learning] 损失函数和优化过程
文章目录 机器学习算法的目的是找到一个假设来拟合数据。这通过一个优化过程来实现,该过程从预定义的 hypothesis class(假设类)中选择一个假设来最小化目标函数。具体地说,我们想找到 arg min  h ∈ H 1 n ∑ i 1 n ℓ ( X i…...
serialVersionUID 有何用途?如果没定义会有什么问题?
序列化是将对象的状态信息转换为可存储或传输的形式的过程。我们都知道,Java 对象是保持在 JVM 的堆内存中的,也就是说,如果 JVM 堆不存在了,那么对象也就跟着消失了。 而序列化提供了一种方案,可以让你在即使 JVM 停机…...
 
C# OpenCvSharp DNN 二维码增强 超分辨率
效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Dnn; using OpenCvSh…...
this.$refs使用方法
深入理解和使用this.$refs——Vue.js的利器 Vue.js是一个流行的JavaScript框架,用于构建交互性强大的用户界面。在Vue.js中,this.$refs是一个强大的特性,允许你直接访问组件中的DOM元素或子组件实例。本教程将带你深入了解this.$refs的使用方…...
 
Ohio主题 - 创意组合和代理机构WordPress主题
Ohio主题是一个精心制作的多用途、简约、华丽、多功能的组合和创意展示主题,具有敏锐的用户体验,您需要构建一个现代且实用的网站,并开始销售您的产品和服务。它配备了最流行的WordPress页面构建器 WPBakery Page Builder(以前称为…...
 
mysql 、sql server trigger 触发器
sql server mySQL create trigger 触发器名称 { before | after } [ insert | update | delete ] on 表名 for each row 触发器执行的语句块## 表名: 表示触发器监控的对象 ## before | after : 表示触发的时间,before : 表示在事件之前触发&am…...
自然语言处理从入门到应用——LangChain:索引(Indexes)-[检索器(Retrievers)]
分类目录:《自然语言处理从入门到应用》总目录 检索器(Retrievers)是一个通用的接口,方便地将文档与语言模型结合在一起。该接口公开了一个get_relevant_documents方法,接受一个查询(字符串)并返…...
 
春秋云境:CVE-2022-0543(Redis 沙盒逃逸漏洞)
目录 一、i春秋题目 二、CVE-2022-0543:(redis沙盒逃逸) 漏洞介绍: 漏洞复现: 一、i春秋题目 靶标介绍: Redis 存在代码注入漏洞,攻击者可利用该漏洞远程执行代码。 进入题目:…...
关于uniapp组件的坑
关于uniapp组件的坑 我有一个组件写的没什么问题,但是报下面这个错误 is not found in path “components/xxx/xxxx” (using by “components/yyy/yyy”) 最后经过排除发现命名需要驼峰命名法 我原本组件命名: 文件夹名 test_tttt 文件名 test_tttt.vue 不行 最后改成文件…...
 
AIGC与软件测试的融合
一、ChatGPT与AIGC 生成式人工智能——AIGC(Artificial Intelligence Generated Content),是指基于生成对抗网络、大型预训练模型等人工智能的技术方法,通过已有数据的学习和识别,以适当的泛化能力生成相关内容的技术。…...
 
滑动验证码-elementui实现
使用elementui框架实现 html代码 <div class"button-center"><el-popoverplacement"top":width"imgWidth"title"安全验证"trigger"manual"v-model"popoverVisible"hide"popoverHide"show&quo…...
 
ubuntu 20.04 安装 高版本cuda 11.7 和 cudnn最新版
一、安装显卡驱动 参考另一篇文章:Ubuntu20.04安装Nvidia显卡驱动教程_ytusdc的博客-CSDN博客 二、安装CUDA 英伟达官网(最新版):CUDA Toolkit 12.2 Update 1 Downloads | NVIDIA Developer CUDA历史版本下载地址:C…...
 
svg图片如何渲染到页面,以及svg文件的上传
svg图片渲染到页面的几种方式 背景🟡require.context获取目录下的所有文件🟡方式1: 直接在html中渲染🟡方式: 发起ajax请求,获取SVG文件 背景 需要实现从本地目录下去获取所有的svg图标进行预览,将选中的图片显示在另…...
GPT-LLM-Trainer:如何使用自己的数据轻松快速地微调和训练LLM
一、前言 想要轻松快速地使用您自己的数据微调和培训大型语言模型(LLM)?我们知道训练大型语言模型具有挑战性并需要耗费大量计算资源,包括收集和优化数据集、确定合适的模型及编写训练代码等。今天我们将介绍一种实验性新方法&am…...
 
深入理解ForkJoin
任务类型 线程池执行的任务可以分为两种:CPU密集型任务和IO密集型任务。在实际的业务场景中,我们需要根据任务的类型来选择对应的策略,最终达到充分并合理地使用CPU和内存等资源,最大限度地提高程序性能的目的。 CPU密集型任务 …...
 
Spring5学习笔记—AOP编程
✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Spring专栏 ✨特色专栏: M…...
适用于 Docker 用户的 kubectl
适用于 Docker 用户的 kubectl 你可以使用 Kubernetes 命令行工具 kubectl 与 API 服务器进行交互。如果你熟悉 Docker 命令行工具, 则使用 kubectl 非常简单。但是,Docker 命令和 kubectl 命令之间有一些区别。以下显示了 Docker 子命令, 并…...
 
网络安全设备篇——加密机
加密机是一种专门用于数据加密和解密的网络安全设备。它通过使用密码学算法对数据进行加密,从而保护数据的机密性和完整性。加密机通常被用于保护敏感数据,如金融信息、个人身份信息等。 加密机的主要功能包括: 数据加密:加密机使…...
Rust 基础入门 —— 2.3.所有权和借用
Rust 的最主要光芒: 内存安全 。 实现方式: 所有权系统。 写在前面的序言 因为我们这里实际讲述的内容是关于 内存安全的,所以我们最好先复习一下内存的知识。 然后我们,需要理解的就只有所有权概念,以及为了开发便…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...
 
聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...
 
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院查看报告小程序
一、开发环境准备 工具安装: 下载安装DevEco Studio 4.0(支持HarmonyOS 5)配置HarmonyOS SDK 5.0确保Node.js版本≥14 项目初始化: ohpm init harmony/hospital-report-app 二、核心功能模块实现 1. 报告列表…...
 
QT: `long long` 类型转换为 `QString` 2025.6.5
在 Qt 中,将 long long 类型转换为 QString 可以通过以下两种常用方法实现: 方法 1:使用 QString::number() 直接调用 QString 的静态方法 number(),将数值转换为字符串: long long value 1234567890123456789LL; …...
 
如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...
 
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
【无标题】路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论
路径问题的革命性重构:基于二维拓扑收缩色动力学模型的零点隧穿理论 一、传统路径模型的根本缺陷 在经典正方形路径问题中(图1): mermaid graph LR A((A)) --- B((B)) B --- C((C)) C --- D((D)) D --- A A -.- C[无直接路径] B -…...
Go 并发编程基础:通道(Channel)的使用
在 Go 中,Channel 是 Goroutine 之间通信的核心机制。它提供了一个线程安全的通信方式,用于在多个 Goroutine 之间传递数据,从而实现高效的并发编程。 本章将介绍 Channel 的基本概念、用法、缓冲、关闭机制以及 select 的使用。 一、Channel…...
 
深度学习水论文:mamba+图像增强
🧀当前视觉领域对高效长序列建模需求激增,对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模,以及动态计算优势,在图像质量提升和细节恢复方面有难以替代的作用。 🧀因此短时间内,就有不…...
