mcpField
K
kaggle-environment

kaggle-environment

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

kaggle-environment について

Kaggleのホスト環境でノートブックを開発・実行する人向けのスキルです。パス、アクセラレーター、インターネット、依存関係、リソース制限に加え、再現性やシークレットの扱い、ローカル環境との差の調査方法を説明します。

主な機能

  1. 01Kaggleのファイルパスの説明
  2. 02アクセラレーターとネットワーク設定
  3. 03再現性のチェックリスト
  4. 04シークレットの取り扱い上の注意
  5. 05ローカル環境との差の調査

活用シーン

  1. 01提出物や成果物を適切な場所に保存
  2. 02学習時のアクセラレーターとリソース要件の確認
  3. 03Kaggle上でのノートブック実行失敗の調査
  4. 04ノートブックやアップロード物へのトークン埋め込み防止

インストール

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

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill kaggle-environment

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

詳細

Kaggle 環境

概要

Kaggle のホスト型ランタイムの動作(ファイルシステムのパス、アクセラレーター、インターネット接続、依存関係の差異、出力先、再現性、リソース制限)には、このスキルを使用してください。ローカル開発時の前提と Kaggle での実行時の前提を区別してください。

パスの規則

パス用途
/kaggle/input読み取り専用でマウントされるデータセット、コンペティションデータ、モデル、ノートブックのソース
/kaggle/working書き込み可能な作業ディレクトリ。提出物と成果物をここに保存します
ローカルプロジェクトフォルダーCLI の push/pull で使用するソースとメタデータのフォルダー

最終出力を /kaggle/input のみに保存しないでください。ここは読み取り専用です。提出物や成果物は /kaggle/working/<file> に書き込み、ノートブックの出力にファイルが表示されることを確認してください。

アクセラレーター ID

kaggle kernels push -p <folder> --accelerator <ID> でアクセラレーターをリクエストできます。有効な ID には、NvidiaTeslaP100、NvidiaTeslaT4、NvidiaTeslaT4Highmem、NvidiaTeslaA100、NvidiaL4、NvidiaL4X1、NvidiaH100、NvidiaRtxPro6000、TpuV38、Tpu1VmV38、TpuV5E8、TpuV6E8 があります。まず、用途に合った最小のアクセラレーターを選んでください。また、ハイエンド GPU/TPU と長いタイムアウトを組み合わせると、クォータを消費する可能性があることを警告してください。

ランタイムのチェックリスト

  • 言語ランタイム、ライブラリ、データ分割器の乱数シードを設定します。
  • 少量のサンプルと短いエポックで実行できるよう、DEBUG フラグを用意します。
  • 結果に影響する依存関係のバージョンを固定します。
  • 時間のかかるトレーニングを開始する前に、入力パスの存在をアサートします。
  • チェックポイント、提出物、ログを /kaggle/working に保存します。
  • 大きな配列や GPU テンソルを使用する場合は、フォールド間またはモデルのステージ間でメモリを解放します。
  • コンペティションの最終実行では、許可されており、かつ必要な場合を除き、インターネットを無効にします。

インターネットとシークレット

メタデータでは、enable_internet はデフォルトで false です。ワークフローとコンペティションのルールで許可されている場合にのみ有効にしてください。機密情報には、Kaggle の UI から Kaggle Secrets を使用するよう案内してください。トークンをノートブック、メタデータ、コマンド履歴、アップロードする成果物に埋め込まないでください。シークレット管理に公開 API が対応していると主張しないでください。

CLI から push したコミット済み実行

Kaggle CLI から push したコミット済み実行やバッチ実行で、UserSecretsClient().get_secret() が動作すると想定しないでください。Kaggle の UI でシークレットが存在し、アタッチされていても、HTTP 400 が返ることがあります。kernel-metadata.json には、サポート対象の secrets、environment、環境変数のフィールドはありません。存在しないフィールドを作り出さないでください。

シークレットを使わずに済むワークフローでは、認証を必要としない設計を優先してください。Kaggle から一時的な公開トンネルを使う場合は、Cloudflare TryCloudflare のクイックトンネルを使用すると、ngrok トークンを避けられます。

cloudflared tunnel --url http://127.0.0.1:11434

サービスを検証する際は、公開トンネルのホスト名ではなく、Kaggle 内から localhost にアクセスしてください。Kaggle のネットワークから Cloudflare のトンネルホスト名を名前解決できないことがあります。

curl -fsS http://127.0.0.1:11434

keepalive セルの実行中に kaggle kernels logs が空でも、外部ツールが kaggle kernels output で取得できるよう、検出した公開 URL を /kaggle/working/<name>.txt に書き込んでください。

Apt の信頼性

Kaggle のベースイメージには、DNS 解決に断続的に失敗し、apt-get update を妨げるサードパーティの PPA ソースが含まれている場合があります。パッケージをインストールする前に、PPA のソースファイルを無効にし、短いタイムアウトと再試行を使うことを検討してください。

sudo mkdir -p /etc/apt/sources.list.d/disabled
sudo find /etc/apt/sources.list.d -type f -name "*.list" -print -exec sudo mv {} /etc/apt/sources.list.d/disabled/ \;
sudo apt-get update \
  -o Acquire::Retries=5 \
  -o Acquire::http::Timeout=20 \
  -o Acquire::https::Timeout=20

ノートブックの起動時にネットワークが不安定になることがあるため、パッケージのインストールは最小限にしてください。

ローカルと Kaggle の違い

ローカルでは動作するコードが Kaggle で失敗する場合は、マウントされたソース名、大文字と小文字の区別、パッケージバージョンの不足、書き込み先のパス、インターネット接続、アクセラレーターの利用可否、メモリを確認してください。実行の決定性を保てる場合にのみパス検出用のラッパーを追加し、モデリングのロジックを変更する、隠れた環境固有の分岐は避けてください。

サポート対象外の公開 API 領域

Docker イメージの選択、クォータ管理、スケジューラーの管理、コラボレーターの管理、セル単位の編集について、公開 API がサポートしていると主張しないでください。これらの作業が公開 CLI/API の対象外である場合は、UI を使用する際の注意点を案内してください。

Sources

コメント