出力・終了コード・イベント¶
OpenTernaryの機械向けの約束事です。バージョンが付いていて、スクリプトと同じようにTUIもこれに依存しています。使い方は自動化で説明しています。
--json の結果¶
--json を付けると、stdoutにはJSONが1つだけ、1行で出ます。人間向けの出力はstderrに出ます。
{
"schema_version": 1,
"command": "plan",
"exit_code": 0,
"execution": "planned",
"artifact_validation": "not_run",
"quality_acceptance": "not_run",
"result": {},
"error": null
}
| 項目 | 型 | 値 |
|---|---|---|
schema_version |
int | 1 |
command |
文字列 | コマンド(例: quantize・cache remove) |
exit_code |
int | プロセスの終了コード(下記) |
execution |
文字列 | planned(計画・dry-runの成功)、completed(終了コード0、または6: 実行されたが判定が否定的)、interrupted(130)、failed(それ以外) |
artifact_validation |
文字列 | not_run・file_integrity・tensor_integrity |
quality_acceptance |
文字列またはobject | not_run、compare では {"accepted": false, "basis": "validated quality reports only"} のようなobject |
result |
object | コマンドごとの内容: パス、run ID、指標、レポート |
error |
文字列またはnull | 成功なら null、失敗ならエラーの文言(エラーのパネルと同じ文) |
execution: completed が品質の受入を意味することはなく、artifact_validation: file_integrity がモデルを読み込めることを意味することもありません。内容は表示言語に左右されません。
終了コード¶
| コード | 意味 |
|---|---|
0 |
操作または計画が成功 |
1 |
想定外の実行時・入出力のエラー |
2 |
設定・引数・入力の誤り、または不在 |
3 |
非対応の機能、またはpluginのAPIの不一致 |
4 |
必要な依存が入っていない |
5 |
必要なハードウェア・デバイスがない |
6 |
明示した受入条件を満たさない、または適格な候補がない |
7 |
探索の予算が尽きた |
130 |
ユーザーによる中断 |
進捗イベント(JSONL)¶
--events-jsonl FILE は、新しいファイルに1行1つのJSONを書きます:
{"schema_version": 1, "sequence": 3, "command": "quantize", "run_id": "e67150d8",
"stage": "convert.tensors", "completed": 0, "total": 21, "unit": "tensor",
"elapsed_s": 1.776, "detail": {"tensor": "lm_head.weight"}}
| 項目 | 型 | 意味 |
|---|---|---|
schema_version |
int | 1 |
sequence |
int | 1つの操作の中で、イベントごとに1ずつ増える |
command |
文字列 | コマンド |
run_id |
文字列またはnull | runができるまでは null |
stage |
文字列 | 下の表を参照 |
completed・total |
intまたはnull | 段階の中での進捗。不明なら null |
unit |
文字列またはnull | 数えている単位(tensor・step・batch など) |
elapsed_s |
数値 | 操作の開始からの秒数 |
detail |
object | 段階ごとの追加の項目。常にobject。有限でない数値は null |
細かい段階は、段階ごとに毎秒5行までに間引きます。段階の最初の行と、completed == total の行は必ず書きます。ファイルは事前に存在していてはならず、--events-jsonl は --dry-run と併用できません。
段階¶
| 段階 | 単位 | detail |
出すもの |
|---|---|---|---|
started / completed / failed / interrupted |
すべてのコマンド | ||
run_created |
実行フォルダを作ったとき | ||
phase |
name・device |
資源の計測の区切り(load・inferenceなど) | |
convert.tensors |
tensor | tensor |
quantize、探索の候補 |
convert.flush |
shard・tensors |
shardをディスクに書き始めた | |
convert.hash |
shard | 書いたshardのハッシュ計算 | |
calibrate.dataset |
dataset・samples・seq_len |
校正の文章とトークナイザの準備(初回はダウンロードを含む) | |
calibrate.load_teacher |
snapshot |
元のモデルの読み込み | |
calibrate.cache |
status(capturing / reused)・source |
活性値のキャッシュ | |
capture.batches |
batch | split(train / heldout) |
teacherの入出力の記録 |
calibrate.prepare |
modules |
キャッシュの記録、teacherの解放、モジュールの状態の準備 | |
calibrate.modules |
module | module、完了時は last_loss |
対象の各層の開始と終了 |
calibrate.steps |
step | module・module_index・modules・loss |
層の中の最適化のstep |
calibrate.checkpoint |
checkpoint・cursor |
チェックポイントを保存した | |
calibrate.evaluate |
module | module |
学習用・ホールドアウトの再構成誤差 |
calibrate.materialize |
destination |
校正済みsnapshotの書き出し | |
materialize.tensors |
tensor | tensor |
…テンソルごと |
materialize.flush |
shard・tensors |
…shardを書き始めた | |
materialize.hash |
shard | …ハッシュ計算 | |
calibrate.report |
指標と calibration.json の作成 |
||
benchmark.prompts |
prompt | prompt |
benchmark |
quality.perplexity |
language | language |
quality |
quality.cases |
case | case |
quality |
export.tensors |
tensor | tensor |
packedへの書き出しと復元 |
export.converter |
status・converter |
外部のGGUFのconverter | |
validate.tensors |
tensor | tensor |
artifacts validate --level tensors |
candidate_started |
optimize: 候補の開始 |
||
search.candidates |
candidate | status・folder |
optimize: 候補の終了 |
diffusion.prompts |
prompt | diffusionの評価 |
探索の候補は別のプロセスで動くので、候補内部の convert.* のイベントは親のファイルには出ません。
schema_version: 1 のまま、項目や段階が追加されることがあります。既存の項目の意味は変わりません。読む側は、知らないものを無視してください。
人間向けの出力¶
--json がないとき:
doctor・backends・plan・plugins・artifacts validate・cacheと、各ワークフローのコマンドの結果は表で表示します。- 状態は記号と語で表し、色は記号にだけ付けます。状態の記号を参照してください。
- エラーは1回だけ、stderrにパネルで表示します。何が失敗したか、詳細、あればヒント、終了コードです。
- 言語は
OPENTERNARY_LANG=en|ja、指定がなければOSの言語です。ターミナルの文字コードで日本語を表示できなければ英語になります。翻訳するのはhelpの説明、パネルの見出し、表の見出し、エラーの見出しで、--jsonの内容は翻訳しません。 NO_COLORで色を消せます。