メインコンテンツへスキップ
学習ガイドの章 すべてのドキュメント

学習プロジェクトを作成して実行する

SDK 0.2.0 をインストールし、プロジェクトを設定して計画を確認し、ローカルモデルを学習します。

どの言語版でもコマンドとコードは英語のままです。大文字のプレースホルダーは、ご自身のアカウントと有料ジョブの値に置き換えてください。共有ノートブックやログに実際のキーを貼り付けないでください。

プロジェクトを作成して実行する

ローカル成果物を使う前に、計画と評価結果を確認します。
  1. インストール Python 環境
  2. 設定 モデル、データ、評価基準
  3. 計画 互換性と予算
  4. 学習 ローカルで最適化
  5. 確認 評価結果と成果物

インストール: Python 環境. 設定: モデル、データ、評価基準. 計画: 互換性と予算. 学習: ローカルで最適化. 確認: 評価結果と成果物

実行環境を準備する

専用の仮想環境で Python 3.10 以降を使います。training extra と、実行環境に合った PyTorch ビルドをインストールしてください。TrainingProject は既存の Transformers 因果言語モデルアダプターを使い、SFT、LoRA、QLoRA の対応状況を確認します。教師モデル操作用の有料参照アクセス権、互換性のあるローカルモデル、承認済みデータ、十分なストレージが必要です。実行環境を選んでもハードウェアは用意されません。

  • 基本パッケージには TrainingClient とプロジェクト API が含まれます。train extra はローカル学習用の依存関係を追加します。
  • API key は実行環境のシークレット用環境変数に保存し、プロジェクトファイルやコマンド引数には入れないでください。
  • QLoRA には互換性のある CUDA 実行環境と量子化の依存関係が必要です。
例 · 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'

プロジェクトを設定して確認する

プロジェクトディレクトリを作り、学習、検証、最終テスト用の JSONL ファイルを準備してから、training.json と rubric.json を編集します。ローカルの生徒モデルパス、provider、プランに含まれる reference_model_id を指定してください。計画の確認では設定、モデル互換性、データのフィンガープリント、共有ポリシー、予算、出力を検証しますが、重みを変更したり教師モデルを呼び出したりはしません。

  • schema_version は 1.0 を指定します。これは設定スキーマであり、パッケージのバージョンではありません。
  • プロジェクトルート内に解決される相対パスを使います。
  • 実行には新しい出力ディレクトリが必要です。resume は別操作で、フィンガープリントを厳密に検証します。
例 · 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
例 · 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"}
}
例 · 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"])

評価結果とローカル成果物を確認する

学習では、ローカルのホールドアウトデータを使って未変更モデルのベースライン評価と最終評価を行います。レポートには測定基準、回帰、フィンガープリント、予算、未達要件を記録します。エクスポートではローカルの safetensors モデルまたはアダプターパッケージを検証してマニフェストを作成します。アダプターには固定された正確なベースモデルとトークナイザーが必要です。実行に成功しても、ルーブリックで測定していないタスク品質は保証されません。

  • ベースラインと最終テストのファイルは、学習データや教師モデルへの入力と分けて保管します。
  • 出力を使う前に evaluation-report.json と artifact-manifest.json を確認します。
  • エクスポートでモデルがアップロードされたり、本番推論がデプロイされたりすることはありません。
例 · 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.