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
分布式预训练模型并行
分布式预训练模型并行主要包括以下内容: 张量并行:当模型参数增大,除流水线并行外,还可用张量并行缓解,即以前的模型并行。以矩阵乘为例,对权重矩阵 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大模型训练是什么意思
AI 大模型训练是一个复杂的过程,主要包括以下方面: 1. 数据转换:当请求输入到模型时,会从自然语言形式转化为机器可理解的格式,通常是向量。 2. 数学计算确定参数:类似于通过已知的几组(x,y)值计算方程式 y=f(x)=ax+b 中的参数 a 和 b,大语言模型通过计算确定可能多达 1750 亿个的参数。 3. 一般训练步骤: 无监督学习:分析大量文本数据,学习语言基本结构和常识,具备文本补齐能力,将人类知识向量化以获得基础语言模型。 清洗出好的数据。 指令微调:训练模型理解并执行具体指令,如翻译文本,以回答问题,此阶段数据输入量相对减少。 对齐过程:引入人类评价标准和处理特定格式要求,优化模型输出以符合人类期望,包括处理文化、道德等细节。 4. 生成式预训练:是机器学习领域由来已久的概念,如 GPT 模型基于 Transformer 模型,在大型未标记文本数据集上进行预训练,并能生成类似人类自然语言的文本。 5. 大模型特点: 强大在于庞大的参数数量,这些参数在学习过程中不断调整,帮助模型深入理解和生成数据。 训练依赖大量数据,包括文本、图像、音频等,通过对数据的学习掌握丰富知识和技能。 总之,大模型训练是一个涉及多步骤、大量数据和复杂计算的过程,旨在使模型具备强大的语言处理和生成能力。
2025-03-11
文档转训练集
将文档转训练集通常可以按照以下步骤进行: 1. 手动收集数据集:公司通常会雇用人员,为其提供标签说明,要求人们提出问题并写下答案。 2. 注重质量:预训练阶段的文本可能来自互联网,数量大但质量较低。在第二阶段,应更看重质量而非数量,例如采用 100,000 个高质量的对话文档。 3. 形成 SOP:初期可以先手动形成标准操作流程(SOP),然后逐步实现自动化,此过程初期可能需要大量人力。
2025-03-10
如何训练自己的模型
训练自己的模型可以参考以下步骤: 1. 选择合适的底模,如 Baichuan27BChat 模型,配置模型本地路径和提示模板。 在 Train 页面里选择 sft 训练方式,加载定义好的数据集,如 wechat 和 self_cognition。 注意学习率和训练轮次的设置,要根据数据集大小和收敛情况来调整。 使用 FlashAttention2 可减少显存需求,加速训练速度。 显存小的情况下,可以减少 batch size 并开启量化训练,内置的 QLora 训练方式很实用。 需要用到 xformers 的依赖。 显存占用约 20G,训练时间根据聊天记录规模大小而定,少则几小时,多则几天。 2. 对于 AI 绘画模型的训练,如 Stable Diffusion: 设置 sample_sampler,可选择多种 sampler,默认是“ddim”。 设置 save_model_as,可选择多种格式,目前 SD WebUI 兼容"ckpt"和"safetensors"格式模型。 完成训练参数配置后,运行训练脚本进行全参微调训练。 选择合适的底模型,如 WeThinkIn_SD_二次元模型。 利用 accelerate 库封装训练脚本,可根据需求切换训练环境参数。 3. 创建图像描述模型: 模型由编码器和解码器组成,编码器将输入图像转换为特征向量,解码器根据特征生成描述文本,二者组合形成完整模型。 自定义损失函数,如使用稀疏分类交叉熵并屏蔽填充部分。 编译模型后开始训练,可使用单个 GPU 训练,每个 epoch 约 15 至 20 分钟,可根据需求增加训练次数。 训练完成后进行推理与生成字幕,重构解码器结构,编写自定义推理循环以生成完整句子。
2025-03-10
如何去训练ai,让ai可以更精准的回答问题分析趋势
要训练 AI 使其更精准地回答问题和分析趋势,可以从以下几个方面入手: 检索原理: 1. 信息筛选与确认:系统会对检索器提供的信息进行评估,筛选出最相关和最可信的内容,同时验证信息的来源、时效性和相关性。 2. 消除冗余:识别并去除多个文档或数据源中的重复信息,避免在生成回答时出现重复或矛盾的内容。 3. 关系映射:分析不同信息片段之间的逻辑和事实关系,如因果、对比、顺序等,构建结构化的知识框架,使信息在语义上更连贯。 4. 上下文构建:将筛选和结构化的信息组织成连贯的上下文环境,包括对信息进行排序、归类和整合,形成统一的叙述或解答框架。 5. 语义融合:在必要时合并意义相近但表达不同的信息片段,减少语义重复并增强信息表达力。 6. 预备生成阶段:将整合好的上下文信息编码成适合生成器处理的格式,如转化为适合输入到生成模型的向量形式。 大模型生成回答: 最终全新的上下文被传递给大语言模型,大语言模型根据提供的信息回答问题。因为这个上下文包括了检索到的信息,所以相当于同时拿到了问题和参考答案,通过大语言模型的全文理解,生成准确和连贯的答案。 批判性思维与复杂问题解决: 批判性思维指分析、评估、推理并做出明智判断的能力,在 AI 时代尤为关键。培养批判性思维需要养成质疑习惯,通过辩论、逻辑训练、阅读反面意见等方式锻炼,注重逻辑推理和定量分析能力的培养。复杂问题解决与批判性思维密切相关,指在不确定情境下分析问题、设计解决方案的能力,往往需要综合运用多种思维技能,通过参与实际复杂项目、案例研究来提高经验,可利用 AI 作为资料提供者或头脑风暴助手,但关键在于人类自己的分析和决策过程。 纯强化学习: DeepSeek R1 引入纯强化学习,不依赖大量人类标注数据,而是让 AI 通过自我探索和试错来学习。在“冷启动”阶段,通过少量人工精选的思维链数据进行初步引导,建立符合人类阅读习惯的推理表达范式,随后主要依靠强化学习,在奖励系统的反馈下(包括准确率奖励和格式奖励),自主探索推理策略,不断提升回答的准确性,实现自我进化。纯强化学习有可能解锁新的人工智能水平,DeepSeek R1 更注重学习推理的底层策略,培养通用推理能力,实现跨领域的知识迁移运用和推理解答。
2025-03-07