Passer au contenu principal
Chapitres du guide d’entraînement Toute la documentation

Référence de configuration de TrainingProject

Tous les champs du projet SDK 0.2.0, leurs valeurs par défaut et leurs règles de validation pour les modèles, les données, l’entraînement, les budgets, la reprise et l’évaluation.

Les commandes et le code restent en anglais dans toutes les langues. Remplacez les espaces réservés en majuscules par les valeurs de votre compte et de votre tâche payante ; ne collez pas de vraies clés dans des carnets ou des journaux partagés.

De la configuration à une exécution reproductible

Résoudre et examiner tous les paramètres avant toute opération payante ou mise à jour des poids.
  1. Décrire Modèle, enseignant et objectif
  2. Délimiter Données, confidentialité et budgets
  3. Valider Compatibilité de l’adaptateur et de l’environnement
  4. Figer le plan Paramètres résolus et empreintes
  5. Exécuter Uniquement le projet examiné

Décrire: Modèle, enseignant et objectif. Délimiter: Données, confidentialité et budgets. Valider: Compatibilité de l’adaptateur et de l’environnement. Figer le plan: Paramètres résolus et empreintes. Exécuter: Uniquement le projet examiné

Définir un projet et protéger ses données

Il s’agit du contrat de projet complet du schéma 1.0. Enregistrez l’exemple du mode automatique dans training.json. Résolvez les chemins relatifs depuis ce fichier, indiquez l’identifiant réel d’un modèle de référence inclus dans votre offre et gardez la clé API dans l’environnement secret du processus. La configuration sélectionne séparément le modèle de référence et le modèle étudiant entraînable ; les poids du modèle de référence ne sont jamais téléchargés.

  • Les clés inconnues sont rejetées. Tous les chemins doivent rester dans la racine du projet et les répertoires de sortie qui lui appartiennent.
  • Le partage avec le modèle de référence se limite aux sources d’entraînement approuvées. Les données de validation et de test final ne lui sont jamais transmises.
  • TrainingClient reste disponible pour les intégrations existantes fondées sur les tâches payantes et les sessions.
Projet, modèle et enseignant
Champ ou interfaceType ou résultatValeur par défaut ou code de sortieComportement et validation
schema_version string "1.0" Utilisez exactement 1.0. Les autres versions de schéma sont rejetées tant qu’elles ne sont pas explicitement prises en charge.
mode enum Obligatoire / sans valeur par défaut Obligatoire : automatic ou advanced. Le mode Automatique résout les valeurs par défaut compatibles ; le mode Avancé expose les contrôles explicites.
objective string Obligatoire / sans valeur par défaut Description de tâche obligatoire, de 10 à 4 000 caractères. Précisez le public, les capacités et le résultat attendu.
model.path string Obligatoire / sans valeur par défaut Chemin obligatoire vers un répertoire de modèle local dans la racine du projet, ou identifiant de dépôt associé à une révision immuable. Jamais un endpoint d’inférence du modèle de référence.
model.adapter string Obligatoire / sans valeur par défaut Identifiant obligatoire d’un adaptateur enregistré. transformers-causal-lm sélectionne l’adaptateur Transformers pour modèles de langage causal.
model.revision string | null null Les modèles locaux sont identifiés par empreinte. Les dépôts exigent une révision immuable de 40 ou 64 caractères.
teacher.provider string Obligatoire / sans valeur par défaut Identifiant fournisseur obligatoire issu de votre offre payante active. Il ne transfère pas la propriété du modèle.
teacher.reference_model_id integer Obligatoire / sans valeur par défaut Entier positif obligatoire parmi les modèles inclus dans cette offre fournisseur ; remplacez les espaces réservés.
Données et confidentialité
Champ ou interfaceType ou résultatValeur par défaut ou code de sortieComportement et validation
data.sources string[] [] Chemins vers les sources d’entraînement JSONL locales comportant un champ text. Les leçons du modèle de référence peuvent les compléter si teacher_sharing vaut approved_only.
data.teacher_sharing enum "approved_only" approved_only autorise le contenu d’entraînement examiné ; none interdit l’envoi de contenu client à l’enseignant. Les données d’évaluation réservées sont toujours exclues.
data.validation_path string | null null Fichier JSONL de validation indépendante facultatif. En son absence, le plan examiné définit une partition déterministe avant l’entraînement.
data.test_path string Obligatoire / sans valeur par défaut Fichier de test final indépendant obligatoire, jamais utilisé par la préparation avec l’enseignant ni par l’optimisation.
data.deduplicate boolean true Supprimez les exemples dupliqués ou qui se chevauchent entre les partitions ; signalez les exclusions sans révéler de texte privé.
data.seed integer 42 Entier non négatif pour les partitions déterministes et une initialisation reproductible lorsque le moteur le permet.
Exemple · json
{
  "schema_version": "1.0",
  "mode": "automatic",
  "objective": "Classify support messages as billing, account_access or technical_issue.",
  "model": {"path": "./models/student", "adapter": "transformers-causal-lm", "revision": null},
  "teacher": {"provider": "openai", "reference_model_id": 123},
  "data": {
    "sources": ["./data/train.jsonl"], "teacher_sharing": "none",
    "validation_path": "./data/validation.jsonl", "test_path": "./data/test.jsonl",
    "deduplicate": true, "seed": 42
  },
  "runtime": {"target": "customer_datacenter", "devices": "auto"},
  "training": {"method": "auto"},
  "curriculum": {"topics": ["intent", "ambiguous_requests", "class_balance"], "max_improvement_cycles": 3, "stop_on_regression": true},
  "budgets": {"max_training_minutes": 120, "max_teacher_requests": 1000, "max_storage_gib": 20},
  "checkpoints": {"keep_last": 3},
  "evaluation": {"rubric": "./rubric.json", "baseline_required": true},
  "output": {"directory": "./runs/german-001", "format": "safetensors"}
}

Choisir le mode d’entraînement automatique ou avancé

Le mode automatique résout une fois des paramètres compatibles et les consigne dans le plan examiné. Le mode avancé exige des paramètres explicites et n’accepte que des combinaisons compatibles d’architecture, de méthode, de précision et de matériel. Les valeurs par défaut ne garantissent ni la mémoire nécessaire ni les performances dans tous les cas. Toute combinaison non prise en charge échoue avant les téléchargements coûteux ou la mise à jour des poids.

  • SFT met à jour les paramètres admissibles du modèle. LoRA et QLoRA produisent des adaptateurs qui nécessitent le modèle de base correspondant.
  • En DDP, le lanceur approuvé fournit les rangs des nœuds et les paramètres de rendez-vous ; les nœuds doivent s’accorder sur le nombre de processus, les versions et les empreintes.
  • L’architecture du modèle, le tokenizer et les limites de contexte restent obligatoires. Chaque famille supplémentaire nécessite un adaptateur avec des capacités propres vérifiées.
Environnement et distribution
Champ ou interfaceType ou résultatValeur par défaut ou code de sortieComportement et validation
runtime.target enum Obligatoire / sans valeur par défaut Obligatoire : fusionpointai_hosting, customer_datacenter ou colab. Sélectionne un environnement existant ; n’achète pas de matériel.
runtime.devices "auto" | integer[] "auto" auto sélectionne les périphériques approuvés compatibles ; une liste explicite contient des indices GPU visibles, uniques et non négatifs.
runtime.distributed.backend enum "none" none pour un processus, ou ddp avec un adaptateur pris en charge et un lanceur multi-processus approuvé.
runtime.distributed.nodes integer 1 Entier positif. Une valeur supérieure à un exige DDP, un accès convenu aux nœuds, des rangs et un rendez-vous sécurisé ; cette valeur ne réserve aucune capacité.
Paramètres d’entraînement
Champ ou interfaceType ou résultatValeur par défaut ou code de sortieComportement et validation
training.method enum "auto" Valeur parmi auto, SFT, LoRA ou QLoRA. Le mode automatique résout auto ; le mode avancé utilise une méthode prise en charge explicitement.
training.epochs number | "auto" "auto" Nombre positif fini ou auto uniquement en mode Automatique ; le nombre effectif d’étapes est aussi limité par la durée et les ressources approuvées.
training.learning_rate number | "auto" "auto" Nombre positif fini inférieur à 1 ou auto uniquement en mode Automatique. Les politiques de l’adaptateur et commerciales peuvent fixer des limites plus strictes.
training.batch_size integer | "auto" "auto" Entier positif par périphérique ou auto uniquement en mode Automatique ; l’adéquation à la mémoire est vérifiée avant exécution.
training.gradient_accumulation_steps integer | "auto" "auto" Entier positif ou auto uniquement en mode Automatique. La taille effective du lot tient compte du nombre de processus et de l’accumulation.
training.max_sequence_length integer | "auto" "auto" Entier positif dans les limites du tokenizer et du modèle, ou auto uniquement en mode Automatique ; le contexte du modèle n’est jamais prolongé silencieusement.
training.precision enum "auto" auto, fp32, fp16 ou bf16 selon le matériel et le moteur ; valeur explicite en mode Avancé.
training.lora.rank integer 16 Rang positif de l’adaptateur. Utilisé uniquement avec LoRA/QLoRA et les modules cibles admissibles.
training.lora.alpha number 32 Valeur positive finie de mise à l’échelle de l’adaptateur. Utilisée uniquement avec LoRA/QLoRA.
training.lora.dropout number 0.05 Valeur finie comprise entre 0 inclus et 1 exclu. Utilisée uniquement avec LoRA/QLoRA.
training.lora.target_modules "auto" | string[] "auto" auto résout les noms de modules pris en charge dans le plan ; vous pouvez aussi fournir une liste non vide de noms admissibles.
Contrôles du programme
Champ ou interfaceType ou résultatValeur par défaut ou code de sortieComportement et validation
curriculum.topics string[] [] Noms de thèmes ordonnés. Une liste vide permet au mode Automatique de proposer les prérequis ; le mode Avancé exige une séquence explicite et examinée.
curriculum.max_improvement_cycles integer 3 Entier positif, maximum 10. Arrêtez plus tôt si un budget est épuisé, s’il n’y a plus de progrès ou en cas de régression.
curriculum.stop_on_regression boolean true Si true, arrête l’amélioration en cas de régression définie par la grille. Si false, une régression entraîne tout de même un échec de l’acceptation finale.
Exemple · json
{
  "schema_version": "1.0",
  "mode": "advanced",
  "model": {"path": "./models/student", "adapter": "transformers-causal-lm", "revision": null},
  "teacher": {"provider": "openai", "reference_model_id": 123},
  "objective": "Classify support messages as billing, account_access or technical_issue.",
  "data": {"sources": ["./data/train.jsonl"], "teacher_sharing": "none", "validation_path": "./data/validation.jsonl", "test_path": "./data/test.jsonl"},
  "runtime": {"target": "customer_datacenter", "devices": [0, 1], "distributed": {"backend": "ddp", "nodes": 1}},
  "training": {
    "method": "LoRA",
    "epochs": 3,
    "learning_rate": 0.0002,
    "batch_size": 1,
    "gradient_accumulation_steps": 16,
    "max_sequence_length": 2048,
    "precision": "bf16",
    "lora": {"rank": 16, "alpha": 32, "dropout": 0.05}
  },
  "curriculum": {
    "topics": ["intent", "ambiguous_requests", "class_balance"],
    "max_improvement_cycles": 3,
    "stop_on_regression": true
  },
  "checkpoints": {"every_steps": 100, "keep_last": 3, "resume_validation": "strict"},
  "budgets": {"max_training_minutes": 120, "max_teacher_requests": 1000, "max_storage_gib": 20},
  "evaluation": {"rubric": "./rubric.json", "baseline_required": true},
  "output": {"directory": "./runs/german-advanced-001", "format": "safetensors"}
}

Définir des budgets limités et des critères d’acceptation mesurables

Chaque projet dispose de budgets explicites de durée, de requêtes à l’enseignant et de stockage. Arrêtez-vous dès qu’un budget est épuisé, qu’un contrôle d’intégrité échoue, qu’une régression survient ou qu’il n’y a plus de progrès. Enregistrez un état de reprise valide et expliquez les critères non satisfaits. Une grille définit des tâches d’acceptation indépendantes ; elle ne transforme pas un score d’exemple en résultat obtenu.

  • La grille d’exemple utilise une échelle normalisée de 0 à 1 et des critères obligatoires distincts. Tous les critères obligatoires doivent être satisfaits.
  • Toute modification des données, du modèle, de l’évaluation, de la topologie ou des budgets exige un nouveau plan examiné, plutôt qu’une reprise forcée avec des paramètres incompatibles.
  • Les exports contiennent des fichiers de modèle ou d’adaptateur validés, le tokenizer et les manifestes, mais ni identifiants secrets, ni données de cache sans rapport, ni code de modèle non examiné.
Budgets, reprise et sortie
Champ ou interfaceType ou résultatValeur par défaut ou code de sortieComportement et validation
budgets.max_training_minutes number Obligatoire / sans valeur par défaut Budget d’exécution positif fini en minutes, obligatoire ; comprend le temps réel de préparation et d’évaluation après le démarrage de l’exécution.
budgets.max_teacher_requests integer Obligatoire / sans valeur par défaut Entier positif obligatoire ; compte les tentatives de préparation, d’examen et de nouvelle tentative. Échec fermé avant dépassement.
budgets.max_storage_gib number Obligatoire / sans valeur par défaut Budget positif fini de stockage possédé, en GiB et obligatoire ; couvre données, points de contrôle et artefacts. Ne supprimez jamais de fichiers sans rapport.
checkpoints.every_steps integer 100 Intervalle positif en étapes entre points de contrôle. Enregistrez aussi un point atomique valide lors d’une mise en pause réussie.
checkpoints.keep_last integer 3 Entier de 1 à 5. Supprimez uniquement les anciens points de contrôle appartenant à l’exécution après validation d’un plus récent.
checkpoints.resume_validation enum "strict" strict uniquement. Rejette toute modification des empreintes du modèle, des données, de la configuration, de l’évaluateur ou de la topologie distribuée.
evaluation.rubric string Obligatoire / sans valeur par défaut Chemin obligatoire vers une grille valide, avec évaluateurs épinglés et critères obligatoires mesurables.
evaluation.baseline_required boolean true true uniquement dans le présent contrat. Évaluez la référence intacte avant toute mise à jour des poids.
output.directory string Obligatoire / sans valeur par défaut Nouveau répertoire d’exécution dédié obligatoire. Les exécutions existantes peuvent être examinées ou reprises, jamais écrasées par run.
output.format enum "safetensors" safetensors ou adapters, uniquement si pris en charge. Un export d’adaptateur exige le modèle de base et le tokenizer épinglés.
Champs de la grille d’évaluation
Champ ou interfaceType ou résultatValeur par défaut ou code de sortieComportement et validation
schema_version string "1.0" Schéma de grille 1.0, distinct de la version du paquet.
name string Obligatoire / sans valeur par défaut Nom non vide de grille obligatoire, utilisé dans les rapports.
scale.minimum number 0 Borne inférieure du score normalisé : 0 pour ce schéma.
scale.maximum number 1 Borne supérieure du score normalisé : 1 pour ce schéma.
criteria object[] Obligatoire / sans valeur par défaut Liste non vide. Chaque critère obligatoire doit réussir ; les identifiants doivent être uniques.
criteria[].id string Obligatoire / sans valeur par défaut Identifiant stable de critère obligatoire, conservé dans les rapports.
criteria[].description string | null null Texte explicatif facultatif. Une description n’est pas un évaluateur sémantique.
criteria[].metric string Obligatoire / sans valeur par défaut Métrique enregistrée obligatoire : exact_match, macro_f1, text_similarity, chrf ou évaluateur personnalisé enregistré.
criteria[].minimum_score number Obligatoire / sans valeur par défaut Seuil fini obligatoire entre 0 et 1. Un seuil d’exemple ne garantit pas le résultat.
regression.maximum_score_drop number 0.02 Baisse absolue normalisée maximale autorisée par rapport à la référence intacte, de 0 à 1 ; évaluée pour chaque critère conservé.
final_test.path string Obligatoire / sans valeur par défaut Obligatoire ; doit désigner le même fichier indépendant que data.test_path.
final_test.allow_training_use boolean false false uniquement. Rejette toute configuration qui permet aux réponses du test réservé d’entrer dans l’entraînement ou les entrées de l’enseignant.
Exemple · text
SDK 0.2.0 CONFIGURATION RULES
Unknown fields, duplicate IDs, nonfinite numbers and unsafe paths are rejected.
All model, data, rubric and output paths must resolve inside the project root.
Automatic mode resolves "auto" once; save all resolved values in the plan manifest.
Advanced mode requires explicit method, epochs, learning_rate, batch_size,
gradient_accumulation_steps, max_sequence_length and precision.
SFT does not consume LoRA options. LoRA/QLoRA require a compatible adapter.
Model files and pinned revisions are verified within the project root.
Use the CLI for explicit GPU indexes; Python callers can set CUDA_VISIBLE_DEVICES
before starting Python and keep runtime.devices set to auto.
No automatic execution of untrusted model code, shell commands or plugins.
All three budgets must be finite, positive and explicitly supplied.
Storage includes owned checkpoints, datasets and artifacts, not unrelated files.
Held-out test data must not be sent to the teacher or used for weight updates.
CLI overrides are limited to the documented flags; never silently override a plan.
RUBRIC RULES
Every criterion requires a registered metric and minimum_score; descriptions are not semantic evaluators.
Built-in metrics: exact_match, macro_f1, text_similarity and chrf.
Custom deterministic scorers use register_evaluator(name, scorer, version="...").
Evaluator versions and scoring configuration are pinned in the plan.
0 <= minimum_score <= 1 for the example's normalized scale.
All required criteria must pass; do not average away a failed criterion.
The final_test.path must match data.test_path; allow_training_use must be false.
Scores and budgets in examples are requested settings, not measured results.