拓冰建站拓冰建站
首页 / 资讯中心 / 正文

OpenMed ONNX Export教程:fp32、fp16到INT8量化与Android部署完整指南

OpenMed ONNX Export教程fp32、fp16到INT8量化与Android部署完整指南【免费下载链接】openmedLocal-first healthcare AI: clinical NER HIPAA PII de-identification that runs 100% on-device. 2,200 medical models, 21 languages, Apple MLX Python, no cloud, no patient data leaving your network. Apache-2.0项目地址: https://gitcode.com/GitHub_Trending/ope/openmedOpenMed是一个本地优先local-first的医疗 AI 工具专注临床命名实体识别Clinical NER与 HIPAA PII 脱敏模型 100% 运行在设备端患者数据不出内网。本教程带你走完 OpenMed ONNX 导出的全流程从 fp32 全精度图到 fp16 半精度图再到 INT8 动态量化最终通过 ONNX Runtime Mobile 部署到 Android 手机上实现完全离线的病历脱敏。一、为什么选择 ONNX 做设备端脱敏传统方案需要把病历文本发到云端 API这在 HIPAA 合规场景下几乎是禁区。OpenMed 的思路是把模型本身装进 App。ONNX 是跨平台推理的标准格式一条导出流水线可以同时产出产物文件精度用途model.onnxfp32全精度基准图精度上限参照model_fp16.onnxfp16权重半精度输入输出张量类型保持不变ARM 上速度与内存的平衡点model_int8.onnxINT8动态 QInt8 量化体积最小是 ARM CPU 推理的起点model.ortORT MobileONNX Runtime 移动格式供 Android 最小化构建使用所有产物共享同一张图契约输入input_ids、attention_mask可选token_type_ids输出logits且batch与sequence轴保持动态——一个产物就能服务不同长度的病历。 完整说明见官方文档 docs/export-onnx-android.md二、一键安装步骤3 步生成 Android ONNX 模型只需安装带 ONNX 支持扩展的 OpenMedpython -m pip install --upgrade openmed[onnx,hf]然后运行androidprofile 转换器它会自动完成 fp32/fp16 导出、INT8 量化和 ORT Mobile 转换.venv/bin/python -m openmed.onnx.convert \ --model dslim/bert-base-NER \ --output dist/example-android-onnx \ --profile android导出目录结构一目了然dist/example-android-onnx/ model.onnx # fp32 图 model_fp16.onnx # fp16 图 model_int8.onnx # 动态 INT8 图 model.ort # ORT Mobile 产物 model.required_operators_and_types.config # 最小构建算子配置 config.json / id2label.json / openmed-onnx.json # 元数据几个关键设计点源码见 openmed/onnx/android_profile.py固定 opset 为 18保证后续.ort转换的图契约可预测导出后自动校验先用onnx.checker检查图合法性再校验输入/输出张量契约安全算子集检查不在移动端安全集合内的算子会记录为警告写入 openmed/onnx/convert.py 生成的openmed-onnx.json清单供运行时决定是否回退 CPU三、INT8 动态量化零校准语料 召回认证INT8 是移动端部署的核心OpenMed 采用动态 QInt8 量化实现见 openmed/onnx/quantize_int8.py只对MatMul/Gemm等 Transformer 权重算子量化不需要校准数据集导出即可用大幅降低使用门槛量化后自动修复拓扑顺序并通过模型校验但脱敏模型必须量化不丢精度。OpenMed 提供了INT8 召回认证机制传入评测集后转换器会把 fp32 父模型与 INT8 模型在同一批 fixture 上对比写出聚合的recall_delta.json报告.venv/bin/python -m openmed.onnx.convert \ --model dslim/bert-base-NER \ --output dist/example-android-onnx \ --profile android \ --eval-suite openmed/eval/golden/fixtures/checksum_ids.json报告中每个标签类别都会记录 fp32 召回、INT8 召回与召回差值当最大召回损失低于0.005 的 INT8 限额时certified才为true发布门禁G4会据此放行或拦截该格式。报告只含聚合数字绝不序列化任何病历原文或 span 内容——这是隐私设计的一部分。四、ORT Mobile 最小构建与 Android 部署model.ort是 ORT Mobile 格式的产物配套的model.required_operators_and_types.config记录了该模型实际用到的算子与类型可直接喂给 ONNX Runtime 的最小化构建让 AAR 体积只包含真正需要的算子./build.sh \ --android \ --minimal_build \ --include_ops_by_config dist/example-android-onnx/model.required_operators_and_types.config部署侧走 JitPack 免凭证发布在settings.gradle.kts添加仓库后一行依赖即可引入 OpenMedKitdependencies { implementation(com.github.maziyarpanahi:openmed:v2.3.0) }App 内加载本地目录模型并脱敏推理过程零网络请求完整示例见 docs/android-quickstart.mdval model OpenMedKit.fromDirectory(modelDirectory) val entities model.analyzeText(Patient Alice Nguyen was seen in cardiology.)五、性能与硬件加速QNN → NNAPI → CPU 三级回退量化解决跑得快执行提供商Execution Provider决定快多少。OpenMedKit 默认按QNN → NNAPI → CPU顺序探测加速器不支持的子图自动落到 CPU全程确定性、无云端回退详见 docs/runtimes/android-accelerators.md。设备端推理的批量吞吐表现可参考项目基准测试移动端兼容性元数据min_sdk、nnapi_compatible、execution_providers等字段会随模型清单发布帮助你在集成前就确认目标设备的支持情况。六、相关文件导航资源路径ONNX 导出文档docs/export-onnx-android.mdAndroid 快速上手docs/android-quickstart.md加速器QNN/NNAPI配置docs/runtimes/android-accelerators.md导出转换器源码openmed/onnx/convert.pyINT8 量化与认证源码openmed/onnx/quantize_int8.pyAndroid profile 定义openmed/onnx/android_profile.pyORT Mobile 转换openmed/onnx/ort_mobile.pyAndroid 演示 Appandroid/OpenMedDemo/总结一条--profile android命令你就得到了覆盖 fp32 → fp16 → INT8 的完整产物族、召回认证报告和 ORT 最小构建配置。配合 OpenMedKit 的三级加速器回退医疗 PII 脱敏真正做到了数据不出手机。 【免费下载链接】openmedLocal-first healthcare AI: clinical NER HIPAA PII de-identification that runs 100% on-device. 2,200 medical models, 21 languages, Apple MLX Python, no cloud, no patient data leaving your network. Apache-2.0项目地址: https://gitcode.com/GitHub_Trending/ope/openmed创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门