Befehle und Code bleiben in allen Sprachen auf Englisch. Ersetzen Sie GROSSGESCHRIEBENE Platzhalter durch Werte Ihres eigenen Kontos und bezahlten Auftrags. Fügen Sie echte Schlüssel nicht in gemeinsam genutzte Notebooks oder Protokolle ein.
Projekt erstellen und ausführen
- Installieren Python-Umgebung
- Konfigurieren Modell, Daten und Bewertungsraster
- Planen Kompatibilität und Budgets
- Trainieren Lokale Optimierung
- Prüfen Evaluation und Artefakt
Installieren: Python-Umgebung. Konfigurieren: Modell, Daten und Bewertungsraster. Planen: Kompatibilität und Budgets. Trainieren: Lokale Optimierung. Prüfen: Evaluation und Artefakt
Umgebung vorbereiten
Verwenden Sie Python 3.10 oder neuer in einer eigenen virtuellen Umgebung. Installieren Sie das Training-Extra und einen kompatiblen PyTorch-Build. TrainingProject nutzt den vorhandenen Transformers-Adapter für kausale Sprachmodelle mit Fähigkeitsprüfungen für SFT, LoRA und QLoRA. Sie benötigen einen API-Schlüssel, bezahlten Zugriff auf die Teacher-Referenz, ein kompatibles lokales Modell, freigegebene Daten und ausreichend Speicherplatz. Die Auswahl einer Laufzeitumgebung stellt keine Hardware bereit.
- Das Basispaket enthält
TrainingClientund die Projekt-API; das Training-Extra installiert lokale Trainingsabhängigkeiten. - Speichern Sie API-Schlüssel in der geheimen Laufzeitumgebung, nicht in Projektdateien oder Befehlszeilenargumenten.
- QLoRA benötigt eine kompatible CUDA-Laufzeit und Quantisierungsabhängigkeiten.
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'
Projekt konfigurieren und Plan prüfen
Legen Sie ein Projektverzeichnis sowie JSONL-Dateien für Training, Validierung und Abschlusstest an und bearbeiten Sie training.json und rubric.json. Geben Sie den lokalen Pfad des Student-Modells, den Anbieter und eine enthaltene reference_model_id an. Der Plan prüft Konfiguration, Modellkompatibilität, Daten-Fingerprints, Freigaberichtlinie, Budgets und Ausgaben, ohne Gewichte zu ändern oder den Teacher aufzurufen.
- Verwenden Sie
schema_version1.0; dies ist die Konfigurationsschema-, nicht die Paketversion. - Pfade müssen relativ zum Projektverzeichnis aufgelöst werden und darin bleiben.
- Ein Lauf benötigt ein neues Ausgabeverzeichnis; Fortsetzen ist ein eigener Vorgang mit strengen Fingerprint-Prüfungen.
# 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"])
Evaluation und lokales Artefakt prüfen
Das Training misst eine Baseline des unveränderten Modells und evaluiert das Endmodell anhand lokaler, zurückgehaltener Daten. Berichte halten Messwerte, Regressionen, Fingerprints, Budgets und unerfüllte Anforderungen fest. Der Export prüft ein lokales Safetensors-Modell oder Adapterpaket und erstellt ein Manifest. Ein Adapter benötigt weiterhin das exakt festgelegte Basismodell und den passenden Tokenizer. Ein erfolgreicher Lauf garantiert keine über das Bewertungsraster hinausgehende Aufgabenqualität.
- Halten Sie Baseline- und Abschlusstestdateien von Trainings- und Teacher-Daten getrennt.
- Prüfen Sie
evaluation-report.jsonundartifact-manifest.json, bevor Sie Ausgaben verwenden. - Der Export lädt kein Modell hoch und stellt keine Inferenz in Produktion bereit.
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.