common.title

Docs
Quantum Circuit
TYTAN CLOUD

QUANTUM GAMING


Desktop RAG

Overview
Terms of service

Privacy policy

Contact
Research

Sign in
Sign up
common.title

ZipLoRAを見てみる

Yuichiro Minato

2023/11/25 05:24

論文が、

ZipLoRA: Any Subject in Any Style by Effectively Merging LoRAs

Viraj Shah, Nataniel Ruiz, Forrester Cole, Erika Lu, Svetlana Lazebnik, Yuanzhen Li, Varun Jampani

https://arxiv.org/abs/2311.13600

プロジェクトページがこちら

https://ziplora.github.io/

実装がこちら

https://github.com/mkshing/ziplora-pytorch

「概念駆動型の個人用カスタマイズ向けに生成モデルを微調整するための方法は、通常、主題駆動型またはスタイル駆動型の生成に対して強力な結果を達成します。最近、パラメータ効率的な方法として、低ランク適応(LoRA)が提案され、概念駆動型のカスタマイズを実現する方法として提案されています。最近の研究では、個別のLoRAを組み合わせて学習されたスタイルと主題の共同生成を実現するために探求されていますが、既存の技術は問題を確実に解決しないため、主題の忠実度またはスタイルの忠実度がどちらか一方が犠牲になることがあります。私たちは、ZipLoRAという方法を提案します。これは、独立してトレーニングされたスタイルと主題のLoRAを安価で効果的に統合し、ユーザーが提供した主題をユーザーが提供したスタイルで生成することを可能にします。さまざまな主題とスタイルの組み合わせに関する実験では、ZipLoRAが主題とスタイルの忠実度においてベースラインと比較して有意義な改善をもたらしつつ、再コンテクスト化の能力を保持できることが示されています。」

どうやらコンテンツ内容向けのLoRAとスタイル向けのLoRAを合成できるようです。

個人用スタイリゼーション

「ZipLoRAは、さまざまなスタイルとコンテンツのLoRAを組み合わせることで、特定のオブジェクトのスタイリゼーションを生成できます。私たちの方法は、参照主題のアイデンティティを保持し、参照スタイルの固有の特徴を捉えることに成功しています。また、Direct Merge、Joint Training、およびStyleDropとの比較も提供しています。

次の3つの重要な観察に基づいています。

「1:以前のStable Diffusionのバージョンとは異なり、SDXLは人間のフィードバックなしで、DreamBoothプロトコルに従って単一の典型的な画像だけを使用してスタイルを学習できる能力を持っています。」

「2:すべてのレイヤーのLoRA重み行列は疎です。LoRA重み行列のほとんどの要素は非常に小さな振幅を持ち、生成品質と忠実度にほとんど影響を与えません。」

引用:https://ziplora.github.io/

「3:独立にトレーニングされた2つのLoRAの重み行列の列は、余弦類似度などで測定されるように、互いに異なるレベルの「整列」を持つことがあります。高い余弦類似度の列を直接合計すると、統合モデルの性能が低下することを発見しました。」

図3:引用:https://ziplora.github.io/

「これらの観察に基づいて、私たちは、オリジナルのLoRAの内容とスタイル生成特性を保持しながら、類似方向の合計量を減少させることを目的とした、ジッパーに似た方法が、より堅牢で高品質なマージを実現すると仮説を立てました。まるでジッパーが生地の2つの側面をシームレスに結合するように、私たちの提案した最適化ベースのアプローチは、2つのLoRAをブレンドするための分離セットのマージ係数を見つけます。これにより、マージされたLoRAは主題とスタイルの両方を巧みに捉えることが保証されます。」

図4:引用:https://ziplora.github.io/

以上はプロジェクトページからみましたが、もう少し具体的な手法を見たいので、論文も見てみます。

二つのLoRAを統合する際に最も簡単に思いつくのが二つの重みの線型結合で、その際に重みパラメータを導入しますが、このパラメータの探索がて探るになるときついので、そこをなんとか合理的に探そうということです。

先ほどのプロジェクトページでもみましたが、

「(1) LoRAの更新行列は疎です。異なるLoRAレイヤー用の更新行列∆Wは疎であることが観察され、つまり、∆Wのほとんどの要素の振幅が非常にゼロに近く、したがって微調整モデルの出力にほとんど影響を与えません。各レイヤーについて、要素をその振幅によってソートし、最も低い要素をあるパーセンタイルまでゼロにすることができます。図2に∆W m×n i の要素の分布を示し、すべてのレイヤーの重み更新行列∆Wの最も低い振幅の要素を80%および90%ゼロにした後の生成されたサンプルも示しています。90%の要素が捨てられても、モデルの性能に影響はありません。この観察は、∆Wのランクが設計上非常に小さいため、∆Wのほとんどの列に含まれる情報が冗長であるという事実に従っています。」

ということで、性能に影響する部分がかなり小さいということで、ほとんどの振幅は0にしても平気なようです。また、

「(2) 高度に整列したLoRA重みはマージがうまくいかない。独立にトレーニングされた2つのLoRAの重み行列の列には、分離されていない情報が含まれることがあり、つまり、それらの間のコサイン類似度がゼロでないことがあります。LoRA重みの列の整列の程度は、結果のマージの品質を決定する上で重要な役割を果たすことを観察します。コサイン類似度がゼロでない列を直接追加すると、個々の概念に関する情報の重ね合わせが生じ、マージされたモデルが入力概念を正確に合成する能力を失わせる結果となります。さらに、余弦類似度がゼロで、互いに直交している場合、情報の損失は回避されることを観察します。」

「各重み行列は、その列によって定義される線形変換を表すため、追加される列が互いに直交している場合にのみ、マージャーはこれらの列で利用可能な情報を保持するというのは直感的です。ほとんどのコンテンツ-スタイルのLoRAペアでは余弦類似度がゼロでないため、それらを直接追加すると信号の干渉が生じます。図3では、特定のコンテンツ-スタイルのペアについて、ZipLoRAを適用する前と後の最後のU-netブロックの各レイヤーごとの平均余弦類似度の値を示しています。直接マージでは高い非ゼロの余弦類似度の値が見られ、スタイリゼーション品質が低くなります。一方、ZipLoRAは余弦類似度の値を大幅に減少させ、優れた結果を得るために貢献します。

マージ中の信号干渉を防ぐために、各列に学習可能な係数を掛けて、列間の直交性を実現できるようにします。LoRAの更新が疎であるという事実から、各LoRAから特定の列を無視することができ、干渉を最小限に抑えるタスクが容易になります。図4に示されているように、コンテンツLoRAおよびスタイルLoRAの各レイヤーに対して、それぞれのマージャー係数ベクトルmcおよびmsを導入します。」

「私たちのZipLoRAアプローチには2つの目標があります:(1) コンテンツLoRAとスタイルLoRA間の干渉を最小限に抑えること、つまりコンテンツLoRAとスタイルLoRAの列間の余弦類似度で定義されるもので、(2) マージされたLoRAが参照主題とスタイルを独立に生成する能力を保持すること、混合されたLoRAによって生成される主題/スタイル画像とオリジナルの主題/スタイルLoRAによって生成される主題/スタイル画像との差を最小化することです。列間で信号の干渉を最小限に抑えるために、提案された損失は各レイヤーのマージベクトルmcおよびmsの余弦類似度を最小化することを目指します。一方、スタイルLoRAとコンテンツLoRAの元の挙動がマージされたモデルで保持されることを確認したいため、図4に示されているように、以下の損失関数を持つ最適化問題を定式化します。」

「ここで、マージされたモデルLmは、Eq. 2に従ってmcおよびmsを使用して計算されます。pcおよびpsはコンテンツおよびスタイルの参照用のテキスト条件付けプロンプトであり、λは余弦類似度損失項の適切な乗数です。最初の2つの項は、マージされたモデルが個々のスタイルとコンテンツを生成する能力を保持することを確保します。3番目の項は、個々のLoRA重みの列間で直交性制約を強制します。重要なことに、ベースモデルと個々のLoRAの重みを凍結したままで、マージャー係数ベクトルのみを更新します。このような単純な最適化メソッドは、カスタムの主題に対する強力なスタイリゼーションを生成するのに効果的です。さらに、ZipLoRAは100回の勾配更新のみを必要とし、ジョイントトレーニングアプローチと比較して10倍高速です。」

ということで、異なるLoRAを統合する際の重要な知見と実装でした!

© 2025, blueqat Inc. All rights reserved