案例研究

Trax 如何在 ClearML 之上构建强大的模型存储库

2025年3月27日

作者:Chen Lugasi,Trax 高级 MLOps 工程师

Trax 凭借领先技术和专有数据,连接品牌、零售商和购物者,树立零售卓越标准。Trax 的人工智能平台独具特色地整合了各种解决方案,为全球领先的消费品公司 (CPGs) 和零售商提供无与伦比的数据驱动信号,以提供实时数据、推动零售执行和提升消费者参与度,从而提高投资回报率 (ROI)。

全球前 50 强消费品公司中的 29 家,以及领先的零售商和新兴品牌,都大规模使用 Trax 的货架监控、分析、商品陈列、激活和购物者参与解决方案,以推动积极的购物者体验并释放所有销售点的收入机会。

Figure 1: Trax’s Platform
图 1:Trax 平台

Trax 是一家全球性公司,在美国、新加坡、法国、匈牙利、中国、墨西哥、巴西和以色列设有中心,服务于全球 80 多个国家/地区的客户。欲了解更多信息,请访问 http://www.traxretail.com

这是 Trax 关于他们如何在机器学习流程中使用 ClearML 的故事

在现代机器学习系统中,模型管理变得越来越复杂。处理模型的多种变体并确保它们之间的兼容性对于维护一个井然有序的模型存储库至关重要。在这篇博文中,我们将探讨我们如何在 ClearML 的 ModelStore 之上构建一个强大的模型存储库,ModelStore 是一项简化模型管理和部署的功能,允许用户使用可查询的模型目录与任何模型交互、添加性能指标并追溯模型谱系。

为什么 Trax 需要模型存储库

在我们组织中,我们处理多种用例,每种不同的用例都需要一个专门的模型。每个模型由不同的组件组成。我们系统中的一个管道可能包括以下步骤:

  • 检测器
  • 分类器
  • 嵌入器

每个步骤都使用自己的模型,并且这些模型需要相互兼容,以确保管道流畅运行。模型输入和输出之间的这些连接凸显了管理每个模型的不同版本和变体的挑战,以及如何确保模型不仅具有准确性,还具有互操作性。

由于 Trax 的应用程序运行在不同的资源上(包括智能手机等边缘设备和云端),每种资源都支持自己的模型格式,我们需要跟踪的模型格式包括:

  • 原始模型(例如,PyTorch 或 TensorFlow)
  • 转换后的模型(例如,TensorFlow Lite 或 CoreML)

我们在 Trax 使用 ClearML 解决这个问题的方式是,通过唯一的标识符来跟踪这些变体及其关系,例如:

  • 原始模型 ID(用于原始模型)
  • 上一个模型 ID(用于在转换管道中生成的模型)

我们将所有这些元数据存储在 ClearML ModelStore 中,这使我们能够有效地管理不同模型及其版本之间的关系。

ClearML 中的模型元数据

ClearML 的 ModelStore 提供了一种灵活的方式来存储和查询模型元数据,使我们能够跟踪每个模型的关键属性:

  • 名称(例如,`classifier_name`,`detector_v1`)
  • 已发布(模型是否已准备好用于生产环境)
  • 已归档(表明模型是否已不再使用)
  • 框架(例如,CoreML,TensorFlow Lite)

为了轻松地对模型进行分类和查找,我们使用 标签,例如 `<ENCRYPTED>` 和自定义标签,如模型系列。这有助于我们根据模型的特性对模型进行分组和过滤,这对于可伸缩性和搜索至关重要。

构建用于模型管理的 REST API

为了管理模型的生命周期,我们构建并托管了我们自己的 REST API 服务器,该服务器与 ClearML ModelStore 集成。此 REST API 服务器主要提供两个功能:

  1. 它充当 ClearML API 与外部世界之间的缓冲区(主要是出于安全原因)。
  2. 它包含我们为按照我们希望的方式管理模型而添加的额外逻辑。

以下是我们模型存储库的关键 API 端点:

发布新模型

  • POST /model/{model_id}/publish: 此端点用于发布模型,并在必要时归档其先前版本。

创建和更新模型资源

  • POST /model/{model_id}/resource: 为阈值和映射等模型组件创建存储资源并提供存储 URL。
  • PATCH /model/{model_id}: 更新模型可变属性,例如自定义字段和元数据。

搜索和检索模型

  • POST /model: 允许按模型类型、名称、框架和自定义元数据字段等属性查询模型。
  • GET /model/{model_id}: 检索模型的详细信息,包括存储 URL 和供应商信息。

检查模型状态

由于一个完整工作的管道需要多个模型协同作用,我们还构建了一个流程来验证所有必需的模型资源是否存在于磁盘上。这确保了模型及其关联组件可用于生产环境。它检查给定上下文(例如,管道或工作流)的所有模型资源是否在本地可用。只有当所有模型的所有资源都存在时,上下文才被视为已加载。

标签和访问控制

如前所述,我们模型存储库的一个重要组成部分是标签系统。标签用于跟踪模型生命周期中的每个步骤。例如,标签可以指示模型是否处于生产环境中,或者是否仍是特定管道步骤的一部分。

模型仅在处于“已发布”状态且具有正确标签时,才能通过生产 API 访问。这确保只有经过充分处理和加密的模型才能在生产环境中被使用,从而防止未经处理或不安全的模型被使用。

结果:一个强大的模型存储库

通过使用 ClearML ModelStore,我们创建了一个灵活且可伸缩的模型存储库,使我们能够:

  • 轻松跟踪模型的不同版本和变体。
  • 确保模型组件(例如,检测器、分类器、嵌入器)之间的兼容性。
  • 管理模型访问和安全性,例如确保只有加密模型可用于生产环境。

这种方法帮助我们简化了模型管理,降低了版本控制的复杂性,并简化了大规模机器学习模型的部署。


编者按

Trax 使用 ClearML 的AI 开发中心,这是一个全面的开源平台,旨在加速从实验室到生产环境的 AI/ML 开发。只需两行代码,开发人员即可无缝构建、训练和大规模部署模型,利用自动化、编排和优化的计算资源。AI 开发中心与 ClearML 的基础设施控制平面集成,确保在本地、云和混合环境中安全高效地执行工作负载。它通过协作实验管理、联邦数据处理以及通过 CLI、UI 或 API 简化模型部署来优化 AI 工作流。ClearML 强大的 MLOps 和 LLMOps 能力帮助团队更快迭代、自动化 CI/CD 管道、最大化效率并降低基础设施成本。AI 开发中心专为灵活性、可伸缩性和企业级安全性而设计,使 AI 构建者能够专注于创新,而非基础设施。如需了解有关 ClearML 的更多信息,请联系我们申请演示

Facebook
Twitter
LinkedIn
滚动到顶部