Qwen-VL: Bilder Chinesisch verstehen

Mit Qwen-VL Bilder Chinesisch verstehen

Avatar von Johann-Peter Hartmann

Bevor wir uns mit Qwen-VL und dem Sinn hinter der etwas kryptischen Headline beschäftigen, müssen wir ein wenig ausholen …

Es steckt viel Geld in der AI-Landscape und deshalb möchte jeder mitspielen, ohne den anderen unnötigerweise etwas abzugeben. OpenAI ist inzwischen weit weg von „Open“ und veröffentlicht weder Architekturen noch Papers noch Sourcecode oder trainierte Modelle. Google verhält sich ähnlich und auch AWS behält seine Sachen lieber bei sich. 

Um der Marktvormachtstellung dieser Parteien zu entkommen, wählen andere Firmen Open Source, weil sie sich dort Vorteile auf Basis der Community erhoffen – in Mitarbeit wie in der Nutzung ihrer Werkzeuge. Drei Parteien verdienen da explizite Erwähnung.

Offenes aus Amerika und Europa

Facebooks Research-Abteilung Meta.ai vereint einige der besten Forscher der Welt. Einer der Gründe dafür ist die aktuelle Strategie, die Informationen in Architektur, in Source und in Modellen öffentlich zu machen. Sie wollen kein Geld damit verdienen, aber sie wollen selbst von AI profitieren; und sie wollen gute Leute anlocken. Erwähnenswerte Services von ihnen: LLMs wie Llama2, Programmier-LLMs wie CodeLLama, Image-Tools wie Segment Anything, oder SeamlessM4T für universelle Übersetzung von Sprache und Text – und natürlich das Fundament der meisten aktuellen Modelle, PyTorch selbst. 

Profitiert Meta von diesen Angeboten und der Arbeit der Community?

Ja, mit Ausrufezeichen. Das Konzept geht auf.

Hugging Face kommt als Paris und ist eine seltsame Kombination von Entwicklerplattform, Serviceanbieter und Open-Source-Produzent. Mit Transformers stellen sie analog zu Metas PyTorch eine der wichtigsten Libraries in der ML-Programmierung bereit. Darüber hinaus stellen sie das GitHub der trainierten Modelle mit dem entsprechenden Speicher-Bedarf – oft inklusive der Integration in Transformers, damit es auch für alle schnell und bequem nutzbar wird. 

Ohne Hugging Face würde es viele Innovationen gar nicht, mit deutlich mehr Aufwand oder verzögert geben.


AI-Dossier: Grundlagen, Sprachmodelle & Agenten

AI-Dossier: Grundlagen, Sprachmodelle und Agenten

Lerne die Schlüsselaspekte und neuesten Entwicklungen im Bereich der Künstlichen Intelligenz kennen. Wie können KI-Agenten die Effizienz steigern, Kosten senken und innovative Lösungen für branchenübergreifende Herausforderungen bieten?


Offene AI aus China

ModelScope kommt aus dem Hause Alibaba. Auch hier möchte man den Nutzern eine Alternative bieten. Mit den eigenen Forschungsteams und dem Fokus auf „Industrial AI“ – also AI, die für viele einfach anwendbar wird – ist man gar nicht so weit von dem entfernt, was in Paris durch Hugging Face geschieht. Deshalb bietet man seit Kurzem auch analog eine vergleichbare Plattform – eben modelscope.cn – an, und stellt auf dieser ähnlich eigene Modelle und Implementierungen zur Verfügung; oft aus den eigenen Teams. Und dort findet man völlig konkurrenzfähig zu Meta und dem Rest der Welt sehr interessante Modelle, die im Regelfall nicht nur „zufällig“ auch Chinesisch sprechen, sondern auch auf englisch verblüffend gute Ergebnisse liefern.

Qwen-VL

Eines meiner liebsten und aktuellen Beispiele ist Qwen-VL, ein multimodales Large Language Model, konkreter noch ein „Large Vision Language Model“. Und im Gegensatz zu bisherigen Lösungen wie Llava oder MiniGPT-4, die vor allem LLMs mit um Bild erweiterten Eingangskanal sind, sind die Bilder hier voll integriert.

Und das erlaubt einige Dinge, die recht sexy sind. Die Beispiele stammen von Qwen-VL.

Analog zu Llava und MiniGPT-4 kann man direkt Fragen zu den Bildern stellen:

Beispiel aus der QwenLM-Dokumentation
query = tokenizer.from_list_format([
    {'image': 'assets/mm_tutorial/Rebecca_(1939_poster).jpeg'},
    {'text': 'What is the name of the movie in the poster?'},
])

The name of the movie in the poster is „Rebecca.“

Weil es sich aber um echtes Sprachverständnis durch das LLM handelt, kann man hier noch einen Schritt weiter gehen:

query = tokenizer.from_list_format([
    {'text': 'Who directed this movie?'},
])
response, history = model.chat(tokenizer, query=query, history=history)
print(response)

The movie „Rebecca“ was directed by Alfred Hitchcock.

Bilderkennung mit Intelligenz

Aber das ist noch lange nicht alles, schließlich haben wir es hier mit etwas zu tun, was im Gegensatz zu OCR den Inhalt des Bildes versteht und nicht nur den Text findet. Wie weit dieses Verstehen geht, zeigt das nächste Beispiel.

In diesem Fall darf es uns gleich ausrechnen, wie viel wir im Restaurant für die gewünschte Bestellung bezahlten dürfen. Damit es zuverlässiger wird, prompten wir hier mit dem Chain-of-Thought-Prompt „Think step by step.“

Die Karte eines Restaurants, ebenfalls aus der QwenLM-Dokumentation.
query = tokenizer.from_list_format([
    {'image': 'assets/mm_tutorial/Menu.jpeg'},
    {'text': 'How much would I pay if I want to order two Salmon Burger and three Meat Lover\'s Pizza? Think carefully step by step.'},
])
response, history = model.chat(tokenizer, query=query, history=None)
print(response)

To order two Salmon Burgers and three Meat Lover’s Pizzas, you would need to pay the following:

1. For two Salmon Burgers: x2 Salmon Burgers at $10 each = $20
2. For three Meat Lover’s Pizzas: x3 Meat Lover’s Pizzas at $12 each = $36

Therefore, the total cost would be $56

Das ist aber längst nicht alles.

Bilder als First Class Citizen im Large Language Model

Weil wir es hier aber nicht nur mit einem Abfragesystem zu tun haben, geht es noch weiter. Wir können nämlich nicht nur Texte, sondern auch Bild als Ausgabe bekommen. In diesem Fall unser eigenes Beispiel:

query = tokenizer.from_list_format(
    [
        {
            "image": "https://www.bmi.bund.de/SharedDocs/bilder/DE/schmuckbilder/moderne-verwaltung/paesse-ausweise/personalausweis_vorderseite_ab_august_2021.jpg?__blob=normal&v=2"
        },
        {"text": "What is the given name and what is the surname of the woman?"},
    ]
)
response, history = model.chat(tokenizer, query=query, history=None)
print(response)
 
response, history = model.chat(tokenizer, "Do a box around the face.", history=history)
image = tokenizer.draw_bbox_on_latest_picture(response, history)
image.save("1.jpg")

Und zurück bekommen wir in diesem Fall nicht nur eine neue Ausgabe, sondern im Gegensatz zu anderen multimodalen Modellen wie Llava auch ein Bild als Ausgabe, auf dem das per Prompt erkannte Gesicht markiert wurde.

The given name of the woman is Erika. The surname of the woman is Mustermann.

Box per Prompt

Bilder prompten jenseits von Bilderzeugung

Damit können wir also nicht nur one-shot-OCR machen, sondern wir können auch Dinge im Bild erkennen, segmentieren und ausschneiden – und das ganz ohne Training. Man kann sogar logische Fragen, Übersetzungen und Berechnungen damit zustande bringen. Unter der sehr liberalen Apache-Lizenz und mit veröffentlichten trainierten Modellen, die meist auch unmittelbar danach für uns mit Chinesisch nur so mittel vertrauten Zentraleuropäern auch auf Hugging Face bereitgestellt werden. 

Neben diesem Werkzeug findet man viele andere auf modelscope.cn. Größtenteils, wie auch in diesem Fall, unter der sehr liberalen Apache-2-Lizenz.

Es lohnt sich also, die Google-Translate-Browser-Extension zu installieren und einfach mal auf modelscope.cn zu schauen, was es da alles so Schönes zu entdecken gibt.

Es lohnt sich.

Avatar von Johann-Peter Hartmann

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert


Für das Handling unseres Newsletters nutzen wir den Dienst HubSpot. Mehr Informationen, insbesondere auch zu Deinem Widerrufsrecht, kannst Du jederzeit unserer Datenschutzerklärung entnehmen.