MiniGPT-4: 高度な大規模言語モデルを使用した AI 視覚言語理解の向上

MiniGPT-4: 高度な大規模言語モデルを使用した AI 視覚言語理解の向上

1. プロジェクトの背景と動機

今年初め、OPEN AI の GPT-4 は前例のないマルチモーダル機能を実証しました。たとえば、GPT-4 は面白い写真がなぜ面白いのかを説明できます。この写真には、カメラを持っているリスが写っています。人間の理解では、リスは一般的に木の実を食べますが、リスが人間のようにカメラを使うとは考えられません。それがこの写真の興味深いところです。

もう 1 つの非常に有名で興味深いデモは、ホストが GPT-4 に写真を入力するというものです。この写真は、Web サイトの簡単なスケッチです。GPT-4 はこの写真を認識して Web サイトを構築するためのコードを出力することができ、このコードは最終的に正常に実行され、この Web ページを生成できます。

この機能は、DeepMind の Flamingo や Saleforce の Blip-2 など、これまでのすべてのマルチモーダル モデルではまったく実現できません。しかし、OpenAIはGPT-4の技術的な詳細を一切明らかにしませんでした。当時、OpenAIの公式技術レポートでは、モデルのパラメータ、モデルのサイズ、コンピューティングリソース、データベースの構築に関する情報は一切公開されていませんでした。どのようにしてそれを達成したのかは誰にもわかりませんでした。

それで、私たちは非常に興味があります。GPT-4 の魔法のような強力な機能の背後にある秘密の源は何でしょうか?私たちのディープラーニングの核となるのはデータだからです。おそらく、より直感的なアイデアとしては、マルチモーダル データのあらゆる側面をカバーする非常に複雑で大規模なデータベースがあると考えられます。たとえば、GPT-4 は Web サイトのスケッチに基づいて Web サイトのコードを作成できます。では、そのデータベースには、Web サイトのスケッチを通じて Web サイトのコードを作成するなど、1 対 1 に対応するデータ ペアが含まれているのでしょうか。この機能を可能にする何らかの秘密のモデル構造を持っているか、GPT-4 の言語機能がこれまでのすべてのモデルをはるかに上回っているかのどちらかです。

この質問に答える前に、まずは私たちのこれまでのマルチモーダル関連の取り組みである ChatCaptioner を紹介させてください。当時、私たちは大規模な言語モデル間の対話システムを開発しました。このような対話システムを使用して、画像のより詳細な説明を生成します。当時、同社は大規模な言語モデル対話に取り組んだ市場初の企業でした。

当時、私たちは非常に興味深い点を発見しました。当時最も強力なマルチモーダル モデルである Blip-2 は、画像の詳細な説明を直接生成できませんでした。たとえば、上の画像の右側の画像には、バスケットの中に数匹の子猫が写っています。Blip-2 に画像を詳細に説明するように直接依頼しても、Blip-2 は説明できません。画像にはバスケットがあり、その中に子猫がいるとしか言えません。しかし、実際にはこの写真の詳細情報を見ることができます。この写真の詳細情報を使って質問してみると、バスケットは何色ですか?バスケットは茶色だと答えます。このバスケットに子猫が複数いる場合は、子猫が 4 匹いると表示されます。したがって、このモデルはこの情報を確認したり取得したりすることができます。

この問題に基づいて、ChatGPT と Prompt エンジニアリング手法を使用して、ChatGPT がいくつかの写真の詳細について質問し続けるようにします。 ChatGPT の一般的な使用方法は、質問に答えることですが、私たちはその逆を行い、自動的に質問するようにしています。このプロセスを自動質問と呼びます。このプロセスを実現するにはどうすればよいでしょうか? ChatGPT に、私には写真があるがあなたにはそれを見ることができない (ChatGPT 自体にはマルチモーダル機能がないため) が、あなたは私に写真について質問することができ、私はあなたに答えることができると伝えます。あなたの仕事は、写真の詳細情報を最大限に理解できるように私に質問することです。このようにして、ChatGPT は見ることができない画像の詳細についていくつか質問することができ、Blip-2 は ChatGPT によって提起された質問に答えます。

最後に、2 つのモデル間で数回の対話が行われた後、ChatGPT は対話を要約し、非常に詳細な説明を生成します。当初、Blip-2 はバスケットの中に猫がいると答えていましたが、今では写真には丸い編み込みのバスケットがあり、その中に白黒の子猫が 4 匹いると答えることができます。バスケットは茶色で、緑の芝生の上に置かれています。

その後、このプロジェクトをベースにビデオに拡張しました。ご興味があれば、写真の QR コードをスキャンして関連コードを取得できます。コード ライブラリは GitHub で 300 を超えるスターを獲得しています。

この研究で、Blip-2 は非常に強力な視覚能力を持っていることがわかりました。画像の多くの詳細を取得して説明することができますが、言語能力は弱く、ユーザーの言語指示に従ってタスクを実行することができません。そこで、言語能力がマルチモーダル機能のボトルネックになっているのではないかという考えに至りました。視覚能力をさらに向上させれば、より強力な視覚言語モデルを実現できるでしょう。 GPT-4 の視覚認識能力の源についての当初の推測に戻ると、より強力な視覚言語機能により、GPT-4 はそのような能力を持つことができるのでしょうか?

2. MiniGPT-4の実装プロセス

この推測を検証するために、MinGPT-4 を提案しました。

シンプルな絵、水面に立つフラミンゴのロゴ。まず、Blip-2 モデルの視覚機能モジュール (Q-Former+ViT で構成) をトレーニングせずに使用します。次に、当時最も強力なオープンソース言語モデルである Berkeley の Vicuna を追加しましたが、これもトレーニングしませんでした。トレーニング可能な線形レイヤーを使用して、Blip-2 ビジョン モジュールの出力を Vicuna の入力空間にマッピングします。同時に、画像データだけでなくテキストデータも入力する必要があります。最終的には、このモデルが入力画像の内容と特定のテキストの質問や紹介に基づいて詳細な応答を生成し、非常にシンプルなシステムを実現できることを期待しています。

しかし、このシステムはどのようにトレーニングするのでしょうか?当初は、Laion、CC、SBU などの画像キャプション データベースを使用した従来の事前トレーニング方法を採用しました。モデルの入力は単純な画像であり、モデルの出力はデータベース内の画像の説明に回帰する必要があります。一例として、森の中を歩くためにかがんでいる女の子の写真があり、その写真の説明は比較的簡潔です。「森の中を歩く若い女性」。この段階では、4 枚の A80 および A100 グラフィック カードを使用して約 10 時間実行し、モデルが画像を理解できるようになりました。

次に例を示します。人物と犬の写真を入力すると、モデルは「A man sits with his dog on the」を出力できます。このモデルは絵を理解できますが、言語を生成する能力はまだ欠けています。 MiniGPT-4 の言語機能はオープンソース モデルから提供されており、それ以上のトレーニングは実施しなかったためです。このオープンソースモデル自体の言語能力はChatGPTに近いのですが、この視覚データをモデルに入力すると、その発話能力に大きな影響が出ます。会話の中でモデルがセリフを完全に生成していないことがわかります。

さらにテストを進めると、現在のモデルの最大の問題は不完全な言語生成であることがわかりました。また、反復的な言語が生成されやすく、何度も繰り返して生成され、最終的に生成される文字数の上限に達してしまいます。さらに、現在のシステムは韓国語を話すのが非常に好きだということもわかりました。英語で質問すると、回答は英語と韓国語を交互に繰り返し、意味のない文字もいくつか含まれます。

しかし、プロンプト エンジニアリングをより詳細にすると、このモデルは比較的正確な出力を生成できますが、モデルはあまり安定していないため、この問題を解決する方法を見つける必要があります。

なぜこの問題が発生するのでしょうか?実際、私たちのトレーニング データと最終テストで使用されたデータの間には大きな違いがあることがわかりました。その理由は、このモデルのトレーニング データはより伝統的なデータベースであり、トレーニング方法もより伝統的であるためです。トレーニングでは、画像を入力して説明をしますが、実際のテストでは、画像だけでなくテキストも入力するマルチモーダルチャットを使用してテストします。モデルが雄弁に話し、できるだけ詳細な回答を提供して、ユーザーがそのようなモデルに満足できるようにしたいと考えています。

そこで、両者の差を最小限に抑えるよう努め、第 2 段階に進みます。人間の好みに合った、より長いテキスト コンテンツを含むデータベースが必要でした。当時、そのようなデータベースは存在しなかったため、自分たちで構築する必要がありました。このプロセスは、次の 3 つのステップに分かれています。

最初のステップは、トレーニングしたモデルに基づいて画像を提供し、プロンプトを入力することです。できるだけ多くの詳細を提供し、見たものを出力します。モデルは不安定に段落のテキストを生成することがあります。同時に、生成されたコンテンツの長さをチェックし、2 番目の段落を生成します。最初の段落と 2 番目の段落を組み合わせて画像の詳細の説明を生成しますが、まだノイズが残っています。たとえば、言語の切り替えや奇妙な記号は、プロンプトを調整しても最適化できません。そのため、後処理には ChatGPT を使用します。 ChatGPT に、文法エラーのある段落があることを伝えます。ChatGPT は、この段落の文法エラーを修正し、重複した文、意味のない記号、英語以外の文を削除し、不完全な文を書き直し、形式に従って出力するように要求する必要があります。これにより、最初のステップで取得したデータの文法エラーを修正するのに役立ちます。しかし、ChatGPT は完璧ではなく、誤ったコンテンツを生成する可能性があります。

3 番目のステップでは、ChatGPT の出力を取得し、500 件の結果を手動で注釈付けしました。まだ問題はありましたが、これらの問題は定期的に発生しました。エラーの種類を分類し、その種類ごとに強力なルール コードをいくつか記述して、エラーを自動的にキャプチャし、ルールを通じて修正および修復しました。

修復できないほどデータ品質が悪いなどの一部のロングテールエラーについては、その特徴を検出することでエラーのあるデータを直接排除します。

最後に、右下に表示されるデータベースを取得します。老人の写真を入力すると、詳細な説明を出力することができます。一連の処理を経て、最終的に約 3,500 個の画像とテキストのペアが得られました。

データベースが構築されたら、そのデータベースを使用してトレーニングを行います。最初のトレーニング フェーズでは、トレーニングとテストの差を最小限に抑えるために、簡単な画像を使用して比較的短いテキストを生成します。したがって、第 2 段階では、実際のテスト環境を可能な限りシミュレートするために、イメージをテンプレートとともにパッケージ化し、モデルを新しいデータベースに回帰します。

第2段階では、合計3,500組のデータがあり、トレーニング時間は約7分でした。トレーニング前、モデルは半分の文しか生成できませんでした。トレーニング後、同じ問題でより長い説明を生成できるようになりました。以前の問題はうまく回避され、ようやくリリースしたMini GPT-4モデルが完成しました。

3. MiniGPT-4機能デモ

次に、Mini GPT-4 の機能のいくつかを紹介します。国内バンドのコンサートの写真を入力してください。質問を入力すると、一文で説明できます。写真には、大勢の観客の前でエレキギターを演奏する2人のミュージシャンが写っています。観客は彼らの演奏を観て、カメラで写真を撮っています。彼らの後ろには、中国語でバンド名が表示されているスクリーンがあります。全体の雰囲気は非常に鮮やかで力強いです。

さらに、Mini GPT-4 は写真に写っているユーモアも解釈できます。地面に横たわっているとても疲れた犬はとても疲れているように見えますが、そこに書かれた言葉を見てジョークを理解することもできます。

さらに、このモデルには、ウェブサイト構築スケッチを読み取り、GPT-4 と同様のウェブサイト コードを生成する機能もあります。

目新しいデスクランプの写真を入力して広告を書かせると、非常に魅力的なコピーを出力できます。

氷の湖の上のサボテンの奇妙な写真を入力し、この写真が現実世界で一般的かどうかを尋ねます。この写真は現実では非常に珍しく、氷の上でサボテンを見ることはほとんど不可能であり、この写真はコンピューターで作成されたか、偽の写真である可能性があると述べます。

映画「ゴッドファーザー」の静止画を入力すると、これが「ゴッドファーザー」の写真であることを理解し、あらすじの紹介を出力します。

写真を入力すると、写真には植物が写っていますが、この植物には何か問題があります。植物の何が問題なのかを尋ねます。どうすればいいですか?まず、植物の茶色い斑点を見て、それが真菌感染によるものであることを認識し、次に植物を殺菌剤で治療する方法と具体的な手順を指示します。

4. 既存の欠点

次に、制限事項について説明します。Mini GPT-4 はオープンソース モデルに基づいているため、いくつかの問題もあります。典型的な例としては、レストランの内装の写真を見せて、その写真について詳しく説明するように依頼すると、実際には写真にテーブルクロスがかかっていないのに、モデルがテーブルの上に白いテーブルクロスがかかっていると答える確率が 70% ~ 80% になります。

このモデルは画像内のものを見ることはできますが、物体がどこにあるかを明確に見ることはできず、その位置情報も見ることができません。たとえば、写真家が写真の左側にいるのか右側にいるのかを尋ねると、間違った答えが返ってきます。

写真が面白い理由とウェブサイトの構築について説明した前回のデモでは、Mini GPT-4 は写真内のテキストを認識できると述べましたが、前提条件としてテキストが十分に大きい必要があります。テキストの大きさが十分でない場合、モデルはそれを認識できないだけでなく、完全に矛盾したものを作成します。

5. 質疑応答

Q1: データトレーニングの第 2 フェーズでは、画像とテキストのペアの数は 3,500 です。プロンプトの種類は何種類ありますか? 種類が多い場合、すべて手動で設計されているのですか?

A1: プロンプトを作成し、ChatGPT にプロンプ​​トの同義語と類似文を生成するように依頼しました。使用された同義語と類似文の具体的な数は 4 でした。

Q2: 複数の画像を入力する場合はどうなりますか?

A2: 実際にはトレーニング中に複数の画像を入力したわけではありません。ただし、私たちのモデルは複数の写真を入力でき、各写真は 32 個のトークンに変換され、特定のコンテンツを照会しますが、これほど多くの写真を処理する能力は強力ではないため、トレーニングしませんでした。しかし、私たちのモデルにはこの機能があります。

Q3: 第2段階のデータのみをトレーニングに使用した場合、どのような効果がありますか?

A3: この質問は、実際にはトレーニングの第 1 フェーズと第 2 フェーズについて、具体的に何を行うのかということです。 ChatGPT の最初の部分は、非常に大規模なデータベース上で円を完成させるための GPT3 です。第 2 段階では、GPT3 に基づいて命令の翻訳を行い、さらにトレーニングを行います。これは、私たちのモデルにも当てはまります。一般的なモデルのトレーニングでも同様です。トレーニングの第 1 段階の目的は、モデルが新しい知識を獲得して画像を理解できるようにすることです。第 1 段階では大量のデータが必要です。トレーニングには 16 時間とカード 4 枚が必要です。

第 2 段階の目的は第 1 段階とは異なります。第 2 段階では、モデルが新しい知識を学習できるようにする方法に重点が置かれます。 2 番目のステージの目的は、実際にはモデルの動作を変更することです。そのため、少量のデータを使用して、モデルが生成した結果の動作を調整し、モデルの本来の機能を向上させます。トレーニングの第 2 段階のみを実行した場合、モデルをそのまま使用することはできません。第 2 段階の前提は、モデルが画像を認識できることです。

Q4: 第 2 フェーズでのデータ需要は比較的小さいです。これは Lima の結論と似ていますか?

A4: モデルのトレーニングでも同様です。

Q5: 数式などの特定のテキストの場合、より良い方法はありますか?

A6: まず、専門的なデータベースがあります。たとえば、専門的な OCR データベースがいくつかあり、専門的な数学データベースがいくつかあります。専門のデータベースで翻訳すれば、間違いなく改善されると思います。現在のモデルの解像度は十分ではありません。たとえば、数式が書かれた下書き用紙を 224 ピクセルの形式で渡した場合、数式をはっきりと見るには明らかに不十分です。 2 つの側面があります。一方では、画像形式は高解像度である必要があります。第二に、一部の専門的なデータベースでは翻訳効果がより高くなる可能性があります。

Q6: 画像のエンコーディングは Prompt にとって非常に重要です。画像のエンコーディングは完全ですか、それとも詳細ですか? 今、もっと良い方法はありますか?

A7: このモデルは標準的な Vit と Q-Former を組み合わせたもので、出力は常に 32 トークンです。この方法は良いのですが、個人的にはどのような方法だと思いますか?画像情報を要約して後続のモデルに入力するロジックがあります。 上位のQ-Formerを破棄すればもっと良いのですが、個人的には別のアプローチを好みます。

<<: 

>>:  伝説のゲーム開発者カーマック氏:汎用人工知能は2030年に誕生する

ブログ    
ブログ    

推薦する

将来、人工知能は人間の意識を発達させるでしょうか?

今日はそれについて話しましょう。あらゆるものには規則性がある。これを植物と生物学の2つの観点から議論...

誰もが今から準備すべき、2020 年のキャリアを変える 6 つのテクノロジー トレンド

[51CTO.com クイック翻訳] 新しいテクノロジーの導入により、私たちの職場は変化しています。...

自動運転における機械学習の核となるのはモデルではなくパイプラインである

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

AIキャンパス採用プログラマーの最高給与が明らかに!テンセントは年俸80万元でトップで、北京戸口を提供している。

[[213294]]写真はインターネットからアルゴリズム関連人材の市場では、需要と供給の不均衡が深...

...

...

行列乗算の3Dインサイト: これがAIの思考法

行列乗算の実行プロセスを 3D で表示できれば、行列乗算を学ぶのはそれほど難しくないでしょう。今日で...

朱順燕:機械知能の発展は、機能的なニーズから感情的なニーズへの進化です。

「Tmall Genieに代表される機械知能デバイスは、まさに家族の一員となり、より心温まるイノベ...

PHP再帰アルゴリズムの詳細な例分析

ウェブサイトを構築する場合、プログラマーの最初の選択肢は PHP 言語です。 PHP については十分...

OpenAIが安全チームを設置 準備: AIのリスクを評価し、外部からの悪用を防ぐ

OpenAIは10月27日、汎用人工知能(AGI)によって引き起こされる可能性のある壊滅的なリスクを...

データセンター: ジェネレーティブ AI 経済の推進

しかし、こうした大騒ぎのなか、生成 AI の可能性を最大限に引き出すために必要なインフラストラクチャ...

...

Belcorp CIO: AI による IT 研究開発の見直し

多国籍美容企業ベルコープは過去3年間、パンデミック、消費者行動の変化、サプライチェーンの混乱、インフ...

LRU キャッシュ アルゴリズムの Java カスタム実装

背景LinkedHashMap は HashMap を継承し、内部的に removeEldestEn...

金融保険業界における人工知能の3つの重要なトレンド

[51CTO.com クイック翻訳] 変化は常に起こっており、将来の変化は予測可能です。保険市場は大...