首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么量化的Uint8 TF-lite模型的执行时间比F32版本慢?

量化的Uint8 TF-lite模型的执行时间比F32版本慢的原因主要有以下几点:

  1. 数据类型:Uint8和F32分别代表了无符号8位整数和32位浮点数。相比于F32,Uint8的数据类型更为简单,但也更为有限。在计算过程中,Uint8需要进行数据类型转换和量化操作,这会增加计算的复杂度和执行时间。
  2. 精度损失:Uint8模型使用更低的精度来表示数据,这意味着在计算过程中会有一定的精度损失。这种精度损失可能会导致模型的输出结果与F32版本有所差异,需要进行额外的后处理或修正,从而增加了执行时间。
  3. 内存占用:Uint8模型相比于F32模型具有更小的模型体积,这可以减少模型的存储空间和传输成本。然而,Uint8模型在执行过程中需要将数据类型转换为F32进行计算,这会增加内存的使用量,可能导致内存不足或频繁的数据读写操作,从而影响执行时间。
  4. 硬件支持:某些硬件设备可能对Uint8的计算支持不够完善,无法充分发挥其性能优势。相比之下,F32是一种常见的数据类型,得到了广泛的硬件支持和优化,因此在某些硬件平台上执行速度可能更快。

综上所述,Uint8 TF-lite模型的执行时间比F32版本慢的原因主要是由于数据类型转换、精度损失、内存占用和硬件支持等因素的影响。为了提高执行效率,可以考虑优化数据类型转换和量化操作、优化后处理或修正过程、合理管理内存使用,并选择适合硬件平台的优化策略。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【云+社区年度征文】TinyML实践-2:How TinyML Works?

对于Tensorflow最大需求是能够在桌面系统中训练并运行模型,这种需求影响了很多设计决策,例如为了更低延迟和更多功能而增加可执行文件大小。...简单说,TFLite与TF最大不同,它只关注推断。 TF-Lite for Microcontroller是TFLite在mcu移植版本(子系统),复用TF-Lite框架。...Interpreter TF-Lite使用“解释执行模型”(术语来自TinyML书,有机会展开描述,很有意思实现),与之相对是“模型生成代码”(code generation)。...Quantization为什么量化是必要?想象一个使用ATmega328P微控制器Arduino Uno,它使用8位算法。...通过量化模型,权重存储大小减少了4倍(对于从32位到8位值量化),并且精度通常会受到忽略影响(通常约为1–3%)。

1.7K52

TinyML-5:TFLite Quantization背后运行机制

引文 上一篇文章描述了为什么quantization 量化int8足够运行推理,以及Quantization量化对TinyML重要性,但是没有深入说明Quantization实现机制,本篇博文打算从...TF-Lite example: Optimize Options [tflite exmaple] 众所周知,使用TFLite转换TF modelQuantization量化技术可以缩小weights...望文生义,“FOR_SIZE"应该是着重优化模型大小,"FOR_LATENCY"应该是优化推理速度;那么问题来了,同样是QUANTIZATION,两个方向实现机制有什么不同?...在此,即使是梯度也针对量化权重进行计算。通俗说,训练过程在每层输出进行量化,让网络习惯精度下降训练,最终达到在推理部署时候获得更小精度下降损失。本文着重讲PTQ,以后有机会再展开阐述。...size] decompress解压把模型保存weightsint8转换回去float32,并将范围缩放回其原始值,然后执行标准浮点乘法;获得好处是压缩网络,模型尺寸小了。

2.3K91

CPU 混合推理,非常见大模型量化方案:“二三五六” 位量化

我这里使用是零一万物开源 YI-34B 社区 finetune 微调训练版本,通常情况下,社区可能有热门模型量化版本,经常看到一些同学说“等个量化版本”。 但其实自己动手,丰衣足食。...况且,即使是从社区下载量化版本模型体积也很大,需要来来回回测试模型是否合适,重复下载也非常消耗时间和宽带成本,远不如自己量化方便。 关于模型程序下载,方法很多。...量化使用硬件 而量化模型使用硬件,需要 CPU 计算能力相对强一些机器,如果你有 GPU,那么将会极大提升模型量化速度,如果没有也没有关系。...一般来说,位数越高,需要内存和显存就越多,运行起来越慢,但是效果和精度就越接近原始版本。反之,我们虽然得到了省资源版本,但是效果会有明显降低。...扔到显卡里模型层数越多,推理速度越快。•“--model” 这个参数没有什么特别的,指定我们下载或者转换好 GGML 模型文件就好。 好啦,当这个命令执行后,我们就能够快乐模型一起玩耍啦。

83310

CPU 混合推理,非常见大模型量化方案:“二三五六” 位量化

我这里使用是零一万物开源 YI-34B 社区 finetune 微调训练版本,通常情况下,社区可能有热门模型量化版本,经常看到一些同学说“等个量化版本”。 但其实自己动手,丰衣足食。...况且,即使是从社区下载量化版本模型体积也很大,需要来来回回测试模型是否合适,重复下载也非常消耗时间和宽带成本,远不如自己量化方便。 关于模型程序下载,方法很多。...量化使用硬件 而量化模型使用硬件,需要 CPU 计算能力相对强一些机器,如果你有 GPU,那么将会极大提升模型量化速度,如果没有也没有关系。...一般来说,位数越高,需要内存和显存就越多,运行起来越慢,但是效果和精度就越接近原始版本。反之,我们虽然得到了省资源版本,但是效果会有明显降低。...扔到显卡里模型层数越多,推理速度越快。 “--model” 这个参数没有什么特别的,指定我们下载或者转换好 GGML 模型文件就好。 好啦,当这个命令执行后,我们就能够快乐模型一起玩耍啦。

1.2K20

TinyML-4:(Quantization) 为什么int8足够用于ML

TF-Lite 量化(Quantization )由来 当神经网络最初被开发时,最大挑战是使它们能够工作!这意味着训练期间准确性和速度是重中之重。...量化(Quantization )为什么能起作用 神经网络通过随机梯度下降进行训练;在weights上施加许多微小推动力。...这些小增量通常需要浮点精度才能起作用(尽管也有研究工作在这里使用量化表示形式),否则,可能会因为“vanishing gradients”而陷入困境。 采用预先训练模型并进行推理非常不同。...可以使用八位参数和中间缓冲区(而不是全精度32位浮点值)运行许多神经网络,并且最终精度不会受到明显损失。有时可能会损失一些准确性,但是通常可以从性能延迟和内存带宽方面获得收益。 为什么量化?...提取8位值仅需要浮点数25%内存带宽,因此您将更好地利用缓存并避免出现RAM访问瓶颈。您通常还可以使用硬件加速单指令多数据(SIMD)操作,每个时钟周期执行更多操作。

1.8K51

模型杂谈:1.5G 显存就能运行 RNN 14B 开源模型(ChatRWKV)

如果你只好奇如何使用 1.5 G 显存来运行模型,可以仅阅读模型准备工作和 1.5 G 模型部分相关内容。模型运行准备工作这次模型准备工作只有两步:获取包含容器项目代码,构建容器镜像。...你可以执行简单一条命令,来创建一个“干净又卫生”容器环境。...在聊 1.5G “极限挑战”之前,我们先使用相对充足资源,快速将模型运行起来,体验下它执行效率。...使用 Docker 快速运行 ChatRWKV如果你显卡有 20G 或以上显存,直接执行下面的命令即可启动一个带界面的 ChatRWKV 模型程序:docker run --gpus all --ipc...挑战 1.5G 小显存运行 ChatRWKV 模型想要使用小显存资源来运行模型,现阶段有一些相对靠谱方法:将模型量化为8位或者4位,甚至是更低,降低模型文件尺寸同时,将部分显存卸载到 CPU 使用内存中

1.1K00

代码越“整洁”,性能越“拉胯”?

Result = (Accum0 + Accum1 + Accum2 + Accum3);     return Result; } 在一个简单测试工具中运行以上这两个例程,可以粗略地计算出执行该操作每个形状所需循环总数...现在不仅代码运行速度大幅提升,而且语义复杂性也显著降低。标记更少、操作更少、代码更少。 将数据模型与所需操作融合到一起后,计算每个面积循环数量减少到了 3.0~3.5 次。...10 倍性能提升非常巨大,我甚至无法拿 iPhone 做类比,即便是 iPhone 6(现代基准测试中最古老手机)也只比最新iPhone 14 Pro Max 3 倍左右。...这些目标本身没什么问题,然而因此提出这些规则有待思考。下次,再谈论这些规则时,我希望加上一条备注:“遵循这些规则,你代码运行速度会变得15倍。” “整洁”代码和性能可否兼得?...这会执行数十亿行代码,但性能根源是为什么操作员会一次性点击许多个链接。 除了学校作业,我从来没有遇到过性能问题。

29930

“干净”代码,贼差性能

这些要求相当具体,听起来只要照着做了,就让编写出“干净”代码。但问题是,这样代码执行起来效果如何? 为了更确切地测试“干净”代码实际表现,我决定直接用相关文献里列出示例代码。...Switch 语句每种执行情况,都跟类层次结构中相应虚拟函数有着相同代码。...它涉及 token 更少、操作更少、代码行数也更少。 所以说,我们有必要把数据模型跟计算操作结合起来,而不是要求什么“忽略内部”。...最重要是,我们完全可以在遵循第五条同时保持合理代码性能。 结   论 所以我现在给出结论:在这五条原则里,只有最后一条值得遵循,前面四条可以统统无视。为什么?...大家可能注意到了,现在软件运行起来真的越来越慢。跟现代硬件真实性能相比,软件运行表现太差了。 要问为什么这么,那答案可就多了,而最核心因素要视实际开发环境和编程方法而定。

55410

【推理引擎:核心原理】系列来啦!从入门到昇腾!

移动端推理引擎应该挺多了,google在2017年推出了TF-Lite,腾讯在2017年推出了ncnn,Apple在2017也推出了CoreML,阿里在2018年推出了MNN,华为2019年推出了MindSpsore-Lite...《轻量网络》在端侧推理引擎中,主要是执行轻量模型结构。主要思想是针对神经网络模型设计更高效网络计算方式,从而使神经网络模型参数量减少同时,不损失网络精度,并进一步提高模型执行效率。...本节主要集中介绍模型小型化中需要注意参数和指标,接着深入了解CNN经典量化模型和Transformer结构量化模型。...《模型压缩》模型压缩跟轻量化网络模型不同,压缩主要是对轻量化或者非轻量化模型执行剪枝、蒸馏、量化等压缩算法和手段,使得模型更加小、更加轻便、更加利于执行。...《Kernel优化》在上层应用或者 AI 网络模型中,看到是算子;但是在推理引擎实际执行是具体 Kernel,而推理引擎中 CNN 占据了主要是得执行时间,因此其 Kernel 优化尤为重要。

70150

从零到一使用 Ollama、Dify 和 Docker 构建 Llama 3.1 模型服务

如果你需要将 Ollama 官方不支持模型运行起来,或者将新版本 llama.cpp 转换模型运行起来,并且想更轻松使用 Dify 构建 AI 应用,那么本文或许会对你有所帮助。...本文中,我们以 Llama 最新发布 3.1 版本原始模型为例,你可以参考这个方式,来转换你本地微调好模型,或者其他,Ollama 官方不支持模型。下载模型先来聊聊下载模型。...、《CPU 混合推理,非常见大模型量化方案:“二三五六” 位量化》三篇文章中,我分别提到过 Llama.cpp CPU 程序编译、GPU 程序编译、通用模型格式量化操作。...,对量化模型再次进行验证:# ....启动 Ollama 模型服务通常情况下,如果已经完成了模型转换,我们可以结合上文中命令进行调整,在命令后添加要执行模型,来完成服务启动:docker run -d --gpus=all -v `

75300

本地CPU上运行LLM,1毛钱都不想多花

使用c/c++优势在于: 无需任何额外依赖,相比 Python 代码对 PyTorch 等库要求,C/C++ 直接编译出可执行文件,跳过不同硬件繁杂准备; 支持 Apple Silicon 芯片...ARM NEON 加速,x86 平台则以 AVX2 替代; 具有 F16 和 F32 混合精度; 支持 4-bit 量化; 无需 GPU,可只用 CPU 运行; … 由于纯 C/C++ 实现,无其他依赖...它简化了接口,理解成本极低,可以让前端开发同学,以最快速度在nodejs上启动一个大模型项目。有了它,再配合langchainjs版本,就可以轻松搭建自己知识库等Agent应用。...量化模型对硬件要求降低,但是并不意味着随便一台垃圾机器也可以跑起来,如果我们有一台8G内存模型,我们可以尝试6B量化模型。...最后,有人会问,失去精度后,大模型准确性降低,不就失去了意义吗?对于这个问题,我想说是,我们应该根据自己需求来选择,不然为什么所有厂商都会提供不同参数量级模型呢?

35410

搞定语音识别,畅享高效处理 | 开源专题 No.78

其中代表性 Paraformer-large 模型具有高准确性、高效率和便捷部署等优势,支持快速构建语音识别服务。同时提供方便脚本和教程以及对预训练模型进行推理和微调支持。...体系结构上 AVX 指令集以及 POWER 体系结构上 VSX 指令集 混合 F16/F32 精度支持 支持 4 位和 5 位整数量化 低内存使用 (Flash Attention) 运行在 CPU...无论您需要什么样应用场景,在这个项目中都能找到满足需求模型。 先进技术实现:AudioGPT 采用最先进基础模型来实现其功能,如 FastSpeech,SyntaSpeech 等。...C++ 移植版本。...比 OpenAI 原始实现更快速 支持混合 F16/F32 精度计算 内置性能分析器来测量各个计算着色器执行时间 低内存使用率 此外还有其他特点包括支持多种音频格式、媒体处理基础设施以及易于使用 COM

24410

从零到一使用 Ollama、Dify 和 Docker 构建 Llama 3.1 模型服务

如果你需要将 Ollama 官方不支持模型运行起来,或者将新版本 llama.cpp 转换模型运行起来,并且想更轻松使用 Dify 构建 AI 应用,那么本文或许会对你有所帮助。...本文中,我们以 Llama 最新发布 3.1 版本原始模型为例,你可以参考这个方式,来转换你本地微调好模型,或者其他,Ollama 官方不支持模型。 下载模型 先来聊聊下载模型。...”、《CPU 混合推理,非常见大模型量化方案:“二三五六” 位量化[9]》三篇文章中,我分别提到过 Llama.cpp CPU 程序编译、GPU 程序编译、通用模型格式量化操作。...,对量化模型再次进行验证: # ....启动 Ollama 模型服务 通常情况下,如果已经完成了模型转换,我们可以结合上文中命令进行调整,在命令后添加要执行模型,来完成服务启动: docker run -d --gpus=all -v

20010

【Rust与AI】LLM模型基本架构

Rust与LLaMA 终于来到了 Rust,之所以前面铺垫那么多,是因为如果我们完全不熟悉模型基本结构和执行过程,这个代码看起来就会知其然而不知其所以然。...LLaMA Rust 实现有很多个版本,本次选择是来自 karpathy/llama2.c: Inference Llama 2 in one file of pure C Rust 实现版本...这也是为什么会有研究说不要位置编码语言模型也可以,但效果应该是不如加了位置编码模型创建好后,接下来就是加载参数和执行推理。...第一个是推理 Prompt(即第一次输入时 Context),此时给定 Context 是多个 Token 组成执行该过程目的是填充 KV Cache。...事实上,大部分框架都是这么做,比如 Python NumPy 、PyTorch等,当然 Rust 也有类似的框架,比如 NumPy 对应 ndarray,以及 Rust 版本深度学习框架。

63810

深度学习算法优化系列三 | Google CVPR2018 int8量化算法

背景 模型量化仍然属于模型压缩范畴,而模型压缩目的是降低模型内存大小,加快模型推理速度。在这之前,主要有两方面的研究用于减少模型大小和前向推理时间。...方法 这篇论文提出了一种将float32量化为int8方法,并给出了一个训练和推理框架,推理框架使得模型可以在能执行整型运算计算设备上高效运行,训练框架和推理框架相辅相成,可以显著降低量化过程中精度损失...2、输入 量化卷积核rhs_quantized_val, uint8类型, 偏移量 rhs_zero_point, int32类型。 3、转换uint8到int32类型。...12、之后量化激活层。 13、最后反量化到浮点数,即卷积层输出。 14、进入下一层,循环执行1-13步骤。...将weights和input执行矩阵乘法后加上bias,公式表达为: 得到了int32之后结果后需要再次转换成int8类型(反量化),之后再执行激活函数操作。 4.

2.6K30

零一万物模型折腾笔记:官方 Yi-34B 模型基础使用

在之前文章里,我们使用是来自社区 finetune 和量化版本,这次,我们来陆续测试和使用下官方模型吧。 当然,本篇文章也会聊聊之前漏了 GGUF 模型量化,希望对你有帮助。...尝试对模型进行几种不同量化操作 量化模型相比原版模型最直观差别是“模型尺寸”会得到显著减少、模型运行速度通常会有明显提升。...GGUF 是一种新模型二进制文件,设计目标是为了快速加载和存储模型,并方便程序加载和使用。我们可以通过分发和执行这个独立执行文件,来完成模型部署,不需要之前模型仓库里一堆元信息文件。...GGUF 还支持多种不同量化方式,并能够稳定保存 4 位量化版本模型程序。 说了这么多,我们如何制作 Yi-34B 量化模型呢?...切换工作目录到项目文件夹内 cd llama.cpp 进入目录后,手动执行下面的命令,等待程序运行完毕后,我们就能够得到“会轻微造成效果降低” 8位量化 GGUF模型啦。

77310

零一万物模型折腾笔记:官方 Yi-34B 模型基础使用

在之前文章里,我们使用是来自社区 finetune 和量化版本,这次,我们来陆续测试和使用下官方模型吧。 当然,本篇文章也会聊聊之前漏了 GGUF 模型量化,希望对你有帮助。...尝试对模型进行几种不同量化操作 量化模型相比原版模型最直观差别是“模型尺寸”会得到显著减少、模型运行速度通常会有明显提升。...GGUF 是一种新模型二进制文件,设计目标是为了快速加载和存储模型,并方便程序加载和使用。我们可以通过分发和执行这个独立执行文件,来完成模型部署,不需要之前模型仓库里一堆元信息文件。...GGUF 还支持多种不同量化方式,并能够稳定保存 4 位量化版本模型程序。 说了这么多,我们如何制作 Yi-34B 量化模型呢?...切换工作目录到项目文件夹内 cd llama.cpp 进入目录后,手动执行下面的命令,等待程序运行完毕后,我们就能够得到“会轻微造成效果降低” 8位量化 GGUF模型啦。

62511

零一万物模型折腾笔记:官方 Yi-34B 模型基础使用

如果你对上面详细模型血缘关系和基础模型分类感兴趣,可以移步文章结尾中“其他”小节。在之前文章里,我们使用是来自社区 finetune 和量化版本,这次,我们来陆续测试和使用下官方模型吧。...尝试对模型进行几种不同量化操作量化模型相比原版模型最直观差别是“模型尺寸”会得到显著减少、模型运行速度通常会有明显提升。...GGUF 是一种新模型二进制文件,设计目标是为了快速加载和存储模型,并方便程序加载和使用。我们可以通过分发和执行这个独立执行文件,来完成模型部署,不需要之前模型仓库里一堆元信息文件。...GGUF 还支持多种不同量化方式,并能够稳定保存 4 位量化版本模型程序。说了这么多,我们如何制作 Yi-34B 量化模型呢?...cd llama.cpp进入目录后,手动执行下面的命令,等待程序运行完毕后,我们就能够得到“会轻微造成效果降低” 8位量化 GGUF模型啦。

1.7K20
领券