ホームページ  >  記事  >  テクノロジー周辺機器  >  LLaVA をモジュール的に再構築します。コンポーネントを置き換えるには、1 ~ 2 個のファイルを追加するだけです。オープンソースの TinyLLaVA Factory がここにあります。

LLaVA をモジュール的に再構築します。コンポーネントを置き換えるには、1 ~ 2 個のファイルを追加するだけです。オープンソースの TinyLLaVA Factory がここにあります。

王林
王林オリジナル
2024-06-08 21:21:29380ブラウズ

TinyLLaVA+ プロジェクトは、清華大学電子学部マルチメディア信号知能情報処理研究室 (MSIIP) の Wu Ji 教授のチームと、北杭大学人工知能学部の Huang Lei 教授のチームによって共同作成されました。 。清華大学の MSIIP 研究室は、インテリジェント医療、自然言語処理と知識発見、マルチモダリティなどの研究分野に長年取り組んできました。北京航空のチームは、ディープラーニング、マルチモダリティ、コンピュータービジョンなどの研究分野に長年取り組んできました。 TinyLLaVA+ プロジェクトの目標は、言語理解、質疑応答、対話などのマルチモーダル機能を備えた小型の言語を越えたインテリジェント アシスタントを開発することです。プロジェクトチームはそれぞれの利点を最大限に発揮し、技術的課題を共同で克服し、インテリジェントアシスタントの設計と開発を実現していきます。これにより、インテリジェント医療、自然言語処理と知識発見、マルチモダリティなどの研究分野に新たなブレークスルーがもたらされるでしょう。 同時に、清華大学の MSIIP 研究室は長年にわたってインテリジェンスに取り組んできました

最近、清華大学と北杭大学は共同で、マルチモーダル大規模モデルのカスタマイズ、トレーニング、評価をサポートするコードベースである TinyLLaVA Factory を立ち上げました。 . コードとモデルはすべてオープンソースです 。このコードベースは、ソフトウェアエンジニアリングのファクトリーモデルを設計コンセプトとしており、コードの読みやすさ、機能の拡張性、実験結果の再現性に重点を置き、LLaVAのコードベースをモジュール的に再構築したものです。これにより、研究者や実践者は、マルチモーダルな大規模モデルのトレーニングおよび設計空間を探索することが容易になります。

模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

  • Githubプロジェクト: https://github.com/TinyLLaVA/TinyLLaVA_Factory
  • ペーパーアドレス: https://arxiv.org/abs/2405.11788
  • ハグ顔モデルのアドレス: https://huggingface.co/tinyllava/TinyLLaVA-Phi-2-SigLIP-3.1B または https://huggingface.co/bczhou/TinyLLaVA-3.1B-SigLIP
  • マシン SOTA モデルのアドレス: https://sota.jiqizhixin.com/project/tinyllava

LLaVA は、マルチモーダル コミュニティの高品質なオープンソース プロジェクトであり、研究者や開発者に好まれています。マルチモーダル大規模モデルを初めて使用する初心者は、マルチモーダル大規模モデルを学習およびトレーニングするための出発点として LLaVA プロジェクトを使用することに慣れています。ただし、LLaVA プロジェクトのコードは比較的わかりにくく、理解するのが困難です。一度エラーが変更されると、トレーニングの効果に影響を与える可能性があります。これにより、初心者は簡単に詳細を変更することができなくなり、本質的な詳細の理解が妨げられます。マルチモーダルな大規模モデルでは、特定の困難に直面しました。

最近、清華大学と北京大学が共同で TinyLLaVA Factory を立ち上げました。これは、オリジナルの LLaVA コードをモジュール化して再構築し、シンプルなコード実装、新機能の拡張性、トレーニング結果の再現性に重点を置き、独自のカスタマイズとトレーニングを可能にします。コードエラー率を削減しながら、最小限のコード量でマルチモーダルな大規模モデルを実現します。同じモデル構成、トレーニング データ、トレーニング戦略の下で、TinyLLaVA Factory を使用すると、LLaVA コードを使用するよりもわずかに優れたパフォーマンスでモデルをトレーニングできます。ユーザーがコードを理解し、モデルを使用しやすくするために、TinyLLaVA Factory プロジェクトにはコード ドキュメントとデモ Web サイトも用意されています。その全体的なアーキテクチャを次の図に示します: [アーキテクチャ図]。

模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

データ前処理部分では、TinyLLaVA Factory は、LLaVA コード内の頭を使う画像処理とプロンプト処理プロセスを放棄し、明確かつ簡潔な、標準的でスケーラブルな画像とテキストの前処理プロセスを提供します。このうち、画像の前処理はプロセッサーでカスタマイズしたり、CLIP ViTやSigCLIP ViTに付属するイメージプロセッサーなど、一部の公式ビジュアルエンコーダーのプロセッサーを使用したりすることができます。テキストの前処理のために、基本クラスの Template が定義されており、システム メッセージ (プロンプト)、トークン化、ラベルの生成などの基本的かつ共通の機能が提供されます。ユーザーは、基本クラスを継承することで、さまざまな LLM に簡単に拡張できます。 。

模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

モデル部分では、TinyLLaVA Factory は大規模なマルチモーダル モデルを 3 つのコンポーネント (大規模言語モデル コンポーネント、ビジュアル エンコーダー コンポーネント、中間コネクタ コンポーネント) に自然にモジュール化します。各コンポーネントは、新しいモデルの登録と置換を担当するファクトリ オブジェクトによって制御され、ユーザーは他の部品を関与させることなく、任意のコンポーネントをより簡単に置き換えることができます。

模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

TinyLLaVA Factory は、以下の表に示すように、各コンポーネントの現在の主流モデルを提供します。

模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

トレーナーは依然として LLaVA をモデルにしており、Hugging Face に付属するトレーナーを使用し、勾配累積、Wandb ログおよびその他の機能を統合し、DeepSpeed ZeRO2/ZeRO3 並列トレーニングもサポートしています。 TinyLLaVA Factory では、評価部分として、SQA/GQA/TextVQA/VQAv2/POPE/MME/MM-Vet/MMMU の 8 つのベンチマークの評価を提供しています。

次に、重要なポイントを強調しましょう。 TinyLLaVA Factory Github プロジェクトでは、独自のマルチモーダル大規模モデルをカスタマイズする方法も教えています。 LLM コンポーネント、ビジョン エンコーダ コンポーネント、コネクタ コンポーネントは、1 ~ 2 つのファイルを追加するだけで簡単に置き換えることができます。

代替LLMモデルを例として取り上げます。 LLaVA コードベースを使用した学生からのフィードバックによると、LLaVA コードは、Llama シリーズ以外の言語モデルを置き換えようとするとエラーが発生する傾向があります。 TinyLLaVA Factory は、チャット テンプレート ファイルとモデル ファイルの 2 つの py ファイルを追加することで、言語モデルを簡単に置き換えることができます。ビジュアル エンコーダーを置き換える場合、py ファイルを 1 つ追加し、ビジュアル エンコーダーの基本クラスを継承するだけで済みます。

模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

TinyLLaVA Factory は、トレーニング戦略のカスタマイズもサポートしています。ユーザーは設定ファイルを変更するだけで、3 つのモジュール コンポーネント (LLM / ビジュアル エンコーダー / コネクタ) をカスタマイズし、フリーズ/完全トリミング/部分トリミング/の任意の組み合わせを実現できます。ローラのトリミング。初心者でも使いやすいチュートリアルです!

模块化重构LLaVA,替换组件只需添加1-2个文件,开源TinyLLaVA Factory来了

今年 2 月の時点で、TinyLLaVA プロジェクトはマルチモーダル大規模モデルにおける 3B 未満の LLM の可能性を鋭く捉え、市場で主流の小規模 LLM を使用して一連のマルチモデルをトレーニングしました。モーダル大規模モデル、パラメータ量は 0.89B ~ 3.1B の間です。実験結果は、高品質のデータ選択とより詳細なトレーニング戦略を通じて、小規模 LLM も大規模モデルと同等またはそれ以上のタスク パフォーマンスを達成できることを示しています。 (詳細については、技術レポート https://arxiv.org/abs/2402.14289 を参照してください)

以上がLLaVA をモジュール的に再構築します。コンポーネントを置き換えるには、1 ~ 2 個のファイルを追加するだけです。オープンソースの TinyLLaVA Factory がここにあります。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。