🌱
正しいMLFLOW_TRACKING_URIがわからず15分嵌った話
mlflow.exceptions.MlflowException: When an mlflow-artifacts URI was supplied, the tracking URI must be a valid http or https URI, but it was currently set to file:///Users/hirayuki/Documents/Projects/mlflow/mlruns. Perhaps you forgot to set the tracking URI to the running MLflow server. To set the tracking URI, use either of the following methods:
1. Set the MLFLOW_TRACKING_URI environment variable to the desired tracking URI. `export MLFLOW_TRACKING_URI=http://localhost:5000`
2. Set the tracking URI programmatically by calling `mlflow.set_tracking_uri`. `mlflow.set_tracking_uri('http://localhost:5000')`
あとは試行錯誤していると下記のエラーも現れる可能性もあります。
mlflow.exceptions.MlflowException: API request to http://localhost:8081/api/2.0/mlflow/runs/create failed with exception HTTPConnectionPool(host='localhost', port=8081): Max retries exceeded with url: /api/2.0/mlflow/runs/create (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x15382c340>: Failed to establish a new connection: [Errno 61] Connection refused'))
ということでこの対応策を紹介します。結論から言うとエラーログに書かれている通り export MLFLOW_TRACKING_URI=http://localhost:5000
するか mlflow.set_tracking_uri('http://localhost:5000')
をコードの中に書き込むかのどっちかです。
ただここで5000 portを使っているから嵌ってしまいました。
普通に mlflowの使っているportに向けて設定すればOK
普通にmlflow server 立ち上げてみましょう。
mlflow server --host 127.0.0.1
を実行します。
(main) hirayuki@MacBook-Air mlflow % mlflow server --host 127.0.0.1
[2024-11-10 15:00:11 +0900] [15026] [INFO] Starting gunicorn 23.0.0
[2024-11-10 15:00:11 +0900] [15026] [INFO] Listening at: http://127.0.0.1:5000 (15026)
[2024-11-10 15:00:11 +0900] [15026] [INFO] Using worker: sync
[2024-11-10 15:00:11 +0900] [15030] [INFO] Booting worker with pid: 15030
そうするとログにある通り、標準は 5000 portで立ち上がります。
quick start通りにして混乱
mlflow server --host 127.0.0.1 --port 8080
となっています。そうなると 8080 portで立ち上がります。
なのでこの場合
export MLFLOW_TRACKING_URI=http://localhost:8080
- または pythonコード内に
mlflow.set_tracking_uri("http://localhost:8080")
上記どちらかで直ります。
サーバやportに詳しい人にとっては、「何言ってんだこいつ?・・・」という感じのレベルの低いハマり方でしたが。。。
Discussion