用途
本技能面向 TensorFlow 模型的部署与上线,覆盖从模型导出、格式转换、量化压缩到服务化部署的完整链路。适用于需要将训练完成的模型投入生产环境、部署到移动端或边缘设备、压缩模型体积、优化推理延迟与吞吐的场景。
主要能力
SavedModel 导出
支持将 Keras 模型保存为 SavedModel 格式并重新加载预测;可从分类器创建 serving 模型并检查输入输出形状;可通过 @tf.function 定义 serving 签名,使用 tf.saved_model.save 以 serving_default 签名导出。
TensorFlow Lite 转换
支持从 SavedModel、Keras 模型或 concrete function 转换为 TFLite;可通过 Model Maker 导出 TFLite 并附带标签、词表等元数据,也支持同时导出 TFLITE、SAVED_MODEL、LABEL 多种格式。
模型量化
提供三种后训练量化方式:Float16 量化(通过 QuantizationConfig.for_float16())、动态范围量化(tf.lite.Optimize.DEFAULT)、全整型量化(需提供 representative dataset 校准,并设置 INT8 输入输出类型)。还包含量化调试方法,可生成带数值校验的调试模型,以及将量化配置应用到转换器的辅助函数。
JAX 到 TFLite 转换
通过 orbax.export 的 JaxModule、ServingConfig、ExportManager 将 JAX 模型导出为 SavedModel 再转为 TFLite,支持加入预处理与后处理,并给出 ResNet50 示例。
模型优化
提供基于 Bazel 构建的 graph_transforms 工具进行图变换优化,包括去除未使用节点、折叠常量、折叠 batch norm 等,并可用于修复移动端 kernel 错误。另含 EfficientDet 的 SavedModel 导出函数与完整导出流程。
移动端部署
支持通过 adb 推送 TFLite 模型到 Android 设备并运行 benchmark;演示 TFLite Interpreter 的加载、张量分配、输入设置、推理调用与输出获取流程。
分布式训练与服务
包含 MirroredStrategy 多 GPU 训练与模型保存;展示 TPU 变量重格式化的 MLIR 优化前后对比。
TensorFlow Serving
支持按版本号导出模型(如 serving_models/my_model/1),通过 Docker 拉取并运行 tensorflow/serving 镜像,挂载模型目录并设置 MODEL_NAME,使用 REST API 进行预测测试。
模型验证与测试
提供 TFLite 模型与原模型预测对比的验证函数,输出平均与最大绝对误差;提供 SavedModel 与 TFLite 体积对比函数,输出体积缩减百分比。
使用方式
按需选择导出格式:生产服务优先使用 SavedModel;移动端与边缘设备使用 TFLite;对体积敏感时叠加量化。量化时需提供 representative dataset 进行校准。服务化部署可使用 TensorFlow Serving 配合 Docker,通过 REST 或 gRPC 提供接口。转换后应验证精度并对比模型体积。
适用场景
- 将训练好的模型导出用于生产服务
- 部署到 iOS、Android 移动设备
- 面向边缘设备与 IoT 的模型优化
- 转换为 TensorFlow Lite 格式
- 应用后训练量化压缩模型
- 搭建 TensorFlow Serving 基础设施
- 使用 Docker 容器部署模型
- 创建 REST 或 gRPC 模型服务 API
- 优化推理延迟与吞吐
- 在带宽受限环境中减小模型体积
- 将 JAX 或 PyTorch 模型转换为 TensorFlow 格式
- 使用多版本模型实现 A/B 测试
- 部署到云平台(GCP、AWS、Azure)
- 创建端侧 ML 应用
- 针对特定硬件加速器优化模型
限制
资料未提供具体的收费、价格、平台支持范围或性能基准数据。部分内容(如“Common Pitfalls”一节)在资料中未完整给出。实际效果取决于模型结构、硬件环境与量化配置,需在目标设备上验证。