Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テスト駆動Kaggle

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 テスト駆動Kaggle

Avatar for ねぼすけAI

ねぼすけAI

July 08, 2025
Tweet

More Decks by ねぼすけAI

Other Decks in Programming

Transcript

  1. 自己紹介 名前:ISAKA Tsuyoshi(ねぼすけAI) 所属:ダイキン工業株式会社 趣味:Kaggle、Qiita、将棋、自作PC、 ポケポケ、ピクミン、フットサル 計算資源:RTX 5090、OpenAI API、RunPod 好きなコンペ

    :LLMコンペなどの エンジニアリング要素が強いコンペ Kaggle:@isakatsuyoshi GitHub:@Isaka-code Qiita :@Isaka-code X :@AInebosuke Opinions are my own. I just came here as a Kaggler. 2 結果待ち:「Konwinski Prize」、「OpenAI to Z Challenge」 参加中:「NeurIPS - Open Polymer Prediction 2025」など
  2. 先ほどのエラーの後日談 実は、先ほどのエラーからすぐに原因を特定し、迅速なデバッグに成功しています。
 なぜか? → エラーの箇所以外はテストコードを書いていたから!
 • 不具合: インターバルリミットでタイムアウト
 • 対策:

    タイムマネジメントクラスを実装
 • 予防: タイムマネジメントクラスのテストコードを作成
 テストコードのおかげで、実行時間超過の不具合は以降は発生しませんでした。
 不具合が生じてからテストコードを追加しても間に合います。むしろ、 そこはテストを書くべき重点領域 です。
 8
  3. 機械学習における 3つのテスト対象 1. モデル 2. データ 3. コード←今日はこれの話 1. モデルのテストとは

    モデルが期待通りの性能を発揮しているか検証するこ と。精度だけでなく、予測の一貫性や異常なケースでの 挙動も確認する。「Trust CV」という言葉はKaggleにお いてあまりにも有名。 2. データのテストとは 学習・推論データの品質と整合性をチェックすること。欠 損値・外れ値・データ型などを検証する。EDA(探索的 データ分析)とも呼ばれる。 3. コードのテストとは 作成したコードが要件を満たしているかを検証すること。 機械学習プロジェクトでは、前処理関数、特徴量エンジ ニアリング関数、評価指標を計算する関数など、さまざ まなコードが対象になる。 9
  4. Kaggle参加時にテストコードを書く方法 簡単な方法:「ロジックはUtility Scriptに分離し、Notebookは呼び出しのみ」 1. Notebookにベタ書きからの卒業(関数やクラスに分割) 2. Utility Scriptに処理を切り出し (コードをGitHubに連携させ、開発はローカルで行う) 3.

    切り出したスクリプトのテストコードを作成 4. 提出用Notebookからスクリプトをimport +αその1:上記の2で、Kaggle APIを用いて、ローカルの スクリプト群をDatasetとしてアップロードすることもできます +αその2:テストコードをプロダクトコードより先に書く手法は 「テスト駆動開発」と呼ばれます 13
  5. コンペでテストコードが特に役に立った事例の紹介① LLM 20 Questions (9位・solo gold medal) - 言葉当てゲーム「20 Questions」をプレイできるAIを開発するコンペ

    - 正規表現のスクリプト、各種アルゴリズム全てのテストコードを作成 - エンジニアリング力を武器にソロ金メダルを獲得 16
  6. どんなケースでソフトウェアテストが有効か? 有効なコンペ - 1日のサブ数が少ない - 入出力処理が多い - 期間が長い - コード提出コンペ

    おすすめの人 - うっかりミスが多い人(私) - エラーで時間を溶かしたく ない人 - 本質部分に集中したい人 書くべきシチュエーション - デバッグに苦しんでいるとき - コードを共有するとき - 重めの計算を回す直前 - リファクタリング前 18