In diesem Tutorial erfahren Sie, wie Sie das Meta Llama 3.2-90b-vision-instruct-Modell, das jetzt auf watsonx.ai verfügbar ist, auf Computer-Vision-Aufgaben wie Bildunterschriften und visuelle Fragebeantworten anwenden.
Viele von uns sind mit unimodalen KI-Anwendungen vertraut. Ein beliebtes unimodales KI-Tool ist ChatGPT. Chatbots wie ChatGPT verwenden Verarbeitung natürlicher Sprache (NLP), um Benutzerfragen zu verstehen und Antworten in Echtzeit zu automatisieren. Die Art der Eingabe, auf die diese unmodalen großen Sprachmodelle (LLMs) angewendet werden können, ist auf Text beschränkt.
Multimodale künstliche Intelligenz (KI) stützt sich auf Modelle des maschinellen Lernens, die auf neuronalen Netzen basieren. Diese neuronalen Netze sind in der Lage, Informationen aus mehreren Datentypen mithilfe komplexer Deep Learning-Techniken zu verarbeiten und zu integrieren. Diese verschiedenen Modalitäten, die vom generativen KI-Modell erzeugt werden, werden manchmal auch als generative KI-Modelle bezeichnet und können Text-, Bild-, Video- und Audio-Input umfassen.
Multimodale KI-Systeme haben viele reale Anwendungsfälle, von der medizinischen Bilddiagnose im Gesundheitswesen mit Hilfe von Computer Vision bis hin zur Spracherkennung in Anwendungen. Diese Fortschritte in der KI-Technologie können verschiedene Bereiche optimieren. Der Hauptvorteil multimodaler Architekturen ist die Fähigkeit, verschiedene Datentypen zu verarbeiten.
Multimodale KI umfasst drei Elemente:
Eingabemodul
Das Eingabemodul basiert auf mehreren unimodalen neuronalen Netzen zur Vorverarbeitung verschiedener Datentypen. Hier werden die Daten für Algorithmen für maschinelles Lernen vorbereitet, die im Fusionsmodul ausgeführt werden.
Fusionsmodul
Die Kombination, Ausrichtung und Verarbeitung der Daten erfolgt in diesem Modul. Der Fusionsprozess erfolgt für jede Datenmodalität. In diesem Modul werden verschiedene Techniken häufig angewendet. Ein Beispiel ist die frühe Fusion, bei der Rohdaten aller Eingabearten kombiniert werden. Darüber hinaus werden während der Fusion Daten verschiedener Modalitäten in verschiedenen Vorverarbeitungsphasen kodiert. Schließlich konsolidiert die späte Fusion die Daten, nachdem sie zunächst im Eingabemodul durch verschiedene Modelle der jeweiligen Modalität verarbeitet wurden.
Ausgabemodul
Das Ausgabemodul generiert Ergebnisse im gewünschten Ausgabeformat, indem es die im Fusionsmodul erzeugten Daten analysiert. Diese Ausgaben können verschiedene Formen annehmen, wie Text, Bild oder eine Kombination von Formaten.
Schauen Sie sich dieses IBM Technology YouTube-Video an, das Sie in den Schritten 1 und 2 durch die folgenden Einrichtungsanweisungen führt.
Sie können aus mehreren Tools wählen. Dieses Tutorial eignet sich am besten für ein Jupyter Notebook. Jupyter Notebooks werden in der Data Science häufig verwendet, um Code mit verschiedenen Datenquellen wie Text, Bildern und Datenvisualisierungen zu kombinieren.
Dieses Tutorial zeigt Ihnen, wie Sie ein IBM Konto einrichten, um ein Jupyter Notebook zu verwenden.
Melden Sie sich bei watsonx.ai mit Ihrem IBM Cloud-Konto an.
Erstellen Sie ein watsonx.ai-Projekt.
Sie können Ihre Projekt-ID in Ihrem Projekt abrufen. Klicken Sie auf die Registerkarte Verwalten. Kopieren Sie dann die Projekt-ID aus dem Abschnitt Details der Seite Allgemein. Sie benötigen diese ID für dieses Tutorial.
Erstellen Sie ein Jupyter Notebook.
Dieser Schritt öffnet eine Notebook-Umgebung, in die Sie den Code aus diesem Tutorial kopieren können, um Prompt Tuning selbst zu implementieren. Alternativ können Sie dieses Notebook auf Ihr lokales System herunterladen und als Asset in Ihr watsonx.ai-Projekt hochladen. Dieses Jupyter-Notizbuch zusammen mit den verwendeten Datensätzen finden Sie auf GitHub.
Um Abhängigkeitskonflikte mit Python-Paketen zu vermeiden, empfehlen wir die Einrichtung einer virtuellen Umgebung.
Für dieses Tutorial empfehlen wir die Verwendung des Meta 3.2-90b-vision-instruct-Modells mit watsonx.ai, um ähnliche Ergebnisse zu erzielen. Sie können jedes KI-Modell Ihrer Wahl verwenden, das multimodales Lernen unterstützt. Es gibt mehrere multimodale KI-Modelle zur Auswahl, darunter OpenAIs GPT-4 V(ision) und DALL-E 3 sowie Googles Gemini. Stellen Sie sicher, dass Sie die entsprechende API verwenden, wenn Sie mit anderen Modellen arbeiten, da dieses Tutorial für watsonx.ai konzipiert ist.
Erstellen Sie eine watsonx.ai Runtime -Service-Instanz (wählen Sie Ihre entsprechende Region aus und wählen Sie den Lite-Plan, der eine kostenlose Instanz ist).
Generieren Sie einen API-Schlüssel.
Verknüpfen Sie die Instanz des watsonx.ai-Runtime-Service mit dem Projekt, das Sie in watsonx.ai erstellt haben.
Für dieses Tutorial benötigen wir einige Bibliotheken und Module. Stellen Sie sicher, dass Sie Folgendes importieren; wenn diese nicht installiert sind, können Sie das Problem mit einer schnellen PIP-Installation beheben.
Um unsere Zugangsdaten einzustellen, benötigen wir die Watsonx-WATSONX_APIKEY und WATSONX_PROJECT_ID, die Sie in Schritt 1 generiert haben. Sie können sie entweder in einer .env- Datei in Ihrem Verzeichnis speichern oder Sie ersetzen den Platzhaltertext. Wir werden auch die URL festlegen, die als API-Endgerät dient.
Wir können die Klasse „Credentials“ verwenden, um unsere übergebenen Zugangsdaten zu kapseln.
In diesem Tutorial werden wir mit mehreren Bildern für multimodale KI-Anwendungen wie Bilduntertitelung und Objekterkennung arbeiten. Die von uns verwendeten Bilder können über die folgenden URLs aufgerufen werden. Wir können diese URLs in einer Liste speichern, um sie iterativ zu kodieren.
Um unsere Dateneingabe besser zu verstehen, zeigen wir die Bilder an.
Output:
url_image_0
url_image_1
url_image_2
url_image_3
Um diese Bilder so zu kodieren, dass sie für das LLM leicht zugänglich sind, codieren wir die Bilder zu Bytes, die wir dann in eine UTF-8-Darstellung dekodieren.
Nachdem unsere Bilder nun an das LLM übergeben werden können, richten wir eine Funktion für unsere watsonx API-Aufrufe ein. Die Funktion augment_api_request_body nimmt die Benutzeranfrage und das Bild als Parameter entgegen und erweitert den Inhalt der API-Anfrage. Wir werden diese Funktion in jeder Iteration verwenden.
def augment_api_request_body(user_query, image): messages = [ { "role": "user", "content": [{ "type": "text", "text": 'Sie sind ein hilfreicher Assistent. Beantworten Sie die folgende Benutzeranfrage in 1 oder 2 Sätzen: ' + user_query }, { "type": "image_url", "image_url": { "url": f"data:image/jpeg;base64,{Bild}", } }] } ] Rücknachrichten
Lassen Sie uns die Modellschnittstelle mithilfe der Klasse ModelInference instanziieren. In diesem Tutorial verwenden wir das Modell themeta-llama/llama-3-2-90b-vision-instruct.
Nun können wir unsere Bilder durchlaufen, um die vom Modell als Antwort auf die Anfrage „Was passiert auf diesem Bild?“ erzeugten Textbeschreibungen anzuzeigen.
Ausgabe:
Dieses Bild zeigt eine belebte Stadtstraße mit hohen Gebäuden und Autos sowie Menschen, die auf dem Bürgersteig unterwegs sind. Die Straße ist voller Ampeln, Bäume und Straßenschilder, und mehrere Menschen überqueren die Straße an einer Kreuzung.
Das Bild zeigt eine Frau in Sportkleidung, die die Straße entlangläuft; im Hintergrund sind ein Gebäude und ein Auto zu sehen. Die Frau trägt einen gelben Hoodie, schwarze Leggings und Turnschuhe und scheint zu joggen oder zu laufen.
Das Bild zeigt ein überflutetes Gebiet, in dem Wasser den Boden und die umliegenden Gebäude bedeckt. Die Überschwemmungen scheinen schwerwiegend zu sein, der Wasserstand reicht bei einigen Gebäuden bis zu den Dächern.
**Bildbeschreibung**
* Das Bild zeigt eine Nahaufnahme eines Nährwertetiketts, auf das ein Finger zeigt.
* Das Etikett enthält detaillierte Informationen über den Nährstoffgehalt eines bestimmten Lebensmittels, darunter:
+ Kalorien
+ Fett
+ Natrium
+ Kohlenhydrate
+ Andere relevante Informationen
* Das Etikett ist auf weißem Hintergrund mit schwarzem Text dargestellt, so dass es leicht zu lesen und zu verstehen ist.
Das Modell Llama 3.2-90b-vision-instruct war in der Lage, jedes Bild erfolgreich und sehr detailliert zu erfassen.
Nachdem wir nun die Fähigkeit des Modells zur Bild-zu-Text-Konvertierung im vorherigen Schritt gezeigt haben, stellen wir dem Modell einige Fragen, die Erkennung erfordern. Bezüglich des zweiten Bildes, das die im Freien laufende Frau zeigt, werden wir das Model fragen: „Wie viele Autos sind auf diesem Bild zu sehen?“
Ausgabe: Auf diesem Bild ist ein Auto zu sehen. Das Auto ist auf der Straße geparkt, rechts neben dem Gebäude.
Das Modell identifizierte das einzelne Fahrzeug im Bild korrekt. Nun wollen wir uns mit den auf dem Bild der Überschwemmung dargestellten Schäden befassen.
Ausgabe: Die Schäden in diesem Bild sind schwerwiegend, die Überschwemmungen bedecken einen großen Teil des Landes und können möglicherweise umfangreiche Schäden an den Gebäuden und an der Ernte verursachen. Der Wasserstand scheint mindestens bis zur Hüfte zu reichen, was zu erheblichen Verlusten für die Grundstückseigentümer und Landwirte in der Region führen könnte.
Diese Antwort unterstreicht den Wert, den multimodale KI für Bereiche wie Versicherungen hat. Das Modell war in der Lage, den Schweregrad der Schäden am überfluteten Haus zu erkennen. Dies könnte ein wirksames Instrument zur Verbesserung der Bearbeitungszeit von Versicherungsansprüchen sein.
Als Nächstes fragen wir das Modell, wie hoch der Natriumgehalt auf dem Nährwertetikett ist.
Ausgabe: **Natriumgehalt:** 640 Milligramm (mg)
Großartig! Das Modell konnte Objekte innerhalb der Bilder nach Benutzeranfragen erkennen. Wir ermutigen Sie, weitere Abfragen auszuprobieren, um die Leistung des Modells zu demonstrieren.
In diesem Tutorial haben Sie das Llama 3.2-90b-vision-instruct-Modell verwendet, um multimodale Operationen wie Bildbeschreibung und visuelle Fragebeantwortung durchzuführen. Für weitere Anwendungsfälle dieses Modells empfehlen wir Ihnen, die offizielle Dokumentationsseite zu besuchen. Dort finden Sie weitere Informationen zu den Parametern und Funktionen des Modells. Die Python-Ausgabe ist wichtig, da sie die Fähigkeit des multimodalen Systems zeigt, Informationen aus multimodalen Daten zu extrahieren.
Trainieren, validieren, optimieren und implementieren Sie generative KI, Foundation Models und maschinelle Lernfunktionen mit IBM watsonx.ai, einem Studio der nächsten Generation für AI Builder in Unternehmen. Erstellen Sie KI-Anwendungen mit einem Bruchteil der Zeit und Daten.
Setzen Sie KI in Ihrem Unternehmen ein – mit branchenführendem Fachwissen im Bereich KI und dem Lösungsportfolio von IBM an Ihrer Seite.
Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.