マルチモーダル人工知能は、より高いパフォーマンスを達成するために、画像、テキスト、音声、ビデオなどの複数のデータ タイプとさまざまなインテリジェントな処理アルゴリズムを組み合わせることを指す新しい AI パラダイムです。
最近、PyTorch はドメイン ライブラリである TorchMultimodal を正式にリリースしました。SoTA マルチタスクおよびマルチモーダル モデルの大規模トレーニングに使用されます。
このライブラリは以下を提供します。
TorchMultimodal ライブラリはまだ活発に開発中です。次の点に注意してください。
https://github.com/facebookresearch/multimodal#installation
テクノロジーの進歩に伴い、複数種類の入力(テキスト、画像、動画、音声信号)を理解し、その理解を利用してさまざまな形式の出力(文章、写真、動画)を生成できるAIモデルがますます注目を集めています。 。
FAIR による最近の研究成果 (FLAVA、Omnivore、data2vec など) は次のことを示しています。理解のためのマルチモーダル モデルは、シングルモーダル モデルよりも利点があり、場合によっては、まったく新しい SOTA の先駆者となります。
Make-a-video や Make-a-scene などの生成モデルは、最新の人工知能システムの機能を再定義しています。
PyTorch エコシステムにおけるマルチモーダル AI の開発を促進するために、 TorchMultimodal ライブラリが登場し、その解決策は次のとおりです。
TorchMultimodal は PyTorch ドメイン ライブラリです。マルチタスク、マルチモーダル モデルの大規模トレーニング用。 それは以下を提供します:
モデル、融合レイヤー、損失関数、データセット、ユーティリティなど、構成可能なビルディング ブロックのモジュールとコレクション。次のようなものです。
一連の例では、ビルディング ブロックを PyTorch コンポーネントおよびパブリック インフラストラクチャ (Lightning、TorchMetrics) と組み合わせて、文献で公開されている SOTA モデルを複製する方法を示します。現在、次の 5 つの例が提供されています。
論文を見る:https://arxiv.org/abs/2112.04482
論文を見る:https://arxiv.org/abs/2104.12763
論文を見る:https://arxiv.org/abs/2204.08058
論文を見る:https://arxiv.org/abs/2204.08058
論文を見る:https://arxiv.org/abs/2107.07651
次のコードは、CLIP に関連するいくつかの TorchMultimodal コンポーネントの使用法を示しています。
# instantiate clip transform
clip_transform = CLIPTransform()
# pass the transform to your dataset. Here we use coco captions
dataset = CocoCaptions(root= ..., annFile=..., transforms=clip_transform)
dataloader = DataLoader(dataset, batch_size=16)
# instantiate model. Here we use clip with vit-L as the image encoder
model= clip_vit_l14()
# define loss and other things needed for training
clip_loss = ContrastiveLossWithTemperature()
optim = torch.optim.AdamW(model.parameters(), lr = 1e-5)
epochs = 1
# write your train loop
for _ in range(epochs):
for batch_idx, batch in enumerate(dataloader):
image, text = batch
image_embeddings, text_embeddings = model(image, text)
loss = contrastive_loss_with_temperature(image_embeddings, text_embeddings)
loss.backward()
optimizer.step()
Python ≥ 3.7 (CUDA サポートのインストールの有無にかかわらず)。
次のコードでは、例として conda のインストールを取り上げます。
conda create -n torch-multimodal python=\<python_version\>
conda activate torch-multimodal
PyTorch のドキュメントを参照してください。
https://pytorch.org/get-started/locally/
# Use the current CUDA version as seen [here](https://pytorch.org/get-started/locally/)
# Select the nightly Pytorch build, Linux as the OS, and conda. Pick the most recent CUDA version.
conda install pytorch torchvision torchtext pytorch-cuda=\<cuda_version\> -c pytorch-nightly -c nvidia
# For CPU-only install
conda install pytorch torchvision torchtext cpuonly -c pytorch-nightly
Linux では、Python 3.7、3.8、および 3.9 の Nightly バイナリを pip ホイール経由でインストールできます。現在、PyPI を通じてサポートされているのは Linux プラットフォームのみです。
python -m pip install torchmultimodal-nightly
開発者は、ソースからサンプルをビルドして実行することもできます。
git clone --recursive https://github.com/facebookresearch/multimodal.git multimodal
cd multimodal
pip install -e .
以上がTorchMultimodalの簡単な紹介です。コード以外にも、PyTorch は、マルチモーダル モデルの微調整に関する基本チュートリアルも正式にリリースしました。 また、PyTorch Distributed PyTorch (FSDP およびアクティベーション チェックポイント) テクノロジーを使用してこれらのモデルを拡張する方法に関するブログです。
今後、このブログの中国語版も整備する予定です。 PyTorch 開発者コミュニティの公式アカウントに引き続きご注目ください。
- 以上 -