Qualcomm AI Hub-示例(二)模型性能分析

2024-03-22 02:28

本文主要是介绍Qualcomm AI Hub-示例(二)模型性能分析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章介绍

模型性能分析(Profiling)

当模型尝试部署到设备时,会面临许多重要问题:

  • 目标硬件的推理延迟是多少?
  • 该模型是否符合一定的内存预算?
  • 模型能够利用神经处理单元吗?

通过在云端的物理设备运行模型完成性能分析,能够解答这些疑问。

编译模型

Qualcomm AI Hub支持分析已编译好的模型。在本例中,我们优化并评测了先前使用submit_compile_job()编译的模型。请注意,我们是如何利用compile_job使用get_target_model()的方法编译的模型。

import qai_hub as hub

# Profile the previously compiled model

profile_job = hub.submit_profile_job(

    model=compile_job.get_target_model(),

    device=hub.Device("Samsung Galaxy S23"),

)

assert isinstance(profile_job, hub.ProfileJob)

返回值是ProfileJob的一个实例。要查看所有任务的列表,请转到/jobs/。

分析PyTorch模型性能

此示例需要PyTorch,可以按如下方式进行安装。

pip3 install "qai-hub[torch]"

在本例中,我们使用Qualcomm AI Hub优化和评测PyTorch模型。

from typing import List, Tuple

import torch

import qai_hub as hub

class SimpleNet(torch.nn.Module):

    def __init__(self):

        super().__init__()

        self.linear = torch.nn.Linear(5, 2)

    def forward(self, x):

        return self.linear(x)

input_shapes: List[Tuple[int, ...]] = [(3, 5)]

torch_model = SimpleNet()

# Trace the model using random inputs

torch_inputs = tuple(torch.randn(shape) for shape in input_shapes)

pt_model = torch.jit.trace(torch_model, torch_inputs)

# Submit compile job

compile_job = hub.submit_compile_job(

    model=pt_model,

    device=hub.Device("Samsung Galaxy S23 Ultra"),

    input_specs=dict(x=input_shapes[0]),

)

assert isinstance(compile_job, hub.CompileJob)

# Submit profile job using results form compile job

profile_job = hub.submit_profile_job(

    model=compile_job.get_target_model(),

    device=hub.Device("Samsung Galaxy S23 Ultra"),

)

assert isinstance(profile_job, hub.ProfileJob)

有关上传、编译和提交任务时选项的更多信息,请参考upload_model(), submit_compile_job() 和submit_profile_job().

分析TorchScript模型性能

如果您已经保存了traced或脚本化的torch模型(使用torch.jit.save保存),则可以直接提交。我们将以mobilenet_v2.pt为例。与前面的示例类似,只有在将TorchScript模型编译到合适的目标之后,才能对其进行概要评测。

import qai_hub as hub

# Compile previously saved torchscript model

compile_job = hub.submit_compile_job(

    model="mobilenet_v2.pt",

    device=hub.Device("Samsung Galaxy S23 Ultra"),

    input_specs=dict(image=(1, 3, 224, 224)),

)

assert isinstance(compile_job, hub.CompileJob)

profile_job = hub.submit_profile_job(

    model=compile_job.get_target_model(),

    device=hub.Device("Samsung Galaxy S23 Ultra"),

)

assert isinstance(profile_job, hub.ProfileJob)

分析ONNX模型性能

Qualcomm AI Hub还支持ONNX。与前面的示例类似,只有在ONNX模型编译到合适的目标之后,才能对其进行评测。我们将以 mobilenet_v2.onnx为例。

import qai_hub as hub

compile_job = hub.submit_compile_job(

    model="mobilenet_v2.onnx",

    device=hub.Device("Samsung Galaxy S23 Ultra"),

)

assert isinstance(compile_job, hub.CompileJob)

profile_job = hub.submit_profile_job(

    model=compile_job.get_target_model(),

    device=hub.Device("Samsung Galaxy S23"),

)

assert isinstance(profile_job, hub.ProfileJob)

分析TensorFlow Lite模型性能

Qualcomm AI Hub还支持以.tflite格式对模型Profiling。我们将使用SqueezeNet10 model。

import qai_hub as hub

# Profile TensorFlow Lite model (from file)

profile_job = hub.submit_profile_job(

    model="SqueezeNet10.tflite",

    device=hub.Device("Samsung Galaxy S23 Ultra"),

)

在多个设备上分析模型

通常,对多个设备的性能进行建模是很重要的。在本例中,我们介绍了最近的Snapdragon®8 Gen 1和Snapdragon™8 Gen 2设备,以获得良好的测试覆盖率。我们重用TensorFlow Lite示例中的SqueezeNet model,但这次我们在两个设备上对其进行了评测。

import qai_hub as hub

devices = [

    hub.Device("Samsung Galaxy S23 Ultra"),  # Snapdragon 8 Gen 2

    hub.Device("Samsung Galaxy S22 Ultra 5G"),  # Snapdragon 8 Gen 1

]

jobs = hub.submit_profile_job(model="SqueezeNet10.tflite", device=devices)

为每个设备创建一个单独的评测任务。

上传模型以进行评测

可以在不提交评测任务的情况下上传模型(例如SqueezeNet10.tflite)。

import qai_hub as hub

hub_model = hub.upload_model("SqueezeNet10.tflite")

print(hub_model)

现在,您可以使用上传的模型的model_id来运行评测任务。

import qai_hub as hub

# Retrieve model using ID

hub_model = hub.get_model("mabc123")

# Submit job

profile_job = hub.submit_profile_job(

            model=hub_model,

            device=hub.Device("Samsung Galaxy S23 Ultra"),

            input_shapes=dict(x=(1, 3, 224, 224)),

)

分析已编译好的模型

我们可以重用以前作业中的模型来启动新的评测任务(例如,在不同的设备上)。这样可以避免多次上传同一个模型。

import qai_hub as hub

# Get the model from the profile job

profile_job = hub.get_job("jabc123")

hub_model = profile_job.model

# Run the model from the job

new_profile_job = hub.submit_profile_job(

    model=hub_model,

    device=hub.Device("Samsung Galaxy S22 Ultra 5G"),

)

作者:高通工程师,戴忠忠(Zhongzhong Dai)

这篇关于Qualcomm AI Hub-示例(二)模型性能分析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/834338

相关文章

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

AI儿童绘本创作

之前分享过AI儿童绘画的项目,但是主要问题是角色一致要花费很长的时间! 今天发现了这款,非常奈斯! 只需输入故事主题、风格、模板,软件就会自动创作故事内容,自动生成插画配图,自动根据模板生成成品,测试效果如下图。 变现方式:生成儿童绘本发布到各平台,吸引宝妈群体进私域。  百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全

大语言模型(LLMs)能够进行推理和规划吗?

大语言模型(LLMs),基本上是经过强化训练的 n-gram 模型,它们在网络规模的语言语料库(实际上,可以说是我们文明的知识库)上进行了训练,展现出了一种超乎预期的语言行为,引发了我们的广泛关注。从训练和操作的角度来看,LLMs 可以被认为是一种巨大的、非真实的记忆库,相当于为我们所有人提供了一个外部的系统 1(见图 1)。然而,它们表面上的多功能性让许多研究者好奇,这些模型是否也能在通常需要系

[职场] 公务员的利弊分析 #知识分享#经验分享#其他

公务员的利弊分析     公务员作为一种稳定的职业选择,一直备受人们的关注。然而,就像任何其他职业一样,公务员职位也有其利与弊。本文将对公务员的利弊进行分析,帮助读者更好地了解这一职业的特点。 利: 1. 稳定的职业:公务员职位通常具有较高的稳定性,一旦进入公务员队伍,往往可以享受到稳定的工作环境和薪资待遇。这对于那些追求稳定的人来说,是一个很大的优势。 2. 薪资福利优厚:公务员的薪资和

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

智能客服到个人助理,国内AI大模型如何改变我们的生活?

引言 随着人工智能(AI)技术的高速发展,AI大模型越来越多地出现在我们的日常生活和工作中。国内的AI大模型在过去几年里取得了显著的进展,不少独创的技术点和实际应用令人瞩目。 那么,国内的AI大模型有哪些独创的技术点?它们在实际应用中又有哪些出色表现呢?此外,普通人又该如何利用这些大模型提升工作和生活的质量和效率呢?本文将为你一一解析。 一、国内AI大模型的独创技术点 多模态学习 多

高度内卷下,企业如何通过VOC(客户之声)做好竞争分析?

VOC,即客户之声,是一种通过收集和分析客户反馈、需求和期望,来洞察市场趋势和竞争对手动态的方法。在高度内卷的市场环境下,VOC不仅能够帮助企业了解客户的真实需求,还能为企业提供宝贵的竞争情报,助力企业在竞争中占据有利地位。 那么,企业该如何通过VOC(客户之声)做好竞争分析呢?深圳天行健企业管理咨询公司解析如下: 首先,要建立完善的VOC收集机制。这包括通过线上渠道(如社交媒体、官网留言

【新闻】AI程序员要来了吗?阿里云官宣

内容提要 6 月 21 日,在阿里云上海 AI 峰会上,阿里云宣布推出首个AI 程序员。 据介绍,这个AI程序员具备架构师、开发工程师、测试工程师等多种岗位的技能,能一站式自主完成任务分解、代码编写、测试、问题修复、代码提交整个过程,最快分钟级即可完成应用开发,大幅提升研发效率。 近段时间以来,有关AI的实践应用突破不断,全球开发者加速研发步伐。有业内人士坦言,随着大模型性能逐渐提升,AI应

OpenCompass:大模型测评工具

大模型相关目录 大模型,包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步,扬帆起航。 大模型应用向开发路径:AI代理工作流大模型应用开发实用开源项目汇总大模型问答项目问答性能评估方法大模型数据侧总结大模型token等基本概念及参数和内存的关系大模型应用开发-华为大模型生态规划从零开始的LLaMA-Factor