Offizielle PyTorch-Bibliothek „neu“, TorchMultimodal Unterstützt Multimodale Künstliche Intelligenz

Multimodale künstliche Intelligenz ist ein neues KI-Paradigma, das sich auf mehrere Datentypen wie Bilder, Text, Sprache und Video bezieht und mit mehreren intelligenten Verarbeitungsalgorithmen kombiniert, um eine höhere Leistung zu erzielen.
Vor Kurzem hat PyTorch offiziell eine Domänenbibliothek veröffentlicht: TorchMultimodal.Groß angelegtes Training von Multitasking- und multimodalen Modellen für SoTA.
Die Bibliothek bietet:
- Zusammensetzbare Bausteine (Modul, Transformationen, Verlustfunktion) zur Beschleunigung der Modellentwicklung
- SoTA-Modellarchitektur, extrahiert aus veröffentlichten Forschungs-, Schulungs- und Evaluierungsskripten (FLAVA, MDETR, Omnivore)
- Notebooks zum Testen dieser Modelle
Die TorchMultimodal-Bibliothek befindet sich noch in der aktiven Entwicklung. Bitte beachten Sie:
https://github.com/facebookresearch/multimodal#installation
TorchMultimodaler Entwicklungshintergrund
Mit dem technologischen Fortschritt gewinnen KI-Modelle, die mehrere Arten von Eingaben (Text, Bilder, Videos und Audiosignale) verstehen und dieses Verständnis nutzen können, um verschiedene Formen von Ausgaben (Sätze, Bilder, Videos) zu generieren, immer mehr Aufmerksamkeit.
Aktuelle Arbeiten von FAIR (wie FLAVA, Omnivore und data2vec) haben gezeigt, dassMultimodale Modelle zum Verständnis schneiden im Vergleich zu unimodalen Modellen besser ab und setzen in einigen Fällen neue SOTA-Standards.
Generative Modelle wie „Make-a-video“ und „Make-a-scene“ definieren die Fähigkeiten moderner künstlicher Intelligenzsysteme neu.
Um die Entwicklung multimodaler KI im PyTorch-Ökosystem zu fördern, Die Bibliothek TorchMultimodal entstand und ihre Lösung lautet:
- Bietet zusammensetzbare Bausteine, Mithilfe dieser Bausteine können Forscher die Modellentwicklung und das Experimentieren in ihren eigenen Arbeitsabläufen beschleunigen. Der modulare Aufbau verringert außerdem die Schwierigkeiten bei der Migration auf neue Modaldaten.
- Bietet durchgängige Beispiele für das Trainieren und Evaluieren modernster Modelle aus der Forschung. Diese Beispiele verwenden einige erweiterte Funktionen wie integriertes FSDP und Aktivierungs-Checkpointing zum Skalieren von Modell- und Batchgrößen.
Erster Blick auf TorchMultimodal
TorchMultimodal ist eine PyTorch-Domänenbibliothek.Für das groß angelegte Training multimodaler Multitasking-Modelle. Es bietet:
1. Baustein
Module sind Sammlungen zusammensetzbarer Bausteine wie Modelle, Ensemble-Ebenen, Verlustfunktionen, Datensätze und Dienstprogramme, zum Beispiel:
- Kontrastverlust mit der Temperatur: Funktionen, die häufig zum Trainieren von Modellen verwendet werden, wie CLIP und FLAVA. Es enthält auch Variablen wie ImageTextContrastiveLoss, die in Modellen wie ALBEF verwendet werden.
- Codebuchebene: Das Komprimieren hochdimensionaler Daten durch die Suche nach dem nächsten Nachbarn im Vektorraum ist ebenfalls ein wichtiger Bestandteil von VQVAE.
- Verschobenes Fenster Achtung: Das Fenster basiert auf Multi-Head Self Attention und ist eine wichtige Komponente von Encodern wie Swin 3D Transformer.
- CLIP-Komponenten: Es wurde von OpenAI veröffentlicht und ist ein sehr effektives Modell zum Erlernen von Text- und Bilddarstellungen.
- Multimodale GPT: In Kombination mit einem Generator kann die GPT-Architektur von OpenAI zu einer Abstraktion erweitert werden, die besser für die multimodale Generierung geeignet ist.
- MultiHeadAchtung: Eine Schlüsselkomponente aufmerksamkeitsbasierter Modelle, die Autoregression und Dekodierung unterstützt.
2. Beispiel
Eine Reihe von Beispielen zeigt, wie die Bausteine mit PyTorch-Komponenten und öffentlicher Infrastruktur (Lightning, TorchMetrics) kombiniert werden, um in der Literatur veröffentlichte SOTA-Modelle zu replizieren. Derzeit werden fünf Beispiele bereitgestellt, darunter:
- GESCHMACK: Offizieller Code für von CVPR akzeptierte Beiträge, einschließlich eines Tutorials zur Feinabstimmung von FLAVA.
Lesen Sie das Dokument:https://arxiv.org/abs/2112.04482
- MDETR: Zusammenarbeit mit den NYU-Autoren, um ein Beispiel bereitzustellen, das die Interoperabilitätsprobleme im PyTorch-Ökosystem behebt, einschließlich eines Notebooks zur Phrasenvergabe und visuellen Beantwortung von Fragen mithilfe von MDETR.
Lesen Sie das Dokument:https://arxiv.org/abs/2104.12763
- Omnivore: Erstes Beispiel eines Modells in TorchMultimodal zur Verarbeitung von Video- und 3D-Daten, einschließlich Notebooks zum Erkunden des Modells.
Lesen Sie das Dokument:https://arxiv.org/abs/2204.08058
- MUGEN: Grundlegende Arbeit zur autoregressiven Generierung und Abfrage, einschließlich einer Demo zur Text-Video-Generierung und -Abfrage unter Verwendung des umfangreichen synthetischen Datensatzes von OpenAI Coinrun.
Lesen Sie das Dokument:https://arxiv.org/abs/2204.08058
- ALBEF: Modellcode, einschließlich eines Notizbuchs zur Verwendung des Modells zur Lösung eines visuellen Frage- und Antwortproblems.
Lesen Sie das Dokument:https://arxiv.org/abs/2107.07651
Der folgende Code zeigt die Verwendung mehrerer TorchMultimodal-Komponenten im Zusammenhang mit CLIP:
# 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()
Installieren Sie TorchMultimodal
Python ≥ 3.7, mit oder ohne installierter CUDA-Unterstützung.
Der folgende Code verwendet die Installation von Conda als Beispiel
Voraussetzungen
1. Installieren Sie die Conda-Umgebung
conda create -n torch-multimodal python=\<python_version\>
conda activate torch-multimodal
2. Installieren Sie PyTorch, Torchvision und Torchtext
Siehe die PyTorch-Dokumentation:
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
Von einer Binärdatei installieren
Unter Linux sind nächtliche Binärdateien für Python 3.7, 3.8 und 3.9 über Pip Wheels verfügbar. Derzeit werden über PyPI nur Linux-Plattformen unterstützt.
python -m pip install torchmultimodal-nightly
Quellinstallation
Entwickler können die Beispiele auch aus der Quelle erstellen und ausführen:
git clone --recursive https://github.com/facebookresearch/multimodal.git multimodal
cd multimodal
pip install -e .
Das Obige ist eine kurze Einführung in TorchMultimodal. Zusätzlich zum CodePyTorch hat offiziell ein grundlegendes Tutorial zur Feinabstimmung multimodaler Modelle veröffentlicht. Und ein Blog zum Skalieren dieser Modelle mithilfe der PyTorch Distributed PyTorch-Techniken (FSDP und Aktivierungs-Checkpointing).
Wir werden diesen Blog später ins Chinesische übersetzen. Willkommen, um weiterhin dem offiziellen Konto der PyTorch-Entwickler-Community zu folgen!
-- über--