🏟️

関西Kaggler会振り返り 冬 11月

2024/11/09に公開

初めに

11/8の関西Kaggler会に参加してきました。
https://kansaikaggler.connpass.com/event/326615/
笑いあり、学びありの非常にためになるイベントでした!
運営、登壇者及びスポンサーの方々、ありがとうございました!

参加は2回目になりますが、今回も関西Kaggler会のセッションの振り返りをしていこうと思います。
全体的にコンテンツ量が多く、書ききれていない部分もありますのでまとめとしてご覧ください。

第一部

第一部は初心者向けで、kaggleの取り組み方や笑い要素を含めて発表されます。

すえさん

おすすめ自作キーボードの紹介

いいところ
・キー配置が自由
愛用はKeyball61(60%)
・キーマッピングも自由自在。GUIでカスタムできるしファームウェアを自分で書いてもいい
・分割タイプを選べば机の一等地(中心)が開く
・キースイッチ、キーキャップなどのカスタマイズが楽しい
ケース自作や収納、無線化なども可能
・肩が凝らない

入門
・遊舎工房がおすすめ

たかまるさん

自作キーボードのすすめ

おすすめCAD
・Fusion360
初心者も使いやすく、どのご家庭にもあるGPUを使用

おすすめ書籍
・Fusion360マスターガイド
機能全般
・自作キーボード設計ガイド
ノウハウ特化

おすすめ3Dプリンター
・Bambu Labの製品が優秀
Bambu Lab P1S(おすすめ。値が張るが高性能)
Bambu Lab A1 mini(お手頃)

boboさん

※腹痛で離席のため聴講できず...

Akihito.Itoさん

会社を変えるヒーローの作り方

企業文化のイノベーションには個人の意識を変える必要がある。

社内のDSコミュニティ3500人→会社を変えるところには至らず。
→未来のヒーローを育てる。たくさんのヒーローが生まれることでコミュニティの価値が高まる。
ヒーローとは?: 自分を正しく認識して行動し続ける人
例として:全社で誰でも使えるデータ分析環境を作った人、社内コンペを開催した人、全社7万人中1万人が参加するコミュニティを作った人など。

活躍の場と認められる場が必要。アウトプットする場所が少ない
社内にヒーローを作る。

こへっちさん

Kaggle KernelでvLLMとGemma2を動かす

https://speakerdeck.com/kohecchi/kaggle-kernel-de-gemma-2-x-vllm-wodong-kasu

Gemma2 9b-it

→強い。LMSYSなどで上位が使用

vLLM

→早い。とにかく早い。学習用ではなく、LLMの推論高速化用。コードもシンプル

Gemma2をvLLMで動かしたくなる

LMSYS chatbot arenaとは:どのLLMが一番良いのかを個人のFBからリーダーボードを作っている

・解法はgemmaが強かったが、T4x2で2モデルアンサンブルで推論がギリギリ。
→gemmaをvLLMで高速化すれば良いのでは?

・vLMMによって6時間から7分に
vLLMは量子化モデルやLoRAアダプタ,gemmaも対応

Gemma2をvLLMで動かしたくなくなる

・T4が古くてvLLMが対応しておらずnotebookでエラーが出る。
・configをいじれば動かせるがimportの順番やモデルのロード、推論など様々な箇所でエラーが発生。

使ってみた感想

・圧倒的に早い。推論高速化ライブラリのunslothを比較してもvllmの方が圧倒的に早いし、max_lengthを長くしてもそんなに遅くならない。(unsloth x vLLM x Gemmaはエラー解消できず。)
・Classificatinoモデルは使うのが難しい模様

まとめ

・vLLM x Gemma2 x T4の相性が悪いが、Causal(Classiferでない)モデルであれば使える
・推論はめっちゃ早い
・しばらくはLMSYSの公開ノートブックを参考にすると良いかも。
・現状、Gemma2-9b-it x Causal x LoRA x vLLMの組み合わせは使用可能。コード: https://www.kaggle.com/code/kohecchi/atmacup17-gemma2-lora-x-vllm-causal-infer

第二部

第二部はkaggleガチ勢の方々からkaggleの戦い方や取り組み方を学びます。

motoさん

Neurips ADC 2024 振り返り

https://www.docswell.com/s/6883279/K1RXRP-2024-11-08-162001

登壇者の中では最年少
本コンペでは一緒にチームを組ませて頂いていました。(出会いは前回の関西kaggler会です!感謝!)

  • 物理系コンペの知見
    データの振る舞いに物理法則による単純な規則があることが多い。
    →データの振る舞いに関わる物理現象や生じる物理法則を用いることでスコアが上がることも。


  • コンペ概要
    人工衛星に搭載した望遠鏡でtransit(恒星の前を惑星が通り過ぎる現象)の際の、惑星と恒星の面積比wlおよびその予測の自信度sigmaを予測するコンペ。

    • コンペデータ
      FGS: 時間x空間x空間のデータ
      AIRS: 時間x空間x波長のデータ
      他に各種補正データおよびシミュレーターが公開されている(パラメータが与えられていないのでコンペデータの生成は難しい)。
    • 難しい点
      そもそも問題設定が難しい、データがノイジー、空間次元の解像度が小さい、データ数が少ない、testデータにはtrainデータに含まれない恒星や惑星が存在する。メトリックが敏感な上LBで0以下のスコアは0と表示されてしまうためデバッグが難しい。
    • 公開アイデア
      light curve: センサーが感知した光量の時間変化を表す曲線。transitの深さをdとすると、wlはd/1+dで表される。アイデアとしてはdをどれぐらい持ち上げるのかを変化させて、多項式fittingがいい感じになる。
  • チーム解法
    -画像の空間の中央付近をcrop
    -波長方向にsliding windowで平均化
    -各波長ごとのlight curveを使う(デノイズ処理が必要)
    -FGS1はノイズが多かったのでwl_1の予測は全波長で平均を取ったlight curveで予測
    -transit中の範囲を持ち上げる量を書く波長ごとに最適化
    -randam forestでsigmaを予測

  • 上位解法の手法を紹介
    ノイズへの対処
    センサーのキャリブレーション方法
    等々...

コンテンツ量が非常に多いため、詳細はスライドにて!

penguin46さん

Grandmasterになるまで

GMになるまでの流れ、当時何を考えていたか、どういう気持ちだったか、ターニングポイント

  • -序盤-
    indoorコンペなど
    チームでワイワイしながら、競プロの知見も使ってコンペ入賞、masterへ
    ターニング:スコアが上がってLBジャンプする快感を知る

  • -中盤-
    ad-hocな解決方法を作る前に、まずは過去コンペを見る+実際に手を動かして肌感を掴むことが大切。(経験がないことに対する直感は信じない)

  • -終盤-
    ・睡眠コンペ。ML解法も使用しながらマージ前にソロで金圏に到達
    ・鳥コンペ。コンペ前に勉強、上位解法を全て読む、外部データ取集、2023の上位リポジトリを動かす、過去コンペのデータでモデルを動かす→コンペ中は考えておいた実験を実行するだけ
    ・USPTOコンペ。magicが存在。メトリックの穴を突いたトリックがあった。見つけ出してソロ金

大切なこと
・過去コンペを勉強しながらたくさん手を動かすこと、そのためのモチベーション

ソロ金を取るには?
・分野問わず自分の知見があったり、得意なコンペを狙うべき。

takoiさん

Kaggleコンペ soloで参加するときの選び方

kaggleやatmacupへの参加が多い。

自分がsolo goldを狙うときのコンペの選び方
・自分一人でアンサンブルできるもの
・最終subが難しいもの
などを狙う

  • チームのメリットからあえてを考える
    ・チームでアンサンブルできる
    →一人でアンサンブルできるものを(これまでのコンペでも、自分一人でアンサンブルできるようなスキルを身につけることを意識)
    ・チームでディスカッションできる
    →逆に、ディスカッションできることがデメリットになるもの。 例:最終sub選びが難しい(shakeしそう)なコンペを選ぶ等

  • コンペ例:
    ・時系列系
    PSPコンペなど。解法はTransformer+GRU、特徴量エンジニアリング+GBDTを使用
    ・NLP系
    CommonLit Readbility Prize, Evaluate student summariesなど
    一人だとリスクも取れる。(postprocessで予測結果に係数をかける、合計値が1にならないsubをしていた 合計=1.02、 等)

その他
・運に頼る部分もある。
・一人で取り組んだ方が大きいリターンを目指してリスクをとったsubを選べる
チームの場合は、post processやLbが低いものを選びずらい。当然リスクをとって失敗することもあるが、リスクとって金に行ける方が無難に銀より良い。
例: Evaluate student summariesの3subでは、1つ金圏で残りはPB1000位程度。→リスクを取ったことで成功した例。

質疑
・GBDTとNNのアンサンブルは結構難しいと思うがどのように方向を決めているか
最初にNNを作る。NNでしか勝てないコンペがあるし、学習に時間がかかるので初めに取り組む。スコアが走ってきたタイミングでGBDTに取り組む。残り一ヶ月程度まででNNやtransforやって、自分は一ヶ月くらいでGBDTできる自信があるからこういった順番でやっている。
・ソロ金(運任せで)取れるのはどれくらい?
7-8割とか(???)

HirokiYamamotoさん(terekaさん)

トラブルがあったコンペに学ぶデータ分析

https://speakerdeck.com/tereka114/toraburugaatutakonpenixue-budetafen-xi

トラブルコンペとは?:参加者が嫌な思いをするコンペ。
概要:トラブルコンペからデータ分析の役に立つことを学べないか?
トラブルコンペ要素:勝てない、運ゲー、CV/LB不相関、学べることがない

印象に残ったトラブルコンペ:

  • Deepfake Detection Challenge
    Real or fakeを見分けるコンペ
    賞金総額100万ドルをこえる。
    ・トラブル要素
    ライセンス問題で後付けで1位と2位が失格。データセットに登場している個別の人物からの許可が必要。今だとYOLOが怪しい。コピーレフトなど

  • Fouraquare Location Matching
    同一施設を示すPoint of Interest(POI)
    ・トラブル要素
    リークがあった。学習データとnotebookの評価データが重複していた。

  • SenNet + HOA
    3Dの肝臓データのスキャンデータをセグメンテーションするコンペ
    医療コンペなのでshakeの懸念...
    ・トラブル要素
    スキャンの解像度が異なる。
    データ数が少ない(train 5人, パブリック 1人, プライベート 1人 程度)。結果シェイク。何が効いたか誰もわからない

  • Predict Student Performance from game play
    ・トラブル要素
    コンペ期間が2回延長(約一ヶ月半)
    当時KDDCup2023に参加していたので非常に辛かった。

  • LEAP
    気象物理シミュレーションの入力から出力を取得。
    ・トラブル要素
    ホストが使わせたくなかった匿名化されているはずの地理情報を復元できる。
    2週間の延長。
    賞金圏内のみ3D情報を使用していないか確認するといった方針で少し荒れた。

なぜトラブルコンペが生まれるのか?
・データ収集者のドメイン習熟度が低く、予想外の方式でリークが発見される
・コンペとして適切な検証にするのがそもそも難しいデータを扱っている。ホストとしては難しいことがわかれば成功なのかも
・契約などでkaggleが介入できていない?

教訓
・データリーク
・ライセンス問題。業務でも問題になるGPL系統(YOLOが要注意,XはOKだが6とか7はアウトだったはず)の場合は注意。仕事上でリサーチ&パーパスオンリーとかのやつ使うと一発アウト。
・データが少ない場合(CV/LBが相関しないなど)

トラブルコンペを回避するには
・ディスカッションにホストがどの程度関与しているか。早期に対応してくれるものはトラブルコンペになりにくい
・CV/LBが相関しなさすぎて運ゲーになるものは注意。参加しなくてもLB上位にmasterやGMが多いと安心
・Don't Panicさんが出てくると問題が起きやすい...?(彼が悪いのかアサインされているプロジェクトが悪いのかは分からないが)

質疑
・❗️kaggleではデータセットとかは商用以外のライセンス良いのでは?という流れがある。個人的にはGPLとかは全部アウトだと思うので注意してください(質問というより情報共有)
・運営は疑うべき。(運営の前処理が正しいとは限らないし、データが入れ替えられることもある。)

paoさん

育児や仕事を両立するKaggleへの向き合い方

https://speakerdeck.com/go5paopao/ironnamonotoliang-li-suru-kagglenoxiang-kihe-ifang

コンペ歴6年、育休中にkaggleにハマる

トピック:継続

・何かと両立する以上、継続により時間軸方向に伸ばして蓄積量で勝つしかない。
・幸い、継続していれば強くなりやすい世界
・ただ、継続が難しい(忙しい、離れて戻れなくなる、マンネリ化)

対策
  1. 変化をつける
    参加コンペの種類を変える、ソロ/チーム、新しい人とチーム、独自パイプラインの構築、クラウドGPUmライブラリを変える
    飽きを防げるし、コンペ結果によらない学びが得られる
  2. 間を空けすぎない
    時間が取れなくても学び目的で参加してみる
  3. Kaggler同士のコミュニティへ参加
    関西kaggler会!
    現役でkaggleやってる人と交流する
  4. マイペースで継続しやすいやり方を探す。
    週に数時間でも継続できれば偉い。アニメ見ながらkaggle(集中力は低いが継続性がある)
  5. 継続前提で「急がば回れ」。
    継続前提であるほど暫定ではなく根本の対処が効いてくる。(pandasではなくpolarsを使うなど)
    コンペ終盤は余裕がないので、ある程度目的にとらわれない期間を設けた方が良い
  6. 再現性
    例えば育児を疎かにして金メダルを取れたとしてもそれは繰り返しできない。両立しながらある程度結果が出せるベース力も高めたい
    全力を出すタイミングを見極める。
  7. ポータビリティ
    スマホでEDAを見れるようにnotebookをkaggleで作っておく。その場で集計は厳しいので、microな一つずつのデータをスマホで見れるようにしておくのがおすすめ
    ノートpcを持ち歩く。

真に両立するには

  1. 前提として、寝かしつけ、料理、洗濯、おむつ換えなどやってからkaggleをやる
    振り返ると: 子供と公園で遊べるのは数年間。子どもの表情や仕草、成長などを堪能しなくて良い?kaggleで寝不足でなかったらもう少し子供に気を配れたかも。
  2. 子どものため、家族のため、自分のため
    名もなき家事、育児、父親が子供と過ごせるのは3年4ヶ月らしい。LBを見てていいのか。
  3. もちろん自分のための時間も大切
    kaggleをやめて家事するぞ!ってなってもイカのゲームしちゃったりするので、それならkaggleやってた方がいい。
    ただ、脳内kaggleになっていないか?子供との時間を堪能できているか?

最後に
家に子供を置いてきたあなた!→せめて家族にお土産を持って帰りましょう!
ノベルティもあるし、デリチュースのチーズケーキなどおすすめ

※ノベルティも非常に豊富でした!

まとめ

簡単にですが、関西kaggler会の振り返りを行いました!
今回も学びが多く、非常に刺激になりました。
既に次回(2/28 or 3/7)、次次回の開催が決まっているそうなので、またぜひ参加しようと思います!

Discussion