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

Kaggleで賞金200万円ゲットした話 〜 Machine Unlearning と Goo...

toshi_k
August 04, 2024

Kaggleで賞金200万円ゲットした話 〜 Machine Unlearning と Google AI Assistants 〜

toshi_k

August 04, 2024
Tweet

Other Decks in Technology

Transcript

  1. Machine Unlearningコンペの開催概要 • タイトル「NeurIPS 2023 - Machine Unlearning」 ◦ 「Machine

    Unlearning」の上手さを競うコンペ ◦ NeurIPS 2023のCompetitionトラックのうちの一つ • 開催期間 ◦ 2023年9月11日〜11月27日 • メダルなし,ポイントなし • 賞金 ◦ 1位 $10000, 2位 $9000, 3位 $8000, 4位 $7000, 5位 $6000, 6位 $5000, 7位 $5000 • 形式 ◦ リサーチコードコンペティション • スポンサー ◦ Google(Eleni Triantafillou@DeepMindなど)
  2. retain set Machine Unlearningとは • あるモデルの学習に使用したデータセットのうち,少数のサンプルを含めずに再学習したモデ ルを,学習済みのモデルから再現するタスク retain setだけを用いて,pretrainモデル をFT(ファインチューニング)

    するのがベースライン forget setをうまく使えるかどうかが  重要そう(しかし難しい) NeurIPS 2023 Machine Unlearning Challenge | Website for the NeurIPS 2023 Machine Unlearning Challenge. https://unlearning-challenge.github.io/
  3. Machine Unlearningの必要性 • 機械学習モデルから特定のデータの影響を消したいことがある ◦ プライバシー保護,著作権 ▪ EUのプライバシー保護法(GDPR) • ユーザはデータの削除を要求する権利がある

    ▪ 学習データを取捨選択して,モデルを学習し直すのはコストが大きすぎる ◦ 有害,危険コンテンツ,誤情報 ▪ 安全なモデルをデプロイするために,モデルの振る舞いを修正したい ▪ 危険な情報や間違った情報は回答しないようにしたい ◦ Membership Inference Attacksへの対策 ▪ 学習データのサンプルを特定できるようになっていると, 実質的にそのデータを盗める状態になっている
  4. コンペの問題設定 • 基本的にはMachine Unlearningを 実行するNotebookを提出するだけ • 顔画像から年齢を推定する分類タスクを想定する • モデルはResNet18 •

    Unlearningの良さはサンプル毎に評価される • Unlearning後のモデルは512個作成させる 評価指標 Unlearning の良さ Retain set の精度 Test set の精度 サンプル毎に512個の出力が作る分布を評価する
  5. このコンペ特有の難しさ • 精密なUnlearningが要求されているにも関わらず,分からないことが多い ◦ 学習済みの配布モデルのトレーニングプロセスは非公開 ▪ 配布されているモデルはどのようなコードで学習したか分からない ▪ 仮にscratch学習しても5epoch程度でスコアが伸びなくなる ◦

    不完全なスターターキット ▪ チュートリアルはCIFAR-10になっているが,実際の評価は顔画像 ▪ スターターキットにも評価指標の実装は含まれない ◦ 怪しい配布物 ▪ クラス重みのファイルが配布されていたが,それを使うとスコアが落ちる ◦ 強すぎるベースラインNotebook ▪ retain setで1epochFTするのが強い,2epoch以上学習するとスコアが落ちる
  6. toshi_k & MarvelWorldチームのアプローチ • 2つのアプローチのアンサンブル ◦ (1) toshi_k: 配布されたモデルを加工して,retain-setで3epochFT ◦

    (2) marvel_world: 疑似ラベルを付与したforget-setも使って1epochFT • 2つのアプローチで作ったモデルを適当な数で混ぜて,提出する 512個のモデルにした (1) toshi_k (2) marvel_world Public LB Private LB toshi_k単体 512 models 0 models 0.0720386947 - marvel_world単体 0 models 512 models 0.0707241647 - アンサンブル 246 models 266 models - 0.0785184178 266 models 246 models - 0.0756313425 ※2人のアイデアを混ぜたようなアプローチも検討したが,それぞれのアプローチを混ぜる方がスコアが良かった
  7. MarvelWorld氏のアプローチ • step1: forget-setに対してどのような予測結果になるべきだったか擬似ラベルを付与 • step2: retain-setとforget-setを使ってFTする 配布モデルとFTしたモデルで 推論結果が大きく変わった サンプルを図指したもの

    擬似コード step1 step2 3つのモデルを使って,高い確信度で 間違えたサンプルに擬似ラベルを付与 • 元の学習済みモデル ƒp • FTしたモデル ƒℓ • スクラッチ学習したモデル ƒs
  8. 優勝・準優勝チームのアプローチ • 優勝チーム🥇 ・・・ 忘却とFTを交互に行う(8 epoch) ◦ 忘却フェーズ ▪ forget-setのロジットと一様分布で KL距離を最小化する ◦

    FTフェーズ ▪ retain-setでクロスエントロピーロスを学習する • 準優勝チーム🥈 ・・・ 勾配コレクションと,モデルの部分的な初期化 勾配コレクション:forget-setとretain-setで勾配を確認 部分初期化:forget-setとretain-setで勾配が似ていweight 以外を初期化
  9. Machine Unlearningの最近の研究 • Machine Unlearningの最近の論文では,kaggleのMachine Unlerningコンペについて 言及されていることも多い • 最近はLLMのUnlearning用のベンチマークやUnlearning手法が提案されている •

    特定のサンプルを学習に使ったかどうかという “example level”の評価よりは, 知識として覚えているかどうという“higher level”な評価が盛り上がりつつある WMDP:生物,サイバーセキュリティ,化学に関する危険な知識を     Unlearningできたかどうかを評価するベンチマーク TOFU:嘘の著者情報でLLMをFTして,それをUnlearningできたかを評価 TOFU: A Task of Fictitious Unlearning for LLMs https://locuslab.github.io/tofu/ The WMDP Benchmark: Measuring and Reducing Malicious Use With Unlearning https://www.wmdp.ai/
  10. Machine Unlearningコンペのまとめ • まとめ ◦ NeurIPS 2023のCompetition Trackで,Machine Unlearningのコンペが開催された ◦

    Unlearning自体奥が深いテーマだが,参加者に与えられる情報が少なく, このコンペ特有の難しさがあった ◦ 上位チームは多種多様なアイデアで入賞 しており,Machine Unlearning界隈では 歴史に残るようなイベントになった • 感想 ◦ 業務ではあまり触れないような課題と関わりが持てて良かった ◦ Machine Unlearning自体は今後使わないとしても, モデルを加工したり微修正する際の 細かいテクニックは色々使えそう ◦ 賞金のみならず,トップカンファレンスで発表の機会が得られたのは良かった
  11. Google AI Assistantsコンペの開催概要 • タイトル「Google – AI Assistants for Data

    Tasks with Gemma」 ◦ Googleの軽量LLM「Gemma」を使ったAIアシスタントのデモを作るコンペ ◦ スコアを競うコンペではなく,主観評価で採点される • 開催期間 ◦ 2024年2月21日〜4月14日 • メダルなし,ポイントなし • 賞金 ◦ $10000 x 5部門 • 形式 ◦ アナリティクスコンペティション(NotebookのURLをフォームで申告する) • スポンサー ◦ Google
  12. 5つのテーマ • 参加者は以下の5つのテーマからNotebookを作成する a. 「Explain or teach basic data science

    concepts.」 ▪ データサイエンスのコンセプトを説明する b. 「Answer common questions about the Python programming language.」 ▪ Pythonに関する一般的な質問に答える c. 「Summarize Kaggle solution write-ups.」 ▪ Kaggleのソリューションを要約する d. 「Explain or teach concepts from Kaggle competition solution write-ups.」 ▪ Kaggleのソリューションからコンセプトを説明する e. 「Answer common questions about the Kaggle platform.」 ▪ Kaggleプラットフォームに関する一般的な質問に回答する • toshi_kは「c.」から始めて途中乗り換えも検討したが,そのままフィニッシュした.
  13. 評価指標 • 以下の4つの観点で主観評価される ◦ 技術力(0-10ポイント) ▪ 効果的な戦略を採用したか,Few Shot,RAG,FineTuningなど ◦ 説明性(0-10ポイント)

    ▪ コードがよくドキュメント化されており,markdownでも説明されているか ◦ 有益性(0-10ポイント) ▪ アプローチが有益で高品質なアウトプットを生成しているか ◦ ロバスト性(0-10ポイント) ▪ 付加的な入力に対してもよく動くことがテストされているか • 気になったこと ◦ この評価結果はLeaderboardのような形で開示されるのか? ▪ されないと踏んで,序盤からどんどんアピールしていく作戦で取り組んだ
  14. 前半戦でやったこと 2/2 • コンペごとの要約,コンペ全体の要約を作らせてみた.比較表も作ってみた. プロンプト """Write a 300 letters summary

    of the following kaggle solution writeup: "{text}" 300 LETTERS SUMMARY:""" プロンプト """Create an overall summary of the kaggle competition from the following solution writeups: "{text}" OVERALL SUMMARY: """ プロンプト """Create an approach comparison table by Markdown format from the following kaggle solutions (each row corresponds to each solution): "{text}" APPROACH COMPARISON TABLE: """ Overall Summary The Kaggle competition focused on improving the ranking of items in a recommender system. The solutions varied in their approaches, but they all shared common themes such as feature engineering, ensemble methods, and incorporating information from the session history. The winning solution used a covisitation matrix to model relationships between features and a neural network to make predictions. 2nd place solution Team: SOS3 Leader: ONODERA Public Score: 0.60401 Private Score: 0.60446 The candidate focused on improving features related to item2item, including count, time difference, sequence difference, weighted above features, and aggregation of these features. They used XGBoost and CatBoost for model building and then blended the results by rank. The candidate acknowledged the contributions of cuDF and cuML and expressed gratitude to RAPIDS for their assistance.
  15. 中間発表賞(Mid-point Prize) • 開催期間の中間くらいの時期に良さげな Notebookが5つ選抜され,Swagが贈られた ◦ 「Summarize Kaggle solution write-ups」

    ▪ toshi_k ・・・ LangChainで要約,図表も作成 ▪ Jacopo Repossiさん ・・・LangChainで要約,FineTune,丁寧な説明 ◦ 「Explain or teach concepts from Kaggle competition solution write-ups」 ▪ Nghi Huynhさん ・・・ 不明瞭なwrite upsに対して追加の質問でコンセプトを説明させる ◦ 「Explain or teach basic data science concepts」 ▪ Luca Massaronさん ・・・ RAG + Wikipedia API ◦ 「Other」 ▪ いのいちさん ・・・ CodeGemmaでPythonコードを説明 • 同じ部門に強力なライバルが出現したので,居座るか,別部門に乗り換えるか悩んだ ◦ ⇒ 追加の要素を盛り込んで戦うことにした
  16. 結果 • 終了直前に潜んでいた人たちの Notebookが続々と公開された • 入賞者は以下のようになった(中間発表から5人中3人が入れ替わった) a. 「Explain or teach

    basic data science concepts.」部門 ▪ sita bereteさん b. 「Answer common questions about the Python programming language.」部門 ▪ vbookshelfさん c. 「Summarize Kaggle solution write-ups.」部門 ▪ toshi_k d. 「Explain or teach concepts from Kaggle competition solution write-ups.」部門 ▪ Nghi Huynhさん e. 「Answer common questions about the Kaggle platform.」部門 ▪ DavidTroxellUCLAさん
  17. 学び • 2B,7BのLLMの振る舞いが分かった ◦ 当然だが,ChatGPTと比べるとあまり賢くない.複雑なプロンプトは無理 ◦ 色々工夫すれば,十分実用的なモデルであることは分かった • 7Bのモデルの回答が2Bより常に良いは限らない ◦

    7Bの方がよくしゃべるが,2Bの方が素直な挙動 ◦ 7Bのモデルの方が長いテキストを入力できはする • Kaggle上でどこまでできるかが分かった ◦ NotebookのP100x1, T4x2, TPUx8の3つの環境でどこまでできるかが異なる ◦ Gemma 2BはLoRAでFTできるが,7Bモデルは推論で精一杯 ◦ Gemma 2BをA6000でフルパラFTしたら,LoRAよりは圧倒的に良かった
  18. まとめ • メダルなしコンペ2個で色々やってみたら賞金が獲れた • メダルありコンペで参加したいコンペがないときは, メダルなしコンペに参加するのもオススメ • 新しい問題設定のコンペに参加すると,評価のプロセスが不透明なことあるが 色々調べることになるので学びが多い •

    国際会議系のコンペは,kaggleコミニュティ以外も着目してくれるので世界が広がる • 世の中的には生成AIが着目されているが,LLMもそれ以外も やれること・やるべきことは多いので得意分野で頑張っていこう