Slide 1

Slide 1 text

AI 2025.09.18 宇都 恭平 GO株式会社 Kaggle過去コンペ上位解法を AIエージェントでレポートする

Slide 2

Slide 2 text

AI 2 AIエージェントを使ってkaggleの過去コンペの上位解法レポートを作成する方法を いくつか試したので紹介する。 参加していない過去コンペの解法を理解するのが目的 今日話すこと

Slide 3

Slide 3 text

AI 3 項目 01|データセットと前処理 02|コーディングエージェントを試す 03|Deep Researchを試す 04|カスタムエージェントを試す

Slide 4

Slide 4 text

AI 4 項目 01|データセットと前処理 02|コーディングエージェントを試す 03|Deep Researchを試す 04|カスタムエージェントを試す

Slide 5

Slide 5 text

AI 5 ○ Kaggleは通常のweb検索ツールでdiscussion情報を読み取ることができない ○ 過去コンペであればMeta Kaggleデータセットにdiscussion情報が集約されているため 今回はこちらを利用する Meta Kaggleデータセット https://www.kaggle.com/datasets/kaggle/meta-kaggle

Slide 6

Slide 6 text

AI 6 コンペ概要(overview)とdiscussion情報はcsvのカラムにmarkdownテキストで挿入されて いる。そのままではデータサイズが多くノイズも含まれるため以下のような前処理をして markdownファイルを生成する データの前処理 overview/discussion情報 (markdownファイル) meta kaggle Competitions.csv Forums.csv ForumMessages.csv ForumTopics.csv コンペティション フィルタ ソリューション フィルタ 指定したコンペ名でデータ をフィルタする 指定したキーワードで解法 discussionをフィルタする ex; place, solution, 1st, 2nd, 3rd, 4th, 5th…

Slide 7

Slide 7 text

AI 7 前処理によってコンペのoverviewとdiscussionのmarkdownファイルが用意できる 前処理の結果

Slide 8

Slide 8 text

AI 8 レポートの質を評価するために昨年参加していたEediコンペを題材とする。 なお今回は解法まとめブログ等の外部情報なしで検証したいためweb検索はoffとしている。 検証用の過去コンペ https://speakerdeck.com/kuto5046/kaggle-eedikonpezhen-rifan-ri

Slide 9

Slide 9 text

AI 目的: 指定したコンペティションの上位解法を網羅し詳細で比較可能なレポートを作成する。 要件: ● 出力形式: Markdown ● 情報源: 指定フォルダ内に存在する上位解法投稿(例 : 1位, 2位, 3位…)を漏れなく含める。存在しない順位は書かない ● 記述内容 ○ 概要、問題設定、評価指標 ○ 各解法の詳細 ■ データ/特徴量/前処理/後処理 ■ モデル構成・学習戦略・検証方法、 ■ 推論・実装上の工夫(高速化、最適化、リソース削減など) ■ 独自の工夫・課題解決策 ■ 参照元URL: 必ず Kaggle Discussion の投稿URLを明記 ○ 横断比較 ■ 共通要素を引用付きで整理 ■ 解法同士の違い・関連性を分析的にまとめる ● 画像: 投稿本文に画像 URLがあれば、対応する説明箇所に ![](URL) を挿入して表示 ● 表現: ただの日本語訳ではなく、解法間の関係や差分がわかるよう分析・要約する ● 禁止事項: 記憶や外部情報による補完・推測は禁止。必ずフォルダ内資料だけを根拠にする 9 プロンプトの例 基本的に以下を利用しリサーチ方法に応じてパス名などを補完する

Slide 10

Slide 10 text

AI 10 項目 01|データセットと前処理 02|コーディングエージェントを試す 03|Deep Researchを試す 04|カスタムエージェントを試す

Slide 11

Slide 11 text

AI 11 エディタ上で手軽に試せる方法としてコーディングエージェントを利用する手がある。 色々選択肢はあるが今回はOpen AIのCodexを利用する 先ほどのプロンプトファイルを与えてAgentモードでレポートを作成してもらう。 Reasoning effortはHighとする Codex

Slide 12

Slide 12 text

AI 12 ■良い点 概要を掴むにはいい感じ 指示通り画像を含めてくれている ■もう少しな点 解法についてよく知っている状態だと 内容がやや薄く感じる Codexによるリサーチ結果

Slide 13

Slide 13 text

AI 13 以下のような特徴がある - 実行タスクを分解して作成し順に実行 - かなり長いステップを自律的に動作する - 各ステップ(CoT,コマンド,ツール)の実行詳細をみれる - rgコマンドでファイル内の文字列検索をしている Codexのリサーチプロセス

Slide 14

Slide 14 text

AI 14 項目 01|データセットと前処理 02|コーディングエージェントを試す 03|Deep Researchを試す 04|カスタムエージェントを試す

Slide 15

Slide 15 text

AI 15 レポートの質を改善するためにChatGPTのDeep Researchを利用してみる モデルはGPT5を利用する ChatGPT Deep Reseach

Slide 16

Slide 16 text

AI 16 ①Google Driveにファイルをアップロードする ②ChatGPTのチャットUI上でGoogle Driveと接続する Tips: markdown形式だとDrive側の問題かうまく内容を読んでくれなかったため txt形式でアップロードしている。 指定ファイルをもとにDeep Researchする方法

Slide 17

Slide 17 text

AI 17 ■良い点 - レポートの質が高く個別解法だけでなく 共通点/相違点のまとめ方が上手い - 情報が多い - 具体的な数字がレポートに含まれている - 引用も適切に載せてくれている ■もう少しな点 - 画像は表示されない - 引用がgoogle driveのファイルになる Deep Researchによるリサーチ結果 https://chatgpt.com/s/dr_68c4b52a16f48191b8caa5499c5e7d47

Slide 18

Slide 18 text

AI 18 CoTとGoogle Driveからのファイル読み込みを 交互に繰り返して必要な情報を逐次収集している 網羅的に調査するという指示の影響か どの順位が未調査であるかという点を逐次確認しているのが CoTから分かるのが面白い Deep Researchによるリサーチプロセス

Slide 19

Slide 19 text

AI 19 項目 01|データセットと前処理 02|コーディングエージェントを試す 03|Deep Researchを試す 04|カスタムエージェントを試す

Slide 20

Slide 20 text

AI 20 Deep Researchが性能面で有用であることがわかった。せっかくなのでリサーチエージェント の仕組みを理解する目的で自身でカスタム可能なエージェントも試してみる。 DeepResearch BenchのLBにあるLangChain Open Deep Researchを利用する カスタムエージェント https://huggingface.co/spaces/Ayanami0730/DeepResearch-Leaderboard

Slide 21

Slide 21 text

AI 21 LangChainで実装されたOSSのDeep Researchプロジェクト 今回はこれをベースにリサーチエージェントを作成する。 1. Scope: ユーザの指示を明確にする 2. Research: Supervisorがsub agentにリサーチタスクの指示を出し調査 3. Write: 集めた情報を集約しレポートを作成 Open Deep Researchとは

Slide 22

Slide 22 text

AI 22 Open Deep Researchではweb検索ツールを利用して情報を収集するが 今回はローカルファイルが対象となるためファイル検索ツールが必要。 FAISSという類似度検索ライブラリを使ったベクトル検索ツールを用意する。 ローカルファイルのベクトル検索 overview/discussion情報 (markdownファイル) ベクトルストア sub agent (LLM) ベクトル検索ツール (text-embedding-3-small) ②検索クエリ ⑤検索結果 ①事前にローカルの ベクトルストアに登録 ③類似度検索 ④上位k件を返す

Slide 23

Slide 23 text

AI 23 ベクトルストアに登録する際メタデータを登録できる。 ここにdiscussionのkaggle URLや 順位情報を入れることで、最終レポートに kaggleのURLを引用に使用したり 何位の解法かを明確にLLMに与えることができる ベクトル検索の工夫 doc = Document( page_content=content, metadata={ "source": str(p), "filename": p.name, "chunk": idx, "title": title, "url": url, "rank": rank, }, )

Slide 24

Slide 24 text

AI 24 ■良い点 出力ボリュームなどをパラメータで調整可能 順位/引用(kaggle URL)が必ずついている。 ■もう少しな点 レポートの質はDeep Researchに劣る 画像/情報が取れていないところがある リサーチ結果

Slide 25

Slide 25 text

AI 25 開発ツールとしてLangSmithを利用している。 リサーチエージェントを動かしながらwebブラウザ上でエージェントの状態や実行詳細を リッチな可視化と合わせて見れるのが便利 LangSmithを用いたリサーチプロセスの可視化

Slide 26

Slide 26 text

AI 26 - レポート性能ならChatGPT Deep Researchを使うのが一番良いと感じた - 実用上は手動でデータをアップロードしたりが面倒なのでOpen AIのDeep Research APIを利用してwebアプリケーションにするとより手軽に使えて良さそう - LangChainエージェントはまだまだ改善の余地あり まとめ