机器学习工程师普遍感叹的是,一般来说,将机器学习 (ML)、深度学习 (DL) 和AI 应用程序投入生产是有问题的。许多工程师会证明,很大一部分(估计为 90%)的 ML 模型在生产中从未出现过。
让我们检查四个最佳实践来防止这些问题。这四个最佳实践源自行业趋势、从业者文献和编纂的 MLOps 最佳实践,将改进在生产中部署模型的过程。
1) 整理您的数据故事
数据复杂而肮脏。它很复杂,因为数据的形式和格式各不相同:批处理或流式处理、结构化、非结构化或半结构化数据。它很脏,因为数据经常有缺失或错误的值。如果没有大量、经过清理和特征工程化的数据,任何深度学习或 AI 模型都没有价值。
您需要一个强大的数据存储来处理构建准确模型所需的大数据。现代数据湖存储结构化和非结构化数据。现代数据湖具有以下数据属性:
提供ACID事务,因此多个读取器和写入器可以更新和读取数据而不会发生争用或冲突,从而允许并发ETL(提取、转换和加载)作业以及不断的插入和更新。
以 Parquet、 JSON或CSV等开放格式存储数据,使流行的深度学习框架能够公开高效地访问数据。
将结构化数据保存为可以版本化并遵循模式的表,从而实现模型的可重复性和问责制。
提供对各种数据(标记、图像、视频、文本等)的快速且可搜索的访问,允许机器学习工程师为正确的业务问题获取正确的数据集。
现代数据湖
作为数据存储的现代数据湖。
如果没有一个内聚的数据存储作为所有用于训练和推理的 ML 模型的规范可靠且经过清理的数据源,您将偶然发现您的第一个“数据”陷阱。无论您使用哪种深度学习框架,这都是正确的——这将我们带到下一个考虑因素。
2) 使用被广泛采用和广泛使用的框架
正如好的数据产生好的模型一样,广泛采用的深度学习工具包和框架也是如此。PyTorch、PyTorch Lightning、TensorFlow、HuggingFace、Horovod、XGBoost或MXNet是用于构建可扩展深度学习模型的流行框架,没有人会在 ML/DL 从业者中提出异议。除了被广泛使用之外,它们已成为构建复杂的深度学习和人工智能应用程序的首选框架。
采用这些框架是因为:
他们有一个庞大的支持社区、丰富的文档、教程和示例可供学习。
它们支持在现代加速硬件(CPU、GPU 等)上进行训练和推理。
它们在生产中经过了实战测试(由著名公司使用)。
它们与 Ray 原生集成,Ray 是一种新兴的开源通用框架,用于构建和扩展分布式 AI 应用程序。
他们有 Python API 绑定,这是一种事实上的深度学习语言。
它们与MLflow、KubeFlow、TFX、SageMaker和Weights & Biases 集成,用于在生产中进行模型配置以及部署和编排模型管道。
ML-DL 注册表
ML/DL 框架与 Ray 和模型注册表的集成。
不使用与流行的开源工具良好集成的久经考验的框架进行模型开发周期和管理或大规模分布式培训,肯定会陷入另一个陷阱:错误的工具和框架。对模型开发生命周期的需求使我们了解您为什么要使用模型商店跟踪模型训练。
3) 使用模型存储跟踪模型训练
模型开发生命周期范式不同于一般的软件开发生命周期。前者是迭代的、实验的、数据和指标驱动的。有几个因素会影响模型在生产中的成功:
模型的测量指标是否准确?模型注册表将在训练和测试期间跟踪您可以仔细评估的所有指标和参数。
我可以使用多个 DL 框架来获得最佳模型吗?今天的模型注册表支持多个框架将模型记录为部署的工件。
数据源是否可靠且数量足以代表一般样本?这是正确处理数据故事的成功结果。
我们可以用用于训练的数据重现模型吗?模型注册表可以将元数据存储为对数据存储中数据表的引用。访问原始训练数据和元数据允许复制模型。
我们能否跟踪模型的演化谱系——从开发到部署——以了解出处和责任?模型注册表跟踪每个实验运行的版本控制,以便您可以提取训练模型的精确版本及其所有输入和输出参数和指标。
跟踪模型实验并保留其结果的所有方面——指标、参数、数据表和工件——让您有信心将正确和最佳的模型部署到生产中。没有数据和指标驱动的生产模型是另一个需要避免的陷阱。但这还不够;观察模型在生产中的行为和性能与跟踪实验一样重要。
4)在生产中观察模型
生产中的模型可观察性势在必行。这通常是事后才想到的——但这是你的危险和陷阱。应该是最重要的。ML 和 DL 模型会随着时间的推移而退化或漂移,原因如下:
数据和模型概念随着时间的推移而漂移:数据是复杂的,绝不是静态的。用于训练模型的数据可能会随着时间而改变。例如,为分类或分割训练的特定图像可能具有未考虑的其他特征。结果,推理的模型概念可能会漂移,导致错误,偏离基本事实。这种漂移检测需要重新训练和重新部署模型。
模型的推断会随着时间的推移而失败:模型预测会随着时间的推移而失败,给出错误的预测,这是由于上述数据漂移造成的。
系统因负载过重而降级:尽管您将可靠性和可扩展性作为数据基础架构的一部分,但保持基础架构的健康状况(尤其是在流量高峰期间的专用模型服务器)至关重要。
标签:
版权声明:本文由用户上传,如有侵权请联系删除!