Documentation Index
Fetch the complete documentation index at: https://arkor-92aeef0e-eng-736.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
学習の開始とジョブの観察
学習関連の画面は 3 ルートに分かれています: Overview(#/)に Run training アクション、Jobs(#/jobs)は検索・フィルタ・自動更新付きの一覧、Job 詳細(#/jobs/:id)はライブイベントストリームと Loss チャート。一覧で行をクリックすると詳細ページに遷移します。
Run training
Run training パネルはページ読み込み時に/api/manifest を 1 度呼びます。レスポンスはプロジェクトの createArkor({ trainer }) のサマリで、これをもとにアクションをラベル付けします:
- トレーナーが見つかれば
Run training: <trainer name>。 - バンドルは import されたが何も露出しない場合
No trainer in src/arkor/index.ts yet. Add createTrainer(...) and pass it to createArkor.(src/arkor/index.tsにトレーナーがまだありません。createTrainer(...)を追加してcreateArkorに渡してください)。 - ビルド自体が失敗(
src/arkor/の typo など)した場合Couldn't read manifest: <error>(マニフェストを読み取れませんでした:<error>)。
POST /api/train を送ります。バックエンドはサブプロセスで arkor start を起動し、stdout / stderr を生テキストとしてストリーミングで返します。整形済みログボックスは自動スクロールし、表示されるのはターミナルで arkor start を走らせたときの出力そのものです。
トレーナー選択やフラグを渡す入力フォームはありません: Studio は常に createArkor で登録されたトレーナーを走らせ、arkor start は .arkor/build/index.mjs があれば再利用します。同じページで複数回クリックする間に src/arkor/ の編集は自動では拾われません。編集の合間に Run training ページをリロード(あるいはターミナルから arkor build)してから次のクリックをしてください。具体的なリビルドルールは CLI § build / start を参照。
Jobs リスト
Jobs ページ(#/jobs)はマウント時に 1 度、その後 5 秒ごとに GET /api/jobs をポーリングします。カードヘッダーの Refresh アイコンで手動でも即座に再読込できます(リクエスト中はアイコンが回転します)。
クライアント側で 2 段階のフィルタが働きます:
- Search(名前 or ID、大文字小文字を無視)。テキスト入力で
Job.nameまたはJob.idがクエリを含む行に絞ります。 - Status フィルタチップ:
All/Running/Completed/Queued/Failed/Cancelled。常に 1 つだけアクティブ。
No jobs yet(プロジェクトに本当にジョブが 1 件も無い。説明文で Overview に作成導線がある旨を平文で言及するのみで、ボタンやリンクは設けていません)と No matches(検索 / フィルタで全行が隠れている。条件を緩めるかクエリをクリア)。
| 列 | ソース |
|---|---|
| Status | Job.status(queued / running / completed / failed / cancelled)。セルは色付け用の CSS クラスを持つ。 |
| Name | Job.name。#/jobs/<id> にリンク。 |
| Created | new Date(Job.createdAt).toLocaleString()。 |
| ID | Job.id、等幅フォント。 |
Job 詳細
#/jobs/:id は EventSource 経由で GET /api/jobs/:id/events への Server-Sent Events 接続を開きます。ページは 5 つの名前付きイベントとストリーム終端を待ち受けます。
下の各行で、イベントログはイベント名をメッセージとは別カラムで表示します。表内の「メッセージ」は JobDetail.pushEvent() が SSE ペイロードから生成する文字列です。
| イベント | ページへの効果 |
|---|---|
training.started | ステータスが running に変わる。イベントログのメッセージは生の JSON ペイロード(イベントごとの整形なし)。 |
training.log | step、loss、そして(含まれていれば)evalLoss が Loss チャートのデータ配列に追加。イベントログのメッセージは step=<n> で始まり、そのステップで数値である方だけ loss=<value> と evalLoss=<value> が追記される(null / 非数値のフィールドはセグメントごと省略)。eval-only フレームでは step=<n> evalLoss=<value> のように描画される。 |
checkpoint.saved | イベントログのメッセージは step=<n>。チャートには影響なし。 |
training.completed | ステータスが completed に変わる。イベントログのメッセージは <n> artifact[s]。artifact 数自体は Metadata サイドバーの Artifacts 行に表示される。 |
training.failed | ステータスが failed に変わる。イベントログのメッセージはペイロードの error 文字列で、同じテキストの赤いバナーがチャート上部にも表示される。 |
end | ページが EventSource をクローズ。再接続なし。 |
Event stream interrupted. という別バナーが loss チャート / events ログのカード群の上に表示され(ログ行としては追加されません)、次の SSE フレーム到着でバナーは消えます。再接続はブラウザーの EventSource の retry 挙動に任されます。
イベントログは 直近 500 件 だけを保持します(新着につれて古いエントリーが消えていきます)。SSE の名前付きイベントから描画するスクロールリストで、フォレンジック用ではなく素早い目視確認のためのものです。完全な履歴はクラウド API を直接見てください。
Loss チャートは training.log イベントから描画される SVG プロットです。Y 軸は最小値と最大値によるスケーリング、X 軸はステップ番号で、最大 2 系列を表示します:
- Training loss — 実線のティール色。数値
lossを含むイベントごとに 1 頂点。 - Eval loss — 破線のピンク色(点マーカー付き)。数値
evalLossを含むイベント(通常はevalSteps刻み)から描画。系列はイベントから直接構築するため、evalLossのみを持ちlossを含まない eval-only フレームも線・凡例・統計に反映されます。Eval ポイントが 1 つも来ていない間は凡例にも表示されません。
loss / evalLoss のうち存在する値が表示されます(eval-only ステップでは loss 値は出ず、その逆も同様)。チャートは loss または evalLoss のいずれかが数値であるイベントが 1 件以上届くまで Waiting for training.log events…(training.log イベント待ち)プレースホルダーを表示します。両方とも null / 省略の training.log フレームはカウントされません。
上級モード(Advanced metrics)
チャートヘッダーの Advanced トグルを ON にすると、系列ごとの統計パネルが現れます。各カードに表示される項目:- Mean loss ± 95% CI — Loss 値の標本平均と 95% 信頼区間の半幅(Student の t 分布。n > 31 では z = 1.96 にフォールバック)。
- Std dev(標準偏差)と Variance(分散) — Bessel 補正済みの不偏推定量(
ddof=1)。 - p90 と p95 — numpy のデフォルトに合わせた線形補間パーセンタイル。
evalLoss を含む training.log イベントが届くまでは空のままです。
このページがしないこと
- キャンセルボタンなし。 動作中ジョブを止めるには、トレーナーを実行している自前コードから
trainer.cancel()を呼んでください。現状 Studio は UI でこの機能を公開していません。 - Artifact ブラウザーなし。 完了済みジョブの artifact 数は出ますが、個別 artifact をリスト/リンクしません。完全な artifact アクセスにはクラウド API を、あるいは学習中の SDK の
onCompleted({ artifacts })コールバックを使ってください。 - 学習途中の推論なし。 Playground は完了済みジョブ専用です(Playground 参照)。学習途中のライブ確認には SDK の
onCheckpoint({ infer })を使ってください。