2025-02-21 機械学習勉強会
今週のTOPIC[slide] 関東Kaggler会発表資料[slide] Amazon OpenSearch Serverless[blog] TAID: 学習の進捗状況に応じたAdaptiveな蒸留手法[論文] Competitive Programming with Large Reasoning Models[doc] Reasoning best practicesメインTOPICTransformer-Squared: Self-adaptive LLMsAbstractIntroduction先行研究MacroviewMicroview手法Singular Value Fine-tuning, SVFEnd-to-end optimization with RLSelf-Adaptation実験実験設定実験結果分析結論感想
今週のTOPIC
※ [論文] [blog] など何に関するTOPICなのかパッと見で分かるようにしましょう。
出典を埋め込みURLにしましょう。
@Naoto Shimakoshi
[slide] 関東Kaggler会発表資料
- スケジュールに全ての発表とリンクが表示されています。
- 全ての発表が面白かったですが、いくつかピックアップしました。
- RSNA2024振り返り
- 愚直に可視化してcrop範囲を決めたり、3stageのどこが精度のボトルネックになっているか、どのようなaugmentationをするか、などを愚直にちゃんとエラー分析をすることの大事さ。
- モデルへAux Lossを使うことで、アノテーションした時の気持ちを取り入れるなど。
- 🤔 妙だな...
- データを扱っている上で、そんなこと原理的に起こり得ないはずなのに何故起こってるんだろうと気づくことの大切さを教えてくれる資料。
- 機械学習だとバグとかに気づきにくいので、何故これで精度が落ちるんだろう?なぜ取れないんだろう?みたいな疑問を常に持つことが大事。
- 2.5Dモデルの全て
- 巷の2.5Dモデルについて丁寧にまとめられている良資料。
- 画像モデルを作るときに、前後の画像などの気持ち含めて学習させたい時などに有用。
- コンペだけでなく、論文でもいつから使われているかなども調査されている。
@Tomoaki Kitaoka
[slide] Amazon OpenSearch Serverless
- 従来のOpenSearch clustersでは検索とインデクシングが同じインスタンスで実行されていたが、Serverlessでは検索・インデクシング・ストレージのワークロードが分離されており、インデックス作成と検索機能を独立にスケール可能でインジェスト(書き込み)とクエリ(読み込み)操作を同時に実行してもリソース競合が発生しないという特徴がある。

- OCU (OpenSearch Capacity Unit)
- 検索とインデキシングそれぞれの処理に対して、個別に割り当てられるキャパシティユニットのことをOCRと呼ぶ
- 1 OCU
- 1 vCPU
- 6 GiB RAM
- 120 GiB Disk
- 最初のコレクションを作成すると、アカウントごと(厳密にはリージョンごと) に、検索とインデキシングに 2 OCU ずつ、計 4 OCU が割り当てられ、処理要求や負荷の増加・減少に応じて自動的に OCU が増加 (スケールアウト)・減少(スケールイン)する
- スケールアウト / スケールインの判断基準
- Ingest ノード、Search ノードの CPU、メモリ、ディスクリソース、ホットシャードに対する書き込み、読み取り要求の増加によって、閾値を超えた場合にスケールする。反対に、閾値を下回った場合は、徐々にスケールインを行う。
- OCUのlimitも設定可能

@Shun Ito
[blog] TAID: 学習の進捗状況に応じたAdaptiveな蒸留手法
- 蒸留での以下の課題に対処
- 生徒モデルが教師モデルの分布を直接最適化しようとすると、表現力が乏しく全体的にぼやけた分布になってしまう(モード平均化)
- または、特定のモードに偏りすぎてしまう可能性もある(モード崩壊)

- 提案手法
- 時間 t (0 ~ 1) に依存して、教師と生徒の出力ロジットを線形に補完した教師ラベルを使う
- 学習が進むにつれて正解ラベルが複雑に(難しく)なっていくイメージ
- 損失の更新が大きいほどtが大きく進むようなupdate方式
- lossは教師ラベルと自己蒸留ラベルとの KL-divergence





- 実験結果
- MT-Benchスコアで従来手法を上回る
- 6タスクで平均的に良いスコア
- lossが安定し、教師モデルサイズが大きくなっても安定して良いパフォーマンス



@qluto (Ryosuke Fukazawa)
[論文] Competitive Programming with Large Reasoning Models
OpenAIによるRLがLLMの性能をどう高めているかという論文
(具体的手法が載っているわけではなく、ベンチマークに対するレポートになっている)
RL により、LLMのコーディングや推論能力が大幅に向上することを実証した。
- OpenAI o1 vs o1-ioi vs o3 の比較:
- o1 は一般的な推論モデル。
- o1-ioi は手作業で設計された競技プログラミング向けの推論戦略を活用。(IOI: International Olympiad in Informatics。数学オリンピック)
- o1-ioi専用の人の手によるテスト時戦略
- 問題を小さなサブタスクに分割し、それぞれ10,000の候補解を生成。
- クラスタリングとリランキングで最適解を選択。
- 50回の提出を最適化し、スコアを向上。
- o3 は人間の介入なしにRLのみで推論戦略を学習し、o1-ioi を超える成果を達成。
- 成果
- o1-ioi は IOI 2024 のライブ大会で49パーセンタイル にランクイン。
- o3 は CodeForces のトップ 0.2%(2724レート)に到達 し、最高レベルの人間競技者と肩を並べる結果に。
@Yosuke Yoshida
[doc] Reasoning best practices
- reasoningモデル(e.g. o1, o3-mini)とGPTモデル(e.g. GPT-4o)の比較やベストプラクティスについて書かれたOpenAIのドキュメント
- 日本語に翻訳されているブログ
How to prompt reasoning models effectively
- 開発者メッセージは新しいシステムメッセージです
- 2024年12月17日以降、推論モデルはシステムメッセージではなく開発者メッセージをサポートし、モデル仕様で説明された指揮系統の動作に合わせています。
- プロンプトはシンプルかつ直接的に
- モデルは短く明確な指示を理解し、応答するのが得意です。
- chain-of-thoughtプロンプトを避ける
- これらのモデルは内部で推論を行うため、「段階的に考えてください」や「理由を説明してください」と指示する必要はありません。
- 区切り記号を使って明確に
- Markdown、XMLタグ、セクションタイトルなどの区切り記号を使用して、入力の各部分を明確に区別すると、モデルが各セクションを適切に解釈するのに役立ちます。
- まずzero shotで試し、必要ならばfew shotへ
- 推論モデルは優れた結果を出すのにfew shot例を必ずしも必要としないため、最初は例を使わずにプロンプトを作成してください。
- もし、出力に対してより複雑な要件がある場合は、入力例と望む出力の例をいくつか含めると良いでしょう。ただし、例がプロンプトの指示と非常に密接に一致していることを確認してください。一致しない場合、望ましくない結果になる可能性があります。
- 具体的なガイドラインを提供する: モデルの応答を制約したい場合(例:「予算が500ドル以下の解決策を提案してください」など)、その制約をプロンプトに明示的に記載してください。
- 最終目標を非常に具体的に
- 指示の中で、成功するための具体的なパラメータを示し、成功基準に合致するまで推論と繰り返しを行うようモデルに促してください。
- Markdownフォーマット
- 2024年12月17日以降、API内の推論モデルはMarkdownフォーマットを含む応答を生成しないようになりました。応答にMarkdownフォーマットを使用したい場合は、開発者メッセージの最初の行に「Formatting re-enabled」という文字列を含めてください。
メインTOPIC
Transformer-Squared: Self-adaptive LLMs
Qi Sun1,2*, Edoardo Cetin1*, Yujin Tang1*
1Sakana AI, Japan 2Institute of Science Tokyo, Japan
Sakana AIさんが1月に出した論文。ICLR 2025
Abstract
従来のファインチューニング手法は、計算コストが高く、学習後にモデルの性質が固定されるため、多様なタスクへの柔軟な対応が困難だった。そこで本研究では、LLMの重み行列の特異成分に注目し、わずかな追加パラメータで動的な適応を実現する自己適応フレームワーク「Transformer-Squared」を提案。推論時にはまず入力からタスクの性質を識別し、その後、強化学習で学習したタスク固有のエキスパートベクトルを動的に組み合わせる二段階の適応機構を用いる。実験結果から、提案手法はLoRAなどの既存アプローチを上回る性能を示し、自然言語タスクのみならず視覚と言語の統合タスクにも有効であることが確認された。これにより、Transformer-Squaredは柔軟かつ効率的なLLMの適応性を実現し、動的に自己組織化するAIシステムへの道を開く可能性を示した。
Introduction
- 従来のLLMのPost Trainingには限界がある。
- モデル全体を各タスク向けに再学習させるための計算資源と時間は莫大に必要。
- 一度タスク固有にFine Tuningしたモデルはその設定に静的に固定されてしまい、新たなタスクやドメインに直面すると再度別途微調整が必要になってしまう。
- 複数タスクを一つのモデルで扱おうとすると勾配の干渉による精度のトレードオフが発生したり、Catastrophic forgettingなどの問題がある。
- Post Trainingは高コストかつ静的で、多様なタスクに対応が難しかった。
- 自己適応型LLM
- エキスパートモジュールをオフラインで開発し、必要に応じて Base LLMに拡張することができる。
- 継続的な学習もサポート
- LoRAとMoEを使うのが一般的
- 複数のエキスパートモジュールを作るとトレーニングが必要なパラメータが大幅に増加する。
- 本論文は自己適応型LLMの実現を目指し、動的にタスクに応じた重み調整を行う手法を提案。
- Transformer-Squared(Transformer²)は推論時に二段階の適応を通じて柔軟に対応できるようになった。
- 特異値を用いたFine Tuning手法 SVF(Singular Value Finetuning)を提案
- 2パスの推論メカニズム
- このアプローチは、既存のLoRAやMoE手法よりもパラメータ効率が高く、実用的な適応性を示した。

先行研究
- 自己適応型LLMは以下の2パターンに分かれる
- 複数のLLMが協働するMacroview的な観点
- 単一のLLMが異なるタスクに特化するために内部適応するMicroview的な観点
Macroview
- ドメイン固有の専門知識を持つLLMsにクエリを指示し、エキスパートモデルからの出力を優先することで高い精度とタスク固有の最適化を実現
- メカニズム的には
- 複数のLLMが異なる役割を果たし、共有された目標に向かって協調する
- 相互の傾聴と討論を行う
- 知識とskill planningを統合するために綿密なプロンプトを用いる
本研究ではMacroviewよりMicroviewに注目
Microview
Mixture of Expert (MoE)
- モジュールやレイヤーのサブセットをタスクに応じて動的にルーティングする
- ルーティング方法の違い
- 従来のMoEは、トークンごとにエキスパートのサブセットをルーティングする
- Transformer²はサンプルごとにモジュールをルーティングする。
- エキスパートモジュールの構築
- 従来のMoEは、ゼロから学習されるか、Upcyclingなどの手法を用いたもの
- 参考:Upcycling → (おそらく)全パラメータを使うモデルを複数組み合わせる手法。SBIのなど。
- Transformer²はRLを用いてエキスパートベクトルを学習し、ドメイン固有知識を獲得する (後述)
LoRA
- LoRAのような低ランク適応手法はさまざまな修正案が提案されている。
- Transformer²は低ランク行列に依存せず、代わりにフルランク空間にまたがる元のパラメータ行列の特異ベクトルをスケーリングさせる。
SVD For LLM Fine-tuning
- SVDがPEFT (Parameter Efficient Fine Tuning)の帰納的バイアスとして使用されるようになっている。
- 重み行列を分解して、ノイズやロングテール情報に関連する特異成分を用いてLoRAの初期値を決めるなど。
- top-r個の特異ベクトルで元の重み行列を近似する先行研究などもある。
- top-r部分空間内の大きさと向きを調整するために、top-r部分の特異値行列の上に小さな学習可能な行列が導入される。
- この場合、特異値分布の歪みが少ない場合に、上位だけだと重要な情報が失われる可能性がある。
手法
本研究の手法は大きく分けて二段階ある
- 特異値分解に基づくファインチューニング (SVF)
- Transformer²フレームワークにおける推論時の自己適応機構

Singular Value Fine-tuning, SVF
- 従来のFine Tuning手法は、重み行列を修正することで、事前に訓練されたモデルを新しい機能で補強することを目的としていることが多い。
- しかし、先行研究では既に大規模なLLMであれば多くの下流タスクを解くために必要な能力は、既に事前学習済みモデル内にすでに存在している。
- なので、効率的なFine Tuningを行うためには、これらの潜在能力をより表現しやすくすることに焦点を当てるべきである。
- これらの観点からTransformer²では、という単純なベクトルを学習させる。これを用いて、特異値の対角行列をのように調整する。これにより、LoRAなどと比べても桁違いに少ないパラメータで調整可能となる。
- 表現能力が少なくなりそうではあるが、逆にフルランクの情報にアクセスできるという利点がある。
- 特異値のみを修正するという操作なので、正則化的な効果もあり、Catastrophic forgettingも起きにくい。
End-to-end optimization with RL
- 最適化するパラメータはN Layer x M Matricesの重み行列に対する特異値ベクトル
- 単純にpromptを 、生成された回答を 、報酬を として強化学習する。その際に、元のモデルから逸脱しすぎないためのKLペナルティも追加する
- RLは一般的にNext Token Predictionより安定性が低いが、SVFは正則化特性が強いので、先行研究のような失敗を多く回避できることがわかった。
- LoRA fine tuningの場合は、Next Token Predictionをする必要があり、explaining textsが必要になるが、SVFではそれも必要ない。
Self-Adaptation
- SVFで訓練されたK個のエキスパートベクトル を組み合わせて、異なる種類の能力を提供する。
- 能力と訓練データセットの間のマッピングはデータセットのメタデータで行う。
- Transformer²はプロンプトが与えられると、一度目の推論を行い、そのtest-timeの挙動に合わせて、新しい ベクトルを生成する。このを2回目の推論で使用することで、新しく適応された重みで実際の応答を生成する。
- この適応プロセスを行うために以下の3つの手法を試した。
- Prompt engineering
- Adaption promptを作り、LLMに直接入力プロンプトを分類してもらう。
- その分類結果に基づいて、事前学習に使用したドメイントピックのセットから1つのカテゴリを抽出し、対応するを直接抽出する。
- 「その他」カテゴリも用意することで、そのままの重みを使うことも選択させる。
- Classification expert
- タスク識別を行うために特別なシステムを用意する。
- SVFを訓練したデータセット を用いて、元のベースモデルのLLMがタスクを分類できるようにFine-Tuningする。
- この際にもSVFの仕組みを使い、エキスパート を生成し、最初の推論パスで をそのまま利用する。
- Few-shot adaptation
- Few-shotの例とCross-entropy method (CEM)を用いて のように線型結合させたエキスパートベクトルを生成する。
- どのような評価関数を使っているか明示的に論文内で書かれていないが、コード的にはこの辺り
- 実際推論するデータセットのラベルとかを使ってそうな雰囲気。そりゃ強くなるだろうという気はする。

CEMの疑似コード

実験
以下を目的に実験を行った
- SVFの効率と有効性の評価
- 提案された3つの適応戦略による自己適応性の実証
- 新しいフレームワークの特性の理解と解釈
実験設定
- 一般性のために異なるモデルファミリーとサイズのモデルを選定
- LLAMA3-8B-INSTRUCT
- MISTRAL-7B-INSTRUCT-V0.3
- LLAMA3-70B-INSTRUCT.
- 以下の3つのデータセットからベクトルを得る
- GSM8K:小学生レベルの数学文章題データセット。評価指標は厳密一致の正解率(Accuracy)
- MBPP-pro:Pythonプログラミング問題集(GoogleのMBPPを拡張したもの)。コードが正しく実行・解答できた割合で評価。指標はPass@1(1回の出力で正解できる率)
- ARC-Easy:科学常識問題集(AI2 Reasoning Challengeの簡単版)。4択問題の正解率で評価。
- VLMドメインへのSVFの適用性を評価するためにTextVQAの言語backboneとして を使う場合のzセットとしても利用する。
- Fine-tuningの学習曲線は以下のようになった。
- 点線はLLAMA3-8B-INSTRUCTの性能
- 赤い丸の部分でEarly stoppingして後段に使用している。
- SVFの学習効率が良いこともアピールポイント (ちゃんと過学習されている)

- 最後に4つの未知タスクに対して評価する。
- MATH:数学競技レベルの難易度の高い数学問題データセット。評価指標は正解率。
- Humeneval:オンラインジャッジ形式のコード生成タスク(OpenAI提供)。指標はPass@1。
- ARC-Challenge:ARC-Easyの難問版
- OKVQA: 常識的知識を要する画像質問応答タスク(Open Knowledge VQA)。画像内容+外部知識による応答の正確さで評価(Accuracy)。
実験結果
- Fine-tuning段階のテストセットでは、一貫した精度向上が見られた。
- (Early Stoppingしてるのだからそれはそうでは?)

- 未知タスクにおける性能
- LoRAと公平に比較のために、検討したトレーニングタスクの全てのチェックポイントを使用して、テストタスクの最高性能のみを報告した。
- Transformer²はほとんどのタスクで精度向上が見られるが、LoRAの場合はMATHやHumanevalで性能が大幅に悪化する。
- これはLoRAが小さなデータセットであるGSM8KやMBPP-Proなどのデータセットで学習した場合のオーバーフィットに敏感である可能性を示唆している。
- 上記のFigure5のVQAの場合にも同様の傾向が見られる。

- 適応戦略の比較
- 明確な単調増加が観測される。特にFew-shot手法がどのタスクでも最も効果的である。
- 推論速度
- ARC-Challenge以外は、1段階目の推論はボトルネックにはならない。
- ARC-Challengeはinput tokenが長くなりがち

分析
- Classification系のAdaptation戦略の分類精度
- Reasoningの精度がClassification Expertの方が高い。
- Mistral-7BやLlama3-70Bはプロンプトだけでも精度が高い。
- ただし、分類精度が高いからといって後段のタスクでも精度が高いとは限らないことに注意。

- Few-shot Adaptationの係数分析
- HumenEvalやArc Challengeでは、どのモデルでも関連するタスクでのエキスパートの寄与度が高いが、MATHだけ寄与度が他のエキスパートの方が大きい。
- これは訓練で使ったGSM8Kが小学生の問題であり、MATHとは求められる能力が異なり、論理的推論などが必要になるからではないかと考察される。

- Ablation Studies
- Module Sensitivity:異なるモジュールにSVFを適用した場合の性能を比較 (#1~3)
- Objective Function: RL or Next Token Prediction (#2, #4)
- SVF vs LoRA: LoRAにおけるRLも検証。

- Cross-model compatibility
- 異なるLLMに対しても同じエキスパートベクトルを適用できるかを試した。
- Llama3-8B → Mistoral-7Bで実験
- 以外にも二つのタスクでは正の影響があった。二つのモデルのアーキテクチャが類似していることに起因している?

結論
- Transformer²は既存の自己適応型LLMに比べて以下のような利点がある。
- コスト削減
- 高い構成性
- オーバーフィットに対する正則化
- 優れた性能
- また、3つの適応戦略を開発し、Test時にアクセスするログを増やすことで単調に性能が増加することを明らかにした。
感想
- 意外と中身自体はシンプルな構成だった。
- MoEとかSelf Adaptationとかが流行ってはいるが、タスクの種類が実務的ではないので、実際実務で使うとしたらどのようにタスクを分解するべきかが難しい。実際のところ1つのエキスパートを選ぶ系の適法手法であれば、使う場所によって単純に使うLLMやプロンプトを変えるだけで良いのでは?という気がする。
- この辺りがどんどん省力化していくと、マルチテナントSaaSでテナント毎にエキスパートベクトルを用意する未来とかもあるのか