Status on cloudpickle non-determinism
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
Línea de trabajo
Comienza revisando el issue #385 y el PR #428, y después reproduce las diferencias de ordenación notificadas con pickletools.dis sobre una función mínima. El issue no proporciona un caso de prueba breve ni un archivo fuente; se considera terminado cuando se haya establecido la postura oficial del proyecto sobre los pickles deterministas y se haya registrado una resolución clara para el comportamiento de cloudpickle 2.0.0.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Hello,
@ogrisel mentioned in this comment (https://github.com/cloudpipe/cloudpickle/issues/385#issuecomment-661103789):
Anyway, having deterministic pickles is probably out of scope for cloudpickle so I would be in favor of closing this issue.
However, @ogrisel also pushed a PR (#428) which was released as part of cloudpickle 2.0.0 that tried to address non determinism owing to dictionary ordering.
I wanted to confirm what is the official status of the project regarding non determinism because I am still seeing non deterministic pickles in cloudpickle 2.0.0
Here is the pickletools.dis outputs of a function:
...
2539: ( MARK
2540: \x8c SHORT_BINUNICODE 'correlation_matrix'
2560: \x94 MEMOIZE (as 115)
2561: \x8c SHORT_BINUNICODE 'drifts_annual'
2576: \x94 MEMOIZE (as 116)
2577: \x8c SHORT_BINUNICODE 'initial_prices'
2593: \x94 MEMOIZE (as 117)
2594: \x8c SHORT_BINUNICODE 'volatilities_annual'
2615: \x94 MEMOIZE (as 118)
2616: \x91 FROZENSET (MARK at 2539)
2617: \x94 MEMOIZE (as 119)
...
pickle of a function on second attempt:
...
2539: ( MARK
2540: \x8c SHORT_BINUNICODE 'volatilities_annual'
2561: \x94 MEMOIZE (as 115)
2562: \x8c SHORT_BINUNICODE 'initial_prices'
2578: \x94 MEMOIZE (as 116)
2579: \x8c SHORT_BINUNICODE 'drifts_annual'
2594: \x94 MEMOIZE (as 117)
2595: \x8c SHORT_BINUNICODE 'correlation_matrix'
2615: \x94 MEMOIZE (as 118)
2616: \x91 FROZENSET (MARK at 2539)
2617: \x94 MEMOIZE (as 119)
...
As you can see, the entries are all the same, but shuffled around.
This function is part of a large project, so unfortunately I can't produce a short test case right now.
Notice that kubeflow pipelines implement caching by making sure that pickle of the function hasn't changed. (there is an option to not use pickle as well, but it has its own problems). Having a non deterministic cloudpickle invalidates the cache every time making that feature useless.
Thanks.
- Lenguaje dominante
- Python
- Estrellas
- 1.9k
- Forks
- 197
- Merge medio
- 1 d 10 h
- PR fusionados (30 d)
- 1
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. Empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
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 cloudpipe/cloudpickle
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
cloudpipe/cloudpickle#593 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 42/100
cloudpipe/cloudpickle#595 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
cloudpipe/cloudpickle#592 · 2 comentarios ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
cloudpipe/cloudpickle#589 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 20/100
cloudpipe/cloudpickle#587 ·
Todos los issues de cloudpipe/cloudpickle
Issues similares
-
ACK_WAITING HELP_WANTED UPDATE_CS
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
OWASP/CheatSheetSeries#2458 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 90/100
BasedHardware/omi#19711 ·
Los mantenedores suelen responder en 1 día
-
Qwen3_5MoeModel no longer returns router_logits, breaking aux loss with output_router_logits=TrueAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
huggingface/transformers#49172 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
vllm-project/vllm-metal#885 ·
Los mantenedores suelen responder en 1 día