question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

[BUG] Changing the Tracking's URI doesn't change the Artifact's URI

See original GitHub issue

Willingness to contribute

  • Yes. I can contribute a fix for this bug independently.
  • Yes. I would be willing to contribute a fix for this bug with guidance from the MLflow community.
  • No. I cannot contribute a bug fix at this time.

System information

  • Have I written custom code (as opposed to using a stock example script provided in MLflow):
  • OS Platform and Distribution (e.g., Linux Ubuntu 16.04): docker continuumio/miniconda3 on Azure’s Compute Instance
  • MLflow installed from (source or binary): R’s install_mlflow()
  • MLflow version (run mlflow --version): 1.22.0
  • Python version: 3.9

Describe the problem

I am trying to use MLFlow on Azure’s ML Compute Instances to track my experiments in R. The tracking URI set by the compute instance has the scheme azureml://... which is not supported by MLFlow. Azure has a package to enable support on Python, but as my code is in R, I found that I need to manually change the URI to https://... to make logging work.

Changing the Tracking URI works correctly (i.e. I can log params and metrics) when setting the MLFLOW_ARTIFACT_URI environment variable or when calling mlflow_set_tracking_uri(), but it doesn’t seem to have any effect on the artifact URI (related to #3469) as it is still using the old scheme (the one starting with azureml://), so I am not able to log artifacts.

I see no method on MLFlow’s R API to change the artifact’s URI scheme (and #2577 seems to be related, but I created a different issue as I don’t want to re-define the whole URI, but just the scheme) and workarounds are possible at least while Microsoft implements an R API (I hope it happens someday), but I was wondering if MLFlow has any suggestion on this or if a new feature that could help this use-case is in the plan.

What component(s), interfaces, languages, and integrations does this bug affect?

Components

  • area/artifacts: Artifact stores and artifact logging
  • area/build: Build and test infrastructure for MLflow
  • area/docs: MLflow documentation pages
  • area/examples: Example code
  • area/model-registry: Model Registry service, APIs, and the fluent client calls for Model Registry
  • area/models: MLmodel format, model serialization/deserialization, flavors
  • area/projects: MLproject format, project running backends
  • area/scoring: MLflow Model server, model deployment tools, Spark UDFs
  • area/server-infra: MLflow Tracking server backend
  • area/tracking: Tracking Service, tracking client APIs, autologging

Language

  • language/r: R APIs and clients
  • language/java: Java APIs and clients
  • language/new: Proposals for new client languages

Integrations

  • integrations/azure: Azure and Azure ML integrations
  • integrations/sagemaker: SageMaker integrations
  • integrations/databricks: Databricks integrations

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:5 (3 by maintainers)

github_iconTop GitHub Comments

1reaction
peguerosdccommented, Jan 3, 2022

Hi! Thanks for sharing! After discussing the topic on a Microsoft forum, I was pointed to an updated R example that implements a new MLFlow client (see /accidents/src/azureml_utils.R) which sort of solves my issue.

I don’t consider it ready for production as sometimes the code halts unexpectedly without much explanation (and the example didn’t run “as is”; that’s why I said “sort of”), but I think working on top of it would be a more direct approach for this use case. I am not planning to do it as I am ok with my workarounds at the moment, but I leave it here in case someone finds it useful or if you find you can borrow some of it for your package.

(Still this issue should remain open as it is not fixed nor an explanation is given)

0reactions
dbczumarcommented, Jun 2, 2022

We do not currently have plans to support modifying the artifact URI of an existing run or experiment, though it is possible to do so by modifying the underlying storage representation (e.g. SQL database record or file). Thank you for using MLflow!

Read more comments on GitHub >

github_iconTop Results From Across the Web

Compute instance not setting MLFlow's URIs correctly for R
After several hours of googling, I found a github repo which states that the URI must be changed to https:// and that allows...
Read more >
MLflow saves models to relative place instead of tracking_uri
I have tried mlflow run --storage-dir here/comes/the/path , setting the tracking_uri, registry_uri. If I run the /home/path/to/tracking/uri ...
Read more >
310132 – [publisher] Publisher app + ant task ... - Bugs - Eclipse
statsURI " property, but as andrew notes this must be a "download.stats" property. 2.) My understanding is that the download.stats property should be...
Read more >
RFC 3261: SIP: Session Initiation Protocol
Standards Track [Page 1] ... 148 19.1.1 SIP and SIPS URI Components . ... If the other party does not accept the change,...
Read more >
MLflow Model Registry
The MLflow Model Registry component is a centralized model store, set of ... For this method, you will need the run_id as part...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found