CLIP基礎モデル

CLIP Basic Model

論文要約— 自然言語監督からの転移可能な視覚モデルの学習

この記事では、CLIP(Contrastive Language-Image Pre-Training)の背後にある論文を説明します。キーコンセプトを抽出し、理解しやすく説明します。さらに、画像とデータグラフは疑問点を明確にするために注釈が付けられています。

Image Source

論文: 自然言語監督からの転移可能な視覚モデルの学習

コード: https://github.com/OpenAI/CLIP

初版発行日: 2021年2月26日

著者: Alec Radford, Jong Wook Kim, Chris Hallacy, Aditya Ramesh, Gabriel Goh, Sandhini Agarwal, Girish Sastry, Amanda Askell, Pamela Mishkin, Jack Clark, Gretchen Krueger, Ilya Sutskever

カテゴリ: マルチモーダル深層学習、コンピュータビジョン、自然言語処理、基盤モデル、表現学習

概要

  1. 文脈と背景
  2. 手法
  3. 実験
  4. さらなる参考資料

文脈と背景

CLIP(Contrastive Language-Image Pre-Training)は、自然言語と画像の対応関係を学習するマルチモーダルモデルです。インターネットから収集された4億のテキスト-画像ペアでトレーニングされています。この記事では後ほど詳しく説明しますが、CLIPは強力なゼロショット性能を持ち、ファインチューニングを行わずにトレーニングされたものとは異なるダウンストリームタスクで優れたパフォーマンスを発揮します。

CLIPの目標は次のとおりです:

  1. 自然言語処理(例:GPTファミリー、T5、BERTなど)から既知の大規模プレトレーニング技術の成功をコンピュータビジョンに適用する。
  2. 固定されたクラスラベルの代わりに自然言語を使用することにより、柔軟なゼロショット機能を可能にする。

なぜこれが重要かと思われるかもしれません。まず、多くのコンピュータビジョンモデルは、クラウドソースのラベル付きデータセットでトレーニングされます。これらのデータセットには通常、数十万のサンプルが含まれています。一部の例外は、数百万または数千万のサンプルの範囲です。時間とコストが非常にかかるプロセスです。一方、自然言語モデルのデータセットは通常、数桁以上大きく、インターネットからスクレイピングされます。また、オブジェクト検出モデルが特定のクラスでトレーニングされており、追加のクラスを追加する場合、新しいクラスをデータにラベル付けしてモデルを再トレーニングする必要があります。

CLIPの自然言語と画像の特徴を組み合わせた能力とゼロショット性能は、UnCLIP、EVA、SAM、Stable Diffusion、GLIDE、VQGAN-CLIPなど、多くの人気のある基盤モデルで広く採用されています。

手法

では、CLIPの手法について詳しく見ていきましょう。以下の図1に示されている図は、CLIPのアーキテクチャとトレーニングプロセスを示しています。

Fig. 1 — CLIP’s Architecture and training process. Image Source + annotations by author

モデルのアーキテクチャは、各モダリティに対して1つのエンコーダーモデルがあります。テキストエンコーダーにはTransformerが使用され、画像エンコーダーにはResNetまたはViT(Vision Transformer)のバージョンが使用されます。各モダリティの学習済み線形変換により、特徴は対応するサイズの埋め込みに変換されます。最後に、対立するモダリティの埋め込み間のコサイン類似度が計算され、学習済みの温度スカラーでスケーリングされます。トレーニング中、マッチングペア間のコサイン類似度は最大化され、不正なペアでは最小化されます。したがって、フレームワークの名前には「対照的」という用語が含まれています。

もちろん、大規模なデータセットに加えて、成功に重要な微妙な点もあります。まず、対照的な学習アプローチは、バッチサイズNに強く依存しています。正しいサンプルと一緒に提供されるネガティブサンプルが多いほど、学習信号は強くなります。CLIPはバッチサイズ32,768でトレーニングされましたが、これは非常に大きいです。第二に、CLIPは正確な言葉の一致を学習するのではなく、テキスト全体を学習するための簡単なプロキシタスク、つまりワードバッグ(BoW)を学習します。

おもしろい事実:ResNet50x64を画像エンコーダとして使用したCLIPのバージョンは、592台のV100 GPUで18日間トレーニングされました。一方、ViTモデルを使用したバージョンは、256台のV100 GPUで12日間トレーニングされました。つまり、それぞれ1つのGPUで29年以上8年以上(異なるバッチサイズを無視)かかります。

モデルがトレーニングされると、画像のオブジェクト分類を実行するために使用することができます。問題は、画像の分類を行うためにトレーニングされていないモデル、またはテキストプロンプトの入力クラスラベルを持たないモデルを使用して分類を行う方法です。図2はその方法を示しています:

図2 — CLIPの画像分類のアーキテクチャ。画像のソースと著者による注釈

クラスラベルは、単語からなるテキストプロンプトとして表すことができます。分類タスクで使用可能なクラスをモデルに伝えるために、N個のクラスセットがモデルに入力されます。これは、固定されたラベルセットでトレーニングされた分類モデルと比べて非常に有利です。3つのクラスまたは100個のクラスを入力することができます。選択は私たち次第です。後で見るように、CLIPのパフォーマンスを向上させるために、クラスラベルはプロンプトに変換され、モデルにさらなるコンテキストを提供するために使用されます。各プロンプトはテキストエンコーダに供給され、埋め込みベクトルに変換されます。

入力画像は画像エンコーダに供給され、埋め込みベクトルを取得します。

次に、テキストと画像の埋め込みのペアごとにコサイン類似度が計算されます。取得した類似度値にSoftmaxが適用され、確率分布が形成されます。最後に、最も高い確率の値が最終的な予測として選択されます。

実験と削減

CLIPの論文では、多くの実験と削減が紹介されています。ここでは、CLIPの成功を理解するために重要だと考える5つの実験をカバーします。まず、CLIPの著者によってまとめられた主なポイントを紹介し、その後、詳細に掘り下げます:

  1. トレーニングの効率: CLIPは、イメージキャプションのベースラインよりもゼロショット転送で効率的です
  2. テキスト入力形式: プロンプトのエンジニアリングとアンサンブルにより、ゼロショットパフォーマンスが向上します
  3. ゼロショットパフォーマンス: ゼロショットのCLIPは完全に教師付きのベースラインと競合します
  4. フューショットパフォーマンス: ゼロショットのCLIPはフューショットの線形プローブよりも優れています
  5. 分布シフト: ゼロショットのCLIPは、標準的なImageNetモデルよりも分布シフトに対してはるかに頑健です

トレーニングの効率

トレーニング中、画像エンコーダとテキストエンコーダは同時に単一のトレーニング目標で共同してトレーニングされます。CLIPは対照的な学習スキームを実行するだけでなく、テキストプロンプトは単語の順序に関係なく、与えられた画像に対してまとめて比較されます。つまり、それは単なる「ワードバッグ」です。「私の名前はサシャ」というフレーズは、「サシャの名前は私」と同じ埋め込みを生成します。

正確な単語とフレーズ内の位置を予測する代わりに、単語のバッグ全体を予測することははるかに簡単なプロキシ目標です。図3では、正確な単語を予測するためにトレーニングされた初期のトランスフォーマーモデル、ワードバッグを予測するためにトレーニングされた初期のトランスフォーマーモデル、およびワードバッグを使用して対照的な学習を行うCLIPモデルによるImageNet上のゼロショット精度が示されています。

「CLIPは、イメージキャプションのベースラインよりもゼロショット転送で効率的です」-CLIPの著者

図3 - ゼロショットの効率性。画像ソース + 著者による注釈

テキスト入力フォーマット

図2で見たように、オブジェクトの分類を行うために、クラスラベルはテキストプロンプトに変換されています。もちろん、これは偶然ではありません。なぜなら、CLIPは単語1つでも問題ありません。これは、言語の記述力を活用し、可能な曖昧さを解消するための文脈を提供するために行われました。例えば、単語「ボクサー」を取り上げましょう。それは犬の一種であるか、アスリートの一種であるかもしれません。CLIPの著者は、テキストプロンプトの形式が重要であり、パフォーマンスを向上させるだけでなく、効率も向上させることを示しています。

「プロンプトエンジニアリングとアンサンブルにより、ゼロショットのパフォーマンスが向上する」 – CLIPの著者

図4 - プロンプトエンジニアリングとアンサンブル vs. コンテキストのないクラス名。画像ソース + 著者による注釈

ゼロショットのパフォーマンス

別の実験では、CLIPのゼロショット画像分類のパフォーマンスを、比較対象のデータセットで特にトレーニングされたモデルと比較しました。

「ゼロショットのCLIPは完全な教師ありベースラインと競争力がある」 – CLIPの著者

図5 - ゼロショットのCLIP vs. 教師ありベースライン。画像ソース + 著者による注釈

フューショットのパフォーマンス

ゼロショットの予測モデルはダウンストリームタスクで微調整されていませんが、フューショットの検出器は微調整されています。著者は、複数の公開されている事前学習済みモデルを使用し、20の異なるデータセットでのフューショットのパフォーマンスをゼロショットとフューショットのCLIPと比較しました。フューショットモデルは、クラスごとに1、2、4、8、16の例に対して微調整されています。

興味深いことに、ゼロショットのCLIPは4ショットのCLIPとほぼ同じくらいのパフォーマンスを発揮します。

CLIPを他のモデルと比較する場合、公開されている比較対象のモデル(BiT、SimCLR、ResNetなど)は、CLIPモデルとは異なる小さなデータセットで事前学習されていることを考慮する必要があります。

「ゼロショットのCLIPはフューショットの線形プローブよりも優れている」 – CLIPの著者

図6 - フューショットのパフォーマンス。画像ソース + 著者による注釈

分布のシフト

一般的に、モデルの分布シフトに対する頑健性は、トレーニングされたデータのデータ分布とは異なるデータ分布上でも同様に優れたパフォーマンスを発揮する能力を指します。理想的には、同様に優れたパフォーマンスを発揮しますが、現実ではパフォーマンスが低下します。

ゼロショットのCLIPの頑健性は、ResNet101 ImageNetモデルと比較されています。両モデルは、図7に示すようなImageNetの自然な分布シフトで評価されています。

「ゼロショットのCLIPは、標準のImageNetモデルよりも分布シフトに対してはるかに頑健である」 – CLIPの著者

図7 - 分布シフト。画像ソース + 著者による注釈

さらなる読み物とリソース

この記事の冒頭で述べたように、CLIPは多くのプロジェクトで広く採用されています。

CLIPを使用している論文のリストは次のとおりです:

  1. [UnCLIP] CLIP潜在変数を用いた階層的なテキスト条件付き画像生成
  2. [EVA] スケールでのマスクされた視覚表現学習の限界を探索する
  3. [SAM] 任意のセグメント化
  4. [Stable Diffusion] 潜在的拡散モデルを用いた高解像度画像合成
  5. [GLIDE] テキストガイド拡散モデルを用いた写真のような画像生成と編集に向けて
  6. [VQGAN-CLIP] 自然言語ガイダンスによるオープンドメインの画像生成と編集

また、実装に潜り込んで自分で試してみたい場合は、以下のリポジトリのリストもあります:

  • OpenAIによる公式リポジトリ
  • CLIPで遊ぶためのPythonノートブック
  • OpenCLIP:CLIPのオープンソース実装

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

人工知能

バードは論理と推論力においてますます上達しています

精度の高い回答を得るための2つの改善点と、Google Sheetsへのエクスポートに向けた改善点がBardに導入されます

データサイエンス

「DINO — コンピュータビジョンのための基盤モデル」

「コンピュータビジョンにとっては、エキサイティングな10年です自然言語の分野での大成功がビジョンの領域にも移されており...

AI研究

複雑なAIモデルの解読:パデュー大学の研究者が、ディープラーニングの予測を位相マップに変換

複雑な予測モデルの高度なパラメータ化の性質により、予測戦略の説明と解釈が困難です。研究者たちは、この問題を解決するた...

機械学習

「NVIDIA、ワシントンのAIの安全性確保の取り組みを支援」

本日、ホワイトハウスで開催されたイベントで、NVIDIAはバイデン政権が策定した自発的な取り組みを支持することを発表し、高...

データサイエンス

リトリーバル・オーグメンテッド・ジェネレーションにおける関連性の課題にどのように対処するか

パート1では、非最適な埋め込みモデル、効率の悪いチャンキング戦略、およびメタデータフィルタリングの不足により、LLMから...

機械学習

「LangChain、Activeloop、そしてGPT-4を使用して、Redditのソースコードをリバースエンジニアリングするための分かりやすいガイド」

この記事では、Redditのバージョン1のソースコードをリバースエンジニアリングして、その動作をより理解します