[Q] Private project, public run
EmilienDupont opened this issue · 9 comments
Hi,
We used wandb for a research project and as part of publishing the paper we would like to make the runs we used in the paper public. However, from searching it seems like if we want to make a run public, we need to make the entire project public (including runs which are not relevant to the paper). Is this correct? Is there any way to make a single run within a private project public?
Thank you!
Hey Emilien,
No, you can not make a single run public while keeping the project private. You can, however create a Report, add information to it and then share that report with users who do not have access to the project.
Thanks,
Ramit
Hey Ramit,
Thank you for your reply! Is there any plan to add this feature?
In my experience, this workflow is super common in ML research (at least at universities):
- You work on a private wandb project for your research
- When you are ready to publish you want to share all the trained models from the paper, without having to share all the failed experiments with bugs or potential follow up experiments that are not yet public
So I think adding this feature would be very useful to a large number of PhD students :)
In the meantime, what is the best option for us? Can we copy runs to a new project (including trained model weights and artifacts) and then make this public? Or is the only option to make the private project public and delete all the unwanted runs?
Thank you again for your help!
Hi Emilien,
Thank you for your response! I'm curious - did the report method not work for you? You should be able to select specific runs without exposing your whole private project. I would like to understand what did not work for you so that I can make a feature request that better resolves this problem.
Thanks,
Ramit
Hi Ramit,
Thanks for getting back to me! The report option works well for sharing charts related to the runs which is definitely useful. However, we want to share saved model weights as well as artifacts saved during (or after) the run. Is there a way to expose these through a report? I tried to look through the documentation but could not find this.
Thank you!
Hey Emilien,
Thanks for the context! Just wondering, if the concern is that you can not share artifacts, would it make more sense to have a method to download a predefined artifact through the report v/s exposing the whole run?
Thanks,
Ramit
Ramit Goolry commented:
Hi Emilien,
We wanted to follow up with you regarding your support request as we have not heard back from you. Please let us know if we can be of further assistance or if your issue has been resolved.
Best,
Weights & Biases
Hi Ramit,
Thank you and sorry for the slow reply on my end! To give further context, our ideal use case is that, given a path to a wandb run, the user can programmatically download a model using e.g.
run = wandb.Api().run(wandb_run_path)
run.file("model.pt").download(root=local_dir, replace=True)
and download some artifact from that run using e.g.
run.file(f"wandb/{run_id}/{filename}").download(root=".", replace=True)
As an example from our codebase, this script requires us to load a trained model from a wandb run, as well as an artifact from that same run.
If we include a predefined artifact to be downloaded from a report, would we be able to run the above procedure? Or would we need to expose the whole run?
Thank you again for all your help, I really appreciate it :)
Hi Emilien, apologies about the delay here.
I already created the feature request for this, for a UI method to download artifacts. These would be embeddable in a report, such that you can simply expose the Artifact and anyone viewing the report would be able to download it. Currently however, there is no way to expose just 1 run for its Artifacts and not the rest of the project.
Thanks,
Ramit
Hi Ramit, thanks for this! I'm looking forward to the feature implementation :)