Py之optimum:optimum的简介、安装、使用方法之详细攻略

news2024/10/7 8:20:46

Py之optimum:optimum的简介、安装、使用方法之详细攻略

目录

optimum的简介

1、加速推理  Optimum 提供多种工具,用于在不同生态系统上导出和运行优化模型:

2、功能概述

optimum的安装

1、如果您想使用  Optimum 的加速器特定功能,您可以根据下表安装所需的依赖项:

2、从源代码安装:

optimum的使用方法

1、基础用法

(1)、加载一个模型并使用 OpenVINO Runtime 运行推理

(2)、要加载使用 Intel Neural Compressor 量化的模型(本地或在  hub 上托管),可以按如下方式进行:


optimum的简介

Optimum 是Transformers 和 Diffusers 的扩展,提供了一套优化工具,可实现在目标硬件上训练和运行模型的最大效率,同时保持易于使用。

1、加速推理  Optimum 提供多种工具,用于在不同生态系统上导出和运行优化模型:

  • ONNX / ONNX Runtime
  • TensorFlow Lite
  • OpenVINO
  • Habana 第一代 Gaudi / Gaudi2,更多详情请参见这里

导出和优化可以通过编程方式和命令行完成。

2、功能概述

功能ONNX RuntimeNeural CompressorOpenVINOTensorFlow Lite
图优化N/AN/A
训练后动态量化N/A
训练后静态量化
量化感知训练 (QAT)N/AN/A
FP16 (半精度)N/A
剪枝N/AN/A
知识蒸馏N/AN/A

optimum的安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple optimum auto-gptq

1、如果您想使用  Optimum 的加速器特定功能,您可以根据下表安装所需的依赖项:

加速器安装命令
ONNX Runtimepip install --upgrade-strategy eager optimum[onnxruntime]
Intel Neural Compressorpip install --upgrade-strategy eager optimum[neural-compressor]
OpenVINOpip install --upgrade-strategy eager optimum[openvino,nncf]
Habana Gaudi 处理器 (HPU)pip install --upgrade-strategy eager optimum[habana]
FuriosaAIpip install --upgrade-strategy eager optimum[furiosa]

需要使用 --upgrade-strategy eager 选项来确保不同的软件包被升级到最新版本。

2、从源代码安装:

python -m pip install git+https://github.com/huggingface/optimum.git

对于特定加速器功能,请将 optimum[accelerator_type] 添加到上述命令中:

python -m pip install optimum[onnxruntime]@git+https://github.com/huggingface/optimum.git

OpenVINO 这需要通过以下命令安装 OpenVINO 额外功能:

pip install --upgrade-strategy eager optimum[openvino,nncf]

optimum的使用方法

1、基础用法

(1)、加载一个模型并使用 OpenVINO Runtime 运行推理

只需将 AutoModelForXxx 类替换为相应的 OVModelForXxx 类。要加载 PyTorch 检查点并在加载模型时将其转换为 OpenVINO 格式,可以在加载模型时设置 export=True

from transformers import AutoModelForSequenceClassification
from optimum.intel import OVModelForSequenceClassification
from transformers import AutoTokenizer, pipeline

model_id = "distilbert-base-uncased-finetuned-sst-2-english"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = OVModelForSequenceClassification.from_pretrained(model_id, export=True)
model.save_pretrained("./distilbert")

classifier = pipeline("text-classification", model=model, tokenizer=tokenizer)
results = classifier("He's a dreadful magician.")

(2)、要加载使用 Intel Neural Compressor 量化的模型(本地或在  hub 上托管),可以按如下方式进行:

from optimum.intel import INCModelForSequenceClassification

model_id = "Intel/distilbert-base-uncased-finetuned-sst-2-english-int8-dynamic"
model = INCModelForSequenceClassification.from_pretrained(model_id)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

diffusers-Understanding models and schedulers

https://huggingface.co/docs/diffusers/using-diffusers/write_own_pipelinehttps://huggingface.co/docs/diffusers/using-diffusers/write_own_pipelinediffusers有3个模块:diffusion pipelines,noise schedulers,model。这个库很不错&…

AUTOSAR存储篇 - NVRAM Manager(NvM)

文章目录 基础架构指南分层结构存储器硬件抽象的寻址机制例子 基本储存对象NV块RAM块ROM块管理块NV块头 块管理类型块管理类型概述NVRAM块结构NVRAM 块描述符表Native NVRAM 块Redundant NVRAM块Dataset NVRAM块NVRAM管理器API配置类 扫描顺序/优先级机制 通常行为功能要求设计…

项目综合实训,vrrp+bfd,以及策略路由的应用

目录 一. 项目需求 二. Visio设备画图 三. 设备选型 三.vlan规划 四.Ip地址规划 五.实验拓扑图 六.配置过程及结果 项目需求 1.S1作为VLAN10的主网关和根桥,S2作为v…

堆排序 详解+图解

堆排序是一种基于堆数据结构的排序算法,它的基本思想是将待排序序列构造成一个最大堆,然后将堆顶元素和堆底元素交换,再把堆的大小减一,使堆顶元素下沉到合适的位置,重复以上操作,直到整个序列有序。 堆排…

【QT】事件分发器

event事件分发器,用于分发事件,在这里也可以做拦截,返回值boo。如果返回的是true代表拦截处理,不再向下分发。 展示事件拦截 上一段代码:【QT】鼠标常用事件-CSDN博客 代码 // 事件分发器 // 拦截鼠标按下 // QEven…

Unity地面交互效果——2、动态法线贴图实现轨迹效果

Unity引擎动态法线贴图制作球滚动轨迹 大家好,我是阿赵。   之前说了一个使用局部UV采样来实现轨迹的方法。这一篇在之前的基础上,使用法线贴图进行凹凸轨迹的绘制。 一、实现的目标 先来回顾一下,上一篇最终我们已经绘制了一个轨迹的贴图…

第五章 I/O管理 七、设备的分配与回收

目录 一、设备分配时应该考虑的因素 1、设备的固有属性 2、设备分配算法 3、设备分配中的安全性 (1)安全分配方式: 优点: 缺点: (2)不安全分配方式: 优点: 缺点: 4、静态分配 5、动态分配 二、设备分配管理中的数据结…

一个非常实用的Python模块-struct模块

嗨喽~大家好呀,这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 struct模块提供了用于在字节字符串和Python原生数据类型之间转换函数,比如数字和字符串。 该模块作用是完成Python数值和C语言结构体的Python字符串形…

【git】git拉取代码报错,fatal: refusing to merge unrelated histories问题解决

大家好,我是好学的小师弟。今天准备将之前写的代码,拉到新的工程文件夹(仓库)下面,用了pull命令,结果报错了,报错截图如下 $ git pull https://gitee.com/* #仓库地址 fatal: refusing to merge unrelated histor…

自动化测试注意事项

什么是自动化测? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多。一直想动笔写一篇文章分享自动化测试实践中的一些经验。终于决定花点时间来做这件事儿。 首先理清自动化测试的概念,广义上来讲&#…

数据库-扩展语句,约束方式

扩展语句: 例: 自增长: auto_increment:表示该字段可以自增长,默认从一开始,每条记录会自动递增1 复制: 通过like这个语法直接复制ky32的表结构,只能复制表结构,不能复制表里面的…

C语言每日一题(23)兔子的序列

牛客网 BC159 兔子的序列 题目描述 描述 兔子发现了一个数字序列,于是开始研究这个序列。兔子觉得一个序列应该需要有一个命名,命名应该要与这个序列有关。由于兔子十分讨厌完全平方数,所以兔子开创了一个新的命名方式:这个序列…

Linux--文件操作

1.什么是文件 对于文件来说,文件文件内容文件属性;对于文件来说,只有两种操作,对内容的修改和对文件属性的修改,这就是文件的范畴。 对于存放在磁盘上的文件,我们需要通过进程来进行访问,访问文…

数据库 用户管理与授权

数据库的数据管理 DDL: CTEATE DROP ALTER dml:对数据进行管理 update insert into delete truncate dql:查询语询select dcl:权限控制语句grant revoke 数据库用户管理: 创建用户 修改用户的权限 删除用户。 grant要在终端执行。 create user ‘ky32’localhost ide…

紧急:发现NGINX Ingress Controller for Kubernetes中的新安全漏洞

导语 大家好,今天我要向大家紧急报告一则消息:我们在NGINX Ingress Controller for Kubernetes中发现了三个新的安全漏洞!这些漏洞可能被黑客利用,从集群中窃取机密凭据。在本文中,我们将详细介绍这些漏洞的细节&#…

日本it培训就职 日本的IT工作以什么为主?

现在有好多非计算机专业的人转行做赴日程序员,为什么这么一批人要千里迢迢跑到日本去当程序员呢?当然是因为日本程序员缺口大,需要的人才多,而且日本对程序员的要求不像国内要求那么高,比较硬性的要求就是学历至少要在…

PCIe 访问 EP 配置空间,空间映射详解,BDF 计算偏移

访问 EP 的配置空间方法 内存映射IO 访问 内存访问配置空间 前置知识 PCIe 设备的寻址是按照 BDF 即 Bus-Device-Function 来组织的。访问某个设备则需要根据BDF计算偏移地址。 两种不同的内存访问配置空间方法 类 xilinx,基地址 偏移地址访问 // linux-5.10\…

node使用fs模块(三)—— fs模块的其他使用(复制文件、文件的重命名和移动、删除)

文章目录 前言一、fs的复制1.方式一(先读取后写入)2.方式二(流式读取写入)3.两种方式的区别 二、文件的重命名和移动(fs.rename)1. 参数2. 基本使用(文件的重命名)3. 基本使用(文件的移动)4.文件…

13.7性能测试工具(LoadRunner)(简单扫盲)

下载LoadRunner和360极速浏览器 一.为什么选择LoadRunner而不是Jmeter 1.Jmeter没有录制功能. 2.LoadRunner可以设计非常丰富的测试场景. 3.LoadRunner能够产出非常丰富的测试报告. 二.LoadRunner三大组件 1.VUG: 功能: 录制脚本(编写脚本). 2.Controller: 功能: 设计场…

RocketMQ生产者消息发送出去了,消费者一直接收不到怎么办?(Rocket MQ订阅关系一致性)

问题: 使用RocketMQ消息队列,生产者将数据发送出去了,但是生产者一致没接收到(或者是间隔好几分钟,突然接收到一条数据)怎么办?并且通过rocket web控制台查看消息的状态为NOT_ONELINE或者NOT_CONSUME&#…