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

「LLM時代のKaggleの闘い方」 -9日間で銅メダル獲得する話-

Avatar for masspeaks masspeaks
December 08, 2025

「LLM時代のKaggleの闘い方」 -9日間で銅メダル獲得する話-

Jigsaw - Agile Community Rules Classification の振り返り結果を社内の勉強会(有志)で発表した際の資料

Avatar for masspeaks

masspeaks

December 08, 2025

Other Decks in Science

Transcript

  1. -9日間で銅メダル獲得する話- Jigsaw - Agile Community Rules Classification Jigsaw - Agile

    Community Rules Classification Jigsaw - Agile Community Rules Classification 2025-11-26 社内勉強会 「LLM時代のKaggleの闘い方」 12/8/2025 1
  2. 12/8/2025 2 About me • X: masspeaks • Company: メーカー

    (コンサル→メーカーR&D → メーカーData Analytics部門) • Work: Data Scientist • Kaggle: ( 1: 今回のメダル) • Hobbies: –Tennis –Street Fighter 6 (Ultimate Master: 引退気味) –XG (推してます) @masspeaks Jigsawコンペ振り返り「LLM時代の闘い方」
  3. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 3 はじめに • 今回は新米Kaggler視点での 「今回のコンペの概要」「上位解法まとめ」 「9日間参戦の奮闘記 – LLM時代の取り組み方」

    について話します。 最終結果:銅メダル獲得 参戦期間:ラスト9日間 コンペ期間の終盤わずか9日だけ参戦。 短期集中で「公開知」と「リソース」を最大限活用する戦略。 上位約5.6%(137th / 2437)にランクインし銅メダル 短期間でも正しい戦略と環境があれば成果を出せることを実証 対象読者 • 現場の機械学習・データ分析に関わる技術者 • DX戦略を推進する経営層・リーダー • これからAI活用・Kaggle参加を本格化したい方
  4. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 6 Jigsaw Competitionの紹介 • 今回のコンペでは特定の不正 – コメントが「特定のルール」に違反しているかを判定。 –

    Yes/No の二値分類問題として解く • データ構造 – 入力: Comment (body), Rule text, Subreddit – 補助: Positive / Negative Examples (各ルール数件) • 評価指標:ROC-AUC – Public LB / Private LB で評価。 • 難しいポイント(Difficulty) – 未知ルールへの適応(Few-shot能力) – ラベルノイズ(矛盾・重複) – Subreddit特有のバイアス どんなコンペだったの? Part 1. コンペの概要 body: コメントのテキスト rule: 違反が判定されるルール subreddit: コメントが投稿されたフォーラム positive_example_1, positive_example_2: ルール に違反するコメントの例 negative_example_1, negative_example_2: ルー ルに違反しないコメントの例 rule_violation: バイナリのターゲット変数 (1: 違反, 0: 非違反) データ概要
  5. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 7 データ例 row_id JP body 笑。禁止に対して異議申し立てをして、もう二度としないと伝えてください。 rule 法的助言は禁止:法的助言の提供や要求は控えてください。

    subreddit PCMASTERRACE positive_example_1 別れを告げたり警察を呼んだりしないでください。 もし彼に殴られても一緒にいられ るなら、彼は明らかに本当の勝者であり、あなたもそれを知っているので、離れるべ きではありません。 positive_example_2 却下されるだろう:https://en.wikipedia.org/wiki/New_York_Times_Co._v._Sullivan ここでの第一修正法は完全に確立されています。 negative_example_1 GPSをジャンプできる、まだ使えるサイトはどこにありますか?iPhoneやMacでこれを 行うためのFAQはありますか? negative_example_2 なぜなら、彼のこの発言は真実だからです。それは報道の自由ではなく、名誉毀損 です。そのため、あなたの投稿はトランプの宣伝役となっています。報告。 rule_violation 1 (違反) Ruleに違反し ている例 Ruleに違反し ていない例 目的変数 判定テキスト SubRedditと 判定したい ルール Part 1. コンペの概要
  6. Winning SolutionのTop 5 +11thチームのソリューション をPick -up 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 1st Solution

    (#1) Validation: Public LB をををを 30% をををををををを Data: Test ををををををををををををををををををを Inference: Yes/No をををををををををををををを forward() をををを Post: をををををををををを → をををををを Unsloth Qwen3 -14B Public LB Valid 2nd Solution (#2) Validation: StratifiedKFold + をををを CVをを Data: ををををををををををををを Subreddit ををををを Eng: をををを GPU をををををををををををををを Model: Phi -4, Qwen ををををををを LoRA をををををを Label Clean Subreddit Drop Dual GPU 3rd Solution (#3) 3rd Solution (#3) Strategy: Test -Time Training (TTT) をを Ensemble: Slow (LLM) + Fast (Embedding/ML) を 2ををを Method: LLM ををを vLLM をををををを LightGBM をををを Data: ををををを Body を Example をををををををををを TTT Slow/Fast Ensemble vLLM 4th Solution (#4) Gold Method: SALSA (Single -pass Autoregressive LLM Structured Classification) Loss: Generalized Cross -Entropy (Tsallis) をををををを Training: 2 ををををををををを →をををををををををを →ををををを Target: ををををををををを Soft Target をををををを SALS A GCE Loss 2-Stage Training 5th Solution (#5) Strategy: ををををををををををををををを Components: NLI, TTT, LLM, Embedding(LR+KNN) Technique: ををを Example ををををを Pos + ををを Neg を Ensemble: ををををををををををををををををををををを Diverse Ensemble NLI Framing Asymmetric Ex 11th Solution (#11) Strategy: Train -on -Test (Online Training) Technique: TTA (Test Time Augmentation) & ををををををを Models: BERT を (GTE -multilingual) + LLM(Llama/Qwen) Embedding: をををを (Contrastive Learning) Train -on - Test Pseudo Label TTA Part 2. Winning Solutionの紹介 ※ 大体はGenSpark先生にまとめてもらいました (間違った内容含んでたらごめんなさい)
  7. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 10 Winning Solution Techniques Category Techniques & Solutions

    Used Used Validation 今 今 Data 今今今今 今今 Public LB をを StratifiedKFold (Local CV) Per -rule を をを Subreddit をを (Bias をを ) # 1 # 5 # 1 # 4 # 5 # 3 # 3 # 2 今今今今今今 今今 ををををををををを ををを ををををををを De-bias Test Examples を ををを Soft Target ( を をを ) #1 1 # 1 # 4 # 5 #1 1 # 5 # 1 # 4 # 3 # 2 # 2 1st Place 2nd Place 3rd Place Other Top Solutions # 1 # N # 2 # 3 ① 検証戦略・データ前処理 Category Techniques & Solutions Used Used Finetuning 今今 今今今今今 今今 LoRA / Unsloth Full Finetune ( をを ) Test -Time Training (TTT) 2をををを / Pseudo Label # 1 # 5 #1 1 # 5 # 5 #1 1 # 4 #1 1 # 2 # 3 今今今今今 今今 Loss 今今今今 今今 をををを / Triplet Loss NLI Framing ( を ををを ) GCE (Tsallis) ArcFace / CosineSim ををををを ををを # 5 #1 1 # 5 # 4 # 3 # 3 #1 1 # 1 # 3 ② 訓練手法・Loss関数 ③プロンプト設計・推論最適化 Category y Techniques & Solutions Used Used Prompt Engineering Instruction + Rule + Comment Chat Template を を NLI (Premise/Hypothesis) Few -shot Examples Asymmetric Example Selection #1 #4 #5 #11 #1 #5 #4 #5 #2 #3 Decoding Strategy Speed & Optimization Yes/No ををををををを をを をををををををを (Yes/No) Test Time Augmentation (TTA) vLLM Inference Forward() Only (Logits) KV Cache Reuse #1 #5 #11 #3 #5 #1 #4 #3 Category y Techniques & Solutions Used Used Ensemble 今 今 Stacking / ML 今今 Weighted Blending Rule を Rank をを を ををを Blending Slow + Fast を を Embedding → ML (LGBM/XGB/SVC) LR + KNN をををを を #1 #4 #1 #5 #5 #2 #3 今今今今今今 今今 今今今今今 今今 Dual GPU ををを を TP (Tensor Parallel) をををを 80-90% をを (を をを ) をををををを (ををを をを ) #5 DDP (Distributed Data Parallel) 4bit をを を #5 #5 #4 #1 #2 #3 #2 #2 ④ アンサンブル・エンジニアリング Part 2. Winning Solutionの紹介 ※ 大体はGenSpark先生にまとめてもらいました (間違った内容含んでたらごめんなさい)
  8. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 11 Winning Solution Models Category y Models &

    Approaches BERT 今 (Base/Small) NLI & Large Models DeBERTa -v3- small DeBERTa -v3- base #3 #5 #11 gte -multilingual - base #11 BERT 今今今今今今 今今 NLI をををををを + TTT Premise=body / Hypothesis=rule をををををををををを (Base > Large) Public Notebook をを をを #5 #5 #11 #5 #11 DeBERTa -v3-large - zeroshot -v2.0 #5 Category y Models Used Used LLM ( 今今今今 今 ) Qwen3 -4B Instruct Qwen -3 4B (GCE) LLaMA -3.2-3B Instruct Qwen -3 1.7B Ettin - 400M #1 #11 #4 #11 #5 #1 Embedding Models BGE (base/large) GTE (large/multilingual) E5 (base/large) Qwen3 -Embedding - 0.6B #5 #11 #5 #11 #5 #5 #3 #3 Model Families Qwen Series Llama Series Phi Series Ensemble / Other Bubble Size = Public LB Score TTT出来ないので… ①LLM(大型・中型比較)(#1より) ② LLM(小型)・埋め込み ③ BERT系・NLI 1st Place 2nd Place 3rd Place Other Top Solutions # 1 # N # 2 # 3 Part 2. Winning Solutionの紹介 ※ 大体はGenSpark先生にまとめてもらいました (間違った内容含んでたらごめんなさい)
  9. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 12 Part 2 まとめ:キーインサイト 01 02 03 04

    ラベルの不確かだしダブってるやん… → ノイズの大きいラベル(Subreddit 情報 情 )は“除外”が定石 → Yes/No 確率化 +制約付きデコード → TTT / 疑似ラベル /対比学習の併用 用 →ルール別ランク正規化 ×多様性アンサンブル ををを subreddit ををををををををををををををを ををををををををををををををををををををををを ををををををををををををを をををををををををを Yes/No をををををををををををを Constrained Decoding ををををををををををを Yes, No, True, False をををを Logits をををををををををををををををを をををををををを Test -Time Training (TTT) ををを ををををををををををををををををををををををを をををををををををををををををををををををを をををををををををををををををををををををををを Rank Normalization をををををををををををを LLM ををををを Embedding をををを NLI をををををををををを Adopted by: Adopted by: Adopted by: Adopted by: #1 #2 #3 #4 #5 #11 #1 #3 #4 #5 #3 #4 #5 #11 #1 #5 >> Next: Part 3 をををを LLMに“Yes/No”だけ言わせるのは難しい テストタイム中の知らないラベル… 多様なモデルの確率値を扱う際は… Part 2. Winning Solutionの紹介
  10. P art 3: ラスト9日間参戦の奮闘記 P art 3: ラスト9日間参戦の奮闘記 P art

    3: ラスト9日間参戦の奮闘記 LLM時代の闘い方 12/8/2025 14 Jigsawコンペ振り返り「LLM時代の闘い方」 ここから本編です
  11. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 16 はじめに • 奮闘記では 「終盤での短期集中戦略」 「LLM時代の闘い方」 について話します。 最終結果:銅メダル獲得

    参戦期間:ラスト9日間 コンペ期間の終盤わずか9日だけ参戦。 短期集中で「公開知」と「リソース」を最大限活用する戦略。 上位約5.6%(137th / 2437)にランクインし銅メダル 短期間でも正しい戦略と環境があれば成果を出せることを実証 対象読者 • 現場の機械学習・データ分析に関わる技術者 • DX戦略を推進する経営層・リーダー • これからAI活用・Kaggle参加を本格化したい方
  12. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 18 なぜ終盤参戦か :終盤参戦は実はやりやすい • Kaggleを1年やって思ったのは、序盤・中盤はとにかく情報がカオス。 強い公開Notebook・議論が出揃う LBの動きから“効く手”を推定できる コンペ終盤には、ベースとなる強力な解法(High-scoring

    Kernels)や、 重要な知見(Discussion)が既に共有されている状態。 「ゼロからの試行錯誤」をスキップでき、激強Notebook登場によるゲーム リセットを回避できます。 Leaderboardの変動や、Discussionでのスコア報告を見ることで、「何が ワークして、何がワークしないか」の相場観(メタ情報)を掴みやすい。 基盤は公開知に任せ、最後の詰めに集中 土台作りはコミュニティの知恵を借り、自分は「差分(Delta)」を作るため の改善・アンサンブル・パラメータ調整にリソースを全集中できる。 →「良い感じの土台はもうあるから、改善だけに集中すればいい」 Kaggle歴1年の自分には”この9日間だけ短期集中すればいい”は精神的には楽でした
  13. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 20 GPUのエラー地獄から解放されたのが一番大きい • 過去LLMコンペで一番辛かったのは、実験そのものより環境エラーとの戦 いでした。 – CUDA mismatch

    – PyTorchのバージョン衝突 – Runtimeでのメモリー・GPUエラー – VRAM不足でOOM – 依存関係エラー • エラーで丸一日潰れることも多く、モデリングできず。そこで、今回は、 Google Colab上にClaude Codeを入れて使うようにしました。 • これにより上記を全部丸投げできたことで、“環境構築に取られていた時間” が一気にゼロに近づき、実験イテレーション回数を増やすことが出来ました。 • 加えて、たまたまColabでもA100(80GB)が利用可能になり、Colabでも LLMコンペで十分戦うことができるようになったのが、メダル獲得の要因に の一つにあります。 LLMコンペはGPUがないと始まらないので、Code Agentは”GPU環境”に入れましょう。
  14. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 22 My Solutions • Prompt-based 推論 • 軽い

    Leaderboard Probing (Leaderboardに対するOverfit) • Radditデータの追加データ収集 • 例示を使ったちょっとした生成 データ • TTA(Test-Time Augmentation) • TTT (Test-time Training) アンサンブル ※詳細を知りたい方はこちらから https://www.kaggle.com/competitions/jigsaw-agile-community-rules/writeups/137th-bronze-medal
  15. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 実際のソリューションは“背伸びしてない” • 正直「すごい独自アルゴリズム!」みたいなものはありま せん。 • 全部、公開Notebookにすでにある技術とアイデアです。 • 大事だったのは、

    • 「公開Notebookを理解して、自分なりの方向に寄せて組 み合わせる」 • というところだけでした。 • 実装面でも、今はアイデアさえあれば Claude Code がNotebookをいい感じに書いてくれま す。 詰まった際もGen Spark が 関連技術・研究を調べてく れます。 去年の自分だったら挫折していた部分がほとんど自動化さ れ、凄く楽になりました。 24
  16. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 26 ラッキーパンチは突然に • ラストスパートをかけた最終日2日前、 ちょうど公開されたモデルと自分のモデルを組み合わせたら スコアが跳ね上がって、いきなりメダル圏外から銀圏に。 (300th →

    98th) ちょうど家族で過ごしている時でしたが、予期もしてもおらず …。 • 「ごめん、仕事の通知が来た」 • とだけ家族に言い残して全速力でPCへ戻ることに…。 (後に、事情を懇切丁寧に説明させていただき、お許しをいた だきました。) • でも結局、この“ラッキーパンチ”から追い上げ切れず、追い上 げ勢に40人抜かれて、最終137位で銅メダル。 銀メダル圏に残れなかったのは残念ですが、素直に嬉しかっ たです。
  17. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 27 今回の学び 新米Kagglerとして今回の経験で感じたのは、 1. 大事なのは “すごい技術” より “イテレーション回数”

    – 面倒ごとはClaude Code + Colab GPU環境 + GenSparkが解決 2. 終盤参戦は、新米でも全然いける – 終盤は既に良い感じの土台があるから、改善に集中できる 3. 公開Notebookでも十分戦える – 理解して、少し工夫して、合わせるだけでも十分 4. 自分にも“ラッキーパンチ”が来る瞬間がある – 回数をこなすほど、入りやすくなる。 大事な点は4つあリます
  18. 12/8/2025 Jigsawコンペ振り返り「LLM時代の闘い方」 28 最後に • 「データ分析は長いけれど、Kaggleはまだ1年生」という自分でも、 ちゃんと戦えたのが今回の大きな自信になりました。 • GPU環境と Claude

    Code のおかげで、 Kaggleのハードルは昔よりずっと低くなっています。 • Kaggleに挑戦したい人、LLM使った機械学習をやってみたいけど環境構築で詰んでる人、 昔挫折した人でも、いまは昔より、ずっと気軽に始められます。 • 今回のKaggleの経験は、普段の分析業務も、必ず還元していけると思っています。 • 銅メダル奮闘記以上です。 • 次は銀を取りに行きたいです