Saltar al contenido principal
Capítulos de la guía de entrenamiento Toda la documentación

Crea y ejecuta un proyecto de entrenamiento

Instala SDK 0.2.0, configura un proyecto, revisa el plan y entrena un modelo local.

Los comandos y el código se mantienen en inglés en todos los idiomas. Sustituye los marcadores en mayúsculas por valores de tu cuenta y de tu tarea de pago; no pegues claves reales en cuadernos ni registros compartidos.

Crear y ejecutar un proyecto

Revisa el plan y la evaluación antes de utilizar el artefacto local.
  1. Instalar Entorno Python
  2. Configurar Modelo, datos y rúbrica
  3. Planificar Compatibilidad y presupuestos
  4. Entrenar Optimización local
  5. Revisar Evaluación y artefacto

Instalar: Entorno Python. Configurar: Modelo, datos y rúbrica. Planificar: Compatibilidad y presupuestos. Entrenar: Optimización local. Revisar: Evaluación y artefacto

Prepara tu entorno

Usa Python 3.10 o posterior en un entorno virtual dedicado. Instala la opción de entrenamiento y una compilación de PyTorch compatible con tu entorno de ejecución. TrainingProject utiliza un adaptador existente de Transformers para modelos de lenguaje causal, con comprobaciones de capacidad para SFT, LoRA y QLoRA. Necesitas una clave API de la cuenta, acceso de pago al modelo de referencia para las operaciones con el docente, un modelo local compatible, datos aprobados y espacio suficiente. Elegir un entorno de ejecución no proporciona hardware.

  • El paquete base incluye TrainingClient y la API de proyectos; la opción train instala las dependencias para el entrenamiento local.
  • Guarda las claves API en el entorno de secretos del proceso, no en archivos del proyecto ni en argumentos de comandos.
  • QLoRA requiere un entorno CUDA compatible y dependencias de cuantización.
Ejemplo · 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'

Configura y revisa el proyecto

Crea un directorio de proyecto, prepara archivos JSONL de entrenamiento, validación y prueba final, y edita training.json y rubric.json. Define la ruta local del modelo alumno, el proveedor y el reference_model_id incluido. El plan valida la configuración, la compatibilidad del modelo, las huellas de los datos, la política de uso compartido, los presupuestos y las salidas, sin cambiar pesos ni llamar al modelo de referencia.

  • Usa schema_version 1.0; es la versión del esquema de configuración, no la del paquete.
  • Usa rutas relativas al proyecto que se resuelvan dentro de su raíz.
  • Cada ejecución necesita un directorio de salida nuevo; reanudar es una operación aparte que comprueba estrictamente las huellas.
Ejemplo · 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
Ejemplo · 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"}
}
Ejemplo · 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"])

Revisa la evaluación y el artefacto local

El entrenamiento mide una línea base con el modelo intacto y realiza una evaluación final con filas locales reservadas. Los informes registran criterios medidos, regresiones, huellas, presupuestos y requisitos pendientes. La exportación valida un modelo safetensors local o un paquete de adaptador y crea un manifiesto. El adaptador sigue necesitando su modelo base y tokenizador exactos y fijados. Una ejecución correcta no garantiza calidad más allá de la rúbrica medida.

  • Mantén los archivos de línea base y de prueba final separados del entrenamiento y de las entradas enviadas al modelo de referencia.
  • Revisa evaluation-report.json y artifact-manifest.json antes de usar los resultados.
  • La exportación no sube el modelo ni despliega inferencia en producción.
Ejemplo · 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.