Slide 1

Slide 1 text

第5回 関東Kaggler会 ISAKA Tsuyoshi

Slide 2

Slide 2 text

自己紹介 名前:ISAKA Tsuyoshi(ねぼすけAI) 仕事:データサイエンティスト(LLM関連) 趣味:Kaggle(特に解法読み)、Qiita、将棋、自作 PC、ポケポケ、ピクミン、フットサル 計算資源:RTX 5090、LLM 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 LLM + DCAI Tabular + DCAI LLM + 🎅 LLM + ⛳ LLM + DCAI LLM + DCAI ※DCAI(Data-Centric AI):データ を起点にAIの性能を高めるアプローチ 一緒にチームを組んでくださった皆様 ありがとうございました!

Slide 3

Slide 3 text

本発表の主旨 モデルと比べて、データを改善する技術の情報は稀少です。 Kaggleで勝つための Data-Centric AIについてまとめます。 (Data-Centric Kaggle) 皆様の手札を 1枚増やすことができたら幸いです。 3

Slide 4

Slide 4 text

Data-Centric AIとは Data-Centric AI とは、AIの性能向上を、 
 従来のモデル改良よりもデータセットの 
 体系的な設計・改善で実現する開発手法。 
 Andrew Ng先生が2021年に提唱した。[1] 
 
 
 
 
 Model-Centric AI :データ固定でモデル改善 
 Data-Centric AI :モデル固定でデータ改善 
 4 [1] A Chat with Andrew on MLOps: From Model-centric to Data-centric AI(YouTube)

Slide 5

Slide 5 text

Data-Centric AIに興味を持ったきっかけ 5 特定のテキストを変換するために使用された プロンプトを復元するコンペ 
 数学の問題を解くAIを開発するコンペ 
 LLMコンペに参加する過程で、自然と Data-Centric な考え方が身につく
 データが1レコードしかない! 
 オープンデータによるデータ拡張 


Slide 6

Slide 6 text

Data-Centricなアプローチが特に役に立ったコンペの紹介① LLM 20 Questions (9位・solo gold medal) - 言葉当てゲーム「20 Questions」をプレイするAIを開発するコンペ - Private LBは完全に新規のThings(モノ)カテゴリーのキーワード - LLM・人力によるデータ拡張、英語版 Wikipediaのタイトルの利用 - LLM-as-a-Judgeの結果を参考にTier振り分け、UMAP可視化で確認 6 keyword・question・answerテーブル 
 データセットTier表 


Slide 7

Slide 7 text

Data-Centricなアプローチが特に役に立ったコンペの紹介② MAP - Charting Student Math Misunderstandings (7位・team gold medal) - 数学の問題に対する生徒の回答から、どのような誤解をしているかを AIに予測させるコンペ - ラベルは不均衡、Train/Public/Privateはi.i.d. - LLMによる合成データ作成+擬似ラベル - 3つの異なるデータを用いて、単一の例への過剰適合を回避 - 擬似ラベルを付与することで、ラベルノイズの緩和 - EDA、CVとLBなどを参考に意思決定 7

Slide 8

Slide 8 text

データを 1. 理解する 2. 増やす 3. 評価する 1. データを理解する まずはデータの分布やタスクに ついての理解を深めます。 2. データを増やす Private LBにおける分布を模倣 することを目指してデータを増や します。 3. データを評価する 増やしたデータがスコア改善に 貢献するか評価します。 ※Data-Centric AIの実践方法は、 決まった手順があるわけではなく、 論文やソリューションによって異なりま す。本日紹介する分類は一例です。 8

Slide 9

Slide 9 text

思考実験:目的の分布に近いデータセットを用意する 9 仮に目的を、共通テスト数学の本番(≒Private LB)における点数の最大化とする。
 模擬試験(≒Public LB)でもスコアを確認しながら、日々勉強に勤しんでいる。
 共テ数学の過去問(≒コンペ公式のデータセット)はすでに全て解いてしまった。
 追加するべき問題(≒外部データセット)として有力なのは何か?
 ✕共通テスト国語過去問 :
 同じ共通テストだが、分布が違いすぎる
 △数学検定1級過去問 :
 数学試験ではあるが、やや分布が異なる
 〇共テ数学予想問題集、センター試験数学過去問 :
 目的の分布に近い!※発表者はセンター世代のため想像で書きました。共テ世代の方、訂正あればコメントお願いしますm(_ _)m 


Slide 10

Slide 10 text

Train / Public LB / Private LB の関係性を理解する 10 - 目的の分布に近い手元データを用意する 
 - 実際にはLBのデータは見えないので注意 
 - i.i.d.ではない場合はさらに工夫が必要 
 good bad

Slide 11

Slide 11 text

データ特性の何を強化すべきか? 11 Scaling Laws 
 Kaplan et al. (2020) 
 計算量・データ量・パラメータ数を 
 増やせばべき乗で性能が向上。 
 Data Shapley 
 Ghorbani et al. (2019) 
 性能に貢献する価値あるデータを評価。 
 Concept Drift 
 Gama et al. (2014) 
 データは鮮度が命。
 ※ビッグデータの5V: アナリストのDoug Laney氏によって「3つのV」が提唱され、 後年2つのVが追加された概念。 6Vや7Vとする場合もある。 [1] A Chat with Andrew on MLOps: From Model-centric to Data-centric AI(YouTube) [1] 
 Small Data and 
 Label Consistency 
 Active Learning 
 Settles et al. (2009) 
 多様性や不確実性を考慮しデータを増やす。 


Slide 12

Slide 12 text

Kaggle Winning Formula by ケロッピ先生(hengck23さん) 12 [1] [1] https://www.kaggle.com/competitions/neurips-open-polymer-prediction-2025/discussion/587564#3241637 NeurIPS - Open Polymer Prediction 2025 にて、「Kaggle Winning Formula 」を教えてもらいました。 
 個人的には、MCAI期間 → DCAI期間 → MCAI期間(適宜さらにDCAIを追加) の順番で試すことが多いです。 
 原文
 翻訳


Slide 13

Slide 13 text

データを 1. 理解する 2. 増やす 3. 評価する 1. データを理解する まずはデータの分布やタスクに ついての理解を深めます。 2. データを増やす Private LBにおける分布を模倣 することを目指してデータを増や します。 3. データを評価する 増やしたデータがスコア改善に 貢献するか評価します。 ※Data-Centric AIの実践方法は、 決まった手順があるわけではなく、 論文やソリューションによって異なりま す。本日紹介する分類は一例です。 13

Slide 14

Slide 14 text

データを増やす技術の全体像 14 Many Simulation Competitions +α Many Competitions Many Competitions Many CV Competitions +α Many NLP/LLM Competitions +α 本日紹介するデータを増やす技術 1. データ生成過程の再現 2. オープンデータの利用 3. 擬似ラベルの付与 4. ルールベースによるデータ拡張 5. LLMによる合成データ作成 その他(本日は紹介せず) - ラベルノイズの修正  - 事前学習済みモデルの利用 - LLM以外の生成モデルによる合成データ作成 - オーバーサンプリング手法 - mixup(複数サンプルをmixして新データ作成) - Back Translation(翻訳された文章を再度翻訳)

Slide 15

Slide 15 text

補足:インデックス方向 / カラム方向 15 カラム方向の操作については、「特徴量エンジニアリング 」と呼ばれる
 (N数は変わらない)
 インデックス方向を増やす ← 本日はこちらの話


Slide 16

Slide 16 text

データを増やす方法①:データ生成過程の再現 16 データ生成過程の再現 :
 データの生成過程を実際に再現できるなら、 
 新たな学習用データをいくらでも作成可能。 
 ⚠注意点:外部データの利用やハンドラベリングが 
 禁止されているコンペではこの方法は使えない。 
 
 Vesuvius Challenge - Ink Detection では、
 パピルスを実際に作成するチームが登場した[2] 
 [1] https://www.kaggle.com/competitions/um-game-playing-strength-of-mcts-variants/discussion/533088 [2] https://www.kaggle.com/competitions/vesuvius-challenge-ink-detection/discussion/407545 UM - Game-Playing Strength of MCTS Variants 
 では、主催者からシミュレーションコードが提供された[1] 


Slide 17

Slide 17 text

データを増やす方法②:オープンデータの利用 オープンデータの利用 :
 確立されたタスクの場合は、すでに先行研究、 
 ベンチマーク、コンペなどがある可能性が高い。 
 - ディスカッションでも話題になっているはず 
 - Deep Researchなども活用 
 - Kaggleデータセットで検索 
 ⚠ライセンスに注意。不明点はKaggle内で質問。 
 
 Konwinski Prize は、SWE-benchという有名 
 ベンチマークを発展させたコンペだった。 
 当然既存のデータセットは利用可能。 
 17 NeurIPS - Open Polymer Prediction 2025 
 (機械学習を使用してポリマー特性を予測するコンペ) 
 では、シミュレーションの詳細設定は非公開。 
 ただし、一部のオープンデータが利用可能だった。 
 
 CAFA 5 Protein Function Prediction 
 (タンパク質の生物学的機能を予測するコンペ) 
 では、APIやディスカッションで外部データが共有 された。
                           
 
 [1] https://www.kaggle.com/competitions/cafa-5-protein-function-prediction/discussion/405362 [1]


Slide 18

Slide 18 text

データを増やす方法③:擬似ラベルの付与 18 擬似ラベル(Pseudo Label) :
 ラベルなしデータに対して、モデルの予測値を付与 した仮のラベルのこと。 
 追加学習に用いて精度を上げる目的で使う。 
 
 
 #22 atmaCup (バスケットボール選手判別チャレンジ)では、 「擬似ラベル」が上位解法に採用された 
 - 外部データを利用している訳では無く、与えられたラベルなし
 テストデータを用いているため、外部データ禁止のコンペでも
 適用可能(なことが多い ← 要ルール確認!)
 Feedback Prize - Predicting Effective Arguments 
 では、過去コンペデータに適用された[1] 
 CMI - Detect Behavior with Sensor Data では、
 「Online Pseudo-Labeling 」が採用された[2]
 - ラベルなしテストデータが手元で確認できない「Code Competition」で あっても、推論時に「擬似ラベル」を
 付与しオンラインで学習することで、モデルを更新できる
 [1] https://www.kaggle.com/competitions/feedback-prize-effectiveness/writeups/team-hydrogen-team-hydrogen-1st-place-solution [2] https://www.kaggle.com/competitions/cmi-detect-behavior-with-sensor-data/writeups/2nd-place-solution 擬似ラベル付与

Slide 19

Slide 19 text

データを増やす方法④:ルールベースによるデータ拡張 19 ルールベースによるデータ拡張 :
 画像データを始め、回転・反転などのルールベース 
 操作を行うことで、データ拡張が可能なことがある。 
 テキストデータでは、paraphrasing,noising,sampling 
 といったデータ拡張が可能なことがある。 
 ルールベースによるデータ拡張は、計算コストが軽量なため、 
 推論時にも適用可能 (Test Time Augmentation;TTA )
 Kaggle - LLM Science Exam (LLMを活用して科学の多肢選択問題を解くコンペ) 
 - 選択肢をシャッフルしTTAを行うことは自然な発想。ただし、それだけ推論時間が伸びてしまう。5位チーム は、{context} {Q} {A B C D E} {B C D E A} … {E A B C D} のように、全ての
 パターンをconcatすることで、推論を1回に減らし、Position Biasも緩和した。[2]
 [1] Li, Hou, Che (2021) Data Augmentation Approaches in Natural Language Processing: A Survey. arXiv:2110.01852. [2] https://www.kaggle.com/competitions/kaggle-llm-science-exam/writeups/preferred-chattykids-5th-place-solution-llama-2-70 スポーツデータ 
 [1]
 ルールベースによるparaphrasingの例 
 ボードゲームデータ 


Slide 20

Slide 20 text

データを増やす方法⑤:LLMによる合成データ作成 20 LLMによる合成データ作成 :
 次のように定式化できる: 
 
 
 ①モデル 
 - よりサイズの大きなモデルを使う
 - 複数のモデルを使う
 ②プロンプト 
 - 適切に構造化し、条件付けを行う(Conditional Prompting)
 ③元データ 
 - タスク理解に役立つデータを与える(In-Context Learning)
 - 偏りやノイズの少ないデータを与える
 [1] Long et al. (2024) On LLMs-Driven Synthetic Data Generation, Curation, and Evaluation. arXiv:2406.15126. [2] https://www.kodansha.co.jp/book/products/0000420398 『Kaggleではじめる大規模言語モデル 入門』で紹介されているコンペ 
 8つの内7つ でLLMによる合成データ 
 作成が行われた
 [2]
 [1]


Slide 21

Slide 21 text

データを 1. 理解する 2. 増やす 3. 評価する 1. データを理解する まずはデータの分布やタスクに ついての理解を深めます。 2. データを増やす Private LBにおける分布を模倣 することを目指してデータを増や します。 3. データを評価する 増やしたデータがスコア改善に 貢献するか評価します。 ※Data-Centric AIの実践方法は、 決まった手順があるわけではなく、 論文やソリューションによって異なりま す。本日紹介する分類は一例です。 21

Slide 22

Slide 22 text

データを評価する目的 22 ①モデルの汎化性能を本当に高めているかを検証するため ②モデルの挙動を観察および解釈するため ③データの選択やフィルタリングに活かすため ④学習時のコスト増に見合うかを判断するため

Slide 23

Slide 23 text

データの評価①:CVとPublic LB 23 〇 △ △ ✕ CV + CV - Public LB - Public LB + 成功 リーク? 失敗 過学習? CVとPublic LBからPrivate LBへの寄与を 
 一定推し量ることができる。 
 (i) 両者が連動して改善/悪化した場合は、 
 Private LBも同様の結果となることが多い。 
 (ii) CVのみ改善の場合は、データを増やす過程で、 リークが発生した可能性が高い。 
 (iii) Public LBのみ改善の場合は、過学習の傾向。 
 背景にある ダイナミクス を想像することが大切。 


Slide 24

Slide 24 text

データの評価②:EDA 24 オリジナルデータと同様に、追加したデータもEDAを行う必要がある。 
 説明変数と目的変数の両面での評価を行う。 
 大きくミクロ視点とマクロ視点 の2種類のEDAがある。 
 生データを見ろおじさん 
 ※イメージ図 
 ミクロ視点のEDA: 
 生データを直接見ることで、イージーミスを防止。 
 エラー分析も同様に重要。 
 LLMの合成データにおける問題例: 
 - 不要なフレーズ(例: "Sure!")が出力される 
 - 指示したフォーマットを守らない 
 - 不要な補足説明 
 - 別の言語になる 
 - 出力の多様性の欠如 
 マクロ視点のEDA: 
 データの件数が多い場合は、統計情報を確認することが大切。
 高次元データの場合は、UMAP可視化が有力。
 LLM 20 Questions で
 生成したデータは、
 オリジナルに近い。
 MAPコンペ で生成した
 データは、分布に差異が
 あるため、工夫が必要
 だったと考えられる。


Slide 25

Slide 25 text

データの評価③:Adversarial Validation 25 Adversarial Validation とは、訓練データとテストデータを 
 結合し、データの出所(訓練=0、テスト=1)を目的変数として 
 分類モデルを学習することで、訓練データの中からテストデータ 
 に類似したサンプルを特定・抽出する手法である。[1][2] 
 適切なCV設計のため、あるいは特徴量選択のために用いられることが多い。 
 合成データ=0、オリジナル=1とすることで、合成データにも応用可能。 
 
 G2Net Detecting Continuous Gravitational Waves (重力波検出コンペ) 
 - 本コンペは、主催者からデータ生成を行うためのAPIが提供された。
 11位チームは、作成した合成データに対してAdversarial Validation
 を適用することで、品質の評価を行った。[3]
 [1] https://fastml.com/adversarial-validation-part-one/ [2] Bickel, Brückner, Scheffer「Discriminative learning for differing training and test distributions」(ICML 2007) [3] https://www.kaggle.com/competitions/g2net-detecting-continuous-gravitational-waves/writeups/volodymyr-11th-place-solution-or-simpler-is-better

Slide 26

Slide 26 text

データの評価④:LLM-as-a-Judge 26 LLM-as-a-Judge :
 LLMを評価者(Judge)として用いること。 
 人力での評価と比べると、短時間で 
 大量のデータに対して、評価が可能。 
 次のように定式化できる: 
 
 
 LLM 20 Questions解法におけるLLM-as-a-Judge 
 - “question”を約500件用意
 - “keyword”候補に対して、LLM-as-a-Judgeを行い、
 “answer”を得る(yes, no, unsure, irrelevant)
 - yes, no以外はtieとしてまとめることで
 max_tokens=1に節約可能 
 - tieが50未満 かつ yesが50以上 
 - Wikipediaのタイトルに存在する
 [1] Gu et al. (2024) A Survey on LLM-as-a-Judge. arXiv:2411.15594. [1]
 keyword・question・answerテーブル 
 データセットTier表 
 Tokenization可視化 
 →Tier1

Slide 27

Slide 27 text

余談:MAPコンペの個人的な反省 27 3行振り返り 
 - 序盤:gemma-2-9b-it + LLMによる合成データ でCVとLBを向上させ金メダル圏内へ! 
 - 中盤:チームマージ後のチームメイトのDeepSeekやQwenではなぜか逆効果... 🤔
 - 終盤:擬似ラベル付与でラベルノイズ緩和、チームメイトの圧倒的パワーで7位金メダル獲得! 
 
 
 
 個人的な反省 
 - UMAP可視化などのEDA をもう少し丁寧に行うべきだった 
 - gemma-2-9b-it以外のモデルも早い段階で試すべきだった( MCAIとDCAIは両輪で回すべき!) 
 - LLM-as-a-JudgeやAdversarial Validation などを行わず、フィルタリングを疎かにしてしまった 


Slide 28

Slide 28 text

まとめ 28

Slide 29

Slide 29 text

まとめ 1. もう一度役に立った事例を眺める(埋めてみる) 29

Slide 30

Slide 30 text

何から始めるべきか? 30 ②応用 論文や過去コンペのソリューション から生きた事例を学ぶ。 基礎の組み合わせということが多い。 ③実践 実際のコンペで試し、 知識を経験に昇華する。 適用可能な状態に帰着 させることが大切。 ①基礎 DCAIの要素技術のインプット。 - 「Data-centric AI入門」[1] CVとLBに対する理解を深める。 - 「shake-upを科学する」[2] - 「Kaggleへの取り組み方~validation編~」[3] [1] https://gihyo.jp/book/2025/978-4-297-14663-4 [2] https://speakerdeck.com/rsakata/shake-upwoke-xue-suru [3] https://docs.google.com/presentation/d/1cjZTtvBDiHci1Hlc33UH9LVJXyj2t5Hh9ZiHnp3BgVk/edit#slide=id.p

Slide 31

Slide 31 text

Thank you for listening, and happy Kaggling! 31