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.
Créer et exécuter un projet
- Installer Environnement Python
- Configurer Modèle, données et grille
- Planifier Compatibilité et budgets
- Entraîner Optimisation locale
- Examiner Évaluation et artefact
Installer: Environnement Python. Configurer: Modèle, données et grille. Planifier: Compatibilité et budgets. Entraîner: Optimisation locale. Examiner: Évaluation et artefact
Préparer votre environnement
Utilisez Python 3.10 ou une version ultérieure dans un environnement virtuel dédié. Installez l’option d’entraînement et une version de PyTorch compatible avec votre environnement d’exécution. TrainingProject utilise un adaptateur Transformers existant pour les modèles de langage causal, avec vérifications des capacités SFT, LoRA et QLoRA. Il vous faut une clé API de compte, un accès payant au modèle de référence pour les opérations avec l’enseignant, un modèle local compatible, des données approuvées et suffisamment d’espace de stockage. Choisir un environnement d’exécution ne fournit pas de matériel.
- Le paquet de base fournit TrainingClient et l’API de projet ; l’option train installe les dépendances d’entraînement local.
- Gardez les clés API dans l’environnement secret du processus, et non dans les fichiers du projet ou les arguments de commande.
- QLoRA nécessite un environnement CUDA et des dépendances de quantification compatibles.
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
# Install the GPU-compatible PyTorch build for your runtime first.
python -m pip install 'fusionpointai-training[train] @ https://fusionpointai.com/downloads/fusionpointai-training.zip'
# API-only use without local training dependencies:
# python -m pip install 'fusionpointai-training @ https://fusionpointai.com/downloads/fusionpointai-training.zip'
Configurer et examiner le projet
Créez un répertoire de projet, préparez des fichiers JSONL d’entraînement, de validation et de test final, puis modifiez training.json et rubric.json. Définissez le chemin local du modèle à entraîner, le fournisseur et le reference_model_id inclus. Le plan valide la configuration, la compatibilité du modèle, les empreintes des données, la politique de partage, les budgets et les sorties sans modifier les poids ni appeler le modèle de référence.
- Utilisez schema_version 1.0 ; il s’agit de la version du schéma de configuration, pas du paquet.
- Utilisez des chemins relatifs au projet qui restent dans sa racine.
- Chaque exécution nécessite un nouveau répertoire de sortie ; la reprise est une opération distincte avec des vérifications strictes des empreintes.
# Enter the key using a secure runtime secret facility or this history-safe prompt.
read -rs -p 'FusionPointAI API key: ' FUSIONPOINTAI_API_KEY
export FUSIONPOINTAI_API_KEY
printf '\n'
python --version
fpai-training --version
# After the project run, clear the shell value: unset FUSIONPOINTAI_API_KEY
{
"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"}
}
import os
from fusionpointai_training import TrainingProject
project = TrainingProject.from_file(
"./support-project/training.json",
api_key=os.environ["FUSIONPOINTAI_API_KEY"],
)
plan = project.plan(dry_run=True)
print("Topics:", plan["topics"], "Budgets:", plan["budgets"])
result = project.run()
print("Run:", result["run_id"], result["status"], result["stop_reason"])
evaluation = project.evaluate(split="test")
print("Accepted:", evaluation["accepted"], evaluation["report_path"])
artifact = project.export(format="safetensors")
print("Artifact:", artifact["artifact_path"], artifact["sha256"])
Vérifier l’évaluation et l’artefact local
L’entraînement mesure une référence sur le modèle intact puis effectue une évaluation finale sur des lignes locales tenues à l’écart. Les rapports consignent les critères mesurés, les régressions, les empreintes, les budgets et les exigences non satisfaites. L’export valide un modèle safetensors local ou un paquet d’adaptateur et écrit un manifeste. Un adaptateur nécessite toujours son modèle de base et son tokenizer exacts, épinglés. Une exécution réussie ne garantit pas une qualité au-delà de la grille mesurée.
- Gardez les fichiers de référence et de test final séparés des données d’entraînement et des entrées envoyées au modèle de référence.
- Consultez evaluation-report.json et artifact-manifest.json avant d’utiliser les résultats.
- L’export ne téléverse pas le modèle et ne déploie pas d’inférence en production.
cat ./support-project/runs/support-001/training-report.json
cat ./support-project/runs/support-001/evaluation-report.json
cat ./support-project/runs/support-001/artifact-manifest.json
sha256sum ./support-project/runs/support-001/exports/safetensors/artifact-manifest.json
# Compare the digest with the value returned by project.export().
# Adapter exports also require the matching base model and tokenizer.