Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Kaggle役立ちアイテム紹介(入門編)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
monnu
August 02, 2024
Research
8.2k
16
Share
Kaggle役立ちアイテム紹介(入門編)
2024 年 8 月 3 日開催「第2回 関東Kaggler会」の発表資料です
https://connpass.com/event/321748/
monnu
August 02, 2024
More Decks by monnu
See All by monnu
atmacup23_2nd_place.pptx.pdf
k951286
1
250
Kaggle RSNA Intracranial Aneurysm Detectionコンペ 反省会
k951286
0
630
Kaggle自然言語処理コンペ向けローカルLLM活用入門
k951286
20
4.8k
AI搭載エディタCursorの紹介と機械学習コンペでの使用レビュー
k951286
22
8.7k
Kaggle Benetechコンペ振り返り
k951286
1
950
Kaggle NFL3コンペ振り返り
k951286
0
560
kaggle PPPMコンペ反省会
k951286
1
1.2k
kaggle Outdoorコンペ振り返り
k951286
0
3.4k
Other Decks in Research
See All in Research
視覚から身体性を持つAIへ: 巧緻な動作の3次元理解
tkhkaeio
1
260
A History of Approximate Nearest Neighbor Search from an Applications Perspective
matsui_528
1
250
The Landscape of Agentic Reinforcement Learning for LLMs: A Survey
shunk031
4
890
Collective Predictive Coding and World Models in LLMs: A System 0/1/2/3 Perspective on Hierarchical Physical AI (IEEE SII 2026 Plenary Talk)
tanichu
1
370
FUSE-RSVLM: Feature Fusion Vision-Language Model for Remote Sensing
satai
3
580
「AIとWhyを深堀る」をAIと深堀る
iflection
0
310
2026年3月1日(日)福島「除染土」の公共利用をかんがえる
atsukomasano2026
0
560
Can We Teach Logical Reasoning to LLMs? – An Approach Using Synthetic Corpora (AAAI 2026 bridge keynote)
morishtr
1
220
AIエージェント時代のLLM-jpモデルのあるべき姿
k141303
0
320
非試合日の野球場を楽しむためのARホームランボールキャッチ体験システムの開発 / EC79-miyazaki
yumulab
0
150
COFFEE-Japan PROJECT Impact Report(海ノ向こうコーヒー)
ontheslope
0
1.4k
2026.01ウェビナー資料
elith
0
350
Featured
See All Featured
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
BBQ
matthewcrist
89
10k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
410
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
110
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
380
RailsConf 2023
tenderlove
30
1.4k
The Cult of Friendly URLs
andyhume
79
6.9k
AI: The stuff that nobody shows you
jnunemaker
PRO
6
610
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
180
Information Architects: The Missing Link in Design Systems
soysaucechin
0
900
Transcript
Kaggle役立ちアイテム紹介(入門編) 立松 郁也(@monnu)
自己紹介 名前 : 立松 郁也 (@monnu) 仕事 : モビリティ領域でのデータサイエンティスト Kaggle
: Kaggle暦5年半 Competitions Grandmaster
自己紹介 Kaggleではテーブル、CV、NLPなど雑多に参加してます テーブル 画像 NLP 動画等 テーブル
▪ 今日はなすこと ▪ Kaggleで自分が普段お世話になっているアイテムの雑多な紹介です ▪ アイテム = サービス、ツール、Tips、良資料、良Notebook等 ▪ 注意事項
▪ 入門者の方向けな内容が多めです ▪ 主観が多分に含まれるため一例として見てもらえたらと思います はじめに
1. 開発環境編 2. 学習編 3. モデル編 4. その他tips もくじ
1. 開発環境編
▪ なるべく環境構築に時間はかけたくない ▪ Kagglerのすべきはモデルの性能向上 ▪ さっさと環境は準備して精度向上に集中したい ▪ 一方、実装の効率化に役立つツールは活用したい ▪ ChatGPTなどを使って開発を効率化できたら嬉しい
▪ 特にKaggleは試行錯誤のスピードが大事なので効率化は正義 開発環境の基本方針
▪ Google Cloud ▪ Kaggleとの親和性高いのが嬉しい ▪ Kaggle Notebookから簡単に移行可 ▪ KaggleとGoogle
Cloud Storageの連携 ▪ Kaggleやる上でのGoogle Cloudでよく使う機能 ▪ Cloud Storage FUSE : https://cloud.google.com/storage/docs/gcs-fuse?hl=ja ▪ マシンからCloud Storageをマウントできるツール ▪ データ管理、集約が楽になる ▪ スナップショット : https://cloud.google.com/compute/docs/disks/snapshots?hl=ja ▪ 一度作った環境を保存でき、別コンペでも再利用可 マシン
▪ Kaggle Docker image(& Nvidia Docker) ▪ 自分は全コンペでKaggle公式Dockerイメージを利用 ▪ https://github.com/Kaggle/docker-python
▪ 豊富なライブラリ ▪ コンペで使いそうなライブラリが十分すぎるほど入ってる ▪ 新たに環境を構築する際の時間と労力を大幅に削減 ▪ 一貫性のある環境 ▪ Kaggle Notebook環境と同じ環境を再現できる ▪ コードコンペで学習と推論の環境差分に苦しむことがない 環境構築
▪ 個人的にはCursorがおすすめ ▪ VSCodeの派生エディタでChatGPT等のLLM搭載 ▪ コードの自動生成、質疑応答が可能 → 実装が大幅に効率化 ▪ 参考資料
: AI搭載エディタCursorの紹介と機械学習コンペでの使用レビュー エディタ https://speakerdeck.com/k951286/aida-zai-eteitacursornoshao-jie-toji-jie-xue-xi-konhetenoshi-yong-rehiyu
2. 学習編
▪ PyTorch + PyTorch Lightning ▪ なぜPyTorch? ▪ 公開コードや論文はPyTorchが多いため取り入れやすい ▪
なぜPyTorch Lightning? ▪ ゼロからPyTorchの学習ループを毎回書くのはきつい ▪ Lightningでは学習ループ周りラップしてくれる ▪ WandB等の実験管理ツールを簡単に組み込める ▪ Mixed PrecisionやマルチGPU等が簡単に設定可能 パイプライン
▪ val_check_intervalオプション ▪ valを計算する頻度の設定 ▪ デフォルト1epoch毎 ▪ 例えば過学習しやすいデータ等で、0.1epoch毎にval評価などが可 ▪ 過学習前のチェックポイントを保存
▪ 下記のようにtrainerで指定するだけ Pytorch Lightningのちょっと細かい話①
▪ ModelCheckpoint機能 ▪ 学習中のモデルのcheckpointを最良の評価指標等で保存する機能 ▪ 複数評価指標がある場合も下記のように各指標のベストモデルを保存可 Pytorch Lightningのちょっと細かい話②
▪ 実験管理ツールとは? ▪ 学習曲線や評価指標など学習結果を記録、可視化するツール ▪ WandBやMlflowなどが有名 ▪ なぜ必要? ▪ どの実験が良かった、悪かったを振り返りが手軽に可能
▪ ロスの推移を見ることで、過学習等に気づきやすい ▪ GitのCommit hash等も記録されるため、実験の再現性が向上 実験管理ツール
実験管理ツールで過学習に気づけた例(BELKAコンペ) 実験管理ツール val lossが1epoch目で最小!? →1epoch未満で既に過学習しているのでは? →valのチェック頻度を増やすことでスコア向上
3. モデル編
▪ timm : https://github.com/huggingface/pytorch-image-models ▪ PyTorch用の画像認識モデル等を提供するライブラリ ▪ 幅広い事前学習済モデルをサポートし、手軽に試すことが可能 ▪ よく使うバックボーン
▪ ViT系 : MaxVit,SwinTransformer ▪ CNN系 : EfficientNet系,ConvNeXt系 ▪ 使い方のおすすめ資料 ▪ Tawaraさんの「backbone としての timm 入門」がおすすめ ▪ https://www.slideshare.net/TakujiTahara/20210817-lt-introduction-to-pytorch- image-models-as-backbone-tawara-249996209#2 画像コンペ
▪ 他の用途別ライブラリ ▪ オーグメンテーション : albumentations ▪ https://github.com/albumentations-team/albumentations ▪ 物体検出
: YOLOX ▪ https://github.com/Megvii-BaseDetection/YOLOX ▪ セグメンテーション : segmentation_models.pytorch ▪ https://github.com/qubvel-org/segmentation_models.pytorch 画像コンペ
▪ Huggingface Transformer : https://huggingface.co/docs/transformers/ja/index ▪ NLPタスクのための事前学習済みモデル等を提供するライブラリ ▪ 多様なNLPタスクに対し、最新のモデルを簡単に試せる ▪
よく使われるバックボーン ▪ DeBERTaV3系 ▪ ここ数年のNLPコンペでは一強な気がする ▪ 直近のコンペとかはLLM系も使われてる? ▪ 詳しい人教えてください🙇 NLPコンペ
▪ Trainingツールとしてのtransformers ▪ モデルだけでなくNLPタスクのTrainingツールも提供 ▪ https://huggingface.co/docs/transformers/ja/main_classes/trainer ▪ データローディング、学習、評価などの主要機能を自動化できる ▪ 実装例
: k_sさんのPPPMコンペのNotebookがシンプルでわかりやい NLPコンペ https://www.kaggle.com/code/ksork6s4/uspppm-bert-for-patents-baseline-train
▪ 系列データコンペとは? ▪ 時系列データ、センサーデータ、分子データなどのコンペ ▪ 系列データはTransformer系、1DCNN系などのモデルがよく使われる印象 ▪ 基本的には自前実装になるが、参考になりそうな公開Notebook等の紹介 系列データ
Transformer : https://www.kaggle.com/code/iafoss/rna-starter-0-186-lb ▪ Stanford Ribonanza コンペのIafossさんのNotebook ▪ シンプルなTransformerモデルの実装 系列データ
1DCNN : https://www.kaggle.com/code/ahmedelfazouan/belka-1dcnn-starter-with-all-data ▪ BELKAコンペのAHさんのNotebook ▪ TensorFlow + TPUでのシンプルな1DCONVの実装 ▪
構造がシンプルなのでTorch移行も容易。Torch版の公開Notebookもある ▪ https://www.kaggle.com/code/yyyu54/pytorch-version-belka-1dcnn-starter-with-all-data 系列データ
LSTM : https://www.kaggle.com/code/yasufuminakama/ventilator-pressure-lstm-starter ▪ Ventilator Pressure PredictionコンペのY.NakamaさんのNotebook ▪ TorchによるLSTMモデル、WandB連携等を含めたpipeline周りも参考になる 系列データ
▪ その他おすすめ資料 : https://speakerdeck.com/yu4u/kaggletexue-huxi-lie-tetanotamenoshen-ceng-xue-xi-moterinku ▪ yu4uさんの「Kaggleで学ぶ系列データのための深層学習モデリング」がおすすめ ▪ Kaggleの最近の系列データコンペの上位解法を振り返りながらモデルリング解説 系列データ
▪ EMA(Exponential Moving Average) ▪ 学習経過とともにモデルweightの加重平均を計算することで学習を安定化 ▪ timmのModelEmaV2モジュールなどで実装可能(画像モデルに限らず使用可) ▪ https://timm.fast.ai/training_modelEMA
▪ Gradient Checkpointing ▪ 学習時のGPUメモリ使用量を削減するテクニック ▪ 一部の中間層の出力を保存せず必要に応じて再計算することでメモリを節約 ▪ 計算コストは増加するものの、小さいGPUメモリでも学習が可能に ▪ timmやtransformersで簡単に設定できる(モデルによっては非対応の場合あり) ニューラルネット全般のテクニック timmの実装例 transformersの実装例
4. その他tips
▪ reduce_mem_usage関数 ▪ DataFrameのメモリ効率化の有名関数 ▪ 低い精度の型で表現できるなら精度を 落とした型を使う ▪ home creditコンペのNotebookより
https://www.kaggle.com/code/gemar tin/load-data-reduce-memory-usage 大規模データの扱い
▪ np.memmap & h5py ▪ どちらもメモリに乗り切らない大規模データを扱う際に便利 ▪ データをディスク上に保持しながら部分的にメモリにロード ▪ 個人的な使い分け
▪ memmap : 固定長配列の場合 ▪ h5py : 固定長以外、複雑な階層データ等の場合 ▪ np.packbits ▪ 大規模なブール配列を省メモリで扱える ▪ ビット配列をバイト配列に圧縮することでメモリ効率化 大規模データの扱い
▪ 高性能CPUマシンとしてのTPU Notebook ▪ CPUコア48, メモリ334 GBであり、CPUマシンとしても高スペック ▪ 大規模データの前処理等で非常に役立つ ▪
捕まらないことも多いが、動作確認済みのNotebookをcommitして放置でOK ▪ ただしTPU使わない処理だと一定時間で切られるらしい Kaggle Notebook tips
▪ 無限データセットアップロード? ▪ KaggleのDatasetはプライベートの場合、1人あたり214.75Gibの制限ある ▪ コードコンペで大量にモデルをアップする場合、制限が問題になる ▪ 一方で、Kaggle Notebookの出力ファイルは制限なし ▪
そのため以下の手順で無限にアップロード可能 1. Dataset アップロード 2. Notebookで読み込み&出力 3. 元のDataset削除 Kaggle Notebook tips Google Cloud Storageと連携 するとさらにラクに可能
▪ Papers with code : https://paperswithcode.com/sota ▪ 様々なベンチマークでのSOTA論文とその再現実装へのリンクが集約 ▪ 参加中のコンペに似たタスクのSOTAの手法、実装を手軽に調査
その他役立ちサイト・ツール https://paperswithcode.com/sota/image-classification-on-imagenet
▪ Kaggle Notebook Translation Helper : https://github.com/bilzard/kaggle-notebook-translation-helper ▪ Kaggle公開Notebookはcrome翻訳がうまくできず英語を読む必要がある ▪
bilzardさん開発のcrome拡張ツールを使うとcromeからいい感じに翻訳できる その他役立ちサイト・ツール
▪ ML contests : https://mlcontests.com/ ▪ Kaggle含めた世界中の開催中のMLコンテストの情報がまとまったサイト ▪ データの種類、締め切り、賞金、プラットフォーム等が一覧でみれる ▪
Kaggle以外のコンペも気になっている方は探してみてもいいかも? その他役立ちサイト・ツール
▪ Kaggleで自分がお世話になっているツールやtips等を雑多に紹介させて いただきました ▪ 他にもみなさんのおすすめツール等あれば教えて頂けたら嬉しいです ▪ 便利アイテムはたくさん活用し、快適なKaggle Lifeを過ごしましょう! まとめ