こしあん
2024-04-27

Arxiv RAGによる論文サーベイの自動生成


4.3k{icon} {views}

複数のLLM(GPT/Claude3)とArxivの検索APIをRAGで統合し、論文サーベイの自動生成を作りました。検索結果の前処理や、サーベイ特有のプロンプトエンジニアリングやソートが重要で、最適化手法として古くからある巡回セールスマン問題(TSP)が有効に機能しました。また、生成部分ではGPTよりClaude3の明確な有効性を確認できました。

できたもの

Arxivの検索APIを使って検索拡張生成(RAG)したらサーベイを自動生成できた

やっていること

  • Arxivの検索ワードをGPT-4-Turboで生成
  • ArxivのAPIを叩いてヒューリスティックでフィルタリング
  • OpenAIのEmbedding APIを叩く
  • Embeddingに対して巡回セールスマン問題(TSP)を解いてソートをかける
  • 論文の要旨をGPT-3.5-Turboで要約
  • ソートした要約結果をClaude3 Sonnetで統合

個々の手法について見ていく。

評価指標

RAGにおける黄金の評価指標を定義するのは難しい。しかし、サーベイというタスクに限れば、タスク固有の評価指標を定義することは可能である。

サーベイとは、与えられた検索結果から、より多くの論文について記述できればよいので、最終回答内に現れたユニークな論文の数を評価指標として扱うことができる

また、論文リンクを含んで生成する場合は(実用上はリンクを含んだほうが使いやすいはず)、リンクの正確性なども評価指標となり得るが、ほぼあっていたので今回は無視することにした。

論文数のカウント程度だったら、GPT-4-Turboに以下のプロンプトを与えることで評価できる。ただ、カウントがよく間違うので、リストアップした上で答えさせるのようなCoT的なアプローチを入れたほうが良い。

ユーザーの投稿に、ユニークな論文の名称・略称がいくつあるか数えてください。リストアップした上で数えて

検索ワード生成

GPT-4-TurboのJSONモードを使い、検索ワードを生成させる。「Arxiv検索で」と明示させればそれっぽいものは作ってくれる。

import openai
import json

def create_serach_words(user_question: str):
    client = openai.OpenAI()
    response = client.chat.completions.create(
        model="gpt-4-turbo",
        messages=[
            {"role": "system", "content": """ユーザーの質問に対して、論文を検索するためのArxivの検索ワードを3個パターンしてください。
出力はJSON形式で、search_wordsをキーとして、値はリスト形式で出してください。"""},
            {"role": "user", "content": user_question},
        ],
        temperature=0,
        response_format={ "type": "json_object" },
        max_tokens=512)
    search_words = json.loads(response.choices[0].message.content)["search_words"]
    return search_words

if __name__ == "__main__":
    question = "画像生成のLoRA周りの技術トレンドを網羅的に知りたいです"
    words = create_serach_words(question)
    print(words)
    # ['LoRA image generation', 'Low-Rank Adaptation image synthesis', 'LoRA GAN']

ちなみに「Arxivの検索ワード」と指定しないただの「検索ワード」だと微妙に違った結果になる。

[‘LoRA image generation’, ‘Low Rank Adaptation in image synthesis’, ‘LoRA technology trends in visual generation’]

GPT-4の内部で「Arxivの検索ワードとはこのようなものだ」という知識はあるようだ。

ArxivのAPIを叩いてヒューリスティックでフィルタリング

Arxivの検索APIは癖がある。Web検索の結果と、APIの検索の結果が大きく異なるためだ。

Webの場合

例えば、検索ワードが「LoRA image generation」とする。ArxivのWebの場合は、3件出てくる。

APIの場合

arxivのライブラリを使うとAPIのPythonラッパーが利用できる。以下のように検索してみる

import arxiv

def query_arxiv(search_word):
    arxiv_client = arxiv.Client()
    response = arxiv_client.results(
        search=arxiv.Search(
            query=search_word,
            max_results=100,
        )
    )
    cnt = 0
    for item in response:
        print(item.title)
        cnt += 1
    print(f"Found {cnt} papars")

if __name__ == "__main__":
    query_arxiv("LoRA image generation")
:  :  :  :
Sparse Low-rank Adaptation of Pre-trained Language Models
Accurate LoRA-Finetuning Quantization of LLMs via Information Retention
Shake to Leak: Fine-tuning Diffusion Models Can Amplify the Generative Privacy Risk
InstantID: Zero-shot Identity-Preserving Generation in Seconds
Diversified in-domain synthesis with efficient fine-tuning for few-shot classification
Imaging the noncentrosymmetric structural organisation of tissue with Interferometric Second Harmonic Generation microscopy
Found 100 papars

このように100件きっちりとってくる。ちなみに完全一致にする(query_arxiv('"LoRA image generation"'))にすると1件もヒットしない。

検索の後処理

ここで気になるのは、Web画面は全ての検索結果に対して、タイトルに「LoRA, image, generation」の全ての単語を含んでいる点である。

APIの検索結果は、タイトルの3単語のうちいずれか1単語が含んでいればよかった。完全一致にすると3単語が連続して出現する必要があるので、ぐっと出現頻度が減ってしまう。したがって、「順不同ではあるが、3単語をすべて含んでいる」を、検索の後処理として実装する必要がある。

import arxiv

def query_arxiv(search_word):
    arxiv_client = arxiv.Client()
    response = arxiv_client.results(
        search=arxiv.Search(
            query=search_word,
            max_results=100,
        )
    )
    cnt = 0
    result = []
    words = [x.lower() for x in search_word.split(" ")]
    for item in response:
        # タイトルに検索ワードが全部存在したら
        title = item.title.lower()
        if all(word in title for word in words):
            print(item.title)
            result.append(item)
            cnt += 1
    print(f"Found {cnt} papars")

if __name__ == "__main__":
    query_arxiv("LoRA image generation")

実際にこのようにすると、3件のみ表示され、Webの結果と一致した

Multi-LoRA Composition for Image Generation
Block-wise LoRA: Revisiting Fine-grained LoRA for Effective Personalization and Stylization in Text-to-Image Generation
StyleAdapter: A Single-Pass LoRA-Free Model for Stylized Image Generation
Found 3 papars

この例ではタイトルのみだが、実際はタイトル+アブストラクトで検索している。この後処理により、トークン数を大幅に削減し、関連する論文をぐっと集めやすくなっている

検索の後処理の定性評価

この後処理を行わない(Arxivの検索のORだけ)場合どうなるだろうか? 後処理あり・なしで比較してみよう。

後処理なし

これは一見良さそうだが、以下のデメリットがある。

  • 一回あたりの消費トークン数が多すぎる
    • 消費トークン数は一発3~5万程度。いくら安いモデルを使ったとしてもさすがにコストが厳しい
  • 「画像生成についてのLoRA」を質問しているのに、LLMのLoRAが一定数含まれる。

全くフィルタリングしていないからコスパが悪いことがわかる。

### LoRAの基本的な応用

- **MuseumMaker [MuseumMaker]**は、LoRAを用いて連続的なスタイルカスタマイズを行う手法です。過去のスタイルを忘れずに新しいスタイルを取り込むことができます。
- **PAI-Diffusion [PAI-Diffusion]**は、中国語の文章からの画像生成を行うLoRAベースのフレームワークです。一般モデルとドメイン特化モデルを組み合わせて、コンテキストに適した画像生成を実現しています。
- **ParaDiffusion [Paragraph-to-Image Generation]**は、長文からの画像生成を行うLoRAベースの手法です。大規模言語モデルを利用して長文を符号化し、LoRAで画像生成モデルを微調整しています。

### LoRAと他の手法の組み合わせ

- **LaVi-Bridge [Bridging Different Language Models]**は、言語モデルと画像生成モデルを組み合わせるパイプラインで、LoRAを用いてモデル間の統合を実現しています。
- **DreamFusion [DreamFusion]**は、LoRAを用いて2D画像生成モデルから3Dモデルを生成する手法です。
- **Boosting3D [Boosting3D]**は、LoRAを用いて2D画像から3Dオブジェクトを生成する手法で、ビュー間の一貫性を向上させています。

### LoRAによる多様な制御

- **X-Dreamer [X-Dreamer]**は、カメラ情報とAttention-Mask AlignmentロスによってLoRAを用いた3D生成の品質を向上させています。
- **DreamSync [DreamSync]**は、LoRAを用いた反復的な微調整によって、生成画像の質と入力テキストとの整合性を高める手法です。
- **VersaT2I [VersaT2I]**は、LoRAを用いて画像の美的品質、幾何学的正確性、テキスト忠実度などを改善するフレームワークです。
- **ALR-GAN [ALR-GAN]**は、LoRAを用いてレイアウト構造を調整し、画像生成の品質を向上させるGANベースの手法です。
- **LTOS [LTOS]**は、LoRAを用いてテキストとオブジェクトを統合的に生成する手法で、レイアウト制御が可能です。

### LoRAによるスタイル制御

- **Magic Clothing [Magic Clothing]**は、LoRAを用いて指定された衣服を着用したキャラクターを生成する手法です。
- **StyleInject [StyleInject]**は、LoRAを用いて効率的にスタイル転移を行う手法で、テキスト整合性を維持しつつスタイル適応を実現しています。
- **StyleAdapter [StyleAdapter]**は、LoRA不要のスタイル適応手法で、プロンプトとスタイルの特徴を分離して処理することで品質を向上させています。
- **B-LoRA [Implicit Style-Content Separation]**は、LoRAを用いてスタイルとコンテンツの分離を暗に行う手法で、様々なスタイル操作タスクに適用できます。
- **Block-wise LoRA [Block-wise LoRA]**は、LoRAのブロック単位の微調整によってスタイルとIDの両方を制御する手法です。

### LoRAの複合化と統合

- **ZipLoRA [ZipLoRA]**は、スタイルLoRAとサブジェクトLoRAを効果的に統合して、任意のスタイルとサブジェクトの組み合わせを生成できるようにする手法です。
- **CLoRA [CLoRA]**は、複数のLoRAモデルを意味的に組み合わせて、複合的な画像生成を実現する手法です。
- **Multi-LoRA Composition [Multi-LoRA Composition]**は、複数のLoRAを組み合わせる際の課題を解決する手法で、デコーディング中心のアプローチを採用しています。
- **LoRA-Composer [LoRA-Composer]**は、複数のLoRAを統合して多様な概念のカスタマイズを実現するフレームワークです。
- **OMG [OMG]**は、LoRAを用いて複数の概念を統合的に生成する手法で、オクルージョンとIDの保持にも対応しています。

### LoRAによる動画生成

- **MotionDirector [MotionDirector]**は、LoRAを用いて動画中の動作をカスタマイズする手法で、外観と動作を分離して学習しています。
- **BIVDiff [BIVDiff]**は、画像生成モデルと動画生成モデルを組み合わせて、トレーニングフリーで動画生成を行う手法です。
- **Rerender A Video [Rerender A Video]**は、画像モデルから動画生成を行うゼロショット手法で、時間的な一貫性を保ちつつスタイル転移ができます。
- **ModelScopeT2V [ModelScope Text-to-Video]**は、画像生成モデルに時空間ブロックを組み込んで動画生成を実現するモデルです。

### LoRAによる効率化とスケーリング

- **FLoRA [FLoRA]**は、LoRAを用いた大規模言語モデルの効率的なファインチューニングを実現するフレームワークです。
- **pFedLoRA [pFedLoRA]**は、LoRAを用いたモデル異種分散学習の手法で、統計的・システム的・モデル的な異種性に対応しています。
- **DP-LoRA [Differentially Private Low-Rank Adaptation]**は、LoRAを用いた連合学習における個人データのプライバシー保護手法です。
- **FFA-LoRA [Improving LoRA in Privacy-preserving Federated Learning]**は、LoRAの安定性と性能を改善する手法で、連合学習におけるデータ非均一性への対応が可能です。
- **FLoRA [Batched Low-Rank Adaptation]**は、LoRAの効率化を目指す手法で、バッチ処理によってタスク間の切り替えコストを削減しています。
- **CaraServe [CaraServe]**は、LoRAの高速化を目的としたシステムで、CPUとGPUの協調によってコールドスタートの遅延を解消しています。
- **Punica [Punica]**は、GPUクラスタ上でのLoRAサービングを効率化するシステムで、GPUメモリ使用量を削減しています。

### LoRAの理論的解析

- **Exploring the Limits [Exploring the impact of low-rank adaptation]**は、LoRAを用いた強化学習の性能、効率性、正則化への影響を分析した研究です。
- **The Expressive Power [The Expressive Power of Low-Rank Adaptation]**は、LoRAの表現力の理論的解析を行った研究で、完全連結ニューラルネットワークとTransformerネットワークにおけるLoRAの適用条件を明らかにしています。
- **LoRA Training in the NTK Regime [LoRA Training in the NTK Regime]**は、LoRA微調整におけるNTKレジームでの理論分析を行い、LoRAの階数が一定以上であれば局所的最小値を回避できることを示しています。

### LoRAの発展的手法

- **LoTR [LoTR]**は、LoRAをテンソル分解に基づく手法に拡張したものです。パラメータ効率が高く、特に深いモデルに適しています。
- **Tied-LoRA [Tied-Lora]**は、LoRAのパラメータ効率を重み共有によって改善する手法です。
- **LoRA-drop [LoRA-drop]**は、LoRAのパラメータを出力に基づいて間引く手法で、リソース消費を削減できます。
- **LoRA-FA [LoRA-FA]**は、LoRAの活性化メモリ使用量を削減する手法で、パラメータ更新をロー
ランク空間に制限することで実現しています。
- **LISA [LISA]**は、LoRAよりも少ないメモリ使用量で大規模言語モデルの微調整を行う手法です。
- **L4Q [L4Q]**は、LoRAを用いた量子化対応の手法で、高精度と計算効率の両立を実現しています。
- **LoftQ [LoftQ]**は、LoRAと量子化を同時に行うフレームワークで、特に低ビット精度での性能向上を目指しています。
- **IR-QLoRA [Accurate LoRA-Finetuning Quantization]**は、LoRA微調整時の量子化手法で、情報保持に着目して精度向上を図っています。

### LoRAの応用分野

- **Optimizing and Fine-tuning [Optimizing and Fine-tuning Large Language Model]**は、LoRAを用いた都市再生タスクへの大規模言語モデルの適用を検討した研究です。
- **JMedLoRA [JMedLoRA]**は、LoRAを用いて日本語の大規模言語モデルを医療分野に適用する手法です。
- **ControlPE [To be or not to be?]**は、LoRAを用いてプロンプトの影響度を連続的に制御する手法です。
- **Temp-Lora [With Greater Text Comes Greater Necessity]**は、LoRAを用いて長文生成の品質を向上させる手法です。
- **LoRA-Flow [LoRA-Flow]**は、LoRAの動的な統合によって生成タスクの性能を向上させる手法です。
- **LoraHub [LoraHub]**は、LoRAの動的な組み合わせによってタスク間の汎化を実現するフレームワークです。
- **LLM-MARS [LLM-MARS]**は、LoRAを用いて大規模言語モデルをロボットシステムに適用する手法です。

このように、LoRA(Low-Rank Adaptation)は画像生成の様々な側面で活用されており、モデルの効率化、スタイル制御、複合化、動画生成、理論解析、発展手法、さらには様々な応用分野で重要な役割を果たしています。LoRAに関する研究は活発に行われており、今後もさらなる発展が期待されます。

後処理あり

後処理ありのケースは以下のようになる。後処理を入れたほうが、明確に画像処理のLoRAのみを抜いている

また、消費トークン数も大幅に改善し、1発あたり4000~7000トークンと、後処理なしの1/8程度になっている。これなら軽めのモデルを使えばまだどうにかなる分量である。

画像生成におけるLoRA(Low-Rank Adaptation)の技術トレンドについて、検索結果から以下のようにまとめられます。

### LoRAの概要と基本的な応用

- LoRAは、大規模な事前学習済みモデルをファインチューニングする際の効率的な手法として注目されています。LoRAは、モデルの一部の重みのみを更新することで、パラメータ数を大幅に削減できます。[Learning Low-Rank Latent Spaces with Simple Deterministic Autoencoder: Theoretical and Empirical Insights](http://arxiv.org/abs/2310.16194v1)

- LoRAは、Stable Diffusionなどの画像生成モデルにおいて、スタイル転移やパーソナライズされた画像生成を実現するために広く利用されています。[MuseumMaker: Continual Style Customization without Catastrophic Forgetting](http://arxiv.org/abs/2404.16612v1)、[Text Semantics to Image Generation: A method of building facades design base on Stable Diffusion model](http://arxiv.org/abs/2303.12755v3)

### LoRAの高度な応用

- **マルチコンセプト生成**: 複数のコンセプトを1枚の画像に組み合わせる手法が提案されています。コンセプト間の干渉を抑え、ハーモニーのとれた画像生成を実現します。[OMG: Occlusion-friendly Personalized Multi-concept Generation in Diffusion Models](http://arxiv.org/abs/2403.10983v1)、[LoRA-Composer: Leveraging Low-Rank Adaptation for Multi-Concept Customization in Training-Free Diffusion Models](http://arxiv.org/abs/2403.11627v1)

- **スタイル分離**: LoRAを用いて、画像のスタイルとコンテンツを分離する手法が提案されています。これにより、スタイル操作やスタイル混合などの高度なスタイル編集が可能になります。[Implicit Style-Content Separation using B-LoRA](http://arxiv.org/abs/2403.14572v1)

- **解像度適応**: LoRAを用いて、任意の解像度の画像を生成できるようにする手法が提案されています。[ResAdapter: Domain Consistent Resolution Adapter for Diffusion Models](http://arxiv.org/abs/2403.02084v1)

- **アイデンティティ保持**: LoRAを用いて、入力画像のアイデンティティ(顔など)を保持しながら、様々なスタイルの画像を生成する手法が提案されています。[InstantID: Zero-shot Identity-Preserving Generation in Seconds](http://arxiv.org/abs/2401.07519v2)

- **言語モデル統合**: LoRAを用いて、異なる言語モデルと画像生成モデルを柔軟に統合する手法が提案されています。[Bridging Different Language Models and Generative Vision Models for Text-to-Image Generation](http://arxiv.org/abs/2403.07860v1)

### LoRAの理論的考察と改良

- LoRAの理論的解析や、LoRAの性能を向上させる手法が提案されています。[Concept Sliders: LoRA Adaptors for Precise Control in Diffusion Models](http://arxiv.org/abs/2311.12092v2)、[Block-wise LoRA: Revisiting Fine-grained LoRA for Effective Personalization and Stylization in Text-to-Image Generation](http://arxiv.org/abs/2403.07500v1)

- LoRAに代わる新しいファインチューニング手法も提案されています。[StyleInject: Parameter Efficient Tuning of Text-to-Image Diffusion Models](http://arxiv.org/abs/2401.13942v1)、[StyleAdapter: A Single-Pass LoRA-Free Model for Stylized Image Generation](http://arxiv.org/abs/2309.01770v1)

このように、LoRAは画像生成の分野で幅広く応用されており、マルチコンセプト生成、スタイル編集、解像度適応、アイデンティティ保持など、様々な高度な機能を実現するための重要な技術となっています。理論的な解析と改良を通じて、LoRAの可能性は今後さらに広がっていくことが期待されます。

OpenAIのEmbedding APIを叩く

これはtext-embedding-3-largeを使用した。これはそれほど高くはない($0.13 / 1M tokensなので、1万トークン0.2円ぐらい)。

このEmbeddingは、次の巡回セールスマン(TSP)の利用で使う。

Embeddingに対して巡回セールスマン問題(TSP)を解いてソートをかける

TSPとは

ここが大きな工夫点で、サーベイというタスクは、似たようなテーマの論文をまとめてその類似性や違いを議論するというものである。したがって、ただ日付ソートの検索結果を与えるよりも、テーマ内での近しい内容同士が数珠つなぎで並べ替えた上で与えられたほうが良い

これは巡回セールスマン問題(TSP)と相性が良い。

巡回セールスマン問題のWikipediaより

TSPとはこのように、複数の点に対して、1回ずつ通り距離を最小化するような経路を求めるアルゴリズムである。図の例では、2次元だが、python_tspのライブラリでは距離行列が与えられていれば良いので、実質何次元でもいける。

また、巡回セールスマン問題は機械学習の文脈からも応用されていて、最適輸送の延長線としていくつか面白い例がある。詳細は以下の記事に紹介されているが、カラーパレット生成や、Word Embedding、音楽のプレイリストの生成などの応用があるようだ。

巡回セールスマン問題(TSP)の面白いと思った応用3例(色・単語・音楽)

RAGにおけるTSP

RAGの文脈に戻ると、よくあるセマンティックサーチでは、質問文のようなクエリに対してコサイン類似度でソートするということを行うが、サーベイとは質問に対して答えるのではなく、検索結果の内容をまとめるというタスクなので、質問に依存しないソートのほうが好ましい。

K-Meansのような通常のクラスタリングや、HDBSCANのような階層クラスタリングも試したが、ハイパラの調整周りが沼であまり良くなかった。

TSPの他には、他にはsklearnのkNNで近いノードを逐次取っていくのもよかった。しかし、sklearn自体が重く、Lambdaのレイヤーサイズに乗っけるのが大変なので、TSP(python_tsp)で行った。

実装

ただ、TSPはDynamic Programming(DP)で計算すると計算コストが重く、点(論文)の数が増えるにしたがって計算時間が膨大になってしまう。厳密解を求める必要はないので、計算時間が軽いものを使う。ここはライブラリのドキュメントを見ながらTSPのソルバーを選択する。

from python_tsp.heuristics import solve_tsp_simulated_annealing

# Embeddingで近くに並ぶようにTSPのソートをかける
def solve_tsp(data: np.ndarray):
    x1 = data[:, None, :] # (N, 1, D)
    x2 = data[None, :, :] # (1, N, D)
    distance_matrix = np.linalg.norm(x1 - x2, axis=-1) # (N, N)
    permutation, distance = solve_tsp_simulated_annealing(distance_matrix)
    return np.array(permutation)

定量評価

TSPの有無で、同一質問に対する、生成結果内の論文のユニークな個数を確認する。

Question ソート類 Run 1 Run 2 Run 3 Mean
Q1 TSP 42 32 36 36.7
Q2 TSP 28 39 10 25.7
Q1 Sematic 17 17 21 18.3
Q2 Sematic 14 19 12 15.0
Q1 なし 24 29 28 27.0
Q2 なし 14 18 29 20.3

Questionは、

  • Q1 : “画像生成のLoRA周りの技術トレンドを網羅的に知りたいです”
  • Q2 : “3次元復元の研究について教えて”

各条件3回行い、平均を計算した。

いずれも、TSPのほうが再現される論文の件数が多かった。(Q1のTSPはあたりを引きすぎているような気はする)

定性評価

ソートの有無や手法でわかりやすく差が出る。Q1の場合の比較例を示す。

  • TSPあり:かなり体系的にまとめられている。本来期待していたサーベイはこのようなもの
  • Semantic:悪くはないが、TSPよりかは物足りない
  • なにもなし:再現される件数は多いが、雑に並べただけなので、体系的なサーベイではない

この体系性というのが、TSPによる経路最適化によって保証されていると考えられる。

★TSPあり

画像生成におけるLoRA(Low-Rank Adaptation)の技術トレンドについて、検索結果から以下のようにまとめられます。

### LoRAの基本的な応用

- **MuseumMaker [MuseumMaker]** (http://arxiv.org/abs/2404.16612v1) は、LoRAを用いて画風の継続的なカスタマイズを実現する手法です。過去の画風を忘れずに新しい画風を取り入れられます。
- **LoRA-Composer [LoRA-Composer]** (http://arxiv.org/abs/2403.11627v1) は、複数のLoRAを組み合わせて多様な概念の画像生成を可能にするフレームワークです。
- **CLoRA [CLoRA]** (http://arxiv.org/abs/2403.19776v1) は、複数のLoRAモデルを効果的に融合する手法で、各概念を正確に反映した画像生成が可能です。

### LoRAを用いた高度な画像生成

- **DiffMorpher [DiffMorpher]** (http://arxiv.org/abs/2312.07409v1) は、LoRAを用いて2つの画像間の滑らかな補間(モーフィング)を実現します。
- **MotionDirector [MotionDirector]** (http://arxiv.org/abs/2310.08465v1) は、LoRAを使って動画生成モデルにおける動作のカスタマイズを可能にします。
- **DragTex [DragTex]** (http://arxiv.org/abs/2403.02217v1) は、LoRAを用いて3Dメッシュ上のテクスチャを直感的に編集できる手法です。
- **Boosting3D [Boosting3D]** (http://arxiv.org/abs/2311.13617v1) は、LoRAとNeRFを組み合わせて高品質な単一画像から3Dモデル生成を実現します。
- **X-Dreamer [X-Dreamer]** (http://arxiv.org/abs/2312.00085v2) は、LoRAを用いてテキストから高品質な3Dコンテンツを生成する手法です。

### LoRAを用いた制御性・忠実性の向上

- **Concept Sliders [Concept Sliders]** (http://arxiv.org/abs/2311.12092v2) は、LoRAを使って画像生成における特定の属性を連続的に制御できるスライダーを提案しています。
- **DreamSync [DreamSync]** (http://arxiv.org/abs/2311.17946v1) は、LoRAを含むT2Iモデルの入力テキストへの忠実性を向上させるアルゴリズムです。
- **ID-Aligner [ID-Aligner]** (http://arxiv.org/abs/2404.15449v1) は、LoRAを用いた個人の同一性を保持した画像生成の品質向上を目指すフレームワークです。
- **InstantID [InstantID]** (http://arxiv.org/abs/2401.07519v2) は、単一の顔画像からLoRAを用いてゼロショットで個人の同一性を保持した画像生成を高速に行う手法です。

### LoRAの高速化・効率化

- **LCM-LoRA [LCM-LoRA]** (http://arxiv.org/abs/2311.05556v1) は、LoRAの適用によりStable Diffusionモデルの高速化を図るモジュールです。
- **SDXL-Lightning [SDXL-Lightning]** (http://arxiv.org/abs/2402.13929v3) は、SDXLモデルの知識蒸留によりLoRAベースの高品質・高解像度画像生成を実現します。
- **YOSO [YOSO]** (http://arxiv.org/abs/2403.12931v2) は、LoRAを含むディフュージョンモデルの1ステップ高品質画像生成を可能にする手法です。
- **CaraServe [CaraServe]** (http://arxiv.org/abs/2401.11240v1) は、複数のLoRAアダプターを効率的に提供するためのシステムです。

### LoRAの理論的考察と一般化

- **LoRAE [LoRAE]** (http://arxiv.org/abs/2310.16194v1) は、低ランク正則化を用いた新しい自己符号化手法で、低次元潜在空間の学習を可能にします。
- **ZipLoRA [ZipLoRA]** (http://arxiv.org/abs/2311.13600v1) は、スタイルLoRAとサブジェクトLoRAを効果的に統合し、任意のスタイル・サブジェクトの組み合わせでの生成を実現します。
- **Block-wise LoRA [Block-wise LoRA]** (http://arxiv.org/abs/2403.07500v1) は、ブロック単位でLoRAを適用することで、個人化とスタイル化を改善する手法です。
- **B-LoRA [B-LoRA]** (http://arxiv.org/abs/2403.14572v1) は、LoRAを用いて画像からスタイルとコンテンツを暗黙的に分離する手法です。
- **StyleAdapter [StyleAdapter]** (http://arxiv.org/abs/2309.01770v1) は、LoRAを使わずに様々なスタイルの画像生成を1つのモデルで実現する手法です。
- **StyleInject [StyleInject]** (http://arxiv.org/abs/2401.13942v1) は、パラメータ効率的にテキスト・画像モデルをスタイル転移させる特化した微調整手法です。

このように、LoRAは画像生成の様々な側面で活用されており、継続的なカスタマイズ、複数概念の融合、高度な生成タスク、制御性・忠実性の向上、高速化・効率化、理論的な一般化など、幅広い研究がなされています。LoRAを中心とした技術は、テキストから高品質な画像を柔軟に生成するための重要な手段となっています。



★Semantic
画像生成におけるLoRA(Low-Rank Adaptation)に関する最新の技術トレンドを以下にまとめました。

### LoRAの基本的な応用

- **LoRAによる効率的な微調整**
  - LoRAは大規模な事前学習済みモデルを効率的に微調整するための手法です。[StyleInject](http://arxiv.org/abs/2401.13942v1)、[LoRA-Composer](http://arxiv.org/abs/2403.11627v1)などの研究で、LoRAを用いてテキストから画像を生成するモデルの微調整が行われています。
  - [DiffuseKronA](http://arxiv.org/abs/2402.17412v2)は、LoRAを用いた新しい微調整手法で、パラメータ数を大幅に削減しながら生成画像の品質を向上させています。

- **複数のLoRAの融合**
  - [CLoRA](http://arxiv.org/abs/2403.19776v1)は、複数のLoRAモデルを組み合わせて画像生成を行う手法です。
  - [ZipLoRA](http://arxiv.org/abs/2311.13600v1)は、スタイルLoRAとサブジェクトLoRAを効果的に融合し、任意のスタイルとサブジェクトの組み合わせで画像生成を可能にしています。
  - [Mixture of LoRA Experts (MoLE)](http://arxiv.org/abs/2404.13628v1)は、階層的な制御と分岐選択を利用して、複数のLoRAを柔軟に組み合わせる手法を提案しています。

### LoRAの高度な応用

- **LoRAによる画像編集・操作**
  - [Concept Sliders](http://arxiv.org/abs/2311.12092v2)は、LoRAを用いて画像生成における特定の属性を連続的に制御する手法です。
  - [DiffMorpher](http://arxiv.org/abs/2312.07409v1)は、LoRAを用いて2つの画像間の滑らかな補間(モーフィング)を実現しています。
  - [DragTex](http://arxiv.org/abs/2403.02217v1)は、LoRAを用いて3Dメッシュのテクスチャを編集する手法を提案しています。

- **LoRAによる個人化・スタイル化**
  - [OMG](http://arxiv.org/abs/2403.10983v1)は、LoRAを用いて複数の概念を1つの画像に統合する個人化生成フレームワークです。
  - [Block-wise LoRA](http://arxiv.org/abs/2403.07500v1)は、ブロック単位でLoRAを微調整することで、個人化とスタイル化を改善しています。
  - [CAT (Contrastive Adapter Training)](http://arxiv.org/abs/2404.07554v1)は、LoRAの学習時にベースモデルの知識を保持することで、個人化生成における多様性を維持しています。

- **LoRAと他のモダリティの統合**
  - [LaVi-Bridge](http://arxiv.org/abs/2403.07860v1)は、LoRAとアダプターを用いて、様々な言語モデルと生成モデルを統合するパイプラインを提案しています。
  - [X-Dreamer](http://arxiv.org/abs/2312.00085v2)は、LoRAを用いてテキストから3Dコンテンツを生成する手法を提案しています。
  - [SSDiff](http://arxiv.org/abs/2404.11537v1)は、LoRAを用いたリモートセンシングのパンシャープニングモデルです。

- **LoRAの理論的考察**
  - [Learning Low-Rank Latent Spaces with Simple Deterministic Autoencoder](http://arxiv.org/abs/2310.16194v1)は、LoRAの理論的裏付けと低ランク潜在空間の学習について議論しています。
  - [DataInf](http://arxiv.org/abs/2310.00902v3)は、LoRAで微調整されたモデルにおけるデータの影響を効率的に推定する手法を提案しています。

このように、LoRAは画像生成における効率的な微調整、複数モデルの融合、画像編集・操作、個人化・スタイル化、他のモダリティとの統合など、幅広い分野で活用されています。理論的な裏付けと実装の両面から、LoRAに関する研究が活発に行われています。



★なにもなし(失敗例)
画像生成におけるLoRA (Low-Rank Adaptation) 関連の最新技術トレンドを、検索結果から網羅的にまとめました。

### LoRAによる効率的な学習と適用
LoRAは、大規模な事前学習済みモデルを効率的に微調整するための手法として広く利用されています。以下のような応用例があります。

- **MuseumMaker [MuseumMaker]**( http://arxiv.org/abs/2404.16612v1 ): LoRAを用いて、画風の継続的なカスタマイズを可能にする手法。過去の画風の知識を保持しながら、新しい画風を追加できます。
- **ID-Aligner [ID-Aligner]**( http://arxiv.org/abs/2404.15449v1 ): LoRAを用いて、テキストから人物画像を生成する際の同一性保持と美的品質を向上させる手法。
- **CAT [CAT]**( http://arxiv.org/abs/2404.07554v1 ): LoRAの訓練時に多様性が失われる問題を改善するための、対照的アダプタ訓練手法。
- **CLoRA [CLoRA]**( http://arxiv.org/abs/2403.19776v1 ): 複数のLoRAモデルを組み合わせて、複合的な画像生成を実現する手法。
- **DisenDiff [Attention Calibration for Disentangled Text-to-Image Personalization]**( http://arxiv.org/abs/2403.18551v2 ): LoRAと組み合わせて、テキストから複数の新規コンセプトを取り入れた画像生成を実現する手法。
- **B-LoRA [Implicit Style-Content Separation using B-LoRA]**( http://arxiv.org/abs/2403.14572v1 ): LoRAを用いて、画像の構造と質感を分離し、様々なスタイル化タスクに対応する手法。
- **LoRA-Composer [LoRA-Composer]**( http://arxiv.org/abs/2403.11627v1 ): 複数のコンセプトを組み合わせた画像生成を、追加学習なしで実現するLoRAベースの手法。
- **OMG [OMG]**( http://arxiv.org/abs/2403.10983v1 ): LoRAを用いて、テキストから複数のコンセプトを組み合わせた人物画像生成を実現する手法。
- **LaVi-Bridge [Bridging Different Language Models and Generative Vision Models for Text-to-Image Generation]**( http://arxiv.org/abs/2403.07860v1 ): 言語モデルと画像生成モデルを組み合わせて、テキスト生成能力を向上させる手法。LoRAを用いて柔軟に組み合わせが可能。
- **Block-wise LoRA [Block-wise LoRA]**( http://arxiv.org/abs/2403.07500v1 ): テキストから個人化・スタイル化された画像生成を実現するため、LoRAを用いてモデルの各ブロックを微調整する手法。
- **DragTex [DragTex]**( http://arxiv.org/abs/2403.02217v1 ): LoRAを用いて、3Dメッシュ上のテクスチャを直感的に編集できるようにする手法。
- **ResAdapter [ResAdapter]**( http://arxiv.org/abs/2403.02084v1 ): 任意の解像度の画像生成が可能なように、LoRAを用いてディフュージョンモデルを解像度に適応させる手法。
- **DiffuseKronA [DiffuseKronA]**( http://arxiv.org/abs/2402.17412v2 ): 個人化された画像生成を実現するための、LoRAベースの効率的な微調整手法。
- **StyleInject [StyleInject]**( http://arxiv.org/abs/2401.13942v1 ): 様々なスタイルに対応できるよう、LoRAを用いてテキスト生成モデルを効率的に微調整する手法。
- **InstantID [InstantID]**( http://arxiv.org/abs/2401.07519v2 ): 1枚の顔画像からゼロショットで個人化された画像生成を実現する、LoRAベースの手法。
- **DiffMorpher [DiffMorpher]**( http://arxiv.org/abs/2312.07409v1 ): LoRAを用いて、2つの画像間の滑らかな補間を実現するディフュージョンモデルベースの手法。
- **DISEF [Diversified in-domain synthesis with efficient fine-tuning for few-shot classification]**( http://arxiv.org/abs/2312.03046v2 ): 少数サンプルの分類を改善するため、LoRAを用いて効率的にテキスト生成モデルを微調整する手法。
- **2LoRA [Non-Visible Light Data Synthesis and Application: A Case Study for Synthetic Aperture Radar Imagery]**( http://arxiv.org/abs/2311.17486v1 ): 合成開口レーダー画像生成のため、2段階のLoRA微調整手法。
- **Boosting3D [Boosting3D]**( http://arxiv.org/abs/2311.13617v1 ): 単一画像から3Dモデルを生成する際の視点一貫性を改善するため、LoRAとNeRFを組み合わせた手法。
- **Concept Sliders [Concept Sliders]**( http://arxiv.org/abs/2311.12092v2 ): LoRAを用いて、画像生成時の特定の属性を連続的に制御できるようにする手法。
- **LCM-LoRA [LCM-LoRA]**( http://arxiv.org/abs/2311.05556v1 ): LoRA知識蒸留を用いて、大規模ディフュージョンモデルの高速化を実現する手法。
- **LoRAE [Learning Low-Rank Latent Spaces with Simple Deterministic Autoencoder: Theoretical and Empirical Insights]**( http://arxiv.org/abs/2310.16194v1 ): 低ランク正則化を用いて、低次元の潜在空間を学習するオートエンコーダ手法。
- **MotionDirector [MotionDirector]**( http://arxiv.org/abs/2310.08465v1 ): LoRAを用いて、テキストから動画の動きをカスタマイズする手法。
- **EasyPhoto [EasyPhoto]**( http://arxiv.org/abs/2310.04672v1 ): LoRAを用いて、特定の人物の AI 肖像画を生成する WebUI プラグイン。
- **PAI-Diffusion [PAI-Diffusion]**( http://arxiv.org/abs/2309.05534v1 ): LoRAとControlNetを組み合わせて、中国語のテキストから適切な画像を生成するフレームワーク。
- **StyleAdapter [StyleAdapter]**( http://arxiv.org/abs/2309.01770v1 ): LoRAを使わずに、様々なスタイルの画像を1パスで生成できる手法。
- **E$^{2}$GAN [E$^{2}$GAN]**( http://arxiv.org/abs/2401.06127v1 ): LoRAを用いて、画像編集用のGANモデルを効率的に学習する手法。
- **I LoRA [Generative Models: What do they know? Do they know things? Let's find out!]**( http://arxiv.org/abs/2311.17137v1 ): LoRAを用いて、生成モデルから直接シーンの内在的なマップを抽出する手法。
- **DragDiffusion [DragDiffusion]**( http://arxiv.org/abs/2306.14435v6 ): LoRA微調整を組み合わせて、ディフュージョンモデルによる対話的な点ベースの画像編集を実現する手法。

### LoRAの課題と発展

LoRAは画像生成分野で広く利用されていますが、以下のような課題と発展の方向性も示されています。

- 複数のコンセプトやスタイルを組み合わせる際の、コンセプト間の干渉や不適切な融合の問題。
- 特定の属性を連続的に制御する手法の開発。
- 動画生成や3Dモデル生成への応用。
- 中国語などの言語への対応強化。
- 解像度の自由度向上や、任意の画像編集への対応。
- 理論的な裏付けと、より効率的な学習手法の開発。
- LoRA以外の効率的な微調整手法との組み合わせ。

今後もLoRAを中心に、画像生成の高品質化、多様化、効率化に向けた技術開発が進むことが期待されます。

論文の要旨をGPT-3.5-Turboで要約

主にトークン数対策。RAGのときは、Arxivのタイトルとアブストラクトを渡すが、そのままだとトークン数が多くなりすぎるので要約する。RAGで使うLLMは高めなのに対し、要約で使うGPT-3.5は安いので、ここでトークン数を削ったほうが安くなるためだ。

ただ、要約の仕方にコツがある。

普通の要約

GPT-3.5に以下のシステムプロンプトを与える。

The user provides the Title and Abstract of the paper.
Please give a short summary.

ユーザーの入力は以下のようにする。ここではViTの論文を例にとる。

Title: An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale
Abstract: While the Transformer architecture has become the de-facto standard for natural language processing tasks, its applications to computer vision remain limited. In vision, attention is either applied in conjunction with convolutional networks, or used to replace certain components of convolutional networks while keeping their overall structure in place. We show that this reliance on CNNs is not necessary and a pure transformer applied directly to sequences of image patches can perform very well on image classification tasks. When pre-trained on large amounts of data and transferred to multiple mid-sized or small image recognition benchmarks (ImageNet, CIFAR-100, VTAB, etc.), Vision Transformer (ViT) attains excellent results compared to state-of-the-art convolutional networks while requiring substantially fewer computational resources to train.

結果は以下のようになる。

This paper introduces the Vision Transformer (ViT) model, which applies the Transformer architecture directly to sequences of image patches for image recognition tasks. The ViT model demonstrates strong performance on various image classification benchmarks such as ImageNet and CIFAR-100, outperforming traditional convolutional neural networks while requiring fewer computational resources. The study highlights the potential of Transformers in computer vision tasks and challenges the reliance on convolutional networks for image recognition.

要約をoogle翻訳にかけると以下の通り。悪くはないが、そのまま過ぎる。

このペーパーでは、画像認識タスクの画像パッチのシーケンスに Transformer アーキテクチャを直接適用する Vision Transformer (ViT) モデルを紹介します。 ViT モデルは、ImageNet や CIFAR-100 などのさまざまな画像分類ベンチマークで強力なパフォーマンスを示し、必要な計算リソースを削減しながら、従来の畳み込みニューラル ネットワークを上回るパフォーマンスを示します。この研究は、コンピュータ ビジョン タスクにおける Transformers の可能性を強調し、画像認識における畳み込みネットワークへの依存に疑問を投げかけています。

プロンプトにドメイン知識を導入

論文の読み方のドメイン知識を追加する。論文を読む際に特に重要なのは、「この論文が解きたい問題はなにか」「この論文はそれをどう解決したのか」という2点が経験的にわかっているので、それをプロンプトにいれる。

The user provides the Title and Abstract of the paper.
Please give a short summary. However, please clearly describe the problem and method that the paper is trying to solve.

結果は以下のように変わる。

This paper introduces the Vision Transformer (ViT) model, which applies the Transformer architecture directly to sequences of image patches for image recognition tasks. The traditional approach in computer vision combines attention mechanisms with convolutional neural networks (CNNs), but this paper demonstrates that using a pure transformer for image classification can achieve excellent results without relying on CNNs. By pre-training the ViT model on large datasets and transferring it to various image recognition benchmarks, the ViT model outperforms state-of-the-art CNNs while requiring fewer computational resources for training.

このペーパーでは、画像認識タスクの画像パッチのシーケンスに Transformer アーキテクチャを直接適用する Vision Transformer (ViT) モデルを紹介します。コンピューター ビジョンにおける従来のアプローチは、アテンション メカニズムと畳み込みニューラル ネットワーク (CNN) を組み合わせていますが、この論文では、画像分類に純粋なトランスフォーマーを使用すると、CNN に依存せずに優れた結果を達成できることを示しています。大規模なデータセットで ViT モデルを事前トレーニングし、それをさまざまな画像認識ベンチマークに転送することにより、ViT モデルは、トレーニングに必要な計算リソースを削減しながら、最先端の CNN を上回るパフォーマンスを実現します。

少しサーベイっぽい読み方になった。

30秒に読めるようにしてという指示を追加する

さらに、トークン数を削るために生成文を短縮する。「30秒で読めるようにして」という指示を追加し、生成結果を短くする。

The user provides the Title and Abstract of the paper.
Please give a short summary of this paper that can be read in 30 seconds. However, please clearly describe the problem and method that the paper is trying to solve.

This paper introduces the Vision Transformer (ViT) model, which applies the Transformer architecture directly to sequences of image patches for image recognition tasks. By pre-training on large datasets and transferring to various benchmarks, ViT achieves competitive results compared to convolutional networks while requiring less computational resources. The study demonstrates that pure transformers can perform well in computer vision tasks without the need for convolutional networks.

このペーパーでは、画像認識タスクの画像パッチのシーケンスに Transformer アーキテクチャを直接適用する Vision Transformer (ViT) モデルを紹介します。 ViT は、大規模なデータセットで事前トレーニングし、さまざまなベンチマークに転送することで、必要な計算リソースを削減しながら、畳み込みネットワークと比較して競争力のある結果を達成します。この研究は、畳み込みネットワークを必要とせずに、純粋なトランスフォーマーがコンピューター ビジョン タスクで適切に実行できることを示しています。

なぜ30秒かの定量評価

要約プロンプトを「30秒で読めるようにして」と「15秒で読めるようにして」で比べた例である。15秒にするとトークン数は減るものの、RAGの性能が明確に悪化する。この理由は、短くしすぎて他の論文とつなげる要素が薄くなってしまうからだろう。そのため30秒の指示にしている。

Question 秒数 Run 1 Run 2 Run 3 Mean
Q1 30s 42 32 36 36.7
Q2 30s 28 39 10 25.7
Q1 15s 26 15 28 23.0
Q2 15s 15 22 16 17.7

要約モデルをClaude3 Haikuに変えた場合

コスト的な観点だと、GPT-3.5-Turboよりも、Claude3 Haikuに変えたほうが良いのではないかというのも考えられる。比較してみたが、一長一短ありそうだ。自分はGPT-3.5で良いかなと思ったが、好きな方で良いだろう。

Question 要約モデル Run 1 Run 2 Run 3 Mean
Q1 GPT-3.5-Turbo 42 32 36 36.7
Q2 GPT-3.5-Turbo 28 39 10 25.7
Q1 Claude3 Haiku 34 39 30 34.3
Q2 Claude3 Haiku 22 5 23 16.7
  • GPT-3.5
    • メリット
      • 生成文章のスタイルが安定しているため、最終的な性能が上がりやすい
      • 同時呼び出し数が高めに設定されており、並列化して一気に叩いてもエラーにならない
    • デメリット
      • 同じような文章になってしまい、論文間の差が少し表現しづらくなる
      • そこまで支配的ではないが、コストはClaude3 Haikuより上
  • Claude3 Haiku
    • メリット
      • 安い
      • 体感的な話になってしまうが、Claude+Claudeの統合が相性が良く、最終的なRAGの生成結果で論文間の差が少しわかりやすいような気がする
    • デメリット
      • 生成される文章のスタイルが安定しない。物によっては箇条書きになるし、物によっては改行が挟まれる。スタイル不統一によるデメリットを考慮できていない
      • 同時呼び出し数を低めにしないとエラーになる。最終的に1回API呼び出すような利用では向いているが、長い文章を並列で叩いて要約するという使い方は向いていないのかもしれない。

ソートした要約結果をClaude3 Sonnetで統合

最後は要約結果をまとめて生成するだけである。ただ、この部分はGPT-4-TurboよりもClaude3のほうが優秀で、さらにClaude3 Sonnetが十分な性能を出したという興味深い点を示した。

定量評価

Claude3には、Sonnetの上にOpusというモデルがあるが、このタスクでは、OpusよりもSonnetのほうが良かった

Question モデル Run 1 Run 2 Run 3 Mean
Q1 Claude3 Sonnet 42 32 36 36.7
Q2 Claude3 Sonnet 28 39 10 25.7
Q1 Claude3 Opus 40 26 14 26.7
Q2 Claude3 Opus 13 10 26 16.3
Q1 GPT-4-Turbo 12 9 11 10.7
Q2 GPT-4-Turbo 11 9 11 10.3

RAGの生成の部分のモデルだけ変えてみると、Claude 3のSonnetが最もコンテクストから再現される論文数が多かった。

定性評価

Q2の例で比較してみる。上がSonnetで、下がOpusである。

  • Opusは出てくる個々の文章は優秀だが、あまりに体裁が良すぎて網羅性が低くなっている
  • Opusでリファレンスの位置がどこにくるかは安定しなくて、Sonnetのように文中にリンクを張ってくれることはそれほど多くはなかった
  • コスト的な点からもOpusを利用する価値はそれほどない(GPT-4より数倍も高い)。
★ claude-3-sonnet-20240229
3次元復元の研究は、コンピュータビジョンや計算機グラフィックスの分野で活発に行われており、様々な手法が提案されています。以下に主な研究トピックと手法をまとめました。

### ニューラル放射線場(NeRF)を用いた3次元復元

- [FlyNeRF](http://arxiv.org/abs/2404.12970v1): ドローンによる画像取得とNeRFを組み合わせた高品質な3次元復元システム
- [Instant-NGP](http://arxiv.org/abs/2211.11836v1): リアルタイムでの3次元復元を目指したNeRFベースの手法
- [ConRad](http://arxiv.org/abs/2311.05230v1): 単一画像からNeRFを用いて3次元物体を復元する手法

NeRFは、画像から3次元空間の放射輝度場を学習することで高品質な3次元復元を実現する手法です。NeRFベースの研究では、リアルタイム性や単一画像からの復元など、さまざまな課題に取り組んでいます。

### 拡散モデルを用いた3次元復元

- [DiffHuman](http://arxiv.org/abs/2404.00485v1): 単一画像から人体の3次元復元を確率的に行う手法
- [One-2-3-45](http://arxiv.org/abs/2306.16928v1): 単一画像から45秒で3次元メッシュを生成する手法
- [Anything-3D](http://arxiv.org/abs/2304.10261v1): 単一画像から様々な物体の3次元復元を行う手法

拡散モデルは、ノイズから徐々に画像を生成する過程を学習するモデルです。3次元復元の分野では、単一画像からの高品質な3次元復元や、様々な物体への対応を目指した研究が行われています。

### 多視点からの3次元復元

- [PlaneFormers](http://arxiv.org/abs/2208.04307v1): 視点の重複が少ない画像から平面を復元する手法
- [Neural 3D Scene Reconstruction](http://arxiv.org/abs/2306.17643v3): 3次元監視なしで複数画像から3次元シーンを復元する手法
- [MVD^2](http://arxiv.org/abs/2402.14253v1): 拡散モデルで生成された多視点画像から3次元形状を復元する手法

多視点からの3次元復元は、複数の画像から物体や環境の3次元形状を推定する手法です。最近では、トランスフォーマーや拡散モデルなどの手法が導入されています。

### 特殊な対象物の3次元復元

- [PAniC-3D](http://arxiv.org/abs/2303.14587v1): アニメキャラクターの肖像画から3次元頭部を復元する手法
- [MFNet](http://arxiv.org/abs/2308.07551v2): 顔の3次元復元の精度を向上させる手法
- [CONTHO](http://arxiv.org/abs/2404.04819v1): 人物と物体の接触情報を利用して3次元復元を行う手法

人体や顔、アニメキャラクターなど、特殊な対象物の3次元復元も研究されています。これらの手法では、対象物の特性を考慮した制約や事前知識を活用することが重要となります。

### その他の手法

- [3DGSR](http://arxiv.org/abs/2404.00409v1): 3次元ガウス分布を用いた高品質な3次元表面復元手法
- [OSTRA](http://arxiv.org/abs/2308.06974v1): 2次元セグメンテーションと3次元復元を統合したフレームワーク
- [OpenOcc](http://arxiv.org/abs/2403.11796v1): オープンボキャブラリを用いた3次元シーン理解と復元手法

上記以外にも、メッシュ復元、ボクセル表現、点群処理など、さまざまな手法が提案されています。3次元復元は幅広い分野で応用が期待されており、引き続き活発な研究が行われています。


★claude-3-opus-20240229
3次元復元の研究は、2次元の画像や動画から3次元の形状やシーンを再構築することを目的としています。近年、深層学習の発展により、様々な手法が提案されています。以下に、主要な研究トピックと手法をまとめます。

## 単一画像からの3次元復元
- AGG [1]は、単一画像から3次元ガウシアンを瞬時に生成する生成モデルを提案。最適化を必要とせず高速。
- TARS [2]は、単一画像から3次元形状と密な3次元対応関係を学習。トポロジーを考慮した暗黙的変形場を用いることで、形状のバリエーションに対応。
- ConRad [3]は、単一RGBから3次元物体を再構成。ニューラルラジアンス場を用い、入力画像の外観を明示的にキャプチャ。

## マルチビュー画像からの3次元復元
- FlyNeRF [4]は、ドローンで撮影した画像を用いてNeRFベースの3次元復元を行う。画像評価ネットワークで品質を評価し、追加の画像撮影を指示。
- UniSDF [5]は、反射のある複雑なシーンの3次元復元手法。ビューベースと反射ベースの色予測を組み合わせることで、反射面の再構成精度を向上。
- MonoNeuralFusion [6]は、単眼動画からオンラインで高精細な3次元シーン復元を行う。ニューラル暗黙的シーン表現と幾何学的事前知識を組み込むことで、動画のスキャン中に効率的に3次元形状を生成・最適化。

## 人物の3次元復元
- TIFu [7]は、単一のRGB画像からアニメーションキャラクターの頭部を高精細に再構成。ベクトルレベル表現とボリューメトリックレンダリングを用いて、複雑な髪の毛やアクセサリーの形状を表現。
- DiffHuman [8]は、単一画像から人物の3次元形状を確率的に再構成。条件付き拡散モデルを用いて、不確実な領域で詳細な3次元アバターを生成。
- HOLD [9]は、動画から手とオブジェクトのインタラクションを3次元復元。合成関節暗黙モデルにより、手とオブジェクトのポーズを分離して再構成。

## 3次元シーン理解
- Uni3DR^2 [10]は、大規模言語モデル(LLM)の3次元シーン理解を向上させるための統一シーン表現・復元フレームワーク。2次元モデルと3次元デコーダを用いて、3次元の幾何学的・意味的特徴を抽出。
- OpenOcc [11]は、オープンボキャブラリーの理解を3次元シーン復元と組み合わせる。占有表現でシーン形状をモデル化し、事前学習済みの言語モデルを3次元言語場に蒸留することで、ゼロショットのシーン理解を可能に。

## 3次元データセット
- 3D-COCO [12]は、MS-COCOデータセットを拡張し、3次元モデルと2次元-3次元のアライメントアノテーションを追加。3次元復元や物体検出のタスクを促進。
- MobileBrick [13]は、モバイルデバイスでの3次元物体復元のためのデータセット。LEGOモデルを用いて正確な3次元アノテーションを提供。

以上のように、3次元復元の研究は、単一画像やマルチビュー画像、人物、シーン理解など、様々な方向で進められています。深層学習の発展により、高精細かつ効率的な3次元復元が可能になりつつあります。一方で、大規模な3次元データセットの構築や、リアルタイムな復元など、まだ多くの課題が残されています。今後のさらなる発展が期待 されます。

## References
[1] AGG: Amortized Generative 3D Gaussians for Single Image to 3D, [http://arxiv.org/abs/2401.04099v1](http://arxiv.org/abs/2401.04099v1)
[2] Topologically-Aware Deformation Fields for Single-View 3D Reconstruction, [http://arxiv.org/abs/2205.06267v2](http://arxiv.org/abs/2205.06267v2)
[3] ConRad: Image Constrained Radiance Fields for 3D Generation from a Single Image, [http://arxiv.org/abs/2311.05230v1](http://arxiv.org/abs/2311.05230v1)
[4] FlyNeRF: NeRF-Based Aerial Mapping for High-Quality 3D Scene Reconstruction, [http://arxiv.org/abs/2404.12970v1](http://arxiv.org/abs/2404.12970v1)
[5] UniSDF: Unifying Neural Representations for High-Fidelity 3D Reconstruction of Complex Scenes with Reflections, [http://arxiv.org/abs/2312.13285v1](http://arxiv.org/abs/2312.13285v1)
[6] MonoNeuralFusion: Online Monocular Neural 3D Reconstruction with Geometric Priors, [http://arxiv.org/abs/2209.15153v1](http://arxiv.org/abs/2209.15153v1)
[7] TIFu: Tri-directional Implicit Function for High-Fidelity 3D Character Reconstruction, [http://arxiv.org/abs/2401.14565v1](http://arxiv.org/abs/2401.14565v1)
[8] DiffHuman: Probabilistic Photorealistic 3D Reconstruction of Humans, [http://arxiv.org/abs/2404.00485v1](http://arxiv.org/abs/2404.00485v1)
[9] HOLD: Category-agnostic 3D Reconstruction of Interacting Hands and Objects from Video, [http://arxiv.org/abs/2311.18448v1](http://arxiv.org/abs/2311.18448v1)
[10] Unified Scene Representation and Reconstruction for 3D Large Language Models, [http://arxiv.org/abs/2404.13044v1](http://arxiv.org/abs/2404.13044v1)
[11] OpenOcc: Open Vocabulary 3D Scene Reconstruction via Occupancy Representation, [http://arxiv.org/abs/2403.11796v1](http://arxiv.org/abs/2403.11796v1)
[12] 3D-COCO: extension of MS-COCO dataset for image detection and 3D reconstruction modules, [http://arxiv.org/abs/2404.05641v1](http://arxiv.org/abs/2404.05641v1)
[13] MobileBrick: Building LEGO for 3D Reconstruction on Mobile Devices, [http://arxiv.org/abs/2303.01932v2](http://arxiv.org/abs/2303.01932v2)

コスト

気になるコストを計算してみる。実は思ったより高くはない。

Q1の場合

タスク モデル In / 1M Out / 1M In token Out token Price
検索ワード生成 GPT-4-Turbo 10 30 34 194 0.0062
Embedding text-embedding-3-large 0.13 10046 0.0013
要約 GPT-3.5-Turbo 0.5 1.5 13164 4479 0.0133
生成 Claude3 Sonnet 3 15 7251 1340 0.0419
合計 0.0626

1ドル160円と計算しても、1回10円。

Q2の場合

タスク モデル In / 1M Out / 1M In token Out token Price
検索ワード生成 GPT-4-Turbo 10 30 30 185 0.0059
Embedding text-embedding-3-large 0.13 16761 0.0022
要約 GPT-3.5-Turbo 0.5 1.5 21935 7931 0.0229
生成 Claude3 Sonnet 3 15 11994 923 0.0498
合計 0.0807

1ドル160円と計算しても、1回13円。

正直この内容が10~15円で出てくるなら余裕で課金するレベル。

使用したモデル

モデルのバージョンなど

  • GPT-3.5-Turbo : gpt-3.5-turbo-0125
  • GPT-4-Turbo : gpt-4-turbo-2024-04-09
  • Claude3 Haiku : claude-3-haiku-20240307
  • Claude3 Sonnet : claude-3-sonnet-20240229
  • Claude3 Opus : claude-3-opus-20240229

最終的に作ったもの

  • Discord botにした
  • これをAPI Gateway+Lambdaにしてデプロイ。TerraformでDiscordと一緒に管理

うまくいくとこんな感じになる。これが1分ぐらいで出てくる。もうこれで自分がサーベイする必要ない。楽。



Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内

技術書コーナー

北海道の駅巡りコーナー


One Comment

Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です