BeamWriter hits "Record exceeds maximum record size" in Dataflow with autosharding
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- gcp, python, tensorflow
- Área
- cloud, data, distributed-systems
Línea de trabajo
Comienza con tensorflow_datasets/core/utils/shard_utils.py, especialmente con la lógica de dimensionamiento en las líneas referenciadas, y rastrea cómo determina los shards para train_write/GroupShards. Compara el resultado automático de 2048 shards con la ejecución exitosa de Dataflow con 4096 shards explícitos, incluido el error de tamaño de recordwriter. Se considera terminado cuando se explique la discrepancia de dimensionamiento y se defina una corrección compatible o una limitación claramente especificada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
For TFDS 4.9.7 on Dataflow 2.60.0, I have a company-internal Dataflow job that fails. Given the input collection:
Elements added 332,090
Estimated size 1.74 TB
to train_write/GroupShards, where the output collection reports:
Elements added 2
Estimated size 1.8 GB
it then fails on the next element with
"E0123 207 recordwriter.cc:401] Record exceeds maximum record size (1096571470 > 1073741823)."
Workaround
By installing the TFDS prerelease after https://github.com/tensorflow/datasets/commit/37007453e963424b5cd5f81f19e0c4698dbed8e3 and controlling --num_shards=4096 (auto-detection choose 2048), the DatasetBuilder runs to completion on Dataflow. I'm curious why the auto-detection didn't choose more file shards however, as all training examples should be roughly the same size in this DatasetBuilder.
Suggested fix
Maybe this https://github.com/tensorflow/datasets/blob/9969ce542f4b0e1cbf0a085e8e0df11bccea5c17/tensorflow_datasets/core/utils/shard_utils.py#L79 is too little headroom for the training examples. The FeatureDict in this particular DatasetBuilder is large, and perhaps the key overhead is unusually large. Should that number be 0.8 instead? Or whether https://github.com/tensorflow/datasets/blob/9969ce542f4b0e1cbf0a085e8e0df11bccea5c17/tensorflow_datasets/core/utils/shard_utils.py#L54 should be larger when the FeatureDict contains many keys?
Side remark
Surprisingly Dataflow limits mention
Maximum size for a single element (except where stricter conditions apply, for example Streaming Engine). 2 GB
which doesn't seem to be true in practice since the GroupBy fails on ~1 GB as per the logged error.
- Lenguaje dominante
- Python
- Estrellas
- 4.6k
- Forks
- 1.6k
- Merge medio
- 5 h 47 min
- PR fusionados (30 d)
- 2
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la 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 tensorflow/datasets
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
tensorflow/datasets#11212 · 2 comentarios · 1 reacción ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
tensorflow/datasets#11233 ·
-
dataset request
Dificultad 4/5 3-5 días Aptitud para principiantes 20/100
tensorflow/datasets#11228 ·
-
QM9 download links are brokenAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
tensorflow/datasets#11210 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 1/100
tensorflow/datasets#11196 ·
Todos los issues de tensorflow/datasets
Issues similares
-
customer-reported
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
Azure/azure-cli#34150 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
community-request
Dificultad 1/5 Menos de una hora Aptitud para principiantes 95/100
NVIDIA-NeMo/Curator#2464 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
weblate-discover crashes with an unhandled FileNotFoundError when the directory does not existAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
WeblateOrg/translation-finder#1099 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
trezor/trezor-firmware#7997 ·
Los mantenedores suelen responder en 2 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día