Saltar para o conteúdo principal
Capítulos do guia de treino Toda a documentação

Crie e execute um projeto de treino

Instale o SDK 0.2.0, configure um projeto, reveja o plano e treine um modelo local.

Os comandos e o código permanecem em inglês em todos os idiomas. Substitua os marcadores em maiúsculas pelos valores da sua conta e da sua tarefa paga; não cole chaves reais em cadernos partilhados nem em registos.

Criar e executar um projeto

Reveja o plano e a avaliação antes de utilizar o artefacto local.
  1. Instalar Ambiente Python
  2. Configurar Modelo, dados e grelha
  3. Planear Compatibilidade e orçamentos
  4. Treinar Otimização local
  5. Inspecionar Avaliação e artefacto

Instalar: Ambiente Python. Configurar: Modelo, dados e grelha. Planear: Compatibilidade e orçamentos. Treinar: Otimização local. Inspecionar: Avaliação e artefacto

Prepare o seu ambiente

Use Python 3.10 ou posterior num ambiente virtual dedicado. Instale a opção de treino e uma versão do PyTorch compatível com o ambiente de execução. O TrainingProject utiliza um adaptador Transformers existente para modelos de linguagem causal, com verificações de capacidade para SFT, LoRA ou QLoRA. Precisa de uma chave de API da conta, acesso pago ao modelo de referência para operações com o modelo professor, um modelo local compatível, dados aprovados e espaço de armazenamento suficiente. A seleção de um ambiente de execução não fornece hardware.

  • O pacote base fornece o TrainingClient e a API de projeto; a opção train instala as dependências de treino local.
  • Mantenha as chaves de API no ambiente de segredos do processo, não nos ficheiros do projeto nem nos argumentos dos comandos.
  • QLoRA requer um ambiente CUDA compatível e dependências de quantização.
Exemplo · 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'

Configure e reveja o projeto

Crie um diretório de projeto, prepare ficheiros JSONL de treino, validação e teste final e edite training.json e rubric.json. Defina o caminho local do modelo aluno, o fornecedor e o reference_model_id incluído. O plano valida a configuração, a compatibilidade do modelo, as impressões digitais dos dados, a política de partilha, os orçamentos e os resultados sem alterar pesos nem chamar o modelo de referência.

  • Use schema_version 1.0; é a versão do esquema de configuração, não a versão do pacote.
  • Use caminhos relativos ao projeto que permaneçam dentro da respetiva raiz.
  • Cada execução requer um novo diretório de resultados; a retoma é uma operação separada com validações rigorosas das impressões digitais.
Exemplo · 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
Exemplo · 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"}
}
Exemplo · 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"])

Verifique a avaliação e o artefacto local

O treino mede uma linha de base com o modelo intacto e faz uma avaliação final em linhas locais reservadas. Os relatórios registam os critérios medidos, regressões, impressões digitais, orçamentos e requisitos por cumprir. A exportação valida um modelo safetensors local ou um pacote de adaptador e grava um manifesto. Um adaptador continua a precisar do modelo-base e do tokenizador exatos e fixados. Uma execução bem-sucedida não garante qualidade para além da grelha medida.

  • Mantenha os ficheiros de referência e de teste final separados dos dados de treino e das entradas enviadas ao modelo de referência.
  • Consulte evaluation-report.json e artifact-manifest.json antes de utilizar os resultados.
  • A exportação não carrega o modelo nem implementa inferência em produção.
Exemplo · 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.