jinko-calibration-cmaes について
jinko-calibration-cmaes は、Jinkō SDK ユーザー向けに CMA-ES 校正の作成、実行、確認を扱うワークフロースキルです。適合度関数の入力には、データテーブルまたは目的関数を含む高度な出力セットを使用できます。
主な機能
- 01CMA-ES 校正の作成
- 02パラメーター事前分布と校正オプションの設定
- 03校正ジョブの実行と状態のポーリング
- 04性能と結果概要の確認
- 05目的関数の重みと患者の並び順を取得
活用シーン
- 01パラメーター事前分布を使ったモデル校正の設定
- 02校正ジョブの実行と監視
- 03校正の性能と結果の確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ novainsilico/ jinko-skills --skill jinko-calibration-cmaesインストール後、Claude Code で/jinko-calibration-cmaesを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlevals/evals.jsonreferences/creating-a-calibration.mdresults-and-inspection.mdrunning-and-polling.md詳細
Jinkō CMA-ES キャリブレーション SDK ワークフロー
| UI の表示名 | API のプロジェクト項目タイプ | SDK のエントリーポイント |
|---|---|---|
| キャリブレーション | Calibration | client.create_calibration(...)、model.create_calibration(...)、Calibration ドメインオブジェクト |
キャリブレーションマネージャー API は CMA-ES 専用です。タイプやメソッドを区別する指定はありません。「サブサンプリング」は VPop ジェネレーターの無関係な機能であり、キャリブレーションのタイプではありません。 このスキルは SDK の操作方法のみを扱います。デフォルト値、診断、キャリブレーションを行うタイミングのガイダンスは含みません。
前提条件: このスキルには、初期化済みの
jinko-sdk接続と、metadata.requires_sdkの範囲を満たす SDK が必要です。jinko-sdk-setupスキル (../jinko-sdk-setup/SKILL.md)を実行し、チェックに合格してから続行してください。 セッションコードは一度しか交換できないため、このスキルの SDK プロセスを開始する前にget_session_codeを再度呼び出してください。このスキルが見つからない場合は、novainsilico/jinko-skillsからインストールしてください。
最小限のキャリブレーション
parameters:キャリブレーションする事前分布(必須、1 件以上)。- 適合度関数のソースが少なくとも 1 つ必要です(必須):
dataTableDesigns(データテーブルのmetadata.public.validForFitnessFunction: Trueが必要です。jinko-data-tableを参照)および/または目的関数を含む高度な出力セット(jinko-output-setを参照)。このスキルではどちらも作成しません。 CalibrationOptions:seedとthresholdWeightedScoreはスキーマ上必須で、契約上のデフォルト値はそれぞれ0と1です。populationSizeとnumberOfIterationsには契約上のデフォルト値がなく、機能上必須です。付属の作成スクリプトでは、母集団サイズと反復回数が必須で、省略されたシードと閾値には契約上のデフォルト値が使用されます。再現性ポリシーで必要な場合は、4 つすべてを明示的に指定してください。
作成する前に、次の 2 つのエンコーディング規則を必ず守ってください。
log_transform=Trueの場合、meanとstdはlog10(x)の座標で指定しますが、min_boundとmax_boundは引き続きxの元の物理座標で指定します。予定している境界値が log10 座標で記述されている場合は、まず指数変換してください:physical_bound = 10**log10_bound。MAX_BOUND_LOWER_THAN_MEAN_LOGのようなキャリブレーションの妥当性に関する警告は、この変換の不整合を示しています。- 各適合度データテーブルについて、ユーザーが指定した観測対象の線形境界スケーリングを明示的に要求していない限り、テーブル内の異なる
obsIdをすべてoptions.log_transform_wide_boundsに設定してください。これは UI の Scale bounds オプションに対応する SDK フィールドです。
作成
model = client.get_model("cm-...")
data_table = client.get_data_table("dt-...")
calibration = model.create_calibration(
parameters=[
{
"id": "k_elim",
"mean": -1.0,
"std": 0.5,
"log_transform": True,
"min_bound": 0.001,
"max_bound": 10.0,
}
],
data_tables=[
{
"data_table": data_table,
"include": True,
"options": {
"weight": 1.0,
"log_transform_wide_bounds": sorted({
row["obsId"] for row in data_table.export()
}),
},
}
],
calib_seed=42,
calib_threshold_weighted_score=1.0,
calib_number_of_iterations=100,
calib_population_size=12,
)
同等のクライアントレベルの呼び出し:client.create_calibration(model=model, ...)。
calibrationOptionsOverride、solvingOptionsOverride、coreVersion には型付き kwargs がありません。client.create_calibration_from_json(json_content=payload) または client.calibrations.create_raw(payload) を使用してください。
すべてのフィールドの表については、references/creating-a-calibration.md を参照してください。
作成後に calibration.set_solving_times(t_max=timedelta(days=28), t_step="P1D") で解決時間を設定できます。各期間には timedelta または ISO 8601 文字列を指定できます。
実行とポーリング
calibration.run()
final_status = calibration.wait_until_completed(timeout=3600)
.get_sanity()、.status()、および StoppingReason の値については、references/running-and-polling.md を参照してください。
結果
calibration.performance() # raw dict
calibration.results_summary() # raw dict
calibration.objective_weights() # raw dict, {objective_id: weight}
calibration.results.sorted_patients(
sort_by="optimizationWeightedScore desc"
) # raw, low-level
現在、結果を取得するすべてのアクセサーは未解析の dict を返します。references/results-and-inspection.md を参照してください。
プロジェクトフォルダーの整理
jinko-trial/jinko-data-table と同様です。YYYY-MM-DD-<experiment> フォルダーを提案し、名前が完全一致するものがあれば client.get_folder_by_name(name, exact_match_only=True) で再利用します。確認があった場合、または --create-folder --apply が指定された場合にのみ作成してください。
SDK スクリプト
SDK のインストール後、これらはコンソールスクリプトとして PATH 上で利用でき、以下のように python -m でも実行できます。
jinko.cli.create_cmaes_calibration:デフォルトではドライランを行い、--applyを指定するとキャリブレーションを作成します。jinko.cli.run_calibration:既存のキャリブレーションを--applyで実行し、ポーリングします。jinko.cli.inspect_calibration:未加工の performance/results_summary/objective_weights/sorted_patients JSON を表示または書き出します。
python -m jinko.cli.create_cmaes_calibration --model-sid cm-... --data-table-sid dt-... --parameter "k_elim:-1.0:0.5:0.001:10.0:log" --seed 42 --threshold-weighted-score 1.0 --iterations 100 --population-size 12
python -m jinko.cli.create_cmaes_calibration --model-sid cm-... --data-table-sid dt-... --parameter "k_elim:-1.0:0.5:0.001:10.0:log" --seed 42 --threshold-weighted-score 1.0 --iterations 100 --population-size 12 --folder 2026-07-07-calib --create-folder --apply
python -m jinko.cli.run_calibration --calibration-sid ca-... --apply --timeout 3600
python -m jinko.cli.inspect_calibration --calibration-sid ca-... --performance --results-summary --objective-weights --output-dir calib-results
リファレンスの振り分け
references/creating-a-calibration.md:フィールドの全テーブルと、3つの作成パターン。references/running-and-polling.md:実行/停止/ステータス/健全性確認、JobStatus、StoppingReason。references/results-and-inspection.md:performance/results_summary/objective_weights/results.* のフィールドテーブルと注意事項。