Artificact upload for remote instances
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- julia
- Ambito
- api, machine-learning
Direzione di ricerca
Inizia in src/loggers.jl intorno alle righe 69-72 e analizza logartifact e getrun per capire come viene gestito attualmente artifact_uri. Decidi con i maintainer come distinguere l’accesso agli artifact locali e remoti, quindi verifica l’implementazione scelta con un’istanza locale di MLflow e gli endpoint GitLab; il lavoro è completato quando gli upload degli artifact remoti funzionano senza compromettere l’accesso locale.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
As per https://github.com/JuliaAI/MLFlowClient.jl/blob/a31b41a91dc32107fa7dcd6ad5a581c116a4ff9c/src/loggers.jl#L69-72 we currently can't upload artifacts to remote servers
Assumes that artifact_uri is mapped to a local directory.
At the moment, this only works if both MLFlow and the client are running on the same host or they map a directory that leads to the same location over NFS, for example.
Some (untested) code along the lines of:
function logartifact(mlf::GitLabMLFlow, run_id::AbstractString, basefilename::AbstractString, data)
mlflowrun = getrun(mlf, run_id)
artifact_uri = mlflowrun.info.artifact_uri
filepath = joinpath(artifact_uri, basefilename)
try
HTTP.post(url, push!(copy(mlf.headers), "Content-Type" => "multipart/form-data" ),
HTTP.Form(Dict(:file => data)))
catch e
error("Unable to upload $(filepath): $e")
end
filepath
end
Would probably work for this purpose and not introduce new dependencies.
The question remains how to differentiate between local and remote file access, as they happen through different interfaces (the headers are irrelevant for file access for example).
I see three options to approach this and would be interested in making a pull request implementing one of these and testing them against a local mlflow instance and the gitlab end points to confirm they are working (for me).
- Use a different subtype of
AbstractMLFlowto denote remote instances. (Probably not preferred) - Keep using a String and just have an if checking for prefixes of "https://" and use HTTP then.
- Switch to using URIs and use file:// to denote file access and check the prefix in an if statement.
This is simply a question of taste i would leave to (some of) the maintainers.
- Lingua principale
- Julia
- Stelle
- 59
- Fork
- 17
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaAI/MLFlowClient.jl
-
tagbot-manual
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 58/100
JuliaAI/MLFlowClient.jl#83 ·
-
Migrate backend from raw REST API to PythonCall.jl + CondaPkg.jlForse di nuovo libera @pebeto l’ha presa 217 giorni fa e non c’è nessuna pull request aperta. Apertadocumentation enhancement help wanted
JuliaAI/MLFlowClient.jl#79 · 5 commenti · 1 assegnatario ·
-
Improve local testabilityApertaenhancement help wanted
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
JuliaAI/MLFlowClient.jl#31 · 8 commenti ·
Tutte le issue di JuliaAI/MLFlowClient.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
bignums
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaNLSolvers/NLsolve.jl#319 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100