# 打通云训练到端侧 NPU 推理的交付闭环

> **合规声明（受限芯片）**：本环节的内容仅为演讲者提供的独立解释和分析，不代表亚马逊云科技的观点，亦未获得亚马逊云科技的认可。我们鼓励与会者独立评估演讲者分享的观点。

> **合规声明（生成式 AI 服务）**：前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营，具体信息以中国区域官网为准。
> 
> **完整资料：如果想了解更多内容可以访问:https://events.amazoncloud.cn/china-summit-on-demand/
> 
> **免责声明**：本摘要仅为便于您了解峰会内容而提供，我们不对其完整性及准确性作出任何保证，且不构成任何建议或结论。相关内容仅供参考，实际内容以峰会回放视频为准。

## 一、基础信息

- **会议类型**：专题演讲
- **Persona**：模型实践者
- **时间信息**：6月23日 | 16:00 - 16:30
- **标题**：打通云训练到端侧 NPU 推理的交付闭环
- **PDF 资料**：有
- **视频回放**：有

## 演讲人信息

### 会议信息
- **地点**：上海世博中心（2026 亚马逊云科技中国峰会）
- **日期**：2026年6月23日（Day 1）
- **时间**：16:00 - 16:30
- **会议类型**：专题演讲
- **面向 Persona**：模型实践者

### 亚马逊云科技演讲人
- **王维超**：解决方案架构师

## 二、会议资料 PDF 转录内容

--- Page 1 ---
AI M - X X X
打通云训练到端侧 NPU 推理的
交付闭环
从 SageMaker 训练到端侧设备的全自动交付链路
王维超
解决方案架构师
亚马逊云科技

--- Page 2 ---
• 为什么端侧 AI 已成刚需
议程
• 训练与部署之间的工程缝隙
• 云端协同链路：从训练到端侧的全景
• 实战演示：从 SageMaker 训练到端侧 NPU 部署
• Pipeline 自动判定上线，零人工干预
• 工程实践要点

--- Page 3 ---
01 端侧 AI 推理：从可选项到必选项

--- Page 4 ---
三个场景，一个共同诉求
工业质检 汽车与车载 消费电子
• 产线节拍 4-6 秒一件 • 隧道 / 地下车库断网仍可用 • 30 fps 出图、单帧 33 ms
预算
• PCB 检测 30 fps • ADAS 视觉感知毫秒级响应
• AI 目标识别 +6DoF 跟踪
• 网络可用性差，数据不能 • 车规芯片功耗与热预算更紧
出厂 • 图像不上传云端
• 宽温区间长期稳定

--- Page 5 ---
“图像和语音不出场、推理延迟可控、断网
时业务不停——把模型跑在端侧 NPU 上是这
些场景共同的选择。”
共性诉求
—— 端侧 AI 的三条硬约束

--- Page 6 ---
但落地很难：开发者面对三组工程难题
模型定制 针对特定芯片的优化 真机验证
开源模型很少能直接命中类 不同 NPU 架构、Runtime 性能数字必须来自目标设备
目分布、相机色彩、光照条 （TFLite / ONNX Runtime）、 本身，跨平台延迟差异可能
件，必须用业务数据做迁移 量化策略各不相同，PyTorch 成倍出现，缺少真机数据评
训练。 到目标二进制涉及大量手工 审就靠拍脑袋。
劳动。

--- Page 7 ---
开发者真正想要的：端到端、可复制、可自动化
• 训练在云端
• 优化与编译在云端
• 真机验证在云端
• 只把编译产物下发到端侧

--- Page 8 ---
02 协同链路：填补训练与端侧
之间的工程缝隙

--- Page 9 ---
端到端协同链路总览
数据 + 业务标注 SageMaker AI 训练工件 事件触发
Amazon S3 训练 / 微调 落入 S3 云端编译
云端真机车队 预置评估集 量化 / 编译
推理校验 + Profile 精度/性能门控 目标格式产物
SageMaker Pipelines 编译产物 端侧设备
条件判定 归档/上线 拉取部署
数据始终在 Amazon 生态内流转 · 全程零人工干预

--- Page 10 ---
SageMaker AI：训练与产物管理
弹性训练算力 BYOM / BYOD 工件管理
按需获取 NVIDIA A10G、 自带模型与自带数据微调； 训练完成后产物自动落入 S3
H100 等 GPU；按使用量计 分布式训练扩展到上千 GPU, 并释放算力；可注册到
费，免运维训练集群。 集成 DeepSpeed / FSDP. Model Registry 进入生命周
期管理。

--- Page 11 ---
端侧编译与真机验证服务：填补落地最后一公里
云端编译 云端真机车队 API 化能力
PyTorch / ONNX 自动转换 → 真实手机、车载域控、工 submit_compile_job /
图优化 → 量化 → 编译为目标 业模组组成的设备车队； submit_profile_job /
Runtime 产物（TFLite 等）. 同代 NPU 也能拿到逐设备 submit_inference_job
性能数据。
三个 API 打通整条链路。

--- Page 12 ---
03 闭环演示：从 SageMaker 训练到端侧部署

--- Page 13 ---
案例：手机端实时人像分割
场景与约束 技术选型
• 视频会议背景虚化 • 网络：FPN + MobileNetV2（NPU 友好）
• 30 fps 出图 · 单帧 < 33 ms • 数据：Hugging Face 公开人体解析数据集
• 图像不上传云端 • 训练:SageMaker AI on ml.g5.2xlarge
• 走端侧 NPU 推理 • 部署：INT8 量化 TFLite，端侧 NPU

--- Page 14 ---
S T EP 1 · 在 S AG EMAK ER AI 上启动训练
PyTorch estimator:一颗 A10G / 10 epoch / 260 秒
from SageMaker.pytorch import PyTorch
import SageMaker
estimator = PyTorch(
entry_point='train_portrait_seg.py',
source_dir='scripts',
role=role,
instance_count=1,
instance_type='ml.g5.2xlarge',
framework_version='2.1.0',
py_version='py310',
hyperparameters={'epochs': 10, 'lr': 1e-3},
output_path=f's3://{bucket}/portrait-seg/',
)
estimator.fit({'train': train_s3, 'val': val_s3})
# best.pt + portrait_seg.onnx → model.tar.gz 落入 S3

--- Page 15 ---
S T EP 2 · 训练工件落 S 3 → 触发云端编译
提交编译 Job,目标 Runtime 为 TFLite + INT8
# 训练产出的 ONNX 模型→提交到云端编译服务
import torch, edge_compiler as ec
traced = torch.jit.trace (model.eval(),
torch.randn(1, 3, 256, 256)
compile_job = ec.submit_compile_job(
model=traced,
input_specs={'image': ((1, 3, 256, 256), 'float32')},
device=ec. Device('Galaxy S24'),
options=('--target_runtime tflite '
'--quantize_full_type int8 '
'--quantize_io'),
name='portrait-seg-int8',
)
compiled_model = compile_job.get_target_model()
# FP32 ONNX 16.5 MB → INT8 TFLite 4.5 MB(≈27%)

--- Page 16 ---
ST E P 3 · 预置评估集在量化阶段拦截不达标版本
云端真机推理 + 自动精度门控，IoU 不达标即终止
# 在云端真实 NPU 设备上跑推理，与 FP32 逐像素对比
inf_job = ec.submit_inference_job(
model=compiled_model,
inputs={'image': eval_set_inputs}, # 预置评估集
device=ec. Device('Galaxy S24'),
)
npu_out = inf_job.download_output_data()
iou_npu = compute_iou (npu_out, gt_masks)
iou_fp32 = compute_iou (fp32_ref, gt_masks)
GATE_IOU_DROP = 0.01 # 与 FP32 相比的最大允许下降
GATE_LATENCY = 20.0 # 单帧最大延迟(ms)
passed = ((iou_fp32 - iou_npu) <= GATE_IOU_DROP
and profile_job.latency_ms <= GATE_LATENCY)
# passed=False → Pipeline 终止，模型不进入注册表

--- Page 17 ---
真机结果：在 Galaxy S24 NPU 上的实测数据
13.59 ms 4.5 MB IoU 0.935
INT8 模型单帧推理延迟，远 INT8 量化把模型体积从 端侧 NPU 推理 vs FP32 本
小于 30 fps 所需的 33 ms FP32 ONNX 的 16.5 MB 压 地推理几乎一致（FP32 为
预算（含渲染与后处理）。 到 4.5 MB，约为原始的 27%。 0.933），二值掩膜质量满
足生产要求。

--- Page 18 ---
端到端验证：FP32 vs 端侧 NPU 99.6% 像素一致
• 在同一张验证集图像上分别跑本地 FP32 推理与云端真机 NPU 推理
• FP32 IoU = 0.933,NPU IoU = 0.935，差异落在人像边缘的 64 个像素
• 差异热力图显示：除边缘锯齿外，主体区域完全一致
• 结论：从 SageMaker 训练 → 云端编译 → 端侧 NPU 运行，链路语义保真
• 整个验证过程不需要采购物理设备，多机型只需更换 device 参数

--- Page 19 ---
STE P 4 · 接入 PI PE L I N E 自动判定上线
SageMaker Pipelines + ConditionStep:零人工干预
from SageMaker.workflow.condition_step import ConditionStep
from SageMaker.workflow.conditions import ConditionGreaterThanOrEqualTo
from SageMaker.workflow.pipeline import Pipeline
# 训练→云端编译→云端真机评估
train_step = TrainingStep('Train', estimator=estimator, ...)
compile_step = ProcessingStep('Compile', processor=compiler, ...)
eval_step = ProcessingStep('EvalOnDevice', processor=evaluator, ...)
gate = ConditionGreaterThanOrEqualTo(
left=eval_step.properties.iou_npu, right=0.92)
register_step = ModelStep('Register',
step_args=model.register(...)
pipeline = Pipeline(
name='edge-npu-delivery',
steps=[train_step, compile_step, eval_step,
ConditionStep('QualityGate', conditions=[gate],
if_steps=[register_step], else_steps=[])])
# IoU 达标→自动注册并上线；否则终止 Pipeline

--- Page 20 ---
工程实践要点
多设备真机数据 量化精度单独验证 公开 → 产品迁移
同代 NPU 在不同平台延迟也 PSNR 对输出范围有界的任务 公开数据训练得到的
可能成倍差异，更换 device 有效；分割 logit 需用 backbone 作为热启动，再
参数即可获取多机型真机 sigmoid+ 阈值后的 IoU/ 像 用产品图像做二次微调以适
Profile. 素一致率作为门控。 配相机色彩与光照。

--- Page 21 ---
总结：端侧 AI 交付从月级到日级
• SageMaker AI 提供按需扩展的训练能力，工件自动落入 S3
• 云端编译与真机验证服务把跨芯片量化、编译、Profile 封装为 API
• 数据始终在 Amazon 生态内流转，无跨云搬运
• Pipeline 条件步骤实现精度门控，全程零人工干预
• 下一步：拉一份业务数据，把这条链路在你自己的 Notebook 里跑一遍
• 同样的模式可复用到 OCR、关键词唤醒、AI 目标检测、低光增强、端侧蒸馏

--- Page 22 ---
Thank you

--- Page 23 ---
Session 6：打通云训练到端侧 NPU 推理的交付闭环
扫描上方二维码
填写调查问卷

--- Page 24 ---
Session 6：打通云训练到端侧 NPU 推理的交付闭环
扫描上方二维码
填写调查问卷

--- Page 25 ---
Session 6：打通云训练到端侧 NPU 推理的交付闭环
扫描上方二维码
填写调查问卷

--- Page 26 ---
Session 6：打通云训练到端侧 NPU 推理的交付闭环
扫描上方二维码
填写调查问卷

## 三、会议回放视频转录内容

大家下午好我是王维超是亚马逊云科技的解决方案架构师
那今天这个正式开始之前的话
大家可以想象一下这个三个画面
那第一个的话就是说我们工厂的这个场景
比如说一个工厂的这个冲压线
对吧
然后第二个的话是一个更像正在行驶到这个
比如说隧道内的这样一个汽车
然后第三个画面的话
就是说大家正在开这个
比如说视频会议这个开视频会议
那这三个场景的话形态是完全不同的
但是他们现在其实都在等待同一件事情的发生
就是说让 AI 的这样一个推理离开云端
所以我今天的这个三十分钟的话
是想跟大家一起回答一个工程化的问题
就是从云端去训练
然后到端侧 NPU
当然是以 NPU 为例
然后去跑下来
那么整个在中间
那么真正这个横在中间的是什么
那么应该去用什么方式去化解
然后有没有一个比较好的这样一个协同的方式
那在开始之前的话
就是说
因为我今天这个 topic 的话有两个词
我想先定义一下
第一个的话就是端侧 NPU
那设备那一侧就是说是为这个
比如说神经网络设计的这样一个处理单元
那他和 CPU 和 GPU 的这样一个分工是不同的
然后他是为了这种可持续低功耗的这种 AI 推理的
这种场景其实是诞生的
那另外一个的话就是交付闭环
那这个词的话就是说
我们可以看到其实从云上训练完之后
到端侧这个模型上线之前
其实每一步都应该被自动的衔接
被指标驱动
然后中间的话没有人工干预
那么这个所有的内容实际上是今天
我希望能够展开的这样的一个内容
OK
那我们看一下就是说
这是这个一个真的
那前半部分的话
就是说我们还是回顾一下
就是我们端侧的这个模型
那么是不是
为什么已经成了一个刚需
那第二个的话
就是说我们真正去做的时候
那么从云端到端侧
那么他的一个这个
有没有什么样的一些
这个鸿沟
对吧
那么我们应该用什么样的一个方法
去化解他
然后最后的话
就是我们给出一些这个工程化的实践
因为前面也一直在介绍 SageMaker
因为 SageMaker 是我们在做
这个传统 AI
包括现在生成式 AI
一个非常重要的一个工具
也是我们的整个 AI 里边的一个
老兵一个产品
那么从端侧这一块的话
其实我们同样是
这个用到这样的一个产品来做
OK
那我们看一下就是说
为什么现在变成了一个
这个可选项到必选项的这样一个转变
其实在过去两年的话
就是端侧 AI 的需求
实际上是集中在刚刚我说的那三个场景里
那第一个的话就是工业质检
对吧
第二个的话
就是汽车智能
第三个的话就是消费电子
那他们的产品形态
实际上是毫无交集的
但是所有人都在被三件事情
其实这个同时去收紧
那第一个的话
就是说业务上的一个紧凑的这个节拍
那第二个的话
就是这个网络环境
那第三个的话
就是说是这个数据合规
所以其实从这三个场景上来看
那么其实对于这个每一个场景
它对于端侧其实都有一个非常重要的这样一个需求
几个例子
比如说以工业这个质检为例
那如果你的缺陷检测流程
慢于你的这样的一个产线
它的一个流程
那么代价可能就是说整批返工
你的缺陷件可能就会流到下一批
那么剩下的一个选择
就是说把模型
你需要部署在这个
比如说工位旁的这样的一个工业模组上
那对于汽车这个场景的话
那语音助手
其实大家都知道
都在用在隧道
在地库
对吧
我们同样在这种网络条件不好的时候
你需要能够去驱动这样的一个语音助手
那尤其是对于像比如说自动驾驶
这种视觉感知的这种技术来讲
那么实际上整个人的容忍度
可能是毫秒级的
对吧
然后另外对于车规芯片
可能在更宽温的这样的一个状态下
实际上它的这个留给模型的这个算力
实际上比一些手机其实还小
那再回到这个
比如说消费电子这一块
那么除了比如说我们去做会议
这个背景虚化
然后对于这个像 VR
实际上同样是有这样的一些需求
所以这些诉求的话
其实概括成一句话
那就是说图像和语音是在本地的
是不出场的
然后推理延迟可以去延迟
但是需要去可控的
然后断网的时候
你的业务是不能停的
那把这三个场景放在一起
从工程化去实现的话要去满足
那其实就是说只有一个选择
或者是工程化之后的这样一个选择
就是说让模型跑在我们设备
自己的芯片上
也就是 NPU 上
所以说这个的话
不是某种偏好
而是业务从工程上的一个
能成立的前提
那么我们今天讨论的话
就是说主要是看一下
我们遇到的一些什么问题
那第一个的话
就是说
这个端侧 AI
真的落地的时候
比如说开发者
实际上有这三组问题
那么一起其实决定了
这个整个项目的这样的一个周期
那第一组的话
就是说模型是不是可定制的
那大家可能通常是用这个开源模型
来去开始
这个当然是一个很好的这样的一个
开始
但实际上开源模型
可能不能去直接命中
我们的一些业务目标
大多数的情况下
我们需要去做数据
做迁移训练的
那第二个的话
就是说针对芯片的一些优化
那不同的这个 NPU 的架构
它是不同的
那返回来的这种运行时
然后包括各个厂商的
它的一个量化策略
也是不同的
那把一个
比如说 PyTorch 的这种模型
转换成目标芯片上
能跑的这样的一个二进制
实际上中间涉及到大量的
一些手工的一些工作
这也是今天在整个项目里边
其实是最长的这样的一段
那第三个的话
就是说
其实你训练推理之后
你需要去做真机验证的
那你的性能数字
必须来自于真实的这个目标设备
那么比如说同一代的 NPU 或者芯片
在不同的手机上的延迟
可能是几倍的这样一个效果
那么尤其是不同设备
因为
比如说
功耗预算或者热上的一些设计不同
那实际上你如果拿不到真机
实际上就很难去做一些具体的评估
很难去定位这样一个产品
所以这三组叠加在一起的话
实际上是一个端侧模型
那从开始到上线
那么通常可能是这个
两三个月的这样的一个形态
所以对于开发者来讲
其实我们真正希望的
其实是这样一条链路
就是说训练在云端
优化编译也在云端去实现
然后真机验证也在云端
至少在一个
比如说我们的芯片制造方
可托管的这样的一个环境下
那最后的话
就是说产物
以二进制作用方式
然后给出来
那这一条链路一旦成立的话
其实就不需要我们自己去采购一些真机
不需要去维护一些
异构的这种工具链
那端侧 AI 的话
其实可以从一次性的这种项目
变成一个可持续运转的这样的一个流水线
那接下来的第二块
我们看这个链路
从我们的实践上是怎么做出来的
那么这个图的话
实际上是一个
其实是比较简单的这样一个逻辑的
那整个图是分为三块
那最上面的话
其实就是训练
那业务数据落到
这个业务数据到 S3
然后 SageMaker AI
其实可以按需求拉起相应的一些计算资源
包括 GPU 和 CPU 的资源
那跑完之后
产物再自动落回 S3
那这一段其实大家都很熟悉
那么值得多看一眼的话
其实就是说产物落到 S3 之后的那个动作
实际上它能做到一个事件的一个驱动
去触发下面的这样一段工作
那这样的一个话
其实就是说能把开发者从手动的这样一个
这个操作中解放出来
那中间的话
实际上就是最重要的一个就是端侧
端侧化
那这里边比如说云编译服务
可以去对接比如说 PyTorch
或者 ONNX 这样的这个模型
然后自动做量化
做图优化
做编译
然后产出的这个在目标设备上跑的这个二进制
对吧
然后紧接着的话
就是说我们引入了一个
非常重要的一个功能
就是说质量检测
做一个性能和精度的这样的一个控制门控
那这一块的话
就是说我们可以把这个同一个
这个检验的这个工作交给
比如说云端
或者是这个托管的这种真机的这个设备
或者是车队
然后在上面去
真实的这个设备
然后去做这个端侧的这样的一个
这个模型
或者是性能的这样一个检测
那最下面的话是决策和部署
那我们真机
比如说这个指标回流之后
那 SageMaker Pipeline
可以用一个条件
步骤去判定
比如说它是不是模型是不是达标的
那它精度是不是达标的
那达标之后的这个模型进入到注册表
那不达标的就当场终止
然后不进入这个注册表
所以整张图其实在这一块的话
它整个的这样的一个数据
始终是流转在这个亚马逊云科技
这个生态内的
或者我们生态内的
包括跟我们的一些芯片制造商
其实合作的话
中间也是有这些
专有网络的这样一个打通
能够确保这样一个数据合规
那在这条链路里边
其实最主要的话
我们看一下其实 SageMaker
AI 刚才其实大家应该有意听到
一些这个汇报
那 SageMaker
可以按需去调度这个分布式的训练
那你们不用去自己去维护这样一个集群
就能拿到比如说我们的 G5
像这个 A10
或者是 NVIDIA H100 这样的
这样的一些算力
甚至更高的算力
然后按需去调用
那么另外的话
它自己我们是带着一些模型的
可以直接拿过来去训练
或者微调
那常见的一些分布式的一些策略
其实都已经做好了
训练完成之后
产物就自动归档到这个 S3
然后包括后边进入一个
这个生命周期的一个管理
那注册表这个组件的话
实际上是前面也提到了
就是它代表获得批准之后
等模型才能上线的这样一个资格
然后不达标的模型
实际上根本拿不到这个资格的
所以第二部分的话
就是说是在云端去做编译和
提供一个真实的设备
也就是链路的另一半
就是说在云端编译之后
那么它填的是
从训练到端侧的这样一个
最难啃的这样一公里
那么第一个的话就是云端编译
你就是说它接比如说像 PyTorch
或者 ONNX 的这个模型
然后去自动做转换
做量化
做图优化
然后直接吐出来
端侧能跑的这样一些产物
然后原来的算法工程师
可能需要花两周熟悉的事儿
现在其实就是一个 API 的一个调用
就能够直接在云上的这个
真机车队
或者是这个真机设备
然后去流转起来
那主流芯片的话在我们托管的
比如说包括一些这个型号的
这种不同型号的手机
包括车载的控制器
或者是工业模组
你只需要去提一个账号
你就在点名的那台真机上
能够跑一遍
然后回传延迟内存
包括推理结果
那么你如果去换机器的话
其实只需要改一个参数就可以
当然这一块的话
我们通常是跟芯片制造方
我们一块去出的这样一个联合方案
那第三块的话
其实就是 API 化
那上面的这些能力
那被收敛到三个 API
比如说编译作业
然后推理的作业
或者是做性能测试的作业
那三个加起来
其实就是说
是一个端到端的这样一个链路
那接下来的话
我们看一个这个
我们看一个这个案例
那这个案例的话
其实前面也说到了
比如说我们做视频会议
那其实要做的就是说
我们通常可能会把我们视频会议的背景
去虚化掉
对吧
那有的时候
可能不是一个特别正式的场合的时候
尤其是需要这个功能
那这个的话
其实就需要我们去分割
或者训练背后的那个模型
那它对于端侧的这个要求
或者约束实际上是很典型的
比如说这个单帧
不能超过33 毫秒
然后推理必须落在手机端的这个 NPU 上
那为了让结果可复现
那数据的话是用的这个
比如说 Hugging Face 上面的一个公开的这样一个
人体解析的这个数据集
然后模型选的这个 FPN
然后加 MobileNetV2
那这是一个对移动端
NPU 非常友好的这样一个
轻量的一个分割架
分割架构
训练的话
就在这个 SageMaker AI 的这个
比如说
G5 2xlarge 之上去跑
那最终形态就是
获得一个 INT8 量化的
这个 TensorFlow Lite
然后跑在比如说像这个
24 的这个 Galaxy S24 的这个 NPU 的
那么这一块我们先看一下
具体的一个实现
这里面可能有一些代码
其实大家不要觉得这个很晦涩
因为现在 AI 阶段
我们去做代码
实际上就是一个自然语言
只不过这是代码
一个自然语言
对
那这里一块的话
第一段代码就是提交任务
大家可以看一下
就是开发者
其实只需要做一件事
就是去构造一个
比如说 PyTorch 的这个
Estimator
然后去指定脚本
指定实例
指定输出的这样一个路径
那剩下的话
其实就由 SageMaker 自动完成
拉起比如说 A10G
就是说 A10 这样的一个
这个 GPU 的设备
然后加载容器
从 S3 拿数据
然后去跑训练
然后产物回落到 S3 之后
然后就释放整个这个算力
那在这个数据集上
整个过程的话
就是说大概这个
对于人像分割的这个
就是260秒
其实就完成了这样一个训练
那产物里边
其实有两个非常关键的这样的一个文件
就是说一个的话是这个 PyTorch 权重
然后再一个的话
就是说是 ONNX 的这个模型
那这个 ONNX 模型的话
其实是云端编译的一个标准的一个输入
OK
那这一步的话
其实大家可能相信
其实做训练或者做算法
其实比较熟悉
那第二段代码的话
就是说是做云端的一个编译
那这个时间的话
就是说我们把训练产物
交到云端去做编译的时候
代码本身实际上是非常朴素的
这一块其实
大家
我列出代码的原因
实际上是告诉大家
其实这个事并没有特别复杂
其实一个定义一个接口
定义一个输入的这个模型
一个目标设备号
一个能够去这个目标运行时的这样一个格式
然后包括 INT8 的这样一个量化的开关
那么这个的话
就是说 API 调用背后
实际上真的一个这个封装的工作量
其实还是很大的
只是代码实现的本身
实际上是这个相对来讲很简单的
那整个它是跑通了
这个
比如说 PyTorch 到 ONNX 的这样一个转换
那 ONNX 再到目标格式的这个转换
然后面向整个这个目标硬件的这样一个
图优化
最后获得一个二进制
那这一步骤的话
其实在过去的话
是要完全手动
这个工程师实际上是这个手动去做的
那通常来讲
可能是几天几天的一个起步
那实际上
现在我们在云端有这样的服务之后
你只需要通过这种 API 的这种方式去做
比如说我们获得这样一个结果
其实可以看到其实最终获得一个这个几兆的这样一个
这个对于终端的这个模型来讲还是很友好的
那第三段的话
就是说我们看是这个
这个做完这个训练之后
我们是需要去提交这样的一个推理的作业
比如说把编译之后的这个模型
然后部署到真实的这样一个设备上
OK
那比如说这个是真实的这个 S24
对吧
然后跑一组提前挂好的这样一个样本之后
那这个样本的话
就是说我们可以提前去预置一些评估的这个 data set
然后你可以理解为
比如说汽车出厂之前的标准的一个测试的路线
所有的这个候选模型
其实都按照同样的这样的一个样本
同样的指标
然后版本之间才能去做这个横向的一个对比
然后结果回流之后的话
就是说我们看到和这个未量化版本
然后去做对比的话
其实两个门槛同时压下来
其实这个精度下降不超过一个百分点
然后单帧的这样一个延迟是不超过这个20 毫秒的
然后两条其实都通过的话
我们才算真正的通过
那这里块的话
其实代码里边没有任何的一些实机操作
就是说其实我们只需要去定义一些
这个真机设备的连接
然后这个调试的 bridge
然后跨平台的这个 SDK
然后其实所有的东西都可以被云端的 API 屏蔽掉
那这个的话
其实就是说能从端侧
比如说从月级压到这个天级
甚至周级的周级
或者天级的这样一个很重要的一点
那这轮跑完之后的话
其实我们可以看到
像这个 Galaxy S24 NPU
比如说单帧是这个
这个13.59 毫秒
比如说30 帧
频率的这样一个总预算
可能是33 毫秒
那扣掉一些
比如说这个相机管线和一些这个后处理
那分割本身的这样一个时间的话
实际上是13 毫秒
那包括这个最后我们获得的这样一个体积来讲
实际上是这个非常小的
然后便于做这个 OTA 的这样一个分发
OK
然后我们再看一下
这个从真机这个 RT 上
我们去跑这样的一个这个精度
比如说从这个 IoU 可能是0.93
然后我们衡量的这样一个标准的话
比如说是预测人像区域和真实区域的这样一个差别
OK
不好意思
不好意思
我刚才这个有点问题
对
那我们再看一下
就是说最后的这个
这一段代码的话
就是说我们前面的这个所有步骤
其实都是接入到这个 SageMaker 当中
然后它是一个流水线
然后包含这个几个步骤
包括这个云端的这个编译
真机的一些评估
然后包括一些条件的一些判定
那在跑通整个闭环之后的话
其实我想分享这个几个这个项目的一个经验
那第一条的话
就是说关于多设备性能的这样一个数据
也就是说即使采用
比如同一代的这个 NPU
那不同手机平台之间的延迟
实际上也是差异会比较大的
那原因在于
比如说它的前面提到了
它的散热
包括功耗的预算不同
其实并不是芯片本身带来的一些差异
那第二条的话
就是说出于对于这个量化精度的一个评估的方法
这块我们是需要一个确定性的
那比如说云端服务在量化之后
那会自动给出一条
比如说数值的这样的一个保证的这样一个指标
那它可以去衡量
比如说量化前后的这样一个数值的一个差异
然后第三条的话
就是说关于从比如说公开的这个数据集到产品
我们的业务数据集的这样一个迁移
那公开数据集的话
就是说我们让链路具备了一些可复用的一些品质
但是每家厂商的比如说相机的色彩
然后镜头的一些畸变
或者是一些降噪的处理策略实际上是不同的
所以说我们建议的做法的话
还是有一个稳定的我们自身的这样一个业务数据
然后获得一个干净的一个骨干的网络
包括我们和第三方的一些合作伙伴
包括一些芯片制造商
我们去做这样一个方案的时候
中间的话
实际上都是一个 PrivateLink 的网络
然后确保我们数据的合规
并且作为热启动
再用产品的数据再去做二次的这样一些微调
所以说通常的话
就是说我们的测试结果实际上会
由于产品数据上的一些真正的前提
那么回到今天的主题的话
就是说我们把交付周期压缩这件事
第一个的话
其实主要的话就是 SageMaker AI 提供的
一个按需扩展的这样一个训练的能力
因为像比如说像一些训练的空间
可以去做自动的归档版本管理
那开发者不需要去维护这样一个训练集群
第二个的话
就是说云端的编译
包括一些真机的验证服务
我们可以在跨芯片去做这种量化编译
包括性能评估
并且我们把最后整个的一个
工程逻辑封装为标准的 API
那也就意味着
其实开发者不需要在多台的这种
真机设备之间去做
这样一些手工的切换
然后第三个的话
就是说所有的数据还有产物
实际上是在亚马逊云科技生态当中
去流转
包括在我们的 AWS Region 之内去流转
包括跟我们的芯片制造商的
合作伙伴去流转
那中间实际上是确保了这样一个
合规和数据安全的这样一个要求
那么第四个
就是说 SageMaker Pipelines
通过条件的这样一个判定的步骤
可以去自动去实现
比如说质量的门控
然后让上线的这种决策
不用再去依赖于一些人员的
一些审批
反而是由一些我们真实的数据
然后去驱动你的模型
是不是达到了上线的这样一个条件
所以其实我建议大家
如果对这个 topic 感兴趣的话
实际上可以从自己的有数据
或者是之前提到的一些
公开的数据开始
然后把这条链路的话
其实在自己的 notebook 里面去跑一下
那今天展示的其实是一个
比如说做手机人像分割的这样的一个案例
但实际上这样的一个方式的话
就是说我们其实能够比较容易的
去获取到这样的一些模型数据集
但是我们需要去命中自己的业务的时候
可能要真正去拿到我们自身的这样的一些
业务数据
然后再去做这个跑通链路
但实际上今天的这样的一个模式的话
能够其实能平滑的移到很多的这样一些场景
包括一些语音唤醒
端侧语音唤醒
包括 AR 的目标识别
包括一些低光的增强这种场景
包括一些端侧大模型去做蒸馏的
这样的一些场景当中
实际上都可以用这样的一个方式去做
OK
谢谢大家
这就是今天的一个演讲内容