Zum Hauptinhalt springen
Kapitel des Trainingsleitfadens Alle Dokumentationen

TrainingProject: Konfiguration und Ablauf

Der SDK-0.2.0-Ablauf für zielorientiertes Training, Evaluation, Wiederherstellung und Export.

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.

TrainingProject-Ablauf

Eine Projektkonfiguration steuert Planung, Training, Evaluation und Export.
  1. Projekt Modell, Ziel und Datenrichtlinie
  2. Plan Kompatibilität, Lehrplan und Budgets
  3. Ausführen Daten, Training und Checkpoints
  4. Verbessern Begrenzte Themen- und Regressionsevaluation
  5. Exportieren Geprüftes Artefakt und reproduzierbarer Bericht

Projekt: Modell, Ziel und Datenrichtlinie. Plan: Kompatibilität, Lehrplan und Budgets. Ausführen: Daten, Training und Checkpoints. Verbessern: Begrenzte Themen- und Regressionsevaluation. Exportieren: Geprüftes Artefakt und reproduzierbarer Bericht

Ein Projekt, eine reproduzierbare Konfiguration

Die Projektkonfiguration bindet ein lokales Student-Modell, eine bezahlte Teacher-Referenz, Ziel, Datenrichtlinie, Laufzeitumgebung, Lehrplan und Bewertungsraster. Automatic löst kompatible Standardwerte auf; Advanced bietet unterstützte Einstellungen. Der Probelaufplan zeigt Modellkompatibilität, Themen, Datenflüsse, Budgets, Fingerprints und erwartete Artefakte, bevor das Training beginnt.

  • Python-Projekt-API und fpai-training verwenden dieselbe Engine.
  • Modell-, Datensatz-, Evaluator- und Konfigurationspfade werden innerhalb des Projektverzeichnisses validiert.
  • Versionieren Sie eigene Evaluatoren und bewahren Sie Laufmanifeste auf.
Beispiel · 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"}
}
Beispiel · 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"}
}
Beispiel · bash
fpai-training init --directory ./german-project
fpai-training doctor --config ./german-project/training.json
fpai-training plan --config ./german-project/training.json --dry-run
fpai-training run --config ./german-project/training.json
fpai-training status --run ./german-project/runs/german-001
fpai-training pause --run ./german-project/runs/german-001
fpai-training resume --run ./german-project/runs/german-001
fpai-training cancel --run ./german-project/runs/german-001
fpai-training evaluate --run ./german-project/runs/german-001 --split test
fpai-training export --run ./german-project/runs/german-001 --format safetensors
# init creates a project; doctor checks local compatibility; plan makes no teacher call.
# run requires current paid reference access, enforces budgets and trains locally.
# pause saves a checkpoint; resume verifies project fingerprints; cancel is terminal.
# evaluate reads local held-out rows; export validates the accepted local artifact.
Beispiel · python
import os
from fusionpointai_training import TrainingProject

project = TrainingProject.from_file(
    "./german-project/training.json",
    api_key=os.environ["FUSIONPOINTAI_API_KEY"],
)
plan = project.plan(dry_run=True)
result = project.run()
evaluation = project.evaluate(split="test")
artifact = project.export(format="safetensors")
# Related controls: project.status(), project.pause(), project.resume(), project.cancel().

Trainings- und Evaluationsverhalten

Der Transformers-Adapter für kausale Sprachmodelle führt für kompatible Modelle und Laufzeitumgebungen echtes SFT-, LoRA- oder QLoRA-Training aus. Das Projekt koordiniert bezahlten Teacher-Zugriff, lokale Datensätze, themenbezogene Evaluation, Regressionsprüfungen und begrenzte Verbesserungszyklen. Nicht unterstützte Architektur-, Hardware- oder Exportkombinationen scheitern an der Kompatibilitätsprüfung.

  • Abbruchgründe umfassen accepted, budget_exhausted, no_progress, regression, cancelled und failed.
  • Native Checkpoints und Laufstatus bleiben im privaten, eigenen Laufverzeichnis.
  • Teacher-Freigaben folgen der Projektrichtlinie; Validierungs- und Abschlusstestdaten bleiben lokal.
Beispiel · json
{
  "schema_version": "1.0",
  "name": "support-category-evaluation",
  "scale": {"minimum": 0.0, "maximum": 1.0},
  "criteria": [
    {"id": "support_category", "description": "Match the expected support category.", "metric": "macro_f1", "minimum_score": 0.85}
  ],
  "regression": {"maximum_score_drop": 0.02},
  "final_test": {"path": "./data/test.jsonl", "allow_training_use": false}
}
Beispiel · text
SDK 0.2.0 CLI AND PROJECT CONTRACT
Configuration/rubric values above are examples, not achieved scores or guarantees.
doctor must reject incompatible architecture, precision, hardware and export settings.
plan --dry-run validates and estimates; it must not update weights or start paid work.
run uses the declared data-sharing policy and enforces all configured budgets.
pause saves a valid atomic checkpoint before stopping owned training workers.
resume validates the checkpoint's model/config/data/evaluator fingerprints.
cancel requests termination of this run's workers; preserve useful logs and artifacts.
evaluate --split test must never feed test examples into training.
export validates files and manifests; never include credentials or unrelated cache files.

Project API:
TrainingProject.from_file(path, *, api_key) -> TrainingProject
plan(*, dry_run=True) -> dict
run() -> dict
status() -> dict
pause() -> dict
resume() -> dict
cancel() -> dict
evaluate(*, split="test") -> dict
export(*, format="safetensors") -> dict

Exit codes:
0 accepted/success; 2 invalid configuration; 3 incompatible runtime/model;
4 authentication/access; 5 budget exhausted; 6 acceptance not met;
7 execution failed; 130 interrupted.
Reports must record stop_reason and unmet criteria, not just an exit code.

Berichte und Artefakte prüfen

Ein Projektlauf protokolliert die unveränderte Baseline, gemessene Kriterien, Regressionen, Budgets und unerfüllte Anforderungen. Der Export prüft lokale Modell- oder Adapterdateien und erstellt Manifeste. Das Verhalten hängt von kompatibler Software und Hardware ab; die Beispiele sind weder Hardware-Benchmarks noch eine Garantie für Inferenz-Ergebnisse.

  • Training allein belegt keine Gleichwertigkeit mit dem Teacher-Modell.
  • Dokumentationsbeispiele lösen nicht automatisch kostenpflichtige Anfragen oder Trainingsläufe aus.
  • Prüfen Sie vor der Verwendung eines Artefakts die tatsächlichen lokalen Berichte und Dateien.
Beispiel · text
TrainingProject delivery files
model/                   validated model or adapter weights and tokenizer assets
exports/<format>/        accepted delivery files with a SHA-256 manifest
run-manifest.json        pinned model/data/config/runtime versions
baseline-report.json     untouched student model's measured criteria
evaluation-report.json   final criteria, measured scores and regressions
artifact-manifest.json   safe relative paths, bytes and SHA-256 per file
training-report.json     real steps, timings, budgets and stop reason

Never export credentials, environment files or private cache directories.