Documentation Index
Fetch the complete documentation index at: https://docs.arkor.ai/llms.txt
Use this file to discover all available pages before exploring further.
createTrainer
import { createTrainer } from "arkor";
export const trainer = createTrainer({
name: "support-bot-v1",
model: "unsloth/gemma-4-E4B-it",
dataset: { type: "huggingface", name: "arkorlab/triage-demo" },
lora: { r: 16, alpha: 16 },
maxSteps: 100,
});
createTrainer は start / wait / cancel メソッドを持つ Trainer オブジェクトを返します(トレーナー制御 を参照)。この関数は TrainerInput のクライアント側バリデーションを しません: TypeScript が型付きフィールドをコンパイル時にチェックし、それ以外は start() 実行時にクラウド API へ転送されます。不正な値は構築時のクライアント側 throw ではなく、学習中にバックエンドエラーとして現れます。
必須フィールド
| フィールド | 型 | 補足 |
|---|
name | string | ジョブ名。Studio とマネージドバックエンドに表示。 |
model | string | ベースモデル ID。今日のキュレートテンプレートは unsloth/gemma-4-E4B-it を使用。 |
dataset | DatasetSource | HuggingFace データセット名 or blob URL。 |
型付きオプションフィールド
ファーストクラスの TypeScript 型を持ち、安全に使えます:
| フィールド | 型 | デフォルト | 効果 |
|---|
lora | LoraConfig | バックエンドのデフォルト | LoRA / QLoRA のノブ(r、alpha、maxLength?、loadIn4bit?)。 |
maxSteps | number | バックエンドのデフォルト | 学習ステップ数の上限。 |
numTrainEpochs | number | バックエンドのデフォルト | データセット周回数(maxSteps の代替)。 |
learningRate | number | バックエンドのデフォルト | オプティマイザのステップサイズ。 |
batchSize | number | バックエンドのデフォルト | デバイスごとの学習バッチサイズ。 |
optim | string | バックエンドのデフォルト | オプティマイザ名。 |
lrSchedulerType | string | バックエンドのデフォルト | 学習率スケジュール(例: linear、cosine)。 |
weightDecay | number | バックエンドのデフォルト | 正則化の重み。 |
dryRun | boolean | false | スモークテスト(下記参照)。 |
callbacks | Partial<TrainerCallbacks> | {} | ライフサイクルコールバック を参照。 |
abortSignal | AbortSignal | なし | ローカルの wait() を停止。バックエンドのジョブはキャンセル しません。トレーナー制御 を参照。 |
LoraConfig
interface LoraConfig {
r: number; // LoRA ランク(よくある値は 8 / 16 / 32)
alpha: number; // LoRA alpha(多くは 2 × r)
maxLength?: number; // このトークン数を超えるサンプルは切り詰める
loadIn4bit?: boolean; // ベースモデルを 4-bit でロード(QLoRA)
}
lora を完全に省略するとバックエンドのデフォルトになります。同梱テンプレートが使う出発点は r: 16, alpha: 16 です。
dryRun
createTrainer({
name: "smoke",
model: "unsloth/gemma-4-E4B-it",
dataset: { type: "huggingface", name: "arkorlab/triage-demo" },
dryRun: true,
});
dryRun: true はバックエンドにデータセットを切り詰め、ステップ数を制限してパイプラインの全段階(データロード、chat-template のレンダ、学習ループ、チェックポイントアップロード、イベントストリーム)を走らせるよう指示します。それでも GPU 時間は使います、ただしずっと少なく。CI や、初めてコールバックを組んでいるときに便利です。完全に課金回避するための手段ではありません。
上級: 転送フィールド
これらは unknown として型付けされ、クラウド API にそのまま転送されます(packages/arkor/src/core/trainer.ts:100-108)。SDK のファーストクラス型付けが追いつく前にバックエンドが新フィールドを公開できるよう、入力形に予約されています。
| フィールド | 状況 |
|---|
warmupSteps、loggingSteps、saveSteps、evalSteps | そのまま転送。バックエンドの想定形を既に知っている場合のみ使用してください。 |
trainOnResponsesOnly | そのまま転送。 |
datasetFormat、datasetSplit | そのまま転送。HuggingFace ソースには専用 dataset フィールドの split を優先してください。 |
これらのフィールドは明示的に 安定ではありません: バックエンド契約はリリース間で変わり得て、渡す値にコンパイル時チェックもありません。上記の型付きフィールドを優先し、他で賄えないときだけ手を出してください。
まだないもの
- マルチトレーナープロジェクト。
createArkor は単一の trainer を受け付けます。配列形はありません。2 つ目のトレーナーを登録するには、エクスポートをランタイムで切り替えるか、API がその形を獲得するのを待つことになります。