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

テスト駆動Kaggle

 テスト駆動Kaggle

Avatar for ねぼすけAI

ねぼすけAI

July 08, 2025
Tweet

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