大模型训练学习笔记

目录

大模型的结构主要分为三种

大模型分布式训练方法主要包括以下几种:

token Token是构成句子的基本单元

1. 词级别的分词

2. 字符级别的分词

结巴分词

GPT-3/4训练流程

更细致的教程,含公式推理


大模型的结构主要分为三种

Encoder-only(自编码模型,代表模型有BERT),Decoder-only(自回归模型,代表模型有GPT系列和LLaMA),Encoder-Decoder(序列到序列模型,代表模型有GLM),大语言模型在自然语言处理和文本处理领域具有广泛的应用,其应用场景多种多样。

参考:

https://zhuanlan.zhihu.com/p/687531361

大模型分布式训练方法主要包括以下几种:

数据并行:这是最常见的分布式训练策略。数据被切分为多份并分发到每个设备(如GPU)上进行计算。每个设备都拥有完整的模型参数,计算完成后,设备间的梯度会被聚合并更新模型参数。这种方法能够充分利用多个设备的计算能力,加快训练速度。

模型并行:在模型并行中,模型的不同部分被分配到不同的设备上进行计算。每个设备仅拥有模型的一部分,这使得超大的模型能够在有限的计算资源上训练。模型并行通常与流水线并行结合使用,数据按顺序经过所有设备进行计算。

流水线并行:流水线并行是一种特殊的模型并行方式。它将网络切分为多个阶段,并将这些阶段分发到不同的设备上进行计算。数据按照流水线的方式依次通过每个阶段,从而实现高效的并行计算。

混合并行:混合并行结合了上述多种并行策略。根据模型的结构和计算资源的特点,可以选择最适合的并行策略组合进行训练。

参考:

https://zhuanlan.zhihu.com/p/645649292

token Token是构成句子的基本单元

但并不一定是最小单元。Token可以是一个单词、一个字符或一个子词,具体取决于使用的分词方法。在自然语言处理(NLP)中,常见的分词方法有以下几种:

在进行文本分词时,可以使用不同的分词方法来拆分 "我喜欢吃红色的苹果" 这句话。以下是几种常见的分词方法及其结果:

1. 词级别的分词

每个单词或词组作为一个token。这种方法在中文中一般使用词典或分词算法进行分词。 例如:

我 / 喜欢 / 吃 / 红色的 / 苹果

这句话被分成了5个token: "我"、"喜欢"、"吃"、"红色的" 和 "苹果"。

2. 字符级别的分词

每个字符作为一个token。 例如:我 / 喜 / 欢 / 吃 / 红 / 色 / 的 / 苹 / 果

结巴分词

import jiebasentence = "我喜欢吃红色的苹果"tokens = jieba.lcut(sentence)print(tokens)

运行上述代码可能会得到以下结果:

['我', '喜欢', '吃', '红色', '的', '苹果']

总之,分词的方法不同,结果也会有所不同。在实际应用中,选择合适的分词方法取决于具体的任务和需求。

GPT-3/4训练流程

GPT-3/4训练流程模型训练分为四个阶段:

预训练(Pretraining)、监督微调SFT(Supervised Finetuning)、奖励建模RM(Reward Modeling)、以及强化学习RL(Reinforcement Learning)。

ChatGPT是最典型的一款基于OpenAI的GPT架构开发的大型语言模型,主要用于生成和理解自然语言文本。其训练过程分为两个主要阶段:预训练和微调。

以下是关于ChatGPT训练过程的详细描述:

  1. 预训练:在预训练阶段,模型通过学习大量无标签文本数据来掌握语言的基本结构和语义规律。这些数据主要来源于互联网,包括新闻文章、博客、论坛、书籍等。训练过程中,模型使用一种名为“掩码语言模型”(Masked Language Model, MLM)的方法。这意味着在训练样本中,一些词汇会被随机掩盖,模型需要根据上下文信息预测这些被掩盖的词汇。通过这种方式,ChatGPT学会了捕捉文本中的语义和语法关系。
  2. 微调:在微调阶段,模型使用特定任务的标签数据进行训练,以便更好地适应不同的应用场景。这些标签数据通常包括人类生成的高质量对话,以及与特定任务相关的问答对。在微调过程中,模型学习如何根据输入生成更准确、更相关的回复。
  3. 损失函数和优化:训练过程中,模型会最小化损失函数,以衡量其预测结果与真实目标之间的差异。损失函数通常采用交叉熵损失(Cross-Entropy Loss),它衡量了模型生成的概率分布与真实目标概率分布之间的差异。训练过程中使用优化算法(如Adam)来更新模型参数,以便逐步降低损失函数的值。
  4. Tokenization:在进入模型之前,输入和输出文本需要被转换为token。Token通常表示单词或字符的组成部分。通过将文本转换为token序列,模型能够更好地学习词汇之间的关系和结构。
  5. 参数共享:GPT-4架构采用了参数共享的方法,这意味着在预训练和微调阶段,模型的部分参数是共享的。参数共享可以减少模型的复杂性,提高训练效率,同时避免过拟合问题。
  6. Transformer架构:ChatGPT基于Transformer架构进行训练。这种架构使用自注意力(self-attention)机制,允许模型在处理序列数据时,关注与当前词汇相关的其他词汇,从而捕捉文本中的长距离依赖关系。此外,Transformer还包括多层堆叠的编码器和解码器结构,以便模型学习更为复杂的语言模式。
  7. 正则化和抑制过拟合:为了防止模型在训练过程中过拟合,可以采用各种正则化技巧。例如,Dropout技术可以在训练时随机关闭部分神经元,从而降低模型复杂性。另一种方法是权重衰减,通过惩罚较大的权重值来抑制过拟合现象。
  8. 训练硬件和分布式训练:由于GPT-4模型的庞大规模,其训练过程通常需要大量计算资源。因此,训练通常在具有高性能GPU或TPU的分布式计算系统上进行。此外,为了提高训练效率,可以采用各种分布式训练策略,如数据并行、模型并行等。
  9. 模型验证和评估:在训练过程中,需要定期对模型进行验证和评估,以监控其性能和收敛情况。通常情况下,会将数据集划分为训练集、验证集和测试集。模型在训练集上进行训练,在验证集上进行调优,并在测试集上进行最终评估。
  10. 模型调优和选择:在模型微调阶段,可以尝试不同的超参数设置,以找到最优的模型配置。这可能包括学习率、批次大小、训练轮数等。最终选择在验证集上表现最佳的模型作为最终输出。

总之,ChatGPT的训练过程包括预训练和微调两个阶段,通过学习大量无标签文本数据和特定任务的标签数据,模型能够掌握语言的基本结构和语义规律。在训练过程中,采用了诸如Transformer架构、参数共享、正则化等技术,以实现高效、可靠的训练。训练过程还涉及模型验证、评估和调优,以确保最终产生的模型能够提供高质量的自然语言生成和理解能力。

更细致的教程,含公式推理

https://zhuanlan.zhihu.com/p/652008311

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

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

相关文章

Unity ShaderGraph 扭曲

需要注意的是: HDRP ShaderGraph中 你不能扭曲UI,所以假如你要扭曲视频,请把视频在材质上渲染 播放,这样就可以扭曲视频了喔, ShaderGraph扭曲

Vue3 响应式 API:工具函数(一)

isRef() isRef 是一个简单的工具函数,它接受一个参数并返回一个布尔值,指示该参数是否是一个由 ref 创建的响应式引用。 在某些情况下,你可能需要编写一些通用逻辑或函数,这些逻辑或函数需要处理不同类型的响应式数据&#xff08…

C++STL---stack queue模拟实现

前言 对于这两个容器适配器的模拟实现非常简单,因为stack和queue只是对其他容器的接口进行了包装,在STL中,若我们不指明用哪种容器作为底层实现,栈和队列都默认是又deque作为底层实现的。 也就是说,stack和queue不管是…

React@16.x(22)HOOK,useState 的原理

目录 1,介绍2,useState2.1,使用2.2,原理2.3,注意点 1,介绍 1,出现时间点:在 React16.8.0 出现。 2,目的:为了增强函数组件的功能,用于替代类组件…

数据挖掘实战-基于Catboost算法的艾滋病数据可视化与建模分析

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

C++中的sizeof和strlen详解

在C中,sizeof和strlen都是用于获取长度或大小的运算符/函数,但它们的用途和工作方式有所不同。以下是对它们的详细解释: sizeof 运算符 sizeof 是一个编译时运算符,用于计算数据类型或对象的大小(以字节为单位&#…

FANUC机器人SRVO-348 DCS MCC关闭报警处理方法总结

FANUC机器人SRVO-348 DCS MCC关闭报警处理方法总结 如下图所示,由于操作人员在操机时误打开了安全门,导致机器人紧急制动停止,示教器上显示: SRV0-348 DCS MCC关闭报警0,1, 如下图所示,查看手册中关于SRVO-348报警的具体内容: 原因分析:给机器人主电源上电的接触器在紧…

PLS_INTEGER:Oracle PL/SQL中的整数类型深度解析

PLS_INTEGER:Oracle PL/SQL中的整数类型深度解析 一、概述二、PLS_INTEGER简介三、PLS_INTEGER的优点四、PLS_INTEGER的简单示例示例1:声明并使用PLS_INTEGER变量示例2:在存储过程中使用PLS_INTEGER 五、资深应用的代码示例示例3:…

《机器学习特征提取》

书籍:Building Feature Extraction with Machine Learning: Geospatial Applications 作者:Bharath.H. Aithal,Prakash P.S. 出版:CRC Press 书籍下载-《机器学习特征提取》这是一本面向专业人士和研究生的实用指南&#xff0c…

SSM框架整合,内嵌Tomcat。基于注解的方式集成

介绍: SSM相信大家都不陌生,在spring boot出现之前,SSM一直是Java在web开发中的老大哥。现在虽说有了spring boot能自动整合第三方框架了,但是现在市面上任然有很多老项目是基于SSM技术的。因此,能熟练掌握SSM进行开发…

DALL-E2详解

标题: DALL-E2详解 摘要: 本文将详细介绍DALL-E2,OpenAI最新推出的人工智能图像生成模型。DALL-E2在图像生成领域取得了显著进展,它不仅能够生成逼真的图像,还能根据文本描述创造出新颖且具有创意的视觉内容。本文将探…

队列的讲解与实现

这里写目录标题 一、队列的概念及结构二、队列的实现(使用VS2022的C语言)1.初始化、销毁2.入队、出队3.返回队头元素、返回队尾元素、判空、返回有效元素个数 三、完整 Queue.c 源代码 一、队列的概念及结构 队列:只允许在一端进行插入数据操作,在另一端…

【Linux】进程(8):Linux真正是如何调度的

大家好,我是苏貝,本篇博客带大家了解Linux进程(8):Linux真正是如何调度的,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 之前我们讲过,在大…

conda虚拟环境如何卸载pip

要在conda虚拟环境中卸载pip,你可以使用conda命令来移除它。以下是具体步骤: 激活你想要移除pip的conda虚拟环境。 使用conda命令移除pip。 下面是具体的命令: bash conda activate your_env_name # 替换your_env_name为你的环境名称 cond…

代码随想录算法训练营第四十九天 | 139.单词拆分、多重背包、背包问题总结

139.单词拆分 视频讲解: 动态规划之完全背包,你的背包如何装满?| LeetCode:139.单词拆分_哔哩哔哩_bilibili 代码随想录 解题思路 1.dp[i] 字符串的长度为i,dp[i]是否可以被组成 2.递推公式 if( [j,i] && d…

硬件IIC和软件IIC的比较

(一)硬件IIC 硬件IIC是由STM32内部的硬件模块实现的,使用CPU的时钟信号来控制数据传输和时序,通信速度较快,可以达到几十MHz的速度。硬件IIC的实现相对简单,无需编写复杂的代码,因此在实现IIC通…

如何理解与学习数学分析——第二部分——数学分析中的基本概念——第5章——序列

第2 部分:数学分析中的基本概念 (Concepts in Analysis) 5. 序列(Sequences) 本章介绍了序列属性,例如单调性、有界性和收敛性,使用图表和示例来解释这些属性,并演示如何在各种证明中使用它们的定义。讨论了趋于无穷大的序列出…

API key学习笔记

API Key 基本上可以认为是一个长字符串,允许 API 消费者(即使用 API 的人)访问受限的功能和数据。它作为一种安全措施,确保了 API 服务能够控制谁有权限访问什么数据,同时也帮助跟踪API的使用情况。生成API key来调用A…

centos官方yum源不可用 解决方案(随手记)

昨天用yum安装软件的时候,就报错了 [rootop01 ~]# yum install -y net-tools CentOS Stream 8 - AppStream 73 B/s | 38 B 00:00 Error: Failed to download metadata for repo appstream: Cannot prepare internal mirrorlis…

创新指南 | 5个行之有效的初创企业增长策略

本文探讨了五种初创企业实现快速增长的有效策略:利用网络效应通过激励和资本化用户增长;通过持续提供高质量内容建立信任和权威的内容营销;利用简单有效的推荐计划扩展用户群;采用敏捷开发方法快速适应市场变化和客户反馈&#xf…