Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

分布式预训练

Answer

分布式预训练是指在训练模型时采用的一种方法。

在训练 GPT 时,模型以完全随机的权重开始,随着训练时间的推移,通过从分布中抽样并持续反馈,逐渐学会关于单词、空格和逗号等的知识,预测也越来越一致。观察训练时,可通过损失函数随时间的变化来评估。经过预训练,模型在语言建模中学会强大的通用表示,能有效对任意下游任务进行微调。

此外,还有一些关于初始化权重的灵活方法,如利用非监督式训练方式逐个训练神经层。例如,以受限玻尔兹曼机器(RBM)开始,通过对比发散进行训练,生成隐藏值并模拟训练另一个 RBM,重复此过程形成多层,如有分类需求可添加隐藏单元并微调权重,这种非监督式与监督式的组合也称为半监督式学习。

深度信念网络(DBNs)在标准化 MNIST 字符识别数据库中有出色表现,超越普通神经网络。Yoshua Bengio 等提出深层网络冗余式逐层训练,认为深度机器学习方法在复杂问题上比浅显方法更有效。关于非监督式预训练,利用自动代码取代 RBM 也是一种看法,其关键在于有足够多的显示层,能学习优良的高层数据显示,与传统手动设计特征提取步骤不同。Hinton 与 Bengio 的工作证明了深层神经网络能被训练好的假设是正确的。

Content generated by AI large model, please carefully verify (powered by aily)

References

GPT 的现状(State of GPT)

那么,当你训练其中一个模型时,我来更具体地展示一下这看起来是什么样的。这实际上来自《纽约时报》,他们在莎士比亚作品上训练了一个小型的GPT。所以,这里有一个莎士比亚的小片段,他们在这个上面训练了他们的GPT。现在,在开始的时候,GPT以完全随机的权重开始,所以你也只能得到完全随机的输出。但随着时间的推移,当你训练GPT越来越长的时间,你会得到越来越连贯和一致的模型样本。当然,从中抽样的方式,是预测接下来会发生什么。你从这个分布中抽样,并持续地反馈到这个过程中,你基本上可以对大量的序列进行抽样。所以到最后,你会看到transformer已经学会了关于单词的知识,以及在哪里放空格,哪里放逗号等等。所以我们随着时间的推移,我们的预测越来越一致。当你在做模型预训练时,你要看的就是这种图(见下图)。实际上,我们在观察你训练时的损失函数如何随时间变化。低损失意味着我们的transformer预测正确——为序列中正确的下一个整数给出了更高的概率。那么,当我们经过一个月的训练后,我们该如何使用这个模型呢?首先,我们注意到的是,我们在这个领域,这些模型在语言建模的过程中,学会了非常强大的通用表示,而且可以非常有效地对任何你可能感兴趣的任意下游任务进行微调。举个例子,如果你对情绪分类感兴趣,过去的方法是收集一堆正面和负面的情绪,然后为此训练一个NLP模型。但新的方法是忽略情绪分类,去做大规模的语言模型预训练,训练大的Transformer,然后你只需要有少量的例子,就可以非常有效地微调你的模型进行这个任务。

深度 | 神经网络和深度学习简史第四部分:深度学习终迎伟大复兴

那么什么叫做初始化权重的灵活方法呢?实际上,这个主意基本就是利用非监督式训练方式去一个一个训练神经层,比起一开始随机分配值的方法要更好些,之后以监督式学习作为结束。每一层都以受限波尔兹曼机器(RBM)开始,就像上图所显示的隐藏单元和可见单元之间并没有连接的玻尔兹曼机器(如同亥姆霍兹机器),并以非监督模式进行数据生成模式的训练。事实证明这种形式的玻尔兹曼机器能够有效采用2002年Hinton引进的方式「最小化对比发散专家训练产品(Training Products of Experts by Minimizing Contrastive Divergence)」进行训练。基本上,除去单元生成训练数据的可能,这个算法最大化了某些东西,保证更优拟合,事实证明它做的很好。因此,利用这个方法,这个算法如以下:1.利用对比发散训练数据训练RBM。这是信念网络(belief net)的第一层。2.生成训练后RBM数据的隐藏值,模拟这些隐藏值训练另一个RBM,这是第二层——将之「堆栈」在第一层之上,仅在一个方向上保持权重直至形成一个信念网络。3.根据信念网络需求在多层基础上重复步骤2。4.如果需要进行分类,就添加一套隐藏单元,对应分类标志,并改变唤醒-休眠算法「微调」权重。这样非监督式与监督式的组合也经常叫做半监督式学习。Hinton引入的层式预训练

深度 | 神经网络和深度学习简史第四部分:深度学习终迎伟大复兴

这篇论文展示了深度信念网络(DBNs)对于标准化MNIST字符识别数据库有着完美的表现,超越了仅有几层的普通神经网络。Yoshua Bengio等在这项工作后于2007年提出了「深层网络冗余式逐层训练(“Greedy Layer-Wise Training of Deep Networks)」,其中他们表达了一个强有力的论点,深度机器学习方法(也就是有着多重处理步骤的方法,或者有着数据等级排列特征显示)在复杂问题上比浅显方法更加有效(双层ANNs或向量支持机器)。关于非监督式预训练的另一种看法,利用自动代码取代RBM。他们还提出了为什么附加非监督式预训练,并总结这不仅仅以更优化的方式初始权重,而且更加重要的是导致了更有用的可学习数据显示,让算法可以有更加普遍化的模型。实际上,利用RBM并不是那么重要——普通神经网络层的非监督式预训练利用简单的自动代码层反向传播证明了其有效性。同样的,与此同时,另一种叫做分散编码的方法也表明,非监督式特征学习对于改进监督式学习的性能非常有力。因此,关键在于有着足够多的显示层,这样优良的高层数据显示能够被学习——与传统的手动设计一些特征提取步骤并以提取到的特征进行机器学习方式完全不同。Hinton与Bengio的工作有着实践上的证明,但是更重要的是,展示了深层神经网络并不能被训练好的假设是错误的。LeCun已经在整个九十年代证明了CNN,但是大部分研究团体却拒绝接受。Bengio与Yann LeCun一起,在「实现AI的算法(Scaling Algorithms Towards AI)」研究之上证明了他们自己:

Others are asking
分布式预训练里的流水线并行
分布式预训练中的流水线并行是一种在模型参数量太大一张卡不能完全放下时采用的切分方法。具体而言,沿着模型的拓扑序将其切分成 p 段,每段为一个 stage。将大小为 N 的 minibatch 进一步切分为 m 个大小为 M 的 microbatch(N = m·M),这些 microbatch 依次进入上述 p 个 stage。 在流水线并行切分后,每个 stage 的耗时会发生变化。假设 1 指出:算力为 1 的节点,处理完整模型的 1 个 microbatch,前向和反向耗时分别是 t_f 和 t_b。基于此有推论 1:算力为 1/p 的节点,处理完整模型的 1 个 microbatch,前向和反向耗时分别是 p·t_f 和 p·t_b;推论 2:算力为 1 的节点,处理 1/p 模型的 1 个 microbatch,前向和反向耗时分别是 t_f/p 和 t_b/p;推论 3:算力为 1/p 的节点,处理 1/p 模型的 1 个 microbatch,前向和反向耗时分别是 t_f 和 t_b。 从耗时情况来看,理论上界是显存无限大,不需要 pipeline 并行,一把梭直接对 minibatch 的样本做前向和反向,耗时正比于样本数量,b_best 耗时为 t_best = m·,可见耗时是理论上界的 p 倍,存在大量计算资源闲置空载,硬件利率用很低。 最后小结,3D 并行包括数据并行。DP 计算和通信效率友好,但权重显存不友好;PP 要求 minibatch 里 batch size 足够大以掩盖流水线带来的 overhead,batch size 过大则会增大激活显存占用;TP 权重显存友好,但计算和通信效率不友好,通信量要求大。ZeRO 针对数据并行显存占用大的问题提出优化,Alpa 借鉴 AI 编译器思路对 3D 并行建模并用自动化搜索方式得到并行策略。
2025-03-14
分布式预训练模型并行
分布式预训练模型并行主要包括以下内容: 张量并行:当模型参数增大,除流水线并行外,还可用张量并行缓解,即以前的模型并行。以矩阵乘为例,对权重矩阵 B 有按列切分和按行切分两种方案。按列切分,A 不变,每一列独立计算后结果 concat 在一起;按行切分,A 对应列切分,两部分独立计算后结果 sum 在一起。 大模型发展历程:2017 年发布的 Attention Is All You Need 论文开启了相关研究。之后有多种预训练模型,如 2018 年 Google 提出的 BERT,创新性地双向预训练并行获取上下文语义信息和使用掩码语言建模;2018 年 OpenAI 提出的 GPT,开创仅用自回归语言建模作为预训练目标;2021 年 Meta 提出的首个开源模型 LLAMA,为构建更大规模、更通用的语言模型提供方法与工具。 分布式训练的其他方面: 分布式通信原语包括点对点通信和集合通信,集合通信包含多种方式。 3D 并行包括数据并行,各自有优势和问题。 ZeRO 针对数据并行显存占用大的问题提出优化,Alpa 借鉴 AI 编译器思路对 3D 并行建模并用自动化搜索方式得到并行策略。 如果想了解更多关于 transformer 在 NLP/多模态/AIGC 的算法知识、分布式训练知识,以及如何在 TVM 上做 PTQ 量化和部署,可以关注作者 aaronxic。
2025-03-12
分布式预训练数据并行
分布式预训练中的数据并行是使用广泛且加速性能良好的并行方法。各个数据切片能完全解耦,只需在每个 minibatch 结束时进行梯度的 allreduce。数据并行分为中心化方式(如 pytorch 里的 DataParallel)和无中心化方式(如 pytorch 里的 DistributedDataParallel)。这两种方式最大的区别在于 gradient 和 reduce 计算过程。DataParallel 需在 forward 之后把所有输出 gather 到 0 号卡上,计算完 loss 之后再 scatter 到各个设备上,然后做 backward 独立计算 gradient,最后搜集 gradient 到 0 号卡,forward 和 backward 间需插入一次通信。DistributedDataParallel 则是每张卡独立做 forward 和 backward,然后对各卡的 gradient 做 allreduce,forward 和 backward 间无需通信。此外,ZeRO 的出发点是优化数据并行中的显存占用,因为在数据并行中,每个 device 上都有完整的权重、梯度和优化器状态信息,较为冗余。
2025-03-12
deepseek 分布式如何部署
DeepSeek 的分布式部署情况如下: 腾讯云(自建服务器):提供全版本,采用多机分布式部署,节点数量为 2 个,单节点配置为 HCCPNV6 机型,可在线体验(需开通 T1 平台服务)。 腾讯云(调用 API):提供 DeepSeekR1 和 DeepSeekV3 版本,API 调用 DeepSeek 系列模型限时免费。即日至北京时间 2025 年 2 月 25 日 23:59:59,所有腾讯云用户均可享受 DeepSeekV3、DeepSeekR1 模型限时免费服务,单账号限制接口并发上限为 5。在此之后,模型价格将恢复至原价。 京东云:提供“deepseekr1:1.5b”、“deepseekr1:7b”、“deepseekr1:32b”版本,价格为 1.89 元/小时起,采用服务器部署的方式。 Gitee AI:提供全版本,R1 价格 0.1 元/次,基于沐曦曦云 GPU 及曦源一号国产替代算力集群,有在线体验。 此外,还可以通过以下步骤实现 DeepSeek 联网版的部署: 1. 拥有扣子专业版账号,如果是普通账号,请自行升级或注册专业号后使用。 2. 开通 DeepSeek R1 大模型,访问地址:https://console.volcengine.com/cozepro/overview?scenario=coze 。打开火山方舟,找到开通管理,找到 DeepSeek R1 模型,点击开通服务。添加在线推理模型,添加后在扣子开发平台才能使用。 3. 创建智能体,点击创建,先完成一个智能体的创建。
2025-02-20
deepseek 分布式部署
以下是关于 DeepSeek 分布式部署的相关信息: 云计算厂商提供的 DeepSeek 版本及特点: 腾讯云(自建服务器):全版本,多机分布式部署,节点数量 2 个,单节点配置为 HCCPNV6 机型,可在线体验(需开通 T1 平台服务)。 腾讯云(调用 API):DeepSeekR1、DeepSeekV3,API 调用 DeepSeek 系列模型限时免费,即日起至 2025 年 2 月 25 日 23:59:59,所有腾讯云用户均可享受限时免费服务,单账号限制接口并发上限为 5,之后模型价格将恢复原价。 京东云:“deepseekr1:1.5b、“deepseekr1:7b”、“deepseekr1:32b”,价格 1.89/小时起,服务器部署方式。 gitee ai:全版本,R1 价格 0.1 元/次,基于沐曦曦云 GPU 及曦源一号国产替代算力集群,有在线体验。 价格方面: 腾讯云(调用 API):即日起至 20250208 24:00 享受折扣价,20250209 00:00 恢复原价。输入:¥2¥1/M Tokens,输出:¥8¥2/M Tokens。当前有优惠活动,包括邀请好友赚 2000 万 Tokens,注册即送 2000 万 Tokens。 阿里云(人工智能平台 PAI):以 R1 为例,所需计算资源价格 316.25/小时,模型部署成在线服务,在人工智能平台 PAI 下的模型部署下的模型在线服务 EAS。 阿里云(阿里云百炼):全版本,免费额度:10000000/10000000,通过 API 调用。 华为昇腾社区:全版本,部署 DeepSeekR1 模型用 BF16 权重进行推理至少需要 4 台 Atlas 800I A2(864G)服务器,用 W8A8 量化权重进行推理则至少需要 2 台 Atlas 800I A2,服务器调用 Docker 下载部署权重资源,非 API 调用模式。
2025-02-20
这个网站的作用是什么?是通过这个网站更好的使用训练AI吗?
WaytoAGI 网站具有以下功能: 1. 和 AI 知识库对话:您可以在此询问任何关于 AI 的问题。 2. AI 网站:集合了精选的 AI 网站,可按需求找到适合您的工具。 3. AI 提示词:集合了精选的提示词,能复制到 AI 对话网站使用。 4. 知识库精选:将每天知识库的精华内容呈现给大家。 总之,WaytoAGI 网站和 WaytoAGI 知识库相互独立又有关联,希望成为您学习 AI 路上的好助手。
2025-04-13
想自学ai训练师 推荐哪个视频去学习
以下是为您推荐的自学 AI 训练师的视频: 1. 3 月 26 日|自由讨论|离谱视频切磋大会 猫先生介绍自己的背景和擅长领域 AI 学习与实践的重要性 AI 交流会:分享项目经验和技能 讨论比赛规则和资源分配 AI 工具学习与合作 广州 AI 训练师叶轻衣分享使用 AI 工具的经验和想法 组队提升工作效率 AI 技术在 3D 动画制作中的应用与优势 链接:https://waytoagi.feishu.cn/minutes/obcnc915891t51l64uyonvp2?t=0 2. AI 大神 Karpathy 再发 LLM 入门介绍视频 神经网络训练的目标:训练神经网络的目标是让模型学习 token 在序列中彼此跟随的统计关系,即预测给定上下文(token 序列)后,下一个最有可能出现的 token。 Token 窗口:训练时,模型从数据集中随机抽取固定长度的 token 窗口(例如 8000 个 token)作为输入。 神经网络的输入与输出:输入为 Token 序列(上下文),输出为预测下一个 token 的概率分布,词汇表中每个 token 都有一个概率值。 随机初始化与迭代更新:神经网络初始参数是随机的,预测也是随机的。训练过程通过迭代更新参数,调整预测结果,使其与训练数据中的统计模式相匹配。 损失函数与优化:训练过程使用损失函数来衡量模型预测与真实 token 的差距。优化算法(如梯度下降)用于调整参数,最小化损失函数,提高预测准确率。 神经网络内部结构:Transformer 包含注意力机制和多层感知器等组件,能够有效地处理序列数据并捕捉 token 之间的复杂关系。 链接:无
2025-04-12
想自学ai训练师
如果您想自学成为 AI 训练师,以下是一些相关的知识和建议: 一、AI 训练的基本概念 训练是指通过大数据训练出一个复杂的神经网络模型。这需要使用大量标记过的数据来训练相应的系统,使其能够适应特定的功能。训练过程需要较高的计算性能,能够处理海量的数据,并具有一定的通用性,以便完成各种各样的学习任务。 二、相关领域的知识 1. 机器学习:机器学习是人工智能的一个分支,是实现人工智能的途径之一,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。 2. 自然语言处理:自然语言(NLP)认知和理解是让电脑把输入的语言变成有意思的符号和关系,然后根据目的再处理。自然语言生成系统则是把计算机数据转化为自然语言,是人工智能和语言学领域的分支学科。 三、学习资源和实践 您可以参考以下的一些资源和实践方式: 1. 参加相关的线上交流会,例如 3 月 26 日的自由讨论活动,其中会分享项目经验、技能以及使用 AI 工具的经验和想法。 2. 了解一些健身的 AI 产品,如 Keep(https://keep.com/)、Fiture(https://www.fiture.com/)、Fitness AI(https://www.fitnessai.com/)、Planfit(https://planfit.ai/)等,虽然这些主要是健身领域的应用,但也能帮助您了解 AI 在不同场景中的应用和创新。 请注意,以上内容由 AI 大模型生成,请仔细甄别。
2025-04-12
怎么用把AI训练成自己的东西?
要将 AI 训练成自己的东西,可以参考以下方法: 1. 像马斯克提到的,对于公开的推文数据可以合理使用,但不能使用私人的东西进行训练。同时,要注重数据的质量和使用方式,高质量的数据对于训练效果至关重要。 2. 张梦飞的方法中,例如部署 LLama Factory 时,需要添加选中“identity”数据集,将训练轮数改成 15 等,并通过一系列操作进行训练和测试。但需要注意的是,训练大模型是复杂的过程,数据集和训练参数都会影响最终效果,需要反复调试和深入学习实践。 3. 在写作方面,我们可以根据自身需求选择人类驱动为主,利用 AI 进行修改完善,或者先由 AI 生成内容再进行修改以符合自己的风格。
2025-04-11
如何训练一个AI 阅读教练
训练一个 AI 可以类比为培养一位职场新人,主要包括以下三个阶段: 1. 规划阶段:明确目标 确定 AI 的具体任务,比如结构化外文精读等。 将任务拆解为可管理的子任务。 设计每个子任务的执行方法。 2. 实施阶段:实战指导 搭建工作流程。 为每个子任务设置清晰的操作指南。 像指导新员工一样,手把手引导 AI 完成任务,并及时验证其输出质量。 3. 优化阶段:持续改进 通过反复测试和调整,不断优化 AI 的性能。 调整工作流程和 Prompt 配置,直到 AI 能稳定输出高质量的结果。 当前大模型在处理多步骤复杂任务时存在明显局限,比如在“数据分析图表、剧情游戏”或“本文结构化外文精读”等任务中,仅依靠单一 Prompt 指令难以稳定执行,现阶段的 AI 更像缺乏独立解决问题能力的职场新人,需要遵循指引和给定的流程才能完成特定任务。如果您已经完全了解上述内容,不妨自己设定一个任务目标,动手构建一个专属于自己的 AI 。
2025-04-11
模型训练的基本名词和方法
以下是关于模型训练的基本名词和方法的介绍: 基本名词: 1. 过拟合&欠拟合:过拟合和欠拟合都是不好的现象,需要加以控制以让模型达到理想效果。解决方法包括调整训练集、正则化和训练参数等,过拟合可减少训练集素材量,欠拟合则增加训练集素材量。 2. 泛化性:泛化性不好的模型难以适应其他风格和多样的创作。可通过跑 lora 模型生图测试判断泛化性,解决办法与过拟合和欠拟合类似,从训练集、正则化、训练参数等方面调整。 3. 正则化:是解决过拟合和欠拟合情况、提高泛化性的手段,给模型加规则和约束,限制优化参数,有效防止过拟合,提高模型适应不同情况的表现和泛化性。 方法: 1. 全面充分采集训练素材:例如在角色训练素材中,应包含各种角度、表情、光线等情况的素材,确保模型具有较好泛化性。 2. 图像预处理:对训练素材进行分辨率调整、裁切操作,并对训练集进行打标签处理。 3. 参数调优:尽量将训练时长控制在半小时左右,过长易导致过拟合,通过调整参数控制时长。 4. 观察学习曲线:通过观察学习曲线来调整训练素材和参数。 5. 过拟合&欠拟合处理:测试训练好的模型,观察过拟合和欠拟合问题,进一步通过调整训练素材和正则化等手段优化。 此外,在模型训练中还需注意: 1. 数据集获取渠道:可通过网上收集、购买、使用无版权问题的如古画等,原则是根据生成图的需求找对应数据集,要清晰、主体元素干净、风格统一。 2. 数据集处理:包括基础处理如裁剪保证清晰和分辨率,更重要的是写标注。 3. 设置模型触发词:可自定义,完整形式可以是一句话,建议以王 flags 模型为主。 4. 统一标注风格与应用场景:例如未来高科技 3D 天然风格,用于互联网首页图像等,并概括主题内容、描述物体特征等。 5. 利用 GPT 辅助描述并人工审核:让 GPT 按要求描述,人工审核修改。 6. 模型训练的准备与流程:完成数据集描述后进入训练流程,选择模型训练分类和数据集,创建并上传数据集压缩包,注意数据名与图片命名一致。选择训练模式和参数,新手选用普通基础模式,训练集质量重要,训练参数中总步数与训练集图片数量相关,触发词设定要避免概念混乱。
2025-04-09