MLflow Tracking Server
MLflow 为训练和微调工作负载提供实验跟踪功能。在 Alauda AI 中,MLflow 通过 MLflow Operator 作为集群插件进行安装。该 operator 会部署一个 MLflow Tracking Server,通过平台 ingress 公开访问,并在 Tools 菜单中添加一个 MLFlow 入口。
先决条件
- 目标集群已安装 Alauda AI。
- 已为 MLflow 元数据提供可用的 PostgreSQL 数据库。
- 已配置平台 OAuth/OIDC 提供程序。
- 对于由 namespace 支持的 workspace,目标 workspace 的 namespace 需要带有 MLflow 配置所选用的标签,例如
mlflow-enabled=true。
安装或升级
- 将 MLflow 集群插件软件包上架到 global 集群。
- 在 Web Console 中,进入 管理员 > Marketplace > 上架软件包,并确认 MLflow 软件包版本已显示。
- 为目标集群安装或升级 MLflow 集群插件。
- 配置 PostgreSQL 的主机、端口、用户名和密码。
- 当用户需要访问由 Kubernetes namespace 支持的 MLflow workspaces 时,启用多租户。
- 插件状态变为运行后,打开 Alauda AI > Tools > MLFlow。
Workspace 访问
MLflow workspaces 与 Kubernetes namespace 映射。只有与已配置标签选择器匹配的 namespace 才会作为 workspace 显示。
示例 namespace:
通过 Kubernetes RBAC 授予用户对 workspace 中 MLflow 资源的访问权限:
客户端配置
将 MLflow tracking URI 设置为平台 route,并选择 workspace:
对于 HTTP 客户端,请传递 workspace 标头:
高可用性和存储
MLflow 使用外部 PostgreSQL 数据库存储元数据。在生产环境中,请使用高可用的 PostgreSQL 服务。
默认的 artifact 路径位于 MLflow pod 本地。对于生产环境,在用户存储实验 artifact 之前,请通过 MLflow 部署设置配置持久化 artifact 存储。默认的 MLflow server 部署不是多副本高可用部署,除非你所用版本的 release notes 另有说明。
故障排查
- 如果 MLFlow 的 Tools 菜单入口缺失,请确认
aml-mlflow-menu-configConfigMap存在于 MLflow namespace 中,并且带有标签aml.cpaas.io/centralMenuItem: "true"。 - 如果 workspace 不可见,请确认其 namespace 与 MLflow workspace 标签选择器匹配。
- 如果请求被拒绝,请检查用户在 workspace namespace 中的 Kubernetes
RoleBinding。 - 如果 server 无法启动,请确认 PostgreSQL 连通性和凭据。