Discussion about dataset preparation speed
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 15/100
- Tipo de issue
- Refactorización
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- python
- Área
- data, performance
Línea de trabajo
The reproduction script calls GPTMemmapDataset and get_document_sizes from the fast_llm.data.dataset.gpt.memmap module, so start there and compare what the dataset preparation path does beyond reading document sizes. Profile a run over a few bin files to find where the 6.5 minutes go, since the issue's own baseline is about 13 seconds. Done means a measured explanation of the gap or a concrete change with timings, agreed with maintainers first.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
🎯 Description
With 1,250 bin files, dataset preparation takes around 6.5 minutes on 100 cores, 1TB RAM, and 8 GPUs.
However, if I simply iterate through these files, read document sizes, and write them to another file to simulate basic indexing, it takes only about 13 seconds on 12 processes (to match the scenario above, with 100/8 processes per GPU).
from fast_llm.data.dataset.gpt.memmap import GPTMemmapDataset
import numpy as np
import time
import yaml
import multiprocessing as mp
def count_tokens_save_doc_sizes(file, out_file):
ds = GPTMemmapDataset("ds", file)
sizes = ds.get_document_sizes().astype(np.int64)
sizes.tofile(out_file)
return np.sum(sizes)
if __name__ == "__main__":
with open("/mnt/datasets/test/denis/fineweb_the_stack_3b.yaml", "rt") as f:
data = yaml.safe_load(f)
files = [el["path"] for el in data["datasets"][0]["datasets"]] + [
el["path"] for el in data["datasets"][1]["datasets"]
]
t0 = time.time()
with mp.Pool(processes=12) as pool:
ttl = sum(
pool.starmap(
count_tokens_save_doc_sizes,
[(file, f"/mnt/datasets/test/denis/{i}.np") for i, file in enumerate(files)],
)
)
print(f"time {time.time()-t0}")
print(len(files), ttl)
So, I wonder—can we further increase the dataset preparation speed?
- Lenguaje dominante
- Python
- Estrellas
- 337
- Forks
- 52
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
- Incluye un Dockerfile o un 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 ServiceNow/Fast-LLM
-
Dificultad 4/5 3-5 días Aptitud para principiantes 25/100
ServiceNow/Fast-LLM#556 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 30/100
ServiceNow/Fast-LLM#538 ·
-
enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
ServiceNow/Fast-LLM#533 ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 15/100
ServiceNow/Fast-LLM#510 · 1 comentario ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 12/100
ServiceNow/Fast-LLM#507 ·
Todos los issues de ServiceNow/Fast-LLM
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
NousResearch/hermes-agent#147104 ·
Los mantenedores suelen responder en 1 día
-
premises-missing
Dificultad 1/5 Menos de una hora Aptitud para principiantes 88/100
WingedGuardian/GENesis-AGI#3801 ·
Los mantenedores suelen responder en 1 día
-
[oblt-aw][autodoc] Document new required `shared-org-key` input for `obs-aw-dependency-review`Posiblemente ocupada @github-actions la tomó hoy. Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
Los mantenedores suelen responder en 1 día
-
bot-triaged module: inductor oncall: pt2 topic: fuzzer triaged
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 78/100
Los mantenedores suelen responder en 4 días