Artificact upload for remote instances
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- julia
- Área
- api, machine-learning
Línea de trabajo
Empieza en src/loggers.jl alrededor de las líneas 69-72 e inspecciona logartifact y getrun para entender cómo se gestiona actualmente artifact_uri. Decide con los maintainers cómo se debe distinguir entre el acceso local y remoto a los artefactos, y después verifica la implementación elegida con una instancia local de MLflow y los endpoints de GitLab; se considerará terminado cuando las cargas de artefactos remotos funcionen sin romper el acceso local.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- Julia
- Estrellas
- 59
- Forks
- 17
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de JuliaAI/MLFlowClient.jl
-
tagbot-manual
Dificultad 1/5 Menos de una hora Aptitud para principiantes 58/100
JuliaAI/MLFlowClient.jl#83 ·
-
Migrate backend from raw REST API to PythonCall.jl + CondaPkg.jlQuizá libre de nuevo @pebeto la tomó hace 217 días y no hay ningún pull request abierto. Abiertodocumentation enhancement help wanted
JuliaAI/MLFlowClient.jl#79 · 5 comentarios · 1 asignado ·
-
Improve local testabilityAbiertoenhancement help wanted
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
JuliaAI/MLFlowClient.jl#31 · 8 comentarios ·
Todos los issues de JuliaAI/MLFlowClient.jl
Issues similares
-
bignums
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
JuliaNLSolvers/NLsolve.jl#319 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
gridap/GridapPETSc.jl#129 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100