You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Java代码将模型添加至MLFlow模型注册表?

Java 实现MLFlow模型注册表模型添加

1. 创建注册模型(对应Python的create_registered_model)

Java版MlflowClient提供了createRegisteredModel方法,通过构建CreateRegisteredModelRequest对象完成注册模型的创建:

import org.mlflow.api.proto.Mlflow.CreateRegisteredModelRequest;

// 构建创建请求
CreateRegisteredModelRequest createModelRequest = CreateRegisteredModelRequest.builder()
    .name("sk-learn-random-forest-reg-model") // 模型注册表中的目标模型名称
    .description("基于随机森林的回归模型") // 可选添加模型描述
    .build();

// 执行注册模型创建
client.createRegisteredModel(createModelRequest);

2. 上传模型工件并创建模型版本

Java没有Python那样的log_model快捷封装方法,需要手动完成三步操作:

步骤1:序列化模型到本地目录

先将你的Java模型(如TensorFlow、XGBoost或自定义序列化模型)保存到本地文件夹,例如./my-trained-model。

步骤2:上传模型工件到MLFlow运行

将本地模型文件夹作为工件上传到当前MLFlow运行实例:

import org.mlflow.api.proto.Mlflow.RunInfo;

// 获取目标运行的信息(若未启动运行,先调用client.createRun创建并获取RunInfo)
RunInfo targetRun = client.getRun("your-target-run-id");

// 上传本地模型文件夹到运行的指定工件路径
client.logArtifacts(targetRun.getRunId(), "./my-trained-model", "model-artifact-dir");

步骤3:创建模型版本关联工件

基于上传的工件路径,创建模型版本并关联到已注册的模型:

import org.mlflow.api.proto.Mlflow.CreateModelVersionRequest;

CreateModelVersionRequest createVersionRequest = CreateModelVersionRequest.builder()
    .name("sk-learn-random-forest-reg-model") // 必须与注册模型名称一致
    .source(targetRun.getArtifactUri() + "/model-artifact-dir") // 工件的完整URI
    .runId(targetRun.getRunId())
    .description("V1版本:初始训练完成的模型") // 可选添加版本描述
    .build();

// 创建模型版本
client.createModelVersion(createVersionRequest);

3. 简化操作:自动创建注册模型

如果不想提前手动创建注册模型,可以直接调用createModelVersion——当指定的模型名称在注册表中不存在时,MLFlow会自动创建对应的注册模型。


内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 01:25:11