Как получить все незарегистрированные модели в MLflow?Python

Программы на Python
Ответить
Anonymous
 Как получить все незарегистрированные модели в MLflow?

Сообщение Anonymous »

Я использую MLflow (3.7.0) с PyTorch (2.5.1 + CUDA).
Как я могу получить имена моделей (НЕ ЗАРЕГИСТРИРОВАНЫ) из MLflow?
У меня есть функция, которая сохраняет модель всякий раз, когда она улучшается по сравнению с предыдущей эпохой. Я регистрирую модели следующим образом:
mlflow.pytorch.log_model(
model_cpu,
name=name,
step=epoch,
signature=self._create_mlflow_signature(model_cpu),
await_registration_for=0
)

Теперь я хочу получить нужные мне модели (мне не нужно их регистрировать) и использовать их для прогнозирования. Для этого мне нужно знать их имя и run_id. На данный момент я загружаю нужные мне модели так:
import mlflow

mlflow.set_tracking_uri("http://localhost:5000")

run_id = 'c1fc86256ed64b6ea1c71ea4122f07be'
model_name = 'checkpoint_epoch_2'

model_a = mlflow.pytorch.load_model(
f"runs:/{run_id}/{model_name}"
)

Однако я хочу программно составить список всех моделей, зарегистрированных в ходе выполнения. Я хочу получить все имена моих моделей не через пользовательский интерфейс, а через код Python. Я попробовал:
from mlflow.tracking import MlflowClient

mlflow.set_tracking_uri("http://localhost:5000") # MLflow tracking server

client = MlflowClient()
experiment_id = "1"

artifacts = []

runs = client.search_runs(
experiment_ids=[experiment_id],
filter_string="",
order_by=["attributes.start_time DESC"]
)

for run in runs:
run_id = run.info.run_id
artifacts_from_run = client.list_artifacts(run_id)
artifacts.append({
'run_id': run_id,
'artifacts': artifacts_from_run
})

print(artifacts)

Но результат всегда:
[
{'run_id': 'd16f236965d34806836b25d2035111b4', 'artifacts': []},
{'run_id': '7e677dbf1c1d4e3cbaaee6cd0377424e', 'artifacts': []},
{'run_id': 'c1fc86256ed64b6ea1c71ea4122f07be', 'artifacts': []}
]


Подробнее здесь: https://stackoverflow.com/questions/798 ... -in-mlflow
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»