2025-05-01 機械学習勉強会
今週のTOPIC[blog] Qwen3: Think Deeper, Act Faster[paper]Reinforcement Learning for Reasoning in Large Language Models with One Training Example[blog] RAGでDeep Researchのような深い検索を実現する手法[blog] Bridging Natural Language and SQL with Generative AIフルスクラッチ VLM “Viola” の歩みAFlow: Automating Agentic Workflow GenerationメインTOPIC読んだ動機ひとことでいうとイントロ関連研究画像のベクトル化SVGの生成SVGデータセットとベンチマークMMSVG-2MデータセットデータのキュレーションマルチモーダルなSVG生成に向けてOmniSVG実験定量評価定性評価Ablation StudyLimitations
今週のTOPIC
@Naoto Shimakoshi
[blog] Qwen3: Think Deeper, Act Faster
- Qwen3が出たよ。
- Hugging Face:https://huggingface.co/collections/Qwen/qwen3-67dd247413f0e2e4f653967f
- 0.6Bとかもある
- フラグシップモデルたちはo1、Gemini2.5 Pro, o3-miniとかに比べてもcompetitiveな結果

- Qwen3-4BでもQwen2.5-72B-Instructに匹敵する性能

- MoEモデルとしては二つ
- Qwen3-235B-A22B: 総パラメータ2350億、有効パラメータ220億
- Qwen3-30B-A3B: 総パラメータ300億、有効パラメータ30億
- 全部Apache 2.0
- 主な特徴
- Hybrid Thinking Mode: ThinkingモードとNon-Thinking Modeをユーザが使い分けることができる。
- Multi Language Support: 119の言語に対応。Japaneseにも対応している。
- Improved Agentic Capabilities: MCPサポートを強化した。Computer Useとかもできる。
- 事前学習
- Qwen2.5は18兆トークンだったのがQwen3では36兆トークン。
- WebだけでなくPDFのような文書からもデータを収集。テキストを抽出するのにQwen2.5-VLを使用し、コンテンツの質を向上させるためにQwen2.5を使用。数学とコードのデータの量を増やすために、Qwen2.5-MathとQwen2.5-Coderを使用して合成データを生成。
- 3ステージに分けて学習
- 30兆トークン、4kトークンコンテキストで事前学習
- STEM, Coding, 推論が必要になるタスクのような割合をデータセットに増やして、5兆トークンで学習。
- 高品質なデータで32kトークンまでコンテキスト長を拡張
- Denseモデルは大体半分くらいのパラメータでQwen2.5のモデルより優れている。
- Qwen3-MoEベースモデルでは、アクティブパラメータのわずか10%しか使用せずに、Qwen2.5 Denseと同等のパフォーマンス
- Post training
- 4段階の学習パイプライン
- Long-CoTで数学、Coding、STEM、推論問題などでFine tuning
- ルールベース報酬を用いてモデルの探索・活用能力を強化
- Long-CoTデータと一般的なInstructionデータを組み合わせてThinkingモードにNon-thinkingモードを組み合わせた
- 20以上の一般領域タスクで強化学習を適用し、望ましくない動作を修正。フォーマットやAgent機能なども含まれる。

- コード例も豊富
- thinking mode切り替え
- Agent機能
@Yuya Matsumura
[paper]Reinforcement Learning for Reasoning in Large Language Models with One Training Example
- たったひとつのサンプルで学習させる強化学習(1-shot RLVR)によってLLMの性能が大幅に向上するよという研究。えぐい。
- 異なるモデル(Qwen2.5-Math-7B、Llama3.2-3B-Instructなど)や異なる強化学習アルゴリズム(GRPO、PPO)でも同様の効果が確認
- ベースライン(黄色)に対して、提案手法(緑系)の性能がぶち上がっている。
- 十分な量のデータで学習したもの(青系)とも同等の精度。

- Post-saturaton:1 shot の場合、訓練精度がサチった後もテストデータの精度が向上し続ける現象が確認された。

@Shun Ito
[blog] RAGでDeep Researchのような深い検索を実現する手法
- 既存のMulti-hop Question Answering(検索と推論を繰り返して質問に回答する)の問題点
- 検索を繰り返す中でcontextで大きくなり、「ずれの蓄積」が発生する
- stepが進むにつれて、本来知りたかった情報からだんだんと離れていく
- (提案)PAR RAG: 「ずれの蓄積」に対処した手法
- Plan + Action + Review の組み合わせで回答を生成する
- Plan: LLMに「Thought」「Question」「Action」からなるステップを生成させる
- 全体を見通して、目的に大きくずれないように計画する
- Action & Review: Planで作られた各ステップを実行する
- Action: 質問を元に大まかに関連する情報を検索し、その結果を元にLLMが一次回答を生成
- Review: 一次回答を元に知識グラフ・ベクトルデータベースからより関連した情報を収集し、回答の妥当性を評価。必要であれば修正版を返す。
- 次のActionに移る際は、今のステップで得られた回答を元に次ステップの質問をrefineする
- 全ステップの終了後、元の質問と調査過程をまとめてLLMに渡し、最終回答を生成する

プロンプト
プロンプト
プロンプト
- 結果: 精度向上 & コスト増加
- 精度
- PlanまたはReviewを外すと精度低下する
- 速度は悪化し、コストは増加する



@qluto (Ryosuke Fukazawa)
[blog] Bridging Natural Language and SQL with Generative AI
SalesForceの text-to-SQL の実応用の話。
実際に動いているスクリーンショットはこちら。

具体的な手法が紹介されていたので紹介。
Horizon Agent の開発中に直面した最も重大な技術的課題は何でしたか? 最も複雑な課題は、大規模言語モデル(LLM)の非決定論的な動作を管理することでした。正しいデータにアクセスできたとしても、クエリを繰り返すとSQL出力が変動することが多く、信頼性と一貫性が損なわれました。手動プロセスを自動化システムに置き換える際に高い信頼性を確保するため、コンセンサス投票メカニズムが導入されました。 各プロンプトは10個の候補SQLクエリを生成し、コサイン類似度モデリングとレーベンシュタイン距離計算を用いたスコアリングパイプラインで評価することで、最も一貫性があり信頼性の高い応答を特定します。外れ値を除外した後、最も信頼性の高いSQLクエリがユーザーに返されます。このアプローチにより、システムの有効性スコア(5段階評価で4または5と評価された応答の割合)が、リリース時の50%から80%へと大幅に向上しました。この大幅な精度向上は、早期アクセスから一般提供への移行、そして社内チーム間の信頼構築において極めて重要でした。
@Takumi Iida (frkake)
フルスクラッチ VLM “Viola” の歩み
Sansanの文書画像から情報抽出をするVLM=Violaに関する技術ブログ
- Violaプロジェクトの始まり
- 2023年のオープンソースのVLM/LLMを試したが、データ化の精度・コストの両面で十分な投資効果が得られなかった 理由:
- データ化のルールを覚えさせることが難しい
- システムの知識やドメイン固有のルール
- 文字認識精度が期待値に達していない
- 細かい文字に弱い
- フルスクラッチでやる動機
- CLIPは高解像度にそもそも弱いので強くしたい
- 自社に高解像度の文書画像が一定量ある
- 要求される精度の水準はわかっており(NineOCRよりも良ければ良い)、市場も大きいが、高い性能がでるかわからない → 技術検証から
- 技術検証
- CLIPの学習 →文字認識性能の高い画像エンコーダーを効率よく構築することは困難
- 高解像度な画像の扱いが難しい←ViTのパッチ由来
- 画像のエンコーダ評価むずい
- 文字認識能力の獲得むずい
- GITを採用
- 画像エンコーダ+テキストエンコーダを使って、キャプション損失を最小化 →文書画像に記載された文字列をキャプションと捉えて学習できるのでは?
- 他にもCoCaが類似論文としてあるが、アーキテクチャの簡単さやベンチマークからGITを採用
- Violaへのリプレースの話
- その後の改善
- ViT→Swin Transformer
- Scaled Dot-Product AttentionのKVキャッシュ活用
- 1つの質問で複数の回答をするように変更 →
- 動画VQAの枠組みを流用して、複数ページの情報を考慮
- 展望
- 画像エンコーダの最適化
- グラウンディングとの統合 文字領域がわかれば、切り出して文字認識モデルにも入れられる
@ShibuiYusuke
AFlow: Automating Agentic Workflow Generation
- 概要:LLMで多段階の推論が必要になる複雑な課題を解くために、ワークフローを作ることがある。安定して課題解決できるワークフローの作成は相応のエンジニアリングと工数が必要になる。LLMによってワークフローを自動生成する方法を提案する。
- ICLR2025 conference paper

- AFlowの仕組み:MCTS(モンテカルロ木探索)をベースにしたワークフロー最適化。
- Initialization:テンプレートワークフローを用意。データセットを検証(20%)とテスト(80%)に分割。
- Selection:Soft mixed probability strategyに従って親ワークフローを選択。
- Soft mixed probability strategy:ワークフロー探索においてExploration(新規ワークフローの探索)とExploitation(探索済みワークフローの改善)のバランスを取る戦略。
- Expansion:選択された親ワークフローに基づいてLLM Optimizerが新ワークフローを作成。ワークフローのプロンプトやコードの生成、変更を行って新たなワークフロー候補を作る。
- Evaluation:LLM-as-a-Judgeが検証データセットで新たな候補ワークフローを評価する。
- Backpropagation:変更や評価をMCTSツリー上の親ワークフローに伝搬。
- Terminal condition:最適化処理は以下の条件で終了。
- top-k 平均スコアがn回のラウンドで改善されなかった場合。
- N回のラウンドを実行した場合。


- 学習・テストデータ
- QAタスク:Hotpot QA、DROP
- コード生成タスク:HumanEval、MBPP
- 数学タスク:GSM8K、MATH
- 評価


- 参考:‣
メインTOPIC
項目 | 内容 |
---|---|
タイトル | OmniSVG: A Unified Scalable Vector Graphics Generation Model |
著者・所属 | Yiying Yang, Wei Cheng, Sijin Chen, Xianfang Zeng, Jiaxu Zhang, Liao Wang, Gang Yu, Xingjun Ma, Yu-Gang Jiang |
発表年/掲載先 | 2025/4/8(arXiv preprint: 2504.06263) |
論文リンク | https://arxiv.org/abs/2504.06263 |
プロジェクト | https://omnisvg.github.io/ |
データセット | https://huggingface.co/OmniSVG |
コード (まだアセットだけ) | https://github.com/OmniSVG/OmniSVG |
読んだ動機
- 昔、自分のアイコン ‣ をSVG化しようとしたけど、難しかった
- 表現力の低い画像生成に興味あり。漫画とかだとペンを操作するイメージなので、一発生成でなく、実際に描画してくれるようなものの方が直感的だし、漫画のレイヤの概念などとうまく組み合わせられそう
- +α
ひとことでいうと
SVG画像を生成するVLM(OmniSVG)を提案。
また、そのためのマルチモーダルSVGデータセット MMSVG-2Mを構築。


イントロ
SVGいいよね
- SVG便利は解像度非依存だったり、編集が容易でUI/UXやCADにも使えるので便利だが、実際作るとなるとむずい
SVGを作る既存のアプローチ
- 最適化ベース:SVGのパラメータを微分可能なラスタライザで反復的にリファインしていく → 計算コスト高い
- 自己回帰ベース:事前学習済みLLMを使って、XMLを生成したり、SVGコードを直接生成する。 → コンテキストウィンドウもあり、シンプルなSVGは作れるけど、複雑なのはむずい
- OmniSVG:マルチモーダルなSVG生成をするための、事前学習済みVLMを使った最初のフレームワーク
- やること
- SVGコマンドと座標を離散トークンにパラメータ化 → 低レベルな幾何学と構造的なロジックを切り離す → SVGコードベースのLLMで生じる「座標ハルシネーション」を緩和。カラフルなSVGが生成できる。
- できるようになった
- トークン長30kまでのSVGをパラメータ化できる=複雑なSVGまで対応できる
データセットとその評価指標の構築
- MMSVG-2Mデータセット アイコンやイラスト、アニメのデザインを含む200万個のリッチなアノテーション付きデータセットを構築
- MMSVG-Bench評価プロトコル
- Text-to-SVG
- Image-to-SVG
- Character Reference SVG Generation
関連研究
画像のベクトル化

画像のベクトル化では、画像をベクトル化する(そのまんまだが)
上図はLIVEの図。面白そうだったので、貼ってみた。
問題点として以下の要素がある
- Over-smoothing
- Color Saturation
- 編集性の欠如(低い)
- パスの絡まり
- 計算量の増加
SVGの生成
以下のようなモデルでSVGコマンドを潜在表現に圧縮して生成していくアプローチがある。
- RNNのようなシーケンスモデル
- VAEs
- Transformers
例えば
- DeepSVG:Dual-Transformerを使ってSVGをパラメータ化するが、幾何学的整合性が取れない
- LLMを使った手法:XMLコード生成(=SVGを生成)
- LLM4SVG:学習可能なセマンティックトークン(SVGのコンポーネントなどを表している)を使ってSVGをエンコード
- StarVector:画像とテキストを組み合わせてSVGを生成
- ただし、画像とテキストのエンコーダが別々なので特徴アライメントが微妙
SVGデータセットとベンチマーク
複雑なSVGデータセットがないことが課題
データセット
- FIGR-8-SVG:単色アイコンを中心としたデータセット
- StarVector
- イラスト・アイコン・絵文字・フォントで構成されている
- 最大8.2kトークンしか含まれていない
ベンチマーク
- VGBench:マルチフォーマットテストのギャップや包括的なSVGのイラストがない
MMSVG-2Mデータセット
データのキュレーション
サブセット | Train / Val / Test | 主提供元 | 平均トークン長 ± SD | 割合 |
---|---|---|---|---|
MMSVG-Icon | 990k / 106.7k / 3.3k | Iconfont | 2.2k ± 0.9k | 55 % |
MMSVG-Illustration | 450k/ 48.5k/ 1.5k | IconSount | 8.1k ± 3.3k | 25% |
MMSVG-Character | 350k / 48.9k / 1.1k | Freepik &generated | 28k ± 7.3k | 20 % |
ソースにかかれているサイトは、ユーザがSVGを公開・共有できるオンラインプラットフォーム
- 重複したファイルなどをファイル名やSVGコード、メタデータを使ってフィルタリング
- 200x200のビューボックスに収める
- VLM(BLIP-2)を使って、SVG(画像)のキャプションを生成

SVGの単純化(Simplification)
既存のXMLで表現されたSVGデータは表現として複雑になり、曖昧さが生じる。
→ SVGコマンド化
コードとしては多くなるが、曖昧性はなくなる。
例1)矩形の場合、4本の線とする
例2)円の場合、ベジェ曲線で近似
すべての属性情報を削除して、以下のようなSVGコマンドにしていく。

マルチモーダルなSVG生成に向けて
- Text-to-SVG
- タスク:テキストからSVGを生成する
- 評価
- FID:画質評価
- CLIP score:text-SVGのアライメント評価
- Aesthetic score:美的スコア
- 人手による評価
- Image-to-SVG
- タスク:画像をSVG化する(再構成)
- 評価
- DinoScore:Dino V2特徴との類似度
- SSIM:画像の構造的類似度
- LPIPS:特徴マップの類似性
- MSE (Mean-Squared Error)
- Character-Reference SVG Generation
- タスク:入力画像中のキャラクターを保持したまま新規のSVGを生成する(再構成ではない)
- 評価
- GPT-4oで画像の一致具合を10段階で評価
OmniSVG
モデルアーキテクチャは下図。Qwen2.5-VLを使って、SVGの学習・推論(生成)を行う。

- テキストと画像をそれぞれのトークナイザに入力し、プレフィックストークンとして埋め込む
- SVGトークナイザを使って、SVGスクリプトをシーケンスにトークン化し、プレフィックストークンの末尾に追加
- それをQwen2.5-VLに入力
SVGトークナイザ
SVGのスクリプトをフラットにする役割
- 5種類のSVGコマンドを特殊トークンに置き換える
- 座標情報を1つのトークンに置き換える
目的関数
Next Token Predictionの目的関数を設定する
実験
定量評価

- Text-to-SVG:OmniSVGは一貫して良いスコアを達成している
- Image-to-SVG:LIVEを除けば2番手なので良い性能を達成していると言えそう
各手法に対するコメント
Text-to-SVG
- 最適化ベースの手法(VectorFusion, SVGDreamer) 時間が非常にかかるし、複雑なものの生成が難しい
- LLMベースの手法(Chat2SVG) LLMからのSVGスクリプトを最適化する必要があるため計算量が増加し、学習時に課題が生じる
- Iconshop Transformerベースのアーキテクチャで自己回帰してSVGパスを生成するが、白黒しか対応できない
Image-to-SVG
- LIVE
形状の複雑性制御を伴うラスター画像を使って漸近的に生成するが、複雑なSVGには長時間必要
定性評価

- IconShopは白黒しか作れない
- OmniSVGは計算量はほどほどで、結構いい画像が作れる
- 基本的にOmniSVGは他の手法よりもきれい。

- 単純なアイコンであれば、既存手法もまずまず。一方で、複雑な画像は厳しい。
Character-Reference SVG Generation

MMSVG-Character(自然画像+SVGのペアデータ)を使ってOmniSVGを学習
GPT-4oで10段階評価
Ablation Study
SVGのパラメータ化の有効性
- 従来の方法:各桁(digit)を別々のトークンとして扱う 例)(123, 456)だと6トークン
- OmniSVGのSVGトークン化 全体を1つのトークンとして扱う 座標の場合:
座標情報と色情報をパラメータ化するかしないかで評価
- 全部パラメータ化したほうが良い
- 座標情報をパラメータ化しないと座標が崩れる
- 色情報をパラメータ化しないと色彩がおかしくなる


モデルのサイズとアーキテクチャ
モデルサイズが大きくなるにつれ、よくなる


ユーザスタディ
合計64個のSVGを使って、人手で評価。
- Preference:好みかどうか
- Vividlity:サンプルが鮮明かどうか(意訳)
- Alignment:マッチした画像かどうか
—> OmniSVGはどれもいいスコアだよね

Limitations

OmniSVGはイラストやアイコンの生成はできるが、自然画像はできない