当前位置: 首页 > news >正文

网站没有icp备案是不是就是骗子建设一个网站需要的空间有哪些方法

网站没有icp备案是不是就是骗子,建设一个网站需要的空间有哪些方法,网站子站怎么建设,wordpress the7打开速度慢随着模型规模的逐渐增大#xff0c;需要的算力逐渐增强#xff0c;但是算力需求增长速度远高于芯片算力增长速度。现在唯一的解决方案只有通过超大规模集群训练大模型。 大集群训练大模型的挑战 内存墙 200B参数量的模型#xff0c;参数内存占用745GB内存#xff0c;训练…随着模型规模的逐渐增大需要的算力逐渐增强但是算力需求增长速度远高于芯片算力增长速度。现在唯一的解决方案只有通过超大规模集群训练大模型。 大集群训练大模型的挑战 内存墙 200B参数量的模型参数内存占用745GB内存训练过程需要3500GB内存参数激活梯度优化器状态一个模型需要128张卡才能放下。 性能墙 大模型切分到集群后通信成为了主要的性能瓶颈。模型训练时主要有几种并行策略 模型并行模型的不同层或不同部分被分布在不同设备Pipeline并行不同部分的前向计算和反向计算被分配到不同设备数据并行不同设备处理同一个模型的不同批次 设备通讯主要发生在激活函数或者梯度需要在不同集群间传递模型、管道并行参数在GPU间需要同步数据并行。 大模型数千亿的参数导致了巨大的激活值和梯度值。受有限带宽的影响在不同的设备间转移这些数据成为瓶颈。同时即使带宽足够小信息间初始化通信的延迟也会显著增加。 效率墙 算法的分布式并行开发一直是一道难题。如何让用户高效编写分布式代码超大规模AI训练需要怎样的编程范式 调优墙 在数千节点集群上要保证计算的正确性、性能、可用性手工难以全面兼顾。 大集群快速故障恢复 千卡大集群训练时间长故障不可避免跨苏故障恢复可减少等待时间。MindSpore解决方法如下 定期保存CKPTCheckPoint文件故障检测隔离资源重条度加载故障时刻CKPT恢复训练任务 基于HCCL集合通信库实现分布式训练 HCCLHuawei Collective Communication Library基于Ascend芯片的高性能集合通信库提供单机多卡、多机多卡集合通信原语。  数据并行 左右表示两个Ascend卡各自运行一个进程每张卡上运行同一个模型、参数、优化器状态复制n份每张卡输入不同数据进行一次反向传播后获得梯度 随后进行一次allreduce把每一张卡上得到的梯度聚合至一起取平均后分发回各张卡。 存在问题 要求单卡能放下整个模型 多卡训练时内存冗余多存了n-1份模型参数 MindSpore中以BERT与训练为例的数据并行 from mindspore.parallel._utils import _get_device_num, _get_gradients_mean# 6. Pretrain mean _get_gradients_mean() degree _get_device_num() grad_reducer nn.DistributedGradReducer(optimizer.parameters, mean, degree)def train_step(input_ids, input_mask, masked_lm_ids, masked_lm_positions, masked_lm_weghts, next_sentence_label, segment_ids):status init_register()input_ids ops.depend(input_ids, status)(total_loss, masked_lm_loss, next_sentence_loss), grads grad_fn(input_ids, input_mask, segment_ids, masked_lm_ids, masked_lm_positions, masked_lm_weights, next_sentence_label)grads clip_by_global_norm(grads, clip_norm1.0)# 进行allreduce操作分发梯度grads grad_reducer(grads)status all_finite(grads, status)if status:total_loss loss_scaler.unscale(total_loss)grads loss_scaler.unscale(grads)total_loss ops.depend(total_loss, optimizer(grads))total_loss ops.depend(total_loss, loss_scaler.adjust(status))return total_loss, masked_lm_loss, next_sentence_loss, status 模型并行 模型并行是算子层面的并行他利用某些算子的特性将算子拆分到多个设备上进行计算。因此不是网络中的所有算子都可以拆分计算。可以产分的算子需满足如下特性 可以并行计算的算子算子其中一个输入来自parameter 矩阵乘法全连接层、attention核心 左侧为一张卡进行矩阵乘法的示意图。 右侧为模型并行在两张卡上的示意图X保持一样W参数矩阵分为两份分别和X进行矩阵乘法。最后将两张卡乘法的输出结果合并到一起。 即X.shape为m, kW1.shape为k, n拆分后W1.shape为k, n/2W1.shape为k, n/2相乘输出为(m, n/2)合并后仍为(m, n) 。 但不是所有算子都适合这样的模型并行。 MindSpore算子级并行 MindSpore屏蔽了模型并行的前置和后置工作通信、算子排布开发者只需关心数据如何进行切分即可。 MindSpore对每个算子独立建模用户可以设置正向网络中每个算子的切分策略(对于未设置的算子默认按数据并行进行切分)。在构图阶段框架将遍历正向图根据算子的切分策略对每个算子及其输入张量进行切分建模使得该算子的计算逻辑在切分前后保持数学等价。框架内部使用Tensor Layout来表达输入输出张量在集群中的分布状态Tensor Layout中包含了张量和设备间的映射关系用户无需感知模型各切片在集群中如何分布框架将自动调度分配。框架还将遍历相邻算子间张量的Tensor Layout如果前一个算子输出张量作为下一个算子的输入张量且前一个算子输出张量的Tensor Layout与下一个算子输入张量的TensorLayout不同则需要在两个算子之间进行张量重排布(Tensor Redistribution)对于训练网络来说框架处理完正向算子的分布式切分之后依靠框架的自动微分能力即能自动完成反向算子的分布式切分。 示例 用户在4卡计算两个连续的二维矩阵乘法Z(X * W) * V第一个矩阵Y X * W用户想把X按行切4fen数据并行第二个矩阵Z Y * V用户想把V按列切4份模型并行 import mindspore.nn as nn from mindspore import ops import mindspore as msms.set_auto_parallel_context(parallel_modesemi_autoparallel, device_num4)class DenseMatMulNet(nn.Cell):def __init__(self):super(DenseMatMulNet, self).__init__()# 切分只需要配置shard接口即可# 对于matmul1 接受两个输入第一个输入第一维切成四份第二维不进行切割# 第二个输入均不切割self.matmul1 ops.MatMul.shard((4, 1), (1, 1))# 对于matmul2第二个输入的第二个维度切成四份self.matmul2 ops.MatMul.shard((1, 1), (1 4))def construct(self, x, w ,v):y self.matmul1(x, w)z self.matmul2(y, v)return z # a simple example to demenstarte auto data parallel and model parallel on Mindspore import sys import numpy as np import mindspore.nn as nn import mindspore as ms from mindspore.nn import Cell, Momentum from mindspore.ops import operations as ops from mindspore.nn import SoftmaxCrossEntropyWithLogits from mindspore import train import mindspore.dataset as ds import mindspore.communication as D from mindspore.common.initializer import initializer# generate fake dataset step_per_epoch 4def get_dataset(*inputs):def generate():for _ in range(step_per_epoch):yield inputsreturn generate# define a simple net which will cut data into pieces for multi-npu training class Net(Cell):def __init__(self):super().__init__()self.matmul ops.MatMul().shard(((1, 2), (2, 1)))self.weight ms.Parameter(initializer(normal, [32, 16]), w1)self.relu ops.ReLU().shard(((2, 1),))def construct(self, x):out self.matmul(x, self.weight)out self.relu(out)return out# 设置运行环境的context。 # 在运行程序之前应配置context。如果没有配置默认情况下将根据设备目标进行自动设置。 # Compile the graph once and execute it multiple times. ms.set_context(modems.GRAPH_MODE, device_targetAscend)# Initialize distributed training environment D.init() # get rank of current device in the whole distributed computation rank D.get_rank() # set semi-auto-parallel ms.set_auto_parallel_context(parallel_modesemi_auto_parallel, device_num2, full_batchTrue)np.random.seed(1)input_data np.random.rand(16, 32).astype(np.float32) label_data np.random.rand(16, 16).astype(np.float32) fake_dataset get_dataset(input_data, label_data)net Net()# define callback function while traing, including loss monitor and checkpoint file save path callback [train.LossMonitor(), train.ModelCheckpoint(directory{}.format(rank))] # generate dataset and define data column dataset ds.GeneratorDataset(fake_dataset, [input, label]) # define loss function loss nn.SoftmaxCrossEntropyWithLogits()lr 1e-3 momentum0.1 num_epochs 5optimizer nn.Momentum(net.trainable_params(), lr, momentum)model ms.Model(net, loss_fnloss, optimizeroptimizer)model.train(num_epochs, dataset, callbackscallback, dataset_sink_modeFalse) Pipeline并行 受Server间通信带宽低的影响传统数据并行叠加模型并行的混合模式性能表现欠佳需要引入流水线并行。流水线并行是将神经网络中的算子切分为多个阶段再把阶段映射到不同设备上使得不同设备去计算神经网络的不同部分。相当于每张卡上只放模型的其中基层或一层 如果Pipeline并行每次都知计算一批数据不能充分利用多卡优势因为总有卡处于空闲在等待数据。 wile提升效率流水线并行进一步把mini-barch划分为micro-batch在微批次中采用流水线式的执行序列从而提升效率。 1F1B 一次个micro-batch进行正向后立即进行一次反向计算。使得内存可以更早释放进而确保内存使用峰值更低。1F1B是现在的主流方式。  示例 MindSpore中Pipeline的实现方式非常简单。通过调用pipeline_stage接口来指定每个layer要在哪个stage上去执行。pipeline接口的洗礼度微Cell即只要继承了nn.Cell的实例就要配置pipeline_stage并且需要按照网络执行的先后顺序从小到大进行配置。 ...class ResNet(nn.Cell):ResNetdef __init__(self, block, num_classes100, batch_size32):initsuper(ResNet, self).__init__()self.batch_size batch_sizeself.num_classes num_classesself.head Head()self.layer1 MakeLayer0(block, in_channels64, out_channels256, stride1)self.layer2 MakeLayer1(block, in_channels256, out_channels512, stride2)self.layer3 MakeLayer2(block, in_channels512, out_channels1024, stride2)self.layer4 MakeLayer3(block, in_channels1024, out_channels2048, stride2)self.pool ops.ReduceMean(keep_dimsTrue)self.squeeze ops.Squeeze(axis(2, 3))self.fc fc_with_initialize(512 * block.expansion, num_classes)# pipeline parallel configself.head.pipeline_stage 0self.layer1.pipeline_stage 0self.layer2.pipeline_stage 0self.layer3.pipeline_stage 1self.layer4.pipeline_stage 1self.fc.pipeline_stage 1... Pipeline并行的结果只会在一张卡上输出loss因为loss是集合到最后一张卡上进行输出的故其他卡没有loss。 内存优化 重计算 计算某些反向算子时需要一些正向算子的计算结果导致这些正向算子结果需要驻留在内存中知道依赖他们的反向算子计算完这些正向算子的计算结果占用的内存才会被复用。 重计算是一种时间换空间的方法。为了降低内存峰值重计算技术可以不保存正向计算结果在反向计算时重新计算一遍正向结果使得内存可以被重复利用。 虽然运算速度慢了但是可以有更多可利用的内存可以增大batch_size大小。 MindSpore中重计算接口可以针对单个算子和Cell进行设置。当用户调用Cell的重计算接口时整个Cell中的所有正向算子都会被设置为重计算。  优化器并行ZeRO 进行数据并行训练时模型的参数更新部份在各个卡之间存在冗余优化器并行通过将优化器的计算量分散到数据并行维度的卡上在大规模网络上可以有效减少内存消耗并提升网络性能。 Baseline为传统的数据并行即每个一卡都存一份参数、梯度和优化器状态。优化器并行就是在每张卡上分发一份需要维护的optimizer status。 MindSpore的优化器并行全局配置即可 ms.set_auto_parallel_context(parallel_modems.ParallelMode.SEMI_AUTO_PARALLEL, enable_parallel_optimizerTrue)MindSpore分布式并行模式 半自动如数据并行配置shardPipeline并行需要配置Pipeline_config仍需要用户自己指定参数配置所以这是半自动的。 全自动并行框架自动配置一个并行配置策略适合想要并行训练但是不知道如何配置策略的用户。只需配置ms.set_auto_parallel_context(parallel_modems.ParallelMode.AUTO_PARALELL)即可
http://www.dnsts.com.cn/news/271056.html

相关文章:

  • 长安公司网站制作企业策划案
  • 杭州个人网站建设深圳防疫最新进展
  • 书店建设网站的能力公主坟网站建设
  • 网站建设方案实验报告网站开发的合同
  • 怎么给网站做链接屏蔽珞珈学子网站建设
  • 做网站的实训报告上海注册设计公司网站
  • 最新网站建设语言网站制造
  • 知行网站建设深圳聘请做网站人员
  • 网站建设的主要流程宁波十大建设集团
  • 网站建设与维护 排序题制作宝安网站建设
  • o2o网站有哪些心雨在线高端网站建设创新
  • 大连网站建设与维护题库wordpress前端用户中心
  • 网站明确内容wordpress主题the 7
  • 怎么做网站用于推广家装装饰设计
  • 长春做网站推荐选吉网传媒好网站开发项目拖延周期
  • 广州网络帮助建站做零食的网站有哪些
  • 商务网站大全牛魔王网站建设
  • 学做网站从前端到后端郑州网站制作怎么样
  • 培训营销型网站建设北京建站优化
  • 淄博网站成功案例四川外国语大学网站建设
  • 我是在百度上搜广东网站建设微站和网站数据同步
  • 中信建设有限责任公司待遇怎么样永州网站seo
  • 软件开发模型不包括seo 网站换程序
  • flash网站收录工程公司年会发言稿
  • app和微网站的对比asp.net网站支持多国语言
  • 建一个网站的价格wordpress 自动收录
  • 怎样做原创短视频网站学校网站建设发展历程
  • 旅行社网站建设规划书论文如何建设网站地图
  • 龙岗网站设计讯息想开网站建设公司
  • 做网站哪家好 青岛国际新闻最新消息战争视频