Команды и код во всех языковых версиях остаются на английском. Заменяйте ЗАГЛАВНЫЕ заполнители значениями своей учетной записи и оплаченного задания. Не вставляйте реальные ключи в общие ноутбуки или журналы.
Создайте и запустите проект
- Установка Среда Python
- Настройка Модель, данные и оценочная шкала
- План Совместимость и бюджеты
- Обучение Локальная оптимизация
- Проверка Оценка и артефакт
Установка: Среда Python. Настройка: Модель, данные и оценочная шкала. План: Совместимость и бюджеты. Обучение: Локальная оптимизация. Проверка: Оценка и артефакт
Подготовьте среду
Используйте Python 3.10 или новее в отдельном виртуальном окружении. Установите дополнение train и совместимую сборку PyTorch. TrainingProject использует зарегистрированный адаптер Transformers для причинно-языковых моделей с проверкой поддержки SFT, LoRA и QLoRA. Нужны ключ API, оплаченный доступ к референсной модели для запросов учителю, совместимая локальная модель, одобренные данные и достаточно места. Выбор среды не предоставляет оборудование.
- Базовый пакет содержит
TrainingClientи API проекта; дополнение train устанавливает зависимости локального обучения. - Храните ключи API в секретном окружении процесса, а не в файлах проекта или аргументах команд.
- Для QLoRA нужны совместимая среда CUDA и зависимости квантования.
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'
Настройте проект и проверьте план
Создайте каталог проекта и подготовьте файлы JSONL для обучения, валидации и итогового теста, затем отредактируйте training.json и rubric.json. Укажите локальный путь к модели-ученику, провайдера и включенный в план reference_model_id. План проверяет конфигурацию, совместимость модели, fingerprints данных, политику передачи, бюджеты и выходные файлы, не меняя веса и не отправляя запросы учителю.
- Используйте
schema_version1.0: это версия схемы конфигурации, а не пакета. - Относительные пути должны разрешаться внутри каталога проекта.
- Для запуска нужен новый каталог результатов; возобновление — отдельная операция со строгой проверкой fingerprints.
# 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"])
Проверьте оценку и локальный артефакт
Обучение измеряет исходный уровень неизмененной модели и оценивает итоговую модель на локальных отложенных данных. В отчетах указаны измеренные критерии, регрессии, fingerprints, бюджеты и невыполненные требования. Экспорт проверяет локальную модель или адаптер в формате safetensors и создает манифест. Адаптеру по-прежнему нужны точная закрепленная базовая модель и токенизатор. Успешный запуск не гарантирует качество задач за пределами оценочной шкалы.
- Храните исходные и итоговые проверочные файлы отдельно от обучающих данных и запросов учителю.
- Перед использованием результатов изучите
evaluation-report.jsonиartifact-manifest.json. - Экспорт не загружает модель в сервис и не развертывает ее для продуктивного инференса.
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.