レシピ一覧
| レシピ | 何を示すか | ベース |
|---|---|---|
| 学習中の評価 | チェックポイントごとに固定プロンプトで半学習済みモデルをサニティーチェックし、学習完了前に確認する。 | onCheckpoint({ infer }) |
| Loss が悪化したら学習を自動で打ち切る(Early Stopping) | Loss(モデルの誤差)の曲線が悪い方向に進んだら学習を自動 Abort し、バックエンドの GPU も止める。 | onLog、AbortSignal、trainer.cancel() |
| Slack / Discord 通知 | 完了時 / 失敗時に Webhook を叩く、トレーナーファイルから出ずに。 | onCompleted / onFailed、fetch |
| プログラムからの学習実行(CLI なし) | arkor dev / arkor start を介さず、Next.js API ルート、cron ワーカー、CI から学習を駆動する。 | runTrainer、Trainer.start / wait |
| スターターテンプレートのカスタマイズ | 生成されたテンプレートを起点として扱う。データセット、ハイパーパラメーター、コールバック、ベースモデルを変える。 | createTrainer、DatasetSource |
始める前にコールバックの例外について 1 つだけ
下記の 3 つのレシピはライフサイクルコールバック内にロジックを置きます。ランタイムはコールバックから throw されたエラーを catch して SSE 再接続ループに送り(SDK § ライフサイクルコールバック)、maxReconnectAttempts のデフォルトは無制限です。実用上、コールバック内の throw は黙ってリトライされ得ます。
ここのレシピは決定的に動かすために単純な慣例を使います:
- 状態変更は外側の変数経由で。 throw の代わりに
AbortController、クロージャーのフラグ、返した Promise を使う。 - 副作用はコールバック内で
try / catchでガード。 Slack 投稿が失敗したらログだけ残して継続し、外に漏らさない。
このセクションが扱わないこと
- 本番デプロイ。 今日 Arkor はマネージド GPU 上でしか動かず、
createArkorのdeployスロットは型上の予約フィールドで実装はありません。サービング系のレシピはその表面が出てきたら追加されます。 - プロジェクトごとの複数トレーナー。
createArkorは単一のtrainerを受け付けます。複数を一緒に走らせるのはマニフェストパターンではなくプログラム駆動パターンです(該当レシピ参照)。 - バックエンドが受け付ける以外のカスタムベースモデル。
modelフィールドはクラウド API にそのまま転送されます。今日のキュレートパスは Gemma です。レシピはそれ以外のモデルがエンドツーエンドで動くようなふりをしません。