DeepSpeed Huggingface模型的自动Tensor并行、kernel注入、训练阶段的优化版kernel

推理阶段。

在后台,1. DeepSpeed会把运行高性能kernel(kernel injection),加快推理速度,这些对用户是透明的; 2. DeepSpeed会根据mp_size来将模型放置在多个GPU卡上,自动模型并行

import os
import torch
import transformers
import deepspeed
local_rank = int(os.getenv("LOCAL_RANK", "0"))
world_size = int(os.getenv("WORLD_SIZE", "1"))
# create the model pipeline
pipe = transformers.pipeline(task="text2text-generation", model="google/t5-v1_1-small", device=local_rank)
# Initialize the DeepSpeed-Inference engine
pipe.model = deepspeed.init_inference(
    pipe.model,
    mp_size=world_size,
    dtype=torch.float
)
output = pipe('Input String')

Train好的模型,即使没有用Model并行,或mp_size是另一个数,DeepSpeed支持推理时改变mp_size

量化推理:dtype支持torch.int8

 新版推理:

DeepSpeed/blogs/deepspeed-fastgen at master · microsoft/DeepSpeed · GitHub

Fine-tune BERT:

使用QA数据集SQuAD: (文章,question, answer(答案就在原文中;答对任何一个应该算对))

Forward推理代码:

loss = model(input_ids, segment_ids, input_mask, start_positions, end_positions)
  1. input_ids:token ids. 文本输入经过Tokenize后的id。
  2. segment_ids: 0表示question,1表示context.
  3. input_mask: 实际句子token or padding token。
  4. start_positions: answer在原文中的起始pos。(推理的时候不用给出)
  5. end_positions: answer在原文中的终止pos。   (推理的时候不用给出)

--deepspeed_transformer_kernel参数(在deepspeed <my_script.py>后面加上该选项)

DeepSpeed专门为Transformer层实现的优化版kernel

config = DeepSpeedTransformerConfig(batch_size = 64,
                                    max_seq_length = 128,
                                    hidden_size = 1024,
                                    heads = 16,
                                    attn_dropout_ratio = 0.1,
                                    hidden_dropout_ratio = 0.1,
                                    num_hidden_layers = 24,
                                    initializer_range = 0.02,
                                    local_rank = 0,
                                    seed = 1234,
                                    fp16 = True,
                                    pre_layer_norm=True,
                                    attn_dropout_checkpoint=False,
                                    normalize_invertible=False,
                                    gelu_checkpoint=False)
self.layer = nn.ModuleList([
    copy.deepcopy(DeepSpeedTransformerLayer(cuda_config))
    for _ in range(config.num_hidden_layers)
])

跟优化有关的选项:

stochastic_mode: 大约加速2%.  随机跳过一些层的计算;

normalize_invertible: 扔掉LayerNorm的输入激活值;(backward时,梯度可由output激活值算出)

attn_dropout_checkpoint: attention dropout是一种正则技术,训练中随机disable一些attention weights;保存这些attention dropout mask比较耗费空间。此选项可以不保存这些mask,backward时重新计算(很快)。bert 中的四次dropout都在哪些位置?_transformer dropout 放在哪里-CSDN博客

gelu_checkpoint: 扔掉Gelu的输出激活;因为可以从输入激活快速计算出来;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

湖南大学CS-2023期末考试解析

前言 有幸作为助教参与信息院“周末夜校”讲解2023年试卷第2-3题&#xff08;汇编&#xff09;&#xff0c;借这个契机重新温习了一下这份试卷。 以下各部分的PPT由讲评助教分别完成并讲解。 1,6题 计科21杨助教2,3题 计科21甘晴void4,5题 智能21姚助教 由于2,3题过程较为繁…

智能编程支持分析本地工程文件,项目级开发效率再度提升!

CodeGeeX的智能问答新增关联本地文件的系列功能&#xff0c;用户在智能问答的输入框中输入&#xff0c;就可以在弹出框中选择需要使用的指令。从而能够针对所关联的文件给出更有针对性的问答和代码建议。 下面我们将分别介绍在编程工作中&#xff0c;如何关联本地文件&#xff…

PostgreSQL 快速入门与实战

1、概述 前面2篇博客给大家详细的介绍了PostgreSQL的安装和配置&#xff0c;本篇文章就带着大家一起学习一下PostgreSQL的用法&#xff0c;主要内容包括 基本的数据库操作、用户管理、数据备份、SCHEMA(模式)以及和MySQL的区别。 2、数据库基本操作 PostgreSQL是严格遵守SQL规…

飞睿超宽带uwb模块无线传输,工业级uwb定位标签精度3厘米,测距定位距离150米

在当今日新月异的科技浪潮中&#xff0c;超宽带&#xff08;Ultra-Wideband&#xff0c;简称UWB&#xff09;技术凭借其独特的优势&#xff0c;正在成为工业应用领域中不可或缺的一环。作为一种新型的无线通信技术&#xff0c;超宽带UWB模块凭借其高精度定位、高安全性、高抗干…

29、shell变量、重定向及运算符

一、shell脚本 1.1、shell的定义 脚本&#xff1a;可运行的代码的集合&#xff0c;脚本语言&#xff08;计算机语言&#xff09;。 脚本的特点&#xff1a;从上到下&#xff0c;按行执行。 python&#xff1a;脚本语言 格式更严谨的执行缩进。也是从上到下按行执行。 shel…

网络协议四

一、云中网络 物理机的劣势&#xff1a; 1&#xff09;一旦需要扩容 CPU、内存、硬盘&#xff0c;都需要去机房手动弄&#xff0c;非常麻烦 2&#xff09;采购的机器往往动不动几百 G 的内存&#xff0c;而每个应用往往可能只需要 4 核 8G 3&#xff09;一台机器&#xff0c;…

FreeRTOS-任务通知

概述 不同于队列、信号量、互斥量&#xff0c;有一个额外的空间&#xff08;结构体&#xff09;作为通信的纽带&#xff0c;任务通知只需借助任务TCB中的相关变量&#xff0c;无需另外创建&#xff1b; 下面是TCB中有关任务通知的变量&#xff1a; typedef struct tskTaskCo…

告别繁琐!Xinstall助力,二维码推广监测从此高效无忧

在数字化营销时代&#xff0c;二维码推广已成为App获取新用户的重要途径之一。然而&#xff0c;如何精准监测二维码推广效果&#xff0c;成为了许多企业面临的难题。今天&#xff0c;我们为大家介绍一款强大的二维码推广监测工具——Xinstall&#xff0c;它将助您轻松解决推广监…

SonarQube安全扫描常见问题

目录 一、SonarQube质量报告 二、SonarQube扫描常见问题和修复方法 三、SonarQube质量配置 最近小编在使用SonarQube工具进行代码扫描&#xff0c;检查代码异味&#xff0c;系统漏洞等&#xff0c;实际过程中也遇到了不少问题&#xff0c;这篇文章主要列举我遇到的常见问题和…

账号密码无错误,xshell可以连接,但是WindTerm连接失败

xshell可以连接&#xff0c;但是WindTerm却连接失败 报错提示内容&#xff1a; 连接WindTerm是&#xff0c;账号密码是正确的&#xff0c;但是一输入账号&#xff0c;就报The remote host closed the connection错误&#xff0c;或者是Unknown error错误 解决方法 在新建…

Perfectly Clear Workbench: 智能图像清晰修复软件

Perfectly Clear Workbench 是由 EyeQ 公司开发的一款先进的智能图像清晰修复软件&#xff0c;适用于 Mac 和 Windows 平台。该软件旨在通过自动化和高效的图像处理工具&#xff0c;帮助摄影师、设计师以及影像爱好者轻松实现图像优化和修复。无论是专业摄影工作室还是个人用户…

揭秘ASA归因统计的奥秘,Xinstall带您轻松上手!

在移动互联网时代&#xff0c;App推广已成为企业获取用户、提升品牌知名度的重要手段。然而&#xff0c;如何准确衡量推广效果&#xff0c;如何精准定位目标用户&#xff0c;一直是困扰着众多App运营者的难题。今天&#xff0c;我们就来谈谈ASA&#xff08;Apple Search Ads&am…

【Ardiuno】使用ESP32单片机创建web服务通过网页控制小灯开关的实验(图文)

经过实验测试ESP32单片机的网络连接还是很方便的&#xff0c;这里小飞鱼按照程序实例的代码亲自实验一下使用Esp32生成的网页服务来实现远程无线控制小灯开关功能&#xff0c;这样真的是离物联网开发越来越近了&#xff0c;哈哈&#xff01; 连接好开发板和电路&#xff0c;将…

采用PHP语言(医院安全不良事件上报系统源码)医院不良事件 各类事件分析、分类、处理流程

医疗安全不容忽视&#xff01; 医疗安全&#xff08;不良&#xff09;事件是指在临床诊疗活动中以及医院运行过程中&#xff0c;任何可能影响患者的诊疗结果、增加患者的痛苦和负担并可能引发医疗纠纷或医疗事故&#xff0c;以及影响医疗工作的正常运行和医务人员人身安全的因…

CVE-2024-4577:PHP CGI Windows平台远程代码执行漏洞

文章目录 0x01 前言0x02 漏洞描述0x03 影响范围0x04 资产测绘0x05 漏洞复现0x06 漏洞修复0x01 前言 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后…

如何在Visual Studio Code中禁用Less文件保存时自动编译为CSS的功能

第一步&#xff1a;点击扩展&#xff0c;搜索Easy Less&#xff0c;并找到对应的扩展设置 第二步&#xff1a;点击在setting.json中编辑 第三步&#xff1a;将此段代码复制粘贴 "compress": false, // 是否压缩"sourceMap": false, // 是否生成map文件&am…

洗地机是智商税吗?家用洗地机哪个牌子好?2024年多功能洗地机推荐

洗地机是智商税吗&#xff1f;肯定不是&#xff01;&#xff01;&#xff01;洗地机因为其功能集成了扫地、吸尘、拖地、烘干和消毒的功能&#xff0c;仅需一步操作即可完成所有清洁任务&#xff0c;大大的提升了人们的清洁效率&#xff0c;节省了人们清洁的时间和精力。那么&a…

RocketMQ查询出重复数据,两条MessageID一样的解决办法如下

问题描述 在使用RocketMQ的可视化工具dashboard-1.0.0时,首先生产了10条数据,但是查询时却查出来了14条,有四条数据重复,重复数据MessageID和key相同,但是通过key单独查询却只能查出一条 测试代码 package com.fdw.rocketmq.producer;import org.apache.rocketmq.client…

设计模式学习(二)工厂模式——工厂方法模式

设计模式学习&#xff08;二&#xff09;工厂模式——工厂方法模式 前言工厂方法模式简介示例优点缺点使用场景 前言 前一篇文章介绍了简单工厂模式&#xff0c;提到了简单工厂模式的缺点&#xff08;违反开闭原则&#xff0c;扩展困难&#xff09;&#xff0c;本文要介绍的工…

WordPress 站点 Wp-Login.Php 登录页面,防止被机器扫描爆破终极方法

最近好像不少的 WordPress 站点又迎来了一波疯狂的 wp-login.php 登录页面暴力破解,明月使用的 Dragon 主题也迅速的做出了安全防范响应,第一时间就增强了代码上的安全防御能力。明月代运维的几个站点也在这方面加强了防范措施,基本上实现了永久解决这一顽疾的目标,今天明月…