2024-12-03 機械学習勉強会

今週のTOPIC

※ [論文] [blog] など何に関するTOPICなのかパッと見で分かるようにしましょう。
出典を埋め込みURLにしましょう。

@Naoto Shimakoshi

[論文] Plots Unlock Time-Series Understanding in Multimodal Models

  • Googleが出したマルチモーダル基盤モデルの時系列データに対する応用についての論文
  • 結論的には、時系列データをテキストとして渡すことより、画像としてplotして見せることによって精度も向上し、Tokenコストも最大90%削減できたという話。
  • タスクとして以下のものを解いた
    • 人工データ
      • 関数認識
      • 相関推論
      • クラスター数のcounting
      • 関数だけでなく導関数の同定まで行う
    • Fall detection and activity recognition:IMUデータから転倒などの行動認識
    • Readiness assessment: 28日のトレーニングデータから高負荷か低負荷かを判断
    • Forecastは今回は対象外で、Time series understandingに重きを置いている
  • 結果として、全体的な傾向を認識することが必要なタスクで優位に優れていた
  • 先行研究として、タスクに特化したモデルが作られていたりするが、今回の研究はそれらを凌駕すると主張するのではなく、テキストのみを使用する場合と比較して、基礎モデルからはるかに優れた性能を達成できることを示す。
  • LangFunを使って構造化プロンプトを作成。実際に作ったものは全て論文上の公開されている。
    • 以下のように書ける。
  • 結果
    • 人工データでは優位にplotを使った方が精度が高い
    • Fall Detecion
      • textだとfew-shotを与えても良くなるわけではない。ほぼRandom精度。
    • Activity Recognition
      • 同様に優位に優れている
  • その他、Ablation Studyでplotは系列毎に分割した方が良かったなどが報告されている。(今回の場合は加速度計と角加速度計を分離)

@Yuya Matsumura

[blog]オートコンプリートでの日本語入力の問題を解決する

毎年恒例「情報検索・検索技術 Advent Calendar 2024」の1日目の記事
パワーを感じたが実際の問題に取り組まれていて面白かったので紹介
  • Query Auto Completion(QAC、クエリオートコンプリート)に関する日本語ならではの課題に取り組んだ内容の記事
  • 入力クエリをQAC用のElasticsearchにかけて候補を獲得する
    • ESには文書から名詞を抽出してサジェストキーワードとして登録している
  • 課題
      1. ローマ字入力の表記揺れ
          • 「ヘボン式」「訓令式」「MS-IME形式」
          • 「ナレッジ」を表すローマ字入力だけでも以下のようなパターン
            • narezzi
            • narejji
            • nareltuzi
            • nareltuji
            • narextuji
      1. 日本語 + 入力中のローマ字
          • 最終的に「東京」と入力したい際には「とうky」「とうきx」などが途中で入力される。これらではQACできない。
  • 解決策
      1. ローマ字カタカナ変換処理の実装
          • Google日本語入力とMS-IMEのローマ字入力の変換のルールをサーバー側に実装し、入力されたローマ字をカタカナに変換して検索を行う
          • 「narejji」や「narezzi」とユーザーが入力した際に「ナレッジ」で検索
      1. 日本語+入力中のローマ字に対して、可能性のあるクエリを生成
          • 入力クエリ中の文字列のひらがらからカタカナに変換
            • 「とうky」→「トウky」
          • 文字の末尾のローマ字をもとに可能性のあるカタカナをすべて生成
            • 「トウky」の「ky」が「キャ(kya)」「キィ(kyi)」「キュ(kyu)」「キェ(kye)」「キョ(kyo)」の可能性がある
          • 「トウキャ」「トウキィ」「トウキュ」「トウキェ」「トウキョ」すべてで検索
 
 

@Tomoaki Kitaoka

Ramp's Google Calendar Integration

 
  • 以下の項目をサジェストしている
    • 参加者
    • メモ
  • セキュリティ
    • shared calendar eventsのみを利用し、private calendar eventsは利用しない
    • 一時的に予定を保存することはあっても、長期的には保存しない
  • デモ動画ではカレンダーの以下の情報を利用しているように見える
    • 予定名
    • 場所
    • 日付
    • 参加者

@Yuta Kamikawa

uithub.com

  • github.comの に変えるだけでGithubリポジトリを丸々テキスト化してくれるらしい
  • Web検索できる系のツールと合わせて使いたい
  • LLMのロングコンテキスト化が進めば、RAG的なことをせずともコードベースを対象に色々質問できそう

@Shun Ito

[論文] Cautious Optimizers: Improving Training with One Line of Code

  • arxiv2024
  • AdamWの改良版 Cautious-AdamW
  • (既存)AdamとAdamW
    • Decoupled Weight Decay Regularization (ICLR2019) より
      Decoupled Weight Decay Regularization (ICLR2019) より
    • AdamWでは、weight decayを正規化計算の外に出して、相互の影響を回避している
  • (提案)C-AdamW
    • weight decayの更新を勾配とモーメンタムの符号(正負)が一致する時に限る
    • 損失関数が単調減少する(一時的な増加を防ぐ)ことで学習が安定する
      • 2次元パラメータのoptimizationでの軌跡
  • 実験
    • AdamW, Lion(AdamWの別の改良版)に適用した結果。training lossがより効果的に減少
 

@qluto (Ryosuke Fukazawa)

[論文] A Survey on LLM-as-a-Judge

「LLM-as-a-Judge」(評価者としてのLLM)に関する包括的なサーベイ論文。
  • Section 2 主な方法論
    • In-Context Learning による評価タスク定義方法
      • スコア生成
      • Yes/No質問
      • ペアワイズ比較
      • 複数選択肢選択
    • 評価に際してはGPT-4のような汎用LLMを利用に限らず、PandaLMやJudgeLMなど、評価タスク用にfine-tuningされたLLMを利用する選択肢も広がっている
    • LLMの出力を最終的な評価結果に変換する後処理手法
      • 特定のトークンの抽出
      • 出力の確率分布の正規化
      • 関連する文章の選択
    • これら手法を最終的にはパイプラインとして構築することになる。主に3つの用途。
      • LLM自体の性能評価
      • データのアノテーション
      • エージェントの評価
    • 「Quick Practice」として、実践的な実装ガイドラインも掲載されている。
  • Section 3 改善戦略
    • プロンプト設計の最適化: タスク定義の最適化、アウトプット形式の最適化
    • モデルの評価能力の向上: 評価用LLMのfine-tuningやfew-shotプロンプトのチューニングを、時には外部LLMを利用しフィードバックデータを生成した上で継続的に改善する手法などが紹介されている
    • 最終評価結果の信頼性を高めるための戦略:
      • (a) 複数の評価結果の統合
        • 同じ内容に対する複数回の評価結果の統合
        • 複数のLLM評価者による結果の組み合わせ
      • (b) LLM出力の直接的な最適化
        • 出力スコアのスムージング
        • 自己検証による信頼性の低い結果のフィルタリング
  • Section 6 実応用 - 機械学習
    • 幅広い分野での実用が進んでいるとしつつ、感情分析、機械翻訳、テキスト要約というNLPタスクの評価の様子について紹介
    • 感情分析: LLMベースの判断に影響を与える多数のバイアスが特定されている。
    • 機械翻訳: LLM評価者の有効性はその英語トレーニングに大きく影響することが示されており、非英語の文脈における文化的、事実的な正確性の評価の限界が指摘されている
    • テキスト要約: セマンティック品質をより適切に捉え、hullucinationを最小化するための評価が開発されている

 

メインTOPIC

[論文] The AI Scientist: Towards Fully Automated Open-Ended Scientific Discovery

概要

Sakana AIが提案する論文作成のような科学的発見プロセスを完全に自動化する包括的なフレームワーク
  • 大規模言語モデル(LLM)を活用し、研究のアイデア生成から論文執筆・査読までを自動化
  • 1本の論文生成にかかるコストはわずか$15程度と極めて効率的
  • 人間の査読者と同等レベルの自動査読システムを実現
  • 機械学習の3つの異なる分野(拡散モデル、言語モデル、学習ダイナミクス)での有効性を実証

Introduction

背景

現代の科学研究プロセスには以下のような制約が存在する
  1. 人的制約
      • 研究者の知識や経験の限界
      • 利用可能な時間の制約
      • 創造性や発想の個人差
  1. プロセスの複雑性
      • アイデア創出から論文執筆までの工程が多岐にわたる
      • 各工程に専門的なスキルが必要
      • 反復的な試行錯誤が必要
  1. リソース制約
      • 研究費用の限界
      • 計算資源の制約
      • 人材確保の困難さ
 
  • 科学研究プロセスの課題も理解できるが、研究者がAIに論文を書かせたいというシンプルな好奇心が強そう
  • 著者曰く、生成される論文の品質は動画生成における くらい
    • は動画生成分野におけるミーム的なやつ
    • 動画生成も1年でここまで進歩しているし、あくまでThe AI scientistが生成する論文も最初はこのくらいで、まだまだ改善の余地はある

本研究の貢献

本研究における主要な技術的貢献は以下の通り
  1. 完全自動化フレームワークの提案
      • LLMによるアイデア生成から論文執筆までをカバー
  1. 自動査読システムの開発
      • GPT-4ベースの高性能な査読システム
      • 人間の査読者と同等の性能を実現
      • 査読コストの大幅削減
  1. 実用的な性能実証
      • 3つの異なる機械学習分野での有効性実証実験
      • 1論文あたり約$15という低コストでの生成

The AI Scientist

The AI Scientistによる自動論文生成は
  1. アイディア生成
  1. 実験実行
  1. 論文執筆
  1. 査読
という4つの工程で構成される
  • The AI Scientistの工程ではLLMのほか、コーディング補助ツールやWebサービスが利用されている
    • Aider
      • LLMを利用したコーディング補助ツール
    • Semantic Scholar
      • 学術論文検索エンジン
      • API経由で利用

1. アイディア生成

  1. アイディア生成システムプロンプトにベースラインの研究情報を埋め込み、アイディアを作成する
      • Diffusion Modeling、Language Modeling、Grokkingの3種類分野のベースラインの研究テンプレートが用意されている
      generate_ideas.py
      SakanaAI
      • task_description: タスクの説明
      • experiment.py: ベースラインの研究の元の実験コード
      • num_rounds: アイディア生成の試行回数
  1. 提案されたアイディアの新規性を評価
      • の中でSemantic Scholar APIを呼び出して、関連論文を検索しそれらと被ってないか評価している
      launch_scientist.py
      SakanaAI
      • 日本語訳
    1. 基準を満たすアイディアであれば実験実行に移る
        • Interestingness, Feasibility, Noveltyなどのスコアを基準としている
          • 例) Interestingness: 8, Feasibility: 9, Novelty: 7

    2. 実験実行

    1. 提案されたアイディアをもとにコードを生成
        • 実験コード生成プロンプト(coder_prompt)に提案された(idea)を埋め込んで、ベースラインのコード(experiment.py)を修正して実行を繰り返す。
    1. 生成された実験コードを実行
      1. launch_scientist.py
        SakanaAI
        • 実験回数上限を設定し、成功するまで繰り返す

    3. 論文執筆

    1. 実験結果から論文に必要なグラフ(プロット)を作成
        • 実験コード生成と同じく、Aiderにpromptを与えて作成
        • 後続の工程(執筆とか)にグラフの情報を伝達するために、 というテキストファイルにプロットの情報を書き出すためのプロンプトが含まれていたりする
      1. ここまで得られた結果をもとに論文を執筆
          • latexのテンプレート(template.tex)で論文のフォーマットが指定されている
          • 一気に生成するのではなく、最初はタイトルとアブストラクト、次にイントロダクション、背景、手法、実験、結果、まとめといった順番で段階的に生成するようなプロンプトになっている
          • 論文の体裁を整えるためにセクションごとに個別のプロンプトを与える
            • アブストの例
            • 引用は、Semantic Scholar APIを利用して追加
            • 最後に全体を整えるプロンプトでリファインしてLatexをコンパイルし、PDFを作成

        4. 査読

        1. LLMに論文の査読をさせる
            • 人間が査読するときに考えることを言語化し、どんな観点でレビューするのかをプロンプトに設定している
            • LLMの査読の評価
              • ICLR2022のaccept・rejectを予測させて評価
                • 予測精度は70%ほど
        1. 査読の内容をもとに論文内容を改善
            • 普通にrejectもされる
            launch_scientist.py
            SakanaAI

        実験

        設定

        • 3つの研究テーマ(Diffusion Modeling、Language Modeling、Grokking)で実験
          • それぞれ4種類(GPT-4o、Claude Sonnet 3.5、DeepSeek Coder、Llama-3.1 405b)のLLMを利用
        • 50個のアイデアを生成させ、その後の実験と論文執筆
          • 時間制限は7200秒(2時間)で、プロットの生成には600秒(10分)の上限時間が設定
          • 8xNVIDIA H100 GPUを利用して12時間ほどかかる
        • それぞれの研究テーマに対して、4種類のLLMを用いた場合に3軸で評価
            1. 論文として生成できた数
            1. 品質
            1. コスト

        結果

        1. 論文として生成できた数
            • GPT-4oは論文として出力できたものが他のLLMと比較すると少ない傾向
        1. 品質
            • 生成された論文の品質としては、Sonnet 3.5が全体的に高く、Llama-3.1は低い評価が多い
        1. コスト
            • APIを利用するSonnet 3.5とGPT-4oでそれぞれ$250~$300と高いコスト
            • 1論文あたりで、$10-$15程度のコスト

        展望

        • Visual情報の活用
          • マルチモーダルLLMを利用していないので、図や表の理解や論文のレイアウトを最適化することができない
            • 表がページからはみ出したり、コンパイルでエラーが出たりする
        • 実験コードの生成の精度向上
          • 実装が間違っていたり、ベースラインとの比較で平等性が保たれていないことがある
        • LLM自体の精度向上
          • LLMのよくある失敗として数値の比較があるが、これが論文生成において致命的