Zum Hauptinhalt springen
Kapitel des Trainingsleitfadens Alle Dokumentationen

Ein Trainingsprojekt erstellen und ausführen

SDK 0.2.0 installieren, ein Projekt einrichten, den Plan prüfen und ein lokales Modell trainieren.

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

Plan und Evaluation prüfen, bevor Sie das lokale Artefakt verwenden.
  1. Installieren Python-Umgebung
  2. Konfigurieren Modell, Daten und Bewertungsraster
  3. Planen Kompatibilität und Budgets
  4. Trainieren Lokale Optimierung
  5. 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 TrainingClient und 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.
Beispiel · bash
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_version 1.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.
Beispiel · bash
# 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
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 · python
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.json und artifact-manifest.json, bevor Sie Ausgaben verwenden.
  • Der Export lädt kein Modell hoch und stellt keine Inferenz in Produktion bereit.
Beispiel · bash
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.