Phase 5: re-quantize merged checkpoint to NVFP4 with MTP/vision tensor reinjection and production-config verification #4

Merged
aleleba merged 16 commits from agente-fase5-quantize-nvfp4 into master 2026-07-30 06:41:14 -06:00
Showing only changes of commit b246f8d97a - Show all commits
+13 -5
View File
@@ -141,11 +141,19 @@ def load_train_examples(n):
def load_ultrachat_examples(n): def load_ultrachat_examples(n):
from datasets import load_dataset from datasets import load_dataset
print(f"[INFO] cargando {n} muestras de {ULTRACHAT_DATASET} (split={ULTRACHAT_SPLIT})") # streaming=True: el split train_sft completo tiene ~208k ejemplos (~2.9GB
ds = load_dataset(ULTRACHAT_DATASET, split=ULTRACHAT_SPLIT) # materializados como Arrow por load_dataset sin streaming, las 4 splits del
ds = ds.shuffle(seed=CALIBRATION_SEED).select(range(n)) # repo se generan igual). En este hardware (GB10, memoria unificada CPU/GPU)
examples = [{"messages": row["messages"]} for row in ds] # ese cache extra resulto ser suficiente para tirar un CUDA OOM reproducible
print(f"[INFO] {len(examples)} muestras de {ULTRACHAT_DATASET} cargadas") # durante el setup de oneshot() (trace_subgraphs/disable_lm_head), incluso
# truncando las secuencias a 2048 tokens -- el problema no era el largo de
# secuencia sino la memoria consumida por materializar el dataset completo.
# Con streaming solo se bajan los ~n ejemplos necesarios, sin cache local.
print(f"[INFO] cargando {n} muestras de {ULTRACHAT_DATASET} (split={ULTRACHAT_SPLIT}, streaming)")
ds = load_dataset(ULTRACHAT_DATASET, split=ULTRACHAT_SPLIT, streaming=True)
ds = ds.shuffle(seed=CALIBRATION_SEED, buffer_size=10_000)
examples = [{"messages": row["messages"]} for row in ds.take(n)]
print(f"[INFO] {len(examples)} muestras de {ULTRACHAT_DATASET} cargadas (streaming, sin materializar el dataset completo)")
return examples return examples