mcpField
J
jinko-calibration-cmaes

jinko-calibration-cmaes

github.com/novainsilicoデータ・データベース4161 回インストール1 週間前に更新
リポジトリ

jinko-calibration-cmaes について

jinko-calibration-cmaes は、Jinkō SDK ユーザー向けに CMA-ES 校正の作成、実行、確認を扱うワークフロースキルです。適合度関数の入力には、データテーブルまたは目的関数を含む高度な出力セットを使用できます。

主な機能

  1. 01CMA-ES 校正の作成
  2. 02パラメーター事前分布と校正オプションの設定
  3. 03校正ジョブの実行と状態のポーリング
  4. 04性能と結果概要の確認
  5. 05目的関数の重みと患者の並び順を取得

活用シーン

  1. 01パラメーター事前分布を使ったモデル校正の設定
  2. 02校正ジョブの実行と監視
  3. 03校正の性能と結果の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/novainsilico/jinko-skills --skill jinko-calibration-cmaes

インストール後、Claude Code で/jinko-calibration-cmaesを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
evals/
evals.json
references/
creating-a-calibration.md
results-and-inspection.md
running-and-polling.md

詳細

Jinkō CMA-ES キャリブレーション SDK ワークフロー

UI の表示名API のプロジェクト項目タイプSDK のエントリーポイント
キャリブレーションCalibrationclient.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.* のフィールドテーブルと注意事項。

コメント