缘起
最近做产品的时候, 由算法团队写完AI算法模型, 由我们产品团队完成对工程化的改造, 然后再把API上线.
但是这个时候遇到沟通成本很高, AI算法大多是探索式的, 输入是比较少边的, 但是输出可能会多次变化, 这样对产品化人员又很麻烦, 本来就是很简单的代码, 就是需要不停的修改, 用来适配整体的API.
这里有个前提: 尽量让算法的人员减少对产品的代码的感知, 毕竟他们不是专业的
因此, 我查了一下开源社区对这个问题的处理方式, 最后还真查到了TF Serving
这个工程, 决定调研一下是否能够解决我的问题.
TF Serving
是TensorFlow Extended工程的一个子工程, TFX
是一个端到端的AI平台, 简单理解就是:
他的关注点在于AI机器学习的工程化部分
TFX
总共有4个模块:
- TensorFlow Data Validation: TensorFlow Data Validation (TFDV) 能够帮助开发者大规模地理解、验证和监控机器学习数据。Google 每天都使用 TFDV 分析和验证 PB 级的数据,并且在帮助 TFX 用户维护机器学习流水线正常运行方面,TFDV 一贯表现良好
- TensorFlow Transform: 在将机器学习应用于现实世界的数据集时,需要投入很多精力才能将数据预处理为合适的格式,其中包括在各种格式之间进行转换、对文本进行标记化和词干化、创建词汇表、执行归一化等各种数字操作。您可以使用 tf.Transform 完成所有这些操作
- TensorFlow Model Analysis: TensorFlow Model Analysis (TFMA) 让开发者能够计算和可视化模型的评估指标。在部署任何机器学习 (ML) 模型之前,机器学习开发者需要评估模型的性能,以确保其达到特定的质量阈值,并且能够针对所有相关数据切片展示出与预期相符的行为。例如,模型针对整个评估数据集的 AUC 可能是可接受的,但针对特定切片却表现不佳。TFMA 为开发者提供了深入了解其模型性能的工具
- TensorFlow Serving: 机器学习 (ML) 应用系统必须支持模型版本控制(用于实现包含回滚选项的模型更新)和多个模型(用于实现通过 A/B 测试进行的实验),同时还要确保并发模型能够在硬件加速器(GPU 和 TPU)上以较低的延迟实现较高的吞吐量。TensorFlow Serving 每秒能为 Google 处理数千万次推断