mcpField
L
lightning-cost-estimation

lightning-cost-estimation

github.com/lightning-aiクラウド・DevOps961 回インストール2 週間前に更新
リポジトリ

lightning-cost-estimation について

Lightning AI を使うユーザーやエージェント向けのコスト見積もりスキルです。アクセラレーターの価格と空き状況を都度取得し、ハードウェア選定や稼働時間、ストレージに基づく費用計算を案内します。

主な機能

  1. 01アクセラレーター価格と空き状況の取得
  2. 02クラウド間の SKU 比較
  3. 03計算資源とストレージ費用の算出
  4. 04モデル要件に応じたハードウェア選定
  5. 05スポットと予約容量の課金ルール説明

活用シーン

  1. 01学習ジョブの GPU 費用見積もり
  2. 02クラウド間で同等ハードウェアを比較
  3. 03マルチノードジョブやモデル配信の費用算出

インストール

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

$npx skills add https://github.com/lightning-ai/skills --skill lightning-cost-estimation

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

詳細

Lightning AI のコスト見積もり

lightning.ai/pricing に掲載されているすべてのマシン価格は、1 つの公開エンドポイントから取得されます。価格、容量、SKU スラッグは必ずその場で取得してください。記憶を頼りに提示してはいけません。 これらはすべて変わるため、このファイルには意図的に価格のスナップショットを含めていません。

Lightning クレジット 1 枚 = 1 米ドルです。 マシンは割り当て中、秒単位で課金されます。ストレージは日単位で課金されます。 ドキュメント:課金に関する FAQ · コストの管理。

セットアップと認証

アクセラレーターのカタログには認証が不要なため、ログイン前でも通常の curl が使えます。

curl -s "https://lightning.ai/v1/core/accelerators?cloudProvider=MACHINE" | jq '.accelerator | length'

lightning api "<path>" は同じ JSON を返します。エージェントの権限ルールで curl がブロックされても lightning が許可されている場合は、こちらを使ってください。常に認証情報を送信するため、lightning login または API キーが必要です。ログイン後は、以下の curl の例をすべて lightning api "<path>" に置き換えて使えます。

export DEBUG=0 LIGHTNING_DEBUG=0   # an inherited DEBUG=1 logs the Authorization header; set this in every new shell
# Use the Lightning AI CLI from the current env; install or upgrade it there if it's missing or older than 2026.9.18
v=$(lightning --version 2>/dev/null | sed -n 's/^Lightning CLI version //p')
[ -n "$v" ] && [ "$(printf '%s\n' 2026.9.18 "$v" | sort -V | head -1)" = 2026.9.18 ] \
  || uv pip install -U lightning-sdk || python3 -m pip install -U lightning-sdk
lightning --version   # must print "Lightning CLI version …"; if not, see the table below
lightning api "/v1/core/accelerators?cloudProvider=MACHINE"

チームスペースが接続できるクラウドを確認する場合にのみ、認証が必要です(lightning login、または任意で LIGHTNING_USER_ID と併用する LIGHTNING_API_KEY)。ここにあるすべての例で jq が必要です。

これはエージェントの現在の環境(プロジェクトの venv、conda 環境など)を使用し、必要に応じてその環境にインストールします。その後はどこでも通常の lightning … を呼び出してください。セットアップがうまくいかない場合:

症状対処方法
有効な環境がない、externally-managed-environment が表示される、またはプロジェクト独自のバージョン固定と競合する個別にインストールします:uv tool install lightning-sdk(または pipx install lightning-sdk)。PATH にない場合は "$(uv tool dir --bin)/lightning" を呼び出します
インストール後も Lightning CLI version の行が表示されない別の lightning(PyTorch Lightning のもの)または無効な環境が先に見つかっています:command -v lightning を確認し、環境を有効にするか、その環境の bin/lightning を呼び出します
No such command、No such option、または unexpected extra argumentCLI が古すぎます:command -v lightning が示す場所でアップグレードします(uv pip install -U lightning-sdk または uv tool upgrade lightning-sdk)
インストールがブロックされる(環境またはホームが読み取り専用、エージェントのサンドボックスなど)各コマンドを UV_CACHE_DIR="${TMPDIR:-/tmp}/uv" UV_TOOL_DIR="${TMPDIR:-/tmp}/uv-tools" uvx lightning-sdk … として実行します
エージェントのサンドボックス内でのみ、lightning --version を含むすべての呼び出しで SSL/CA エラーが発生する**/*.pem の読み取り拒否ルールによって certifi の cacert.pem が隠されています。このパスだけを許可してください。サンドボックスを無効にしてはいけません
エージェントのサンドボックス内でのみ NameResolutionError が発生するlightning api も失敗する場合は、lightning.ai と *.lightning.ai の許可をユーザーに依頼してください(/sandbox)。studio/job コマンドまたは SDK だけが失敗する場合は、サンドボックスプロキシを経由しないため、それらだけをサンドボックスの外で実行します。バックグラウンドのポーラーも同様に失敗しますが、通知は表示されません

組織とチームスペースの特定(利用可能状況の確認時のみ)

価格は全体共通です。価格を提示するのにチームスペースは不要です。ユーザーが起動できるクラウドアカウントを確認するには、チームスペースが必要です。決して推測せず、特定できない場合は確認してください:

lightning api /v1/memberships | jq -r '.memberships[] | [.ownerType, .name, .projectId] | @tsv'

PID=$(lightning api /v1/memberships | jq -r '.memberships[] | select(.name=="<teamspace>") | .projectId' | head -1)
lightning api "/v1/projects/$PID/clusters" | jq -r '.clusters[].id'

Cloud providers の表を使って、クラスター ID をカタログのプロバイダーに対応付けます。チームスペースから起動できないクラウドを回答として提示してはいけません。そのクラウドアカウントを有効にすれば利用できるものとしてのみ言及してください。

アクセラレーターカタログ

GET https://lightning.ai/v1/core/accelerators?cloudProvider=<PROVIDER> → {"accelerator": [ ... ]}。 料金の見積もりに関係するフィールドは次のとおりです。

フィールド意味
costインスタンス全体のオンデマンド料金(USD/時間)であり、GPU 1基あたりではありません。 8×H100 SKU の 36 は、GPU 1基あたり $4.50/時間です。GPU 1基あたりの料金として提示すると、見積もりが8倍になります。
spotPrice中断可能なインスタンスの料金(USD/時間)です。0 はプロバイダーにスポットインスタンスがないことを意味し、無料という意味ではありません。 スポット料金が常に cost より安いとは限りません。0以外の値から min(cost, spotPrice) を選び、どちらの料金を提示したか明記してください。
family、resources.gpu、resources.gpuTypeハードウェアを表します。例:H100 × 8 × nvidia-h100-80gb。比較するのはスラッグではなく、これらの情報です(下記参照)。gpuType にVRAMが記載されないことがあります(例:nvidia-b200)。VRAMの表を参照してください。SDKではRTXファミリーを RTX PRO、カタログでは RTXP と表記しています。
slugMultiCloud / slug / instanceIdSKU名。同じハードウェアでもクラウドごとに異なります。
resources.memoryMb、.cpu、.storageGbホストのRAM/vCPU/ディスクです。まれに値が誤っていることがあります(AWSのH200 SKUの1つでは 141000000 MBと報告されています)。料金を提示する前にRAMの値が妥当か確認してください。
outOfCapacity、availableInSeconds(…Spot)現在利用できるか、予想待ち時間を示します。安価なSKUでも、容量不足だったり、待ち時間が10⁴~10⁶秒だったりする場合は、実際に提示できる料金ではありません。
dwsOnly / dwsCostGCP Dynamic Workload Schedulerを表します。キュー経由のバッチ割り当てであり、オンデマンドではないため、常時稼働のエンドポイントには適しません。
reservable / capacityBlockPriceAWSのキャパシティブロックを表します。長時間実行向けの、より安価な予約料金です。割引率はSKUによって大きく異なるため、SKUごとに確認し、数週間単位で実行する場合は提示してください。
isTierRestricted有料プランの階層が必要です。無料プランのアカウントでは、料金にかかわらず起動できません。
enabled、availableZones、clusterId有効かどうか、利用可能な場所、所属するクラウドアカウントを示します。
クラウドプロバイダー
cloudProvider=内容クラスターID(--cloud 用)備考
MACHINELightning Cloud(Lightning独自のベアメタル)lightning-baremetalデフォルトのクラウドです。SDKの LIGHTNING とは異なり、そちらはここではプレースホルダーです。
AWSAWSlightning-public-prod最も幅広いSKUに対応。キャパシティブロックも利用できます。
GCPGCPgcp-lightning-public-prodTPUを提供する唯一のソースです。一部のGPUは dwsOnly です。
LAMBDA_LABSLambda Labslightning-lambda-prod
NEBIUSNebiuslightning-nebius-prod
VOLTAGE_PARKVoltage Parklightning-voltagepark-prod
VULTRVultr—ニッチなSKU(A16/A40/A100/L40S)を提供します。

まずLightning Cloudの料金を提示し、続いてほかのクラウドの最新情報と比較してください。別のクラウドを推奨するのは、料金が安く、かつユーザーのチームスペースに必要な容量がある場合に限ります。

見積もりから起動まで

lightning-jobs、 lightning-studios、lightning-deployments で使われる --machine 名(Python では Machine.<NAME>)と、料金を確認したクラウドを指定する --cloud <cluster-id> を指定して起動します。--cloud を指定しない場合、実行先はチームスペースのデフォルトになり、異なる料金が適用される可能性があります。

--machineカタログ上のハードウェア--machineカタログ上のハードウェア
CPU_SMALL / CPU / CPU_X_8 / CPU_X_16cpu-2 / cpu-4 / cpu-8 / cpu-16A100 … A100_X_8A100 × N、クラウドにより 40 GB または 80 GB
DATA_PREP / _MAX / _ULTRAdata-prep-mid / -max-large / -ultra-extra-largeH100 … H100_X_8H100 × N
T4 / L4 / L40S (_X_N)T4 / L4 / L40S × NH200 / B200 (_X_N)H200 / B200 × N
T4_SMALL小型 T4RTXP_6000 (_X_N)RTXP × N

A100_40GB* / A100_80GB* はメモリーサイズを固定しますが、CLI の --machine では非表示です。Python で Machine.A100_80GB_X_8 として指定するか、studio switch を使う場合にのみ利用できます。

同じハードウェアでもクラウドによってスラッグが異なるため、決してハードコードしたり、スラッグで結合したりしないでください。 H200 は Nebius では lit-h200-1、Lightning Cloud では lit-h200-141gb-1 です。また、Machine.H100.slug は lit-h100-1 ですが、カタログでは lit-h100-80gb-1 となっています。SDK(2026.9.18 以降)は、これらすべてを同じマシンに対応付けます。以下のレシピのように、family + resources.gpu(および gpuType の VRAM)で照合してください。想定したスラッグで絞り込むと、実在するマシンが利用不可に見えてしまいます。

料金を調べるレシピ

これらをシェル(bash または zsh)に一度読み込んでおけば、すべての見積もりで使えます。

# _litfetch <PROVIDER> — catalog JSON, or an error and a non-zero exit
_litfetch() {
  curl -sf --retry 3 --retry-delay 1 --max-time 20 \
    "https://lightning.ai/v1/core/accelerators?cloudProvider=$1" \
  || { echo "ERROR: could not fetch the $1 catalog; don't quote from a partial result" >&2; return 1; }
}
_LITJQ='def spot: if .spotPrice > 0 then (.spotPrice*100|round/100) else "n/a" end;
  def count: if .acceleratorType=="GPU" then .resources.gpu else .resources.cpu end;
  def status: [ (if .outOfCapacity then "OUT-OF-CAPACITY" else empty end),
                (if .dwsOnly then "DWS-ONLY" else empty end),
                (if .isTierRestricted then "TIER-RESTRICTED" else empty end),
                (if .reservable then "RESERVABLE" else empty end) ]
              | if length==0 then "ok" else join(",") end;'

# litprice <PROVIDER> [family-regex] — one cloud's live catalog, one row per SKU
litprice() {
  local json; json=$(_litfetch "${1:-MACHINE}") || return 1
  printf '%s' "$json" | jq -r --arg re "${2:-.}" "$_LITJQ"'
      ["SKU","FAMILY","N","USD/HR","SPOT/HR","RAM_GB","WAIT_S","STATUS"],
      (.accelerator[] | select(.family|test($re;"i"))
       | [.slugMultiCloud, .family, count, .cost, spot,
          ((.resources.memoryMb|tonumber)/1024|round), .availableInSeconds, status])
      | @tsv' | column -t -s $'\t'
}

# litcompare <family> <gpus> [gpuType-regex] — the same hardware on every cloud, cheapest first.
# Stops if any cloud's catalog can't be fetched: a missing cloud could hide the real winner.
litcompare() {
  local p json rows=""
  for p in MACHINE AWS GCP LAMBDA_LABS NEBIUS VOLTAGE_PARK VULTR; do
    json=$(_litfetch "$p") || return 1
    rows+=$(printf '%s' "$json" | jq -r --arg p "$p" --arg f "$1" --argjson n "$2" --arg m "${3:-.}" "$_LITJQ"'
        .accelerator[]
        | select((.family|ascii_upcase)==($f|ascii_upcase) and .resources.gpu==$n
                 and ((.resources.gpuType // "")|test($m;"i")))
        | [$p, .slugMultiCloud, (.resources.gpuType // "?"), .cost, spot, .availableInSeconds, status]
        | @tsv')$'\n' || return 1
  done
  { printf 'CLOUD\tSLUG\tGPU\tUSD/HR\tSPOT/HR\tWAIT_S\tSTATUS\n'
    printf '%s' "$rows" | grep . | sort -t $'\t' -k4,4 -g; } | column -t -s $'\t'
}

# litquote <usd_per_hour> <instances> <hours> [storage_gb] [storage_days]
litquote() {
  jq -n --argjson r "$1" --argjson n "$2" --argjson h "$3" \
        --argjson gb "${4:-0}" --argjson d "${5:-0}" '
    ($r*$n*$h) as $c | (([$gb-10,0]|max) * 0.10 * ($d/30)) as $s
    | { rate_per_hour: $r, instances: $n, hours: $h,
        cluster_per_hour: ($r*$n*100|round/100),
        compute_usd: ($c*100|round/100),
        storage_usd:  ($s*100|round/100),
        total_usd:   (($c+$s)*100|round/100) }'
}
litprice MACHINE                 # everything on Lightning Cloud
litprice GCP 'B200|H200'         # just those families on GCP
litcompare H100 8                # every cloud's 8×H100, cheapest first
litcompare A100 1 80gb           # 1×A100, 80 GB variants only
litquote 36 32 336               # 32 nodes × a $36/hr rate × 2 weeks

コストの計算式

時間:1 日 = 24 時間 · 1 週間 = 168 時間 · 1 か月 = 730 時間(または days × 24)· 1 年 = 8760 時間。

compute_usd  = cost_per_hour × instances × hours          # billed per second, no rounding up
spot_usd     = spotPrice     × instances × hours          # only if spotPrice > 0
storage_usd  = max(0, drive_gb − 10) × $0.10 × months     # first 10 GB free, billed daily
total_usd    = compute_usd + storage_usd
  • GPU 1 基あたりの時間料金 = cost / resources.gpu。

  • 複数ノード:ノードあたりの cost × num_machines。H100_X_8 で --num-machines 32 を指定すると、8 基の H100 の料金の 32 倍が請求されます。

  • サービング:cost × レプリカ数 × 時間。オートスケーリングの場合は範囲で見積もります。min_replicas は 24 時間 365 日支払う最低数(ゼロまでスケールする場合は 0)、max_replicas は上限です。トークンあたりのコスト効率:

    usd_per_1M_tokens = (cost_per_hour × replicas) / (tokens_per_sec × 3600 / 1e6)
    

    tokens_per_sec は、指定したバッチサイズで実測した合計出力スループットです。ベンチマークで測定するか、範囲を提示してください。ユーザーがモデルを呼び出すだけでよい場合は、lightning-llm-gateway のトークンあたりの料金モデルと比較してください。専用 GPU が有利になるのは、かなり高い負荷が継続する場合に限られます。

  • スポット/中断可能(--interruptible、interruptible=True)は通常 15~60%割引ですが、中断される可能性があります。チェックポイントを取るトレーニングには推奨しますが、サービングの SLA には決して推奨しないでください。

  • 課金対象は割り当て全体の時間枠です。startedAt から stoppedAt までには、イメージのプル(この間 SDK は Pending を報告します)とシャットダウンも含まれます。大きなイメージを使った 20 分のジョブでは、28 分分が課金されました。起動時間を別項目として見積もるか、範囲で提示してください。ジョブが短いほど、差は大きくなります。

  • ストレージ:Drive だけでなく、チームスペースのフォルダーも数えてください。フォルダーとして追加したデータは Drive と同様に課金されます。外部のバケットを接続した場合は、そのバケットのクラウドで課金されます。どちらも /v1/projects/<pid>/data-connections に表示されるため、isBillableFolder: true を確認してください。Teamspace.new_folder() は課金対象の種類を作成します。数週間にわたるトレーニングでは、チェックポイントとデータセットのサイズを確認してください。20 TB の場合、月額は約 2,000 ドルです。

  • すべてのアカウントでCPU 4 基の Studio 1 台が無料です。その他のマシンは定価で課金されます。

数値を示す際は毎回、料金、インスタンス数、時間、スポットかオンデマンドか、ストレージ、価格を取得した日付を前提として明記してください。

モデルのハードウェアサイジング(料金を調べる前に実施)

ユーザーがマシンではなくモデルを指定した場合は、まず必要なサイズを見積もり、前提を明示してから料金を調べてください。GPU あたりの VRAM(カタログに記載されていない場合があります):

ファミリーGPU あたりの VRAMファミリーGPU あたりの VRAM
T416 GBH10080 GB
L424 GBH200141 GB
A10040 または 80 GB(gpuTypeを確認)B200180 GB
L40S48 GBRTXP(RTX PRO 6000)96 GB
A4048 GBTPU v6e32 GB HBM/チップ

推論/サービング用メモリ

weights_gb  ≈ params_B × bytes_per_param        # BF16/FP16 = 2, FP8 = 1, INT4 = 0.5
kv_cache_gb ≈ 2 × layers × kv_heads × head_dim × bytes × ctx_len × concurrency / 1e9
vram_needed ≈ weights_gb × 1.15 + kv_cache_gb   # ~15% for activations/fragmentation

vram_needed ≤ gpus × vram_per_gpuを満たす最小の SKU を選び、テンソル並列度は 2 の累乗にしてください。選択する前に式全体を計算し、単位を混同しないようにしてください。「80 GB」はベンダーの表記ですが、nvidia-smiでは H100 あたり 81,559 MiB ≈ 85.5 十進 GB と表示されます(H200 は「141 GB」の表記に対して 143,771 MiB ≈ 150.8 GB と表示されます)。70B モデルの BF16 重みは 140 GB で、KV キャッシュを含める前でも140 × 1.15 = 161 GBです。2×H100 の 171 GB では残りは約 10 GB です。適度なコンテキスト長と同時実行数なら収まるため、それ以上を約束する前に KV キャッシュのサイズを見積もるか、1×B200 を選んでください。総メモリ量は必要条件ですが、十分条件ではありません。モデルは、指定したテンソル並列度で各カードに分割できる必要もあります。

トレーニング用メモリ = ベース重み + 学習可能な状態 + アクティベーション:

手法ベース重み学習可能な状態(勾配 + AdamW)70B、アクティベーションを除く
全パラメーターのファインチューニング、混合精度BF16、2 B/パラメーター、すべて学習対象約 14–16 B/パラメーター(勾配、FP32 マスターコピー、2 つの FP32 モーメント)約 1.1–1.3 TB → FSDP/ZeRO-3 によるマルチノード構成
LoRA凍結、BF16(2 B/パラメーター)アダプターのみ。通常、パラメーターの 1% 未満約 140 GB → 2×H100 または 1×H200/B200
QLoRA凍結して 4-bit に量子化(約 0.5 B/パラメーター)アダプターのみ約 35–40 GB → 80 GB の GPU 1 基

どのケースでもアクティベーション分が上乗せされ、バッチサイズ × シーケンス長(ロジットについては語彙サイズも)に応じて増加します。勾配チェックポイントは、計算量を増やす代わりにアクティベーションを削減します。小規模モデルでもアクティベーションが支配的になることがあります。バッチ 8 × 768 トークンで実施した 4B の LoRA 実行では、ピーク時に 64 GB を使用しました。より大きな GPU で測定したピーク値をそのまま流用することはできません。この実行は H200 で測定したもので、80 GB の H100 ではメモリ不足になったため、数値を測定した GPU に合わせてサイズを見積もってください。QLoRA は、凍結したベースモデルの量子化を組み合わせた LoRA です(PEFT:量子化)。

トレーニング時間(料金に直結します):

flops       = 6 × params × tokens                       # fwd + bwd, dense transformer
gpu_hours   = flops / (peak_flops × mfu × 3600)
wall_hours  = gpu_hours / (num_gpus × scaling_efficiency)
cost        = wall_hours × nodes × node_cost_per_hour

密な BF16 のピーク性能(スパース性なし):A100 312 TFLOPS · H100/H200 989 TFLOPS · B200 約 2250 TFLOPS · L40S 362 TFLOPS · L4 121 TFLOPS。MFU 0.35–0.5(0.4 が妥当なデフォルト値)と、8–16 ノードで約 0.9、32 ノード以上で約 0.8 のスケーリング効率を使用してください。MFU、データローダーの停止、再起動、スケーリングによる損失によって、実際の値は数十パーセント変動します。幅のある値を提示し、前提条件を列挙してください。

ワークフローの例

このスキルで対応するプロンプト:「8×H100 を 32 台のノードで 2 週間トレーニングすると、いくらかかりますか?」、「B200 でモデルを提供すると、いくらかかりますか?」、「Llama-70B をファインチューニングする最も安価な方法は?」、「A100 を 2 台と 5 TB のデータを維持した場合、月額料金はいくらですか?」。

マルチノードのトレーニング見積もりを最初から最後まで。 ここでの料金は例示用です。litcompare が返す値を使用してください。

litcompare H100 8                   # pick the cheapest row that's "ok" and in the user's teamspace
litquote 36 32 336                  # 32 nodes, 2 weeks, if that row is $36/hr: $1,152/hr -> $387,072
litquote 36 32 336 20480 14         # + 20 TB of checkpoints kept for the fortnight

次の前提条件を添えて報告してください:「 の 8×H100 ノード 32 台 × $36/ノード/時 = $1,152/時、2 週間(336 時間)でオンデマンドの場合は約 $387k、さらに 20 TB のチェックポイントに約 $955。料金の取得日:。」 スポット料金は spotPrice > 0 で、ジョブがチェックポイントを保存する場合にのみ追加します。また、行が RESERVABLE の場合はキャパシティブロックの料金も追加してください。

ほかのプロンプトも同じ手順で対応します:

  • Lightning Cloud が対応していない可能性がある GPU ファミリーでのサービング: litcompare B200 1 と litcompare B200 8 を実行し、DWS-ONLY と OUT-OF-CAPACITY の行に注意を促して、スケール・トゥ・ゼロの料金は範囲で提示します。
  • ファインチューニング: トレーニング用メモリの表で規模を見積もります(7B の LoRA は 80 GB GPU 1 台に収まります)。次に litcompare H100 1 と litquote <rate> 1 <hours> を実行します。
  • 毎月の継続的な料金: 2 台のマシンを 24 時間 365 日稼働させる料金と 5 TB 分の料金には、litquote <rate> 2 730 5120 30 を実行します。終日稼働しない場合は、より少ない時間数を指定してください(1 日 8 時間なら月あたり約 243 時間です)。

REST API を使ったフォールバック

# full record for one SKU (all capacity/quota/reservation fields)
curl -s "https://lightning.ai/v1/core/accelerators?cloudProvider=AWS" \
| jq '.accelerator[] | select(.family=="H100" and .resources.gpu==8)'

# AWS reserved capacity-block rate vs on-demand
curl -s "https://lightning.ai/v1/core/accelerators?cloudProvider=AWS" \
| jq -r '.accelerator[] | select(.reservable) | [.slugMultiCloud, .cost, .capacityBlockPrice] | @tsv'

# what a finished job actually cost (needs auth): the ground truth to check an estimate against
lightning job inspect <job-name> --teamspace <owner>/<teamspace>

job.total_cost は、完了したジョブの実際に発生した USD 建ての料金を返します(lightning-jobs を参照)。ジョブが確定してから取得できます(「注意点」を参照)。認証済みの場合、Teamspace("owner/teamspace").list_machines(cloud_account=<id>) は、該当アカウントでキャパシティ内にあるマシンの cost、interruptible_cost、wait_time、provider を含む Machine オブジェクトを返します。<id> は Teamspace(...).cloud_account_objs[i].cluster_id から取得してください。.cloud_accounts の表示名を指定すると空のリストが返され、引数を指定しないと複数のアカウントの行が、どのアカウントのものか示されずにまとめられます。lightning-jobs にはアカウントごとの一覧があります。クラウド間の比較やログイン前の見積もりには、REST カタログを使用してください。

注意点

  • すべての定数で Machine.<NAME>.cost と .interruptible_cost は None ですが、.slug は設定されているため、オブジェクトはデータが読み込まれているように見えます。 料金はカタログまたは list_machines() から取得してください。
  • ジョブが最初に終了状態を報告した時点では、job.total_cost は暫定値で、数分間増え続けます。 そのことを示すフラグはありません。また、約 1 分間は正確に 0.0 と表示されることもあります。2、3 回読み取って値が変わらなくなるまでポーリングし、完了直後の 0.0 は「まだ計算されていない」と解釈してください。
  • 不明な cloudProvider の値を指定すると、警告なしで AWS のカタログが返されます。 AZURE、KUBERNETES、TENSORDOCK は、AWS の SKU をバイト単位でそのまま返します。表に記載したプロバイダーのみ確認済みです。それ以外のプロバイダーから見積もる前に(enum には CUDO、MITHRIL、THUNDER_CAT、CLOUDFLARE、RAFAY、SLURM も記載されています)、その応答を AWS の応答と比較してください。
  • cloudProvider=LIGHTNING や DGX を使って料金を見積もらないでください。 これらは、プレースホルダーの料金 1 と 2 を持つ内部クラスタのエントリーを 1 件返します。SDK の CloudProvider.LIGHTNING はカタログの MACHINE と同じプラットフォームです。そこに起動するには、--cloud lightning-baremetal を渡してください。
  • プラットフォームからは保存済みバイト数を確認できません。 /v1/memberships の currentStorageBytes は、課金対象フォルダーにデータを追加して空にしても変わりませんでした。アップロードしたデータ量に基づいてストレージのサイズを見積もってください。
  • このスキルは見積もりのみを行うため、料金を見積もったものを起動する前に、ユーザーに確認してください。

コメント