ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

端侧AI硬件部署实战:从模型压缩到推理引擎选型

端侧AI硬件部署实战:从模型压缩到推理引擎选型 如果关注大模型行业动态最近有一个信息点反复出现面壁智能正在冲刺上市。这件事之所以在技术圈里面也引发讨论是因为面壁智能从早期开始就主打一条非常明确的路线——不追超大参数规模而是把模型往更小、更快、更能跑在终端设备上做。换句话说市场现在想弄明白的问题是端侧AI到底靠什么赚钱端侧AI的价值能不能像上一轮云AI概念一样被清楚解释成一个可持续的商业模式这个问题的答案其实不完全在估值模型和招股书里更在技术栈里。端侧AI的价值并不是一句“节省服务器成本”就能说清而是由模型压缩、推理引擎选型、硬件适配、离线运行稳定性、端云协同架构等一系列工程问题共同构成的。本文尝试把这些技术细节拆开从端侧AI核心概念讲起再做一次完整的端侧AI硬件部署Demo演示最后给出工程落地中的排错思路和最佳实践。无论你是刚开始接触端侧AI的算法工程师还是做嵌入式、移动端接入AI能力的前后端开发者本文都比较适合作为一个系统化的参考。1. 端侧AI的价值为什么现在需要重新回答1.1 什么是端侧AI端侧AI也叫设备端AI、边缘AI、On-Device AI指的是让AI模型直接运行在用户终端设备上而不是把数据传到云端服务器再返回结果。这里的“端”可以是手机、平板、笔记本电脑、车载系统、智能摄像头、智能门锁、各类IoT设备也可以是很多工业现场的边缘计算盒子。这里的核心是“推理端侧化”。绝大多数端侧AI并不是在设备上训练模型而是把已经在云端或离线训练好的模型经过优化和转换之后部署到设备端执行推理。端侧AI这个短语真正指向的是推理链路的本地闭环。你按一下手机相册的人像分类摄像头识别一个运动目标语音助手理解一句唤醒词背后可能都有一个轻量模型在小芯片上运行。与传统“云AI”思路相比端侧AI并不等于放弃大模型效果而是要把AI按业务场景拆开到终端设备上让一部分请求不再依赖网络通道和中心服务器。1.2 端侧AI解决的核心矛盾过去几年大模型因为参数巨大、计算量巨大几乎默认只能在数据中心跑。久而久之一些团队形成了一种惯性思维AI能力等于云端API把数据传上去拿到结果完事。但是这种模式在真实业务中会遇到几个明显的瓶颈。第一是延迟问题。云端推理至少包含数据上传、排队、计算、结果返回四段链路。即便数据中心再近网络抖动时延迟仍然不稳定。可对于实时交互系统来说用户的体验往往会在几百毫秒级别开始明显下降。第二是隐私问题。医疗影像、人脸信息、会议录音、企业内部文档这些问题较高的数据用户通常不希望离开本地设备。完全放到云端会带来很大的合规压力。第三是成本问题。当业务请求量达到一定量级后每一次云端推理都是一笔真实费用。做C端免费功能时这种成本尤其让人头疼。端侧AI正好在“时延、隐私、单次调用成本”这三个维度上与云AI形成互补。它把推理放在用户手边减少了传输和排队敏感数据不出设备规避了一部分合规风险部署完成之后本地推理的边际成本趋近于零。这就是端侧AI被终端厂商、AI公司和投资者看中的底层原因。1.3 端到端的开发思维转变不过从云端AI转向端侧AI不只是一个部署位置的变化而是整套技术思维的变化。原来做云端AI开发者的主要精力放在模型效果和服务器性能上部署时有大内存、大算力、高带宽托底。到了端侧条件马上变得苛刻起来内存只有几百MB甚至几十MB算力单元不再一定是通用GPU更多是CPU、NPU、DSP等异构单元模型文件还可能要随着App一起打包发布如果体积大了用户根本不会接受。因此做端侧AI要靠一整套工具链和系统能力来回答价值问题。模型压缩做得好不好推理框架选得对不对NPU算子支持是否完整CPU能跑出多少帧率被剥离网络后体验是否稳定这些问题直接决定了一个端侧AI功能是“可演示”还是“可运营”。从这个角度来看面壁智能想回答的“端侧AI价值”本质上也可以拆成下面几个问题小模型能不能在产品形态上产生“大模型级”体验端侧硬件有限算力下模型推理效率是否足够支撑商业级用户体验本地部署之后如何做安全、升级、监控和效果回归我们接下来的内容就是围绕这些技术问题展开。2. 先看清概念端侧AI与云端AI不是“二选一”很多刚接触端侧AI的开发者容易把端侧AI理解成“就是不用服务器”或者“因为大模型出现以后云端AI没用了”。这两种说法都太绝对。更准确的描述是端侧AI和云端AI各有所长实际产品往往采用端云协同的混合架构。为了快速建立认识这里用一个表格对比两者的主要差异。对比维度端侧AI云端AI推理位置手机、PC、车载终端、边缘盒子等本地设备数据中心服务器或云主机网络依赖低本地推理可离线高需要稳定网络时延特征通常更低且更稳定受网络波动影响明显数据隐私数据不出设备隐私边界清晰数据需要上传合规要求高单次推理成本部署后边际成本接近零与调用次数强相关模型扩展性受终端内存、算力约束不能随意加大模型可运行超大参数量模型运维升级需要经过应用发版流程更新周期较慢服务端热更新迭代速度较快典型场景离线识别、实时检测、隐私敏感应用复杂生成、海量知识问答、全局内容理解从表格能看出端侧AI擅长的是实时性、隐私性和成本敏感型场景。云端AI则更适合大模型训练、复杂内容生成和需要全局知识库支持的任务。实际项目里最常见的架构是“端侧负责轻量、实时、隐私敏感任务云端负责重计算、复杂语义理解二者通过数据回流和模型更新形成闭环”。例如语音助手可以先在端侧做唤醒词检测只有被唤醒后才把后续语音上传云端做大模型理解安防摄像头可以在端侧做人形过滤只有检测到异常片段才上传云端留存文档工具可以在端侧做关键词索引需要语义总结时才调用云端大模型接口。开发者在做技术选型时不应该问“端侧AI能否替代云端AI”而应该问当前业务场景中哪些计算适合放在终端哪些必须放在云端连接两端的成本有多高。3. 端侧AI硬件部署技术栈拆解3.1 端侧AI的硬件载体与算力现状聊端侧AI硬件部署不能绕开硬件。目前部署AI模型的终端硬件大致分为四类硬件类型代表设备算力特点手机/平板SoC高通骁龙、联发科天玑、苹果A/M系列集成了CPU、GPU、NPU算力日渐增强桌面/嵌入式CPUx86笔记本、NUC、树莓派等算力有限对模型量化和轻量推理要求高专用边缘设备Jetson系列、边缘AI盒子、智能摄像头有独立GPU/NPU适合视频处理等重度任务车规芯片智能座舱、自动驾驶域控制器条件苛刻对功耗、安全、稳定性要求很高端侧硬件近几年的一个重要趋势是NPU这类AI专用单元逐渐普及。以前手机跑AI靠CPU硬算发热和耗电都很明显。现在中高端手机基本都配备了NPU部分算力可以达到几十TOPS。但“芯片标称算力”不等于“实际部署效果”因为大部分AI模型不会被全部算子都映射到NPU上大量算子仍会回退到CPU执行。所以硬件部署的含义不只是“模型文件能跑”还包括算子映射、内存复用、线程调度、功耗控制等一系列工程优化。3.2 端侧模型优化三件套量化、剪枝、蒸馏端侧AI硬件部署通常从模型瘦身开始。大模型直接放进移动端几乎是不现实的主要原因无非是模型文件大、显存/内存占用高、单次推理耗时超标。为了让模型在有限算力上可用最常见的轻量化手段有三种量化的原理把权重由FP32高精度转为FP16、INT8、甚至INT4等低比特表示。例如把一个FP32模型权重改为INT8后模型体积理论上缩小到原来的1/4并且很多硬件对低精度计算有专门加速指令。量化分为训练后量化和量化感知训练。训练后量化用起来方便但精度损失可能明显量化感知训练则让模型在训练阶段就适应低精度误差最终效果通常更好。剪枝的原理把一些不重要的权重通道、卷积核或者注意力头剪掉让模型结构变得更瘦。剪枝的难点在于判断“哪些结构并不重要”不是单纯看数值大小还需要关注结构对最终输出的影响有时需要配合稀疏化训练。知识蒸馏的原理用一个能力强的大模型即Teacher模型去指导一个小模型学习。蒸馏出来的Student模型主要目标不是复现Teacher模型的全部行为而是在特定任务上逼近Teacher的效果。当前很多端侧大语言模型走的正是这条路线用小参数规模模拟大参数模型的能力在手机芯片上尽量表现出“聪明”的交流能力。这三者往往需要组合使用。经验法则是先设计更适合端侧的轻量结构再做蒸馏或剪枝最后做量化而不是等一个大模型训练完成之后幻想通过一次量化直接塞进终端。3.3 常见端侧推理引擎与选型建议模型优化只是让AI模型变得“更小”真正让模型跑起来的还有推理引擎。推理引擎负责加载模型、管理算子执行、调度底层硬件资源。在端侧AI领域目前比较主流的推理引擎包括推理引擎/框架典型适用平台特点ONNX RuntimeWindows、Linux、移动端、服务器跨平台转换链路成熟适合与PyTorch模型衔接TensorFlow LiteAndroid、嵌入式、Micro控制器生态成熟适合TensorFlow训练的模型MNN移动端为主阿里巴巴开源移动端优化充分NCNN手机端、PC腾讯开源依赖少适合端侧图像类模型OpenVINOIntel CPU、核显、NPU适合x86边缘设备和Intel平台Core MLApple设备Apple官方统一格式跨iPhone/MacMediaPipeAndroid/iOS/Web内置大量端侧AI能力包llama.cpp各类CPU和GPU专为大语言模型推理优化能跑GGUF格式模型选型时并没有哪一个引擎是“全场景最优”。如果团队已经以PyTorch为主要训练框架ONNX Runtime往往是最稳妥的中间层因为大多数训练框架都能导出ONNX并且ONNX Runtime对不同硬件都有不错的兼容性。如果产品是Android为主且团队对二进制大小敏感NCNN和MNN也是常见选择。如果需要跑本地大语言模型则要考虑支持LLM专用量化格式的引擎比如llama.cpp及其衍生项目。4. 端侧AI硬件部署完整Demo从PyTorch模型到ONNX本地推理概念看多了容易空这里我们做一个可以在普通电脑上运行的端侧AI部署示例。重点不是把模型跑出惊人的性能而是完整展示一套端侧AI硬件部署通用的“训练到部署”链路构造或加载一个PyTorch模型。把PyTorch模型导出为ONNX格式。将ONNX模型交给ONNX Runtime在CPU本地执行推理。观察输出并验证链路是否打通。整个过程不依赖GPU笔记本、台式机都可以运行。部署在手机或边缘盒子上时链路逻辑是一样的只是需要替换对应硬件的推理引擎和优化手段。4.1 项目结构与环境准备建议新建一个干净的实验目录结构如下edge-ai-demo/ ├── export_onnx.py # 模型导出脚本 ├── run_infer.py # 端侧CPU推理脚本 ├── requirements.txt # Python依赖 └── output/ └── tiny_block.onnx # 导出后生成的ONNX模型文件你可以使用Windows、Linux或macOS也可以直接使用WSL。示例代码使用CPU执行不会强制依赖显卡驱动。由于不同机器的Python环境差异较大这里推荐使用虚拟环境避免污染系统Python。假设你已经安装Python 3.9以上先创建并激活虚拟环境python -m venv .venv # Windows .venv\Scripts\activate # Linux / macOS source .venv/bin/activate接下来准备依赖文件。为了兼容不同机器这里不锁死具体小版本建议优先安装已经长期稳定的大版本并根据本地PyTorch发布时间适当调整# requirements.txt torch1.13.0 onnx1.14.0 onnxruntime1.16.0 numpy1.24.0安装命令pip install -r requirements.txt如果网络条件不太稳定PyTorch安装较慢可以到PyTorch官网选择适合本机操作系统和CUDA版本的安装再单独安装其余依赖。本Demo用CPU运行所以不一定要安装CUDA版PyTorch。4.2 模型导出脚本export_onnx.py为了让这段代码不依赖外部下载权重这里我们自己定义一个非常小的图像分类模型。该模型接收3×224×224的彩色图像输入输出一个长度为10的分类向量从结构上模拟真实图像分类模型。为了让实验过程完全可控示例中的模型不加载预训练权重只用于展示部署链路这是本教程比较合适的方式。真实项目中你需要把后面的TinyClassifier替换成自己训练好的模型。在export_onnx.py中写入如下代码import torch class TinyClassifier(torch.nn.Module): 一个轻量分类模型用于演示模型导出与部署流程。 输入: [batch_size, 3, 224, 224] 输出: [batch_size, 10] def __init__(self, num_classes10): super(TinyClassifier, self).__init__() self.features torch.nn.Sequential( torch.nn.Conv2d(3, 8, kernel_size3, stride2, padding1), torch.nn.ReLU(), torch.nn.Conv2d(8, 16, kernel_size3, stride2, padding1), torch.nn.ReLU(), torch.nn.AdaptiveAvgPool2d((1, 1)), ) self.classifier torch.nn.Linear(16, num_classes) def forward(self, x): x self.features(x) x torch.flatten(x, 1) return self.classifier(x) def main(): # 固定随机种子便于结果复现 torch.manual_seed(0) model TinyClassifier(num_classes10) # 进入推理模式并固定Batch维度为1 model.eval() # 构造一个符合输入尺寸的示例张量 sample_input torch.randn(1, 3, 224, 224) # 导出为ONNX torch.onnx.export( model, sample_input, output/tiny_block.onnx, input_names[images], output_names[logits], opset_version17, dynamic_axes{ images: {0: batch_size}, logits: {0: batch_size}, }, ) print(导出成功: output/tiny_block.onnx) if __name__ __main__: main()这段代码有几个关键点需要说明。AdaptiveAvgPool2d((1, 1))的作用是将任意大小的特征图收缩到尾大小为1方便后续接全连接层。实际部署时为了减少算子类型和转换复杂度很多时候会在预处理阶段直接传入固定尺寸例如224×224。如果你需要支持多种分辨率dynamic_axes可以配置动态Batch但也会给端侧推理引擎带来一定适配成本。这里仅让Batch维度动态化是一种平衡做法。opset_version17是ONNX算子集版本。版本越高能表示的新算子越多但旧设备上的推理引擎不一定支持。如果你的ONNX Runtime版本较低或目标设备是老平台可以适当降低opset比如改为12或13但要提前验证导出结果。执行导出前先创建输出目录mkdir -p output然后运行导出脚本python export_onnx.py运行后你能在output/tiny_block.onnx目录下得到一个ONNX模型文件。可以使用onnx库读取模型信息验证一下python -c import onnx; monnx.load(output/tiny_block.onnx); print(m.graph.input); print(m.graph.output)预期会看到输入名images和输出名logits这说明模型结构已经正确写入ONNX文件。4.3 本地CPU推理脚本run_infer.py模型导出成功后下一步是使用ONNX Runtime在本地执行推理。这一步骤实际上模拟的就是端侧设备上的加载与推理过程。不同点在于端侧设备的CPU指令集、NPU加速单元和内存策略会更复杂。这里先把CPU通路跑通。新建run_infer.py写入如下代码import numpy as np import onnxruntime as ort def load_onnx_session(onnx_path): 创建ONNX Runtime会话。 优先使用CPU执行端侧环境通常也需要显式指定。 available_providers ort.get_available_providers() print(当前ONNX Runtime可用Providers:, available_providers) sess_options ort.SessionOptions() sess_options.graph_optimization_level ort.GraphOptimizationLevel.ORT_ENABLE_ALL session ort.InferenceSession( onnx_path, sess_optionssess_options, providers[CPUExecutionProvider], ) return session def preprocess_input(): 构造一个与模型输入匹配的模拟图像数据。 在真实项目中这里应该替换为图像的读取和归一化操作。 # 随机生成一张“3通道224x224”的图像 image np.random.randn(1, 3, 224, 224).astype(np.float32) return image def main(): session load_onnx_session(output/tiny_block.onnx) input_name session.get_inputs()[0].name output_name session.get_outputs()[0].name print(输入层名称:, input_name, shape:, session.get_inputs()[0].shape) print(输出层名称:, output_name, shape:, session.get_outputs()[0].shape) input_data preprocess_input() # 执行推理 outputs session.run( output_names[output_name], input_feed{input_name: input_data}, ) logits outputs[0] print(模型输出shape:, logits.shape) print(模型输出结果:, logits) if __name__ __main__: main()这段代码比较适合作为端侧AI部署的入门骨架它包含三个关键环节会话创建阶段ort.InferenceSession负责把ONNX模型解析成可执行图并应用图优化。输入数据准备阶段preprocess_input目前只是随机生成数据真实项目里需要替换成图像缩放、通道转换、归一化等预处理逻辑而且必须保证dtypenp.float32否则容易报类型不匹配的错误。推理阶段session.run接收输出层名称和输入字典返回一个或多个输出数组。运行脚本python run_infer.py预期你会看到类似下面的输出内容当前ONNX Runtime可用Providers: [AzureExecutionProvider, CPUExecutionProvider] 输入层名称: images shape: [1, 3, 224, 224] 输出层名称: logits shape: [1, 10] 模型输出shape: (1, 10) 模型输出结果: [[0.123, -0.456, ...]]因为模型没有经过训练所以logits的大小没有分类语义它们只是链路打通后产生的随机置信度值。如果你拿这段代码作为基础去接真实业务需要做下面几件事将TinyClassifier替换成实际使用的网络。用训练好的权重替换随机初始化权重。在preprocess_input中把输入数据按模型的训练预处理规则调整。根据输出层的含义做后处理例如分类时取argmax检测时解析边界框。4.4 如何把Demo迁移到真正端侧硬件在电脑上跑的ONNX Runtime推理更多是在验证“模型转换是否成功”还不是真正意义的端侧体验。当你想把整个流程迁移到手机端、树莓派或边缘盒子上时需要额外确认以下事项。首先要判断目标平台的CPU架构和系统类型。ONNX Runtime提供了多个平台的动态库或预编译包例如Android可以使用onnxruntime-androidiOS可以使用onnxruntime-objc。如果目标设备安装的是Linux ARM64下载对应的onnxruntime轮子或使用官方预编译包会顺利很多。其次要确认推理引擎能否调用到硬件NPU。同样一个ONNX模型在CPU上可以推理不代表NPU上也能跑。原因在于终端NPU通常只支持一部分算子的硬件加速比如卷积、ReLU、Gemm等基础算子遇到不支持的算子推理框架会回退到CPU最终导致推理速度不升反降。因此上线前必须做算子兼容性扫描必要时把模型结构做等价替换。此外还要重新考虑量化策略。CPU和NPU对低比特的支持不同有些NPU只支持INT8或INT16不支持FP16。你需要在开发板上尝试不同量化方案并用一批有代表性的测试数据对比原始模型和量化模型的输出误差。4.5 从CPU Demo到LLM类端侧模型的差异本文开篇提到的端侧大模型例如面壁智能主打的MiniCPM系列落地方式和上面这个TinyClassifier的差异主要在两方面。一方面大语言模型推理不是一次前向计算而是多次自回归生成。每生成一个token都可能涉及完整的前向计算因此部署优化通常是针对Cache、矩阵计算和内存带宽协同优化。模型文件小只是第一步推理时的KV Cache内存开销也要精确预估。另一方面语言模型的精度损失更敏感。稍微一点量化误差可能造成回答质量严重下降所以端侧LLM部署往往需要做精细的混合精度量化或使用专门面向LLM的推理框架。因此如果想把Demo跑成一个能对话的端侧AI需要学会使用诸如llama.cpp等推理工具并把模型转换为GGUF格式再压到几GB以内。这个话题本身可以单独写一篇长文本文先保留前面提到的工程思维框架后续可继续深入。5. 端侧AI部署常见问题与排查思路做端侧AI硬件部署时会遇到大量琐碎问题。这里把最常看到的几类问题整理成一张排查表。问题现象常见原因解决思路推理报错输入类型不匹配numpy数组默认float64或uint8模型输入要求float32把输入数据显式转换为np.float32并检查维度顺序推理结果与PyTorch不一致预处理方式不一致或训练部分算子在ONNX中不支持对齐预处理比较各层输出用onnxruntime校验精度ONNX导出时算子不兼容仓库中自定义算子或新上算子版本与ONNX不支持替换为等价标准算子或降低opset版本必要时写自定义算子模型在PC上快在端侧很慢模型未量化或太多算子回退到CPU先做性能剖析查看实际耗时发生在哪些算子再做INT8量化或结构简化内存占用崩溃模型尺寸过大batch size设置不当缓存峰值过高限制batch size开启内存复用考虑使用流式推理NPU执行错误NPU驱动版本与推理引擎不匹配升级驱动与端侧推理引擎版本参照芯片厂商SDK文档调整首次启动慢模型解析、内存初始化、图优化耗时较长做预热推理或把优化后的会话缓存起来CPU占用过高引起设备发热线程数设置过多推理过于频繁控制推理线程数适当降低推理频率优化模型计算量如果你遇到一个看起来毫无头绪的端侧AI部署问题我建议按照下面顺序排查先把模型放在PC上跑通ONNX Runtime排除模型本身的问题。逐一对比PyTorch输出和ONNX Runtime输出的形状和数值精度。查看模型内部是否有不支持的算子回退打印每次推理耗时分布。确认目标设备上的推理框架、系统、传感器与驱动版本是匹配的。在降低精度和阈值前先保存一份旧的日志作为参照避免越改越乱。6. 端侧AI工程落地的核心建议如果你已经跑通了上面的Demo接下来要做的不是立刻塞进真实App而是先建立一套端侧AI工程规范。下面几个建议来自实际部署经验希望能帮你避坑。6.1 不要把“能跑”和“能商用”混为一谈模型能在端侧跑一次只能说明链路通了。商业产品需要考虑的是稳定性。比如连续推理1000次会不会内存上涨弱网或完全离线情况下会不会闪退模型在低端机和高端机上的首帧延迟差异有多大长时间使用后会不会发热从而触发系统降频这些问题都要在正式发布前用压力测试暴露出来。建议你在测试阶段就定义一套量化指标比如首次推理耗时。持续推理的平均帧率/吞吐量。模型加载到首次可用时间。连续推理时的内存峰值。整机温度变化和CPU占用率。有了这些数字你才有据可依地讨论端侧AI投资回报率而不只是凭“感觉快了一点”。6.2 优先复用厂商成熟的推理链路很多新团队拿到端侧AI任务第一反应是自研推理引擎或者人为引入过多中间工具链。这通常不是最佳选择。主流芯片厂商和推理框架维护者已经把大量算子、线程调度和内存管理问题处理过了。对大多数团队来说基于ONNX Runtime、TensorFlow Lite、厂商NPU SDK搭建管道比自己写一套“万能推理器”要省力得多。这里的自研建议控制在业务所需的后处理和产品逻辑层不要碰算子编译、驱动适配等底层重复劳动。6.3 量化模型必须做端侧回归测试量化会改变模型行为。同一份INT8模型在PC上看起来效果不错不代表在低端手机的NPU上也一样好。原因是不同硬件上同一算子的数值实现可能有差异误差会在深层网络中被放大。模型量化后建议准备一份覆盖边界情况的真实数据测试集并跑端到端回归。单纯对比模型输出向量的余弦相似度远远不够还要看最终业务指标比如识别准确率、召回率、转写错误率。6.4 端云协同设计要提前留好升级通道端侧AI有一个比较尴尬的天然短板模型更新太慢。云服务端改一个模型几分钟就能上线端侧App里内置的模型则需要等待用户下载新版App或主动更新资源包。所以从一开始就要设计好模型资源版本管理方案。把模型作为独立资源包下发业务代码和模型权重拆开新模型发布后先在小部分用户中做灰度测试确认无问题后再全量推送。否则“端侧AI好用”很容易变成“发布时好用几个月后越来越过时”。6.5 安全与合规边界要前置端侧AI因为数据不出本地并不等于绝对安全。本地模型和推理资源同样可能被破解、拆包或逆向所以要考虑模型加密、密钥管理、设备绑定等保护手段。另外涉及用户隐私数据时即便在本地处理也需要明确用户授权范围不能让端侧模型在用户不知情时采集过多敏感信息。从最小权限原则出发模型只处理完成任务所需的数据不采集与功能无关的隐私信息同时对推理结果做必要去标识化处理可以降低不少合规风险。7. 结语如何衡量端侧AI的真实价值回到开头的主题。面壁智能冲刺上市这件事最终能否被市场认可有一个很重要的问题是“端侧AI的价值”到底如何计算”每个人的思考路径其实都绕不开工程环节。你要看模型能否在终端硬件上保持足够可用就要看压缩和量化是否到位你要看它是否比云端方案更省钱就要统计离线推理带来的服务器成本节省和用户体验提升你要看它是否能成为新的增长点就要验证模型在本地能不能跑出足够聪明的体验。论文里好看的Benchmark数字只是起点。真正定义端侧AI价值的是你把模型放进设备后交付给用户的每一次流畅、稳定、低延时的交互体验。如果本文对你理解端侧AI概念或做端侧AI硬件部署有一点帮助希望能顺手点个收藏后续实践时再回来对照这篇教程与排错表。纸上得来终觉浅建议现在就打开终端把Demo代码跑一遍你会对端侧AI部署链路产生完全不一样的体感。
返回列表