parameter-golf-submission

Par mkurman · zorai

Préparer et valider les dossiers d'enregistrement Parameter Golf : `train_gpt.py` autonome, `README.md`, `submission.json`, comptabilisation BPB FineWeb SP1024, journalisation de la taille des artefacts, journaux d'exécution et hygiène de dossier prête pour la PR.

npx skills add https://github.com/mkurman/zorai --skill parameter-golf-submission

Soumission Parameter Golf

Utilisez cette skill lors de la création ou de l'examen d'un dossier de soumission Parameter Golf, indépendamment du fournisseur cloud utilisé pour l'exécution.

Contrat du dossier Record

Un dossier de soumission doit contenir :

records/<track>/<submission-name>/
  README.md
  submission.json
  train_gpt.py
  train.log          # après une exécution réelle

train_gpt.py doit compiler et s'exécuter depuis ce dossier dans un checkout Parameter Golf propre.

Contraintes de compétition à préserver

  • Limite d'artefact : 16 000 000 octets décimaux.
  • Limite d'entraînement pour les records du classement : 10 minutes sur 8xH100 SXM-class.
  • Métrique d'évaluation : bits par octet de validation FineWeb (val_bpb).
  • Aucune fuite d'ensemble de validation. L'entraînement au moment de l'évaluation ne peut utiliser que des tokens de validation déjà notés, si implémenté.
  • Aucun téléchargement/appel réseau caché pendant l'évaluation.
  • Aucune importation de référentiel local à moins qu'elle ne soit incluse et comptabilisée dans le dossier record.
  • Si le tokenizer change, prouvez soigneusement la comptabilité BPB ; SP1024 standard est plus sûr pour la première participation.

Liste de contrôle Script autonome

Avant l'exécution :

  • [ ] python -m py_compile train_gpt.py réussit.
  • [ ] Les imports sont des packages d'environnement standard/autorisés uniquement (torch, numpy, sentencepiece, etc.).
  • [ ] DATA_PATH et TOKENIZER_PATH sont configurables par env.
  • [ ] Le script charge fineweb_train_*.bin et fineweb_val_*.bin avec le format d'en-tête binaire Parameter Golf.
  • [ ] Le script calcule le BPB de validation à partir de la comptabilité d'octets SentencePiece, pas simplement la perte de token.
  • [ ] Le script enregistre le nombre de paramètres et l'estimation de la taille d'artefact.
  • [ ] Le script écrit un artefact compressé, généralement final_model.int8.ptz.
  • [ ] Le script recharge/dequantize l'artefact compressé et évalue le modèle round-trip.
  • [ ] Le log final inclut final_int8_zlib_roundtrip_exact.

Contenu du README

Le README doit inclure :

  • résumé court de l'architecture
  • ensemble de données/tokenizer utilisé
  • commande exacte
  • matériel d'exécution et budget de temps
  • métriques finales après l'exécution
  • ligne de taille d'artefact après l'exécution
  • mises en garde si l'exécution est smoke/non-record/en attente de vérification

Contenu de submission.json

Utilisez les valeurs réelles après l'exécution, pas des espaces réservés :

{
  "run_name": "...",
  "author": "...",
  "github_id": "...",
  "track": "track_10min_16mb or track_non_record_16mb",
  "val_bpb": 1.2345,
  "val_loss": 2.1234,
  "artifact_size_bytes": 12345678,
  "command": "...",
  "status": "completed"
}

Ajoutez des champs d'architecture selon les besoins, mais ne revendiquez pas l'éligibilité au record à moins que le log ne le prouve.

Extraction après exécution

Après une exécution, extrayez ces lignes :

grep -E "final_int8_zlib_roundtrip_exact|Total submission size int8\+zlib|stopping_early|train_time|model_params" train.log

Mettez à jour :

  • submission.json.val_bpb
  • submission.json.val_loss
  • submission.json.artifact_size_bytes
  • section métriques README

Étiquettes de statut

Utilisez un statut précis :

  • prepared_pending_run : dossier créé, aucune exécution réelle encore
  • smoke_passed : exécution courte/non-finale réussie
  • completed_non_record : exécution complète mais non valide pour le classement ou non SOTA
  • completed_record_candidate : exécution conforme 8xH100 10 minutes avec log complet et artefact sous la limite
  • failed : inclure la raison de l'échec et le dernier checkpoint/ligne de log fonctionnel

Modes d'échec courants

  • Importation accidentelle de code de modèle local (from src...) absent du dossier record.
  • Oubli de copier train.log depuis logs/<RUN_ID>.txt.
  • Rapport de BPB pré-quant au lieu de BPB round-trip int8.
  • Dépassement de 16 MB après comptage du code + artefact compressé.
  • Exécution sur 1 GPU et affirmation que c'est valide pour le classement.
  • Utilisation d'un tokenizer personnalisé sans preuve exacte de comptabilité en octets.

Skills similaires