《火山引擎:基于 Ray 的大模型离线推理(2023)(23页).pdf》由会员分享,可在线阅读,更多相关《火山引擎:基于 Ray 的大模型离线推理(2023)(23页).pdf(23页珍藏版)》请在三个皮匠报告上搜索。
1、2023/3/271基于 Ray 的大模型离线推理王万兴火山引擎资深研发工程师22.使用 Ray 构建大模型推理框架3.Ray 云原生部署实践1.大模型离线推理的关键挑战2大模型离线推理的关键挑战大模型离线推理4大模型离线推理(Batch 推理),是指在具有数十亿至数千亿参数的大规模模型上进行分布式计算推理的过程大模型离线推理的关键挑战-GPU Memory Wall 模型参数量越来越大 算力和需求gap越来越大 需要做模型切分模型切分6 支持更大模型 降低成本 空分复用大模型离线推理的关键挑战-分布式调度7异构资源调度在在 CPUCPU上做上做数据的摄取和处理数据的摄取和处理在在 GPUGP
2、U上做推理过程上做推理过程弹性资源调度较快的较快的 stagestage较慢的较慢的 大模型离线推理的关键挑战-性能8 吞吐 GPU使用率例子:Vit+Albert9使用 Ray 构建大模型推理框架Ray 简介11Ray from RISElab UC BerkeleyAnyscaleGitHub 24k Uber/OpenAI/Ant/ByteDanceChatGPTChatGPT is powered is powered byby RayRay!high-level libraries whichenable simple scaling ofAI workloadsa low-leve
3、l distributedcomputing frameworkwith a concise core,Python-first API强化学习模型 Serve超参优化模型训练ML 数据处理Ray 简介12Head/Worker 节点RayletDriverWorkerRay v2 ARay 简介13ray.remoteclass Counter:def _init_(self):self.i=0def get(self):return self.idef incr(self,value):self.i+=value c=Counter.remote()c.incr.remote(1)prin
4、t(ray.get(c.get.remote()ray.remotedef sum(matrix):return np.sum(matrix)#Call the task with a literal argument value.print(ray.get(sum.remote(np.ones(100,100)#Put a large array into the object store.matrix_ref=ray.put(np.ones(1000,1000)print(ray.get(sum.remote(matrix_ref)Ray Core API编程from ray import
5、 train from ray.train.torch import TorchTrainerclass NeuralNetwork(nn.Module):def _init_(self):super(NeuralNetwork,self)._init_()self.layer1=nn.Linear(input_size,layer_size)self.relu=nn.ReLU()self.layer2=nn.Linear(layer_size,output_size)def forward(self,input):return self.layer2(self.relu(self.layer
6、1(input)def train_func_distributed():optimizer=optim.SGD(model.parameters(),lr=0.1)for epoch in range(num_epochs):optimizer.zero_grad()loss.backward()optimizer.step()trainer=TorchTrainer(train_func_distributed,scaling_config=ScalingConfig(num_workers=4)results=trainer.fit()Ray library API 编程定义actor创