18 Punkte von xguru 2024-06-10 | 2 Kommentare | Auf WhatsApp teilen
  • GPT-4o berechnet im High-Resolution-Modus für jedes verwendete 512x512-Kachelbild 170 Tokens. Bei einem Verhältnis von etwa 0,75 Token/Wort entspricht das ungefähr 227 Wörtern pro Bild
    • Verglichen mit dem Sprichwort „Ein Bild sagt mehr als tausend Worte“ ist das ein Unterschied um etwa den Faktor 4
  • Die Zahl 170 ist auffällig spezifisch. OpenAI verwendet bei der Preisgestaltung normalerweise gerundete Zahlen wie „20 Dollar“ oder „0,50 Dollar“ und bei internen Dimensionen Potenzen von 2 und 3
  • Warum also eine Zahl wie 170? In der Programmierung nennt man Zahlen, die ohne Erklärung einfach in eine Codebasis geworfen werden, „Magic Numbers“, und 170 ist eine ziemlich auffällige Magic Number
  • Warum werden Bildkosten überhaupt in eine Tokenzahl umgerechnet? Wenn es nur um die Abrechnung ginge, wäre es weniger verwirrend, einfach die Kosten pro Kachel anzugeben
  • Was, wenn OpenAI 170 gewählt hat, weil es schlicht wörtlich zutrifft? Was, wenn eine Bildkachel tatsächlich als 170 aufeinanderfolgende Embedding-Vektoren dargestellt wird?

Embeddings

  • Was man sich bei Transformer-Modellen zuerst in Erinnerung rufen muss: Sie arbeiten auf Vektoren, nicht auf diskreten Tokens
    • Die Eingabe muss aus Vektoren bestehen, sonst hätte die Dot-Product-Similarity im Kern des Transformers keine Bedeutung
    • Das ganze Konzept der Tokens ist nur ein Vorverarbeitungsschritt: Text wird in Tokens umgewandelt, und die Tokens werden durch ein Embedding-Modell in Embedding-Vektoren umgewandelt, bevor sie die erste Schicht des Transformer-Modells erreichen
  • Llama 3 verwendet intern zum Beispiel 4.096 Merkmalsdimensionen
    • Nimmt man den Satz „My very educated mother just served us nine pizzas.“
    • Dann wird er durch BPE in 10 ganzzahlige Tokens umgewandelt, einschließlich des Punkts, und jedes davon wird durch ein Embedding-Modell in einen 4.096-dimensionalen Vektor umgewandelt, sodass eine 10x4096-Matrix entsteht
    • Das ist die „echte“ Eingabe für das Transformer-Modell
  • Es gibt jedoch kein Gesetz, dass diese Vektoren zwingend aus einem Text-Embedding-Modell stammen müssen
    • Das ist eine Strategie, die für Textdaten gut funktioniert, aber wenn man dem Transformer andere Datenformate zuführen will, kann man einfach eine andere Embedding-Strategie verwenden
  • Wir wissen, dass OpenAI in diese Richtung denkt, weil das Unternehmen 2021 das Embedding-Modell CLIP veröffentlicht hat
    • CLIP bettet Text und Bilder in denselben semantischen Vektorraum ein, sodass man mit Cosine Similarity Bilder finden kann, die zu einer Textzeichenfolge passen, oder Bilder, die anderen Bildern semantisch ähnlich sind
    • CLIP bettet jedoch das gesamte Bild in einen einzelnen Vektor ein, nicht in 170. GPT-4o muss intern eine andere fortgeschrittene Strategie verwenden, um Bilder zu repräsentieren, und entsprechend auch Videos, Sprache und andere Datentypen. Deshalb ist es „omnimodal“
  • Speziell für Bilddaten wird nun versucht, auf diese Strategie zu schließen

Anzahl der Merkmalsdimensionen

  • Wenn man versucht abzuschätzen, wie viele Dimensionen GPT-4o intern zur Darstellung von Embedding-Vektoren verwendet, kennt man die tatsächliche Zahl zwar nicht, weil sie proprietär ist, aber man kann vernünftige Annahmen treffen
  • OpenAI scheint Potenzen von 2 zu mögen und mischt manchmal einen einzelnen Faktor 3 hinein
    • Zum Beispiel verwendet OpenAI 1.536 für ada-002-Embeddings und 3.072 für text-embedding-3-large
    • GPT-3 verwendet bekanntermaßen insgesamt 12.288 Dimensionen
    • GPT-4o hat diesen Parameter möglicherweise beibehalten oder erhöht
  • Es wirkt zwar unwahrscheinlich, dass die Zahl der Embeddings von GPT-3 zu GPT-4o gesunken ist, aber möglich ist es
  • Releases wie GPT-4 Turbo waren tatsächlich schneller und günstiger als frühere Versionen, und falls die Entwickler Benchmark-Ergebnisse hatten, nach denen eine kleinere Größe qualitativ gleich gut ist, könnte eine Reduktion der Embedding-Dimensionen ein Teil davon gewesen sein
  • Die Zahl der intern von GPT-4o verwendeten Merkmalsdimensionen ist daher wahrscheinlich eine der folgenden: 1536, 2048, 3072, 4096, 12228, 16384, 24576
  • Hier wird angenommen, dass GPT-4o 12.228 Dimensionen für seine Embedding-Vektoren verwendet. Selbst wenn der Wert um einen Faktor von 2 oder 4 abweicht, spielt das keine große Rolle. Dasselbe Argument gilt trotzdem

Bild-Embeddings

  • Da Bildkacheln quadratisch sind, ist es wahrscheinlich, dass sie als quadratisches Token-Gitter dargestellt werden
    • 170 liegt sehr nahe bei 13x13
    • Das zusätzliche Token könnte ein einzelner Embedding-Vektor sein, der ähnlich wie bei CLIP den ganzheitlichen Gestalt-Eindruck des gesamten Bildes kodiert
  • Doch wie kommt man von 512x512x3 zu 13x13x12228?

Strategie 1: Rohpixel

  • Eine sehr einfache Methode, ein Bild in einen Vektorraum zu bringen:
    • Ein 512x512-Bild wird in ein 8x8-Gitter aus „Mini-Kacheln“ aufgeteilt
    • Jede Mini-Kachel ist 64x64x3 groß und wird zu einem Vektor mit 12.228 Dimensionen aufgefaltet
    • Jede Mini-Kachel ist ein einzelner Embedding-Vektor
    • Die gesamte Bildkachel wird als 64 aufeinanderfolgende Embedding-Vektoren dargestellt
  • Dieser Ansatz hat zwei Probleme:
    1. 64 ≠ 170
    2. Er ist ziemlich dumm (mit rohen RGB-Werten zu embeddieren und zu hoffen, dass der Transformer das schon löst, ergibt wenig Sinn)

Strategie 2: CNN

  • Zum Glück gibt es bereits Modelltypen mit genau solchen Eigenschaften, die seit über zehn Jahren Bilddaten erfolgreich verarbeiten: Convolutional Neural Networks
  • CNNs besitzen Eigenschaften wie Translation- und Scale-Invariance
  • AlexNet und YOLO sind typische Beispiele für CNN-Architekturen
  • Ein CNN ist wie ein Trichter, der Rohpixel zu semantischen Vektoren komprimiert
  • YOLO reduziert das Bild nicht auf einen einzigen flachen Vektor, sondern stoppt bei 13x13
    • Die Ausgabe von YOLOv3 sind 169 unterschiedliche Vektoren mit jeweils 1.024 Dimensionen, angeordnet in einem 13x13-Gitter
  • Es ist zu erwarten, dass das hypothetische Bild-Embedding-CNN von GPT-4o in seiner Form solchen CNN-Architekturen ähnelt
  • Es wird gezeigt, wie man mit Standard-CNN-Schichten von 512x512x3 zu 13x13x12228 gelangen könnte
    • Ein AlexNet-ähnliches Design könnte das elegant erreichen, mit 5 identischen Wiederholungsblöcken
    • Es gibt auch eine Alternative, die stärker an YOLO erinnert, aber bei 12x12 landet statt bei 13x13
  • Das lässt sich zwar nicht beweisen, aber diese spekulativen Entwürfe zeigen, dass es plausible CNN-Architekturen gibt, die Bilder als kxk-Gitter aus Embedding-Vektoren darstellen können

Experimentelle Überprüfung

  • Kann GPT-4o wirklich ein 13x13-Gitter aus Embedding-Vektoren „sehen“?
  • Um das zu testen, wurde eine von Zener-Karten inspirierte Aufgabe entworfen: Farben und Formen aller Symbole in einem Bildraster identifizieren
  • Mit einem einfachen Programm wurden Rasterbilder für den Test erzeugt, und GPT-4o wurde per Prompt aufgefordert, Form und Farbe jeder Zelle als JSON-Array zu beschreiben
  • Wenn die 13x13-Hypothese stimmt, sollte GPT-4o bis zu einer Größe von 13x13 gut abschneiden und danach an Leistung verlieren
  • In der Praxis zeigte es jedoch nur bis zu einem 5x5-Raster perfekte Leistung und brach danach schnell ein
    • Bei einem 7x7-Raster erreichte es 76 % Genauigkeit, und bei 13x13 war die Leistung auf Zufallsniveau
  • Das bedeutet, dass die Hypothese falsch ist, wonach 169 Tokens ein 13x13-Raster repräsentieren
    • Das Ergebnis mit dem 5x5-Raster deutet jedoch darauf hin, dass GPT-4o 25 unterscheidbare Objekte in einem Bild samt ihrer absoluten Position verfolgen kann
  • Das Grundkonzept könnte also stimmen, aber die Dimension wurde falsch eingeschätzt; möglicherweise könnte man das CNN um weitere Schichten erweitern, um statt auf 13x13 auf 5x5 zu reduzieren
  • Unter der Annahme, dass nur bis zu 5x5-Raster verwendet werden, muss man darüber nachdenken, wie sich die Ausgabe strukturieren ließe, um auf 170 Tokens zu kommen

Pyramidenstrategie

  • Eine Möglichkeit, auf Zahlen nahe 85 und 170 zu kommen, besteht darin anzunehmen, dass das Bild wie eine Reihe von Pyramiden auf zunehmend feineren Ebenen kodiert wird
    • Man beginnt mit einem einzelnen Embedding-Vektor, um den Gesamteindruck des Bildes zu erfassen, fügt dann 3x3 hinzu, um links/Mitte/rechts und oben/Mitte/unten abzudecken, und ergänzt anschließend 5x5, 7x7 usw.
  • Diese Strategie kommt den 85 Tokens für das „Master-Thumbnail“ sehr nahe, wenn man bei 7x7 aufhört
    • 12+32+52+72=1+9+25+49=84
  • Fügt man am Ende ein 9x9-Raster hinzu, kommt man 170 sehr nahe
    • 12+32+52+72+92=1+9+25+49+81=165
  • Für die 512x512-Kacheln lässt sich eine perfekte Übereinstimmung erzielen, wenn man ein vorläufiges 2x2-Raster verwendet und für jede Kachel ein spezielles <|image start|>-Token annimmt
    • 1+12+32+52+72=1+1+9+25+49=85
    • 1+12+22+32+52+72+92=1+1+4+9+25+49+81=170
  • Dieses Schema hat zwar keine Art Trennzeichen für Zeilenanfang und -ende, aber das ließe sich wohl über Positionskodierung in 2D handhaben, ähnlich wie RoPE zur Kodierung von Positionsinformationen bei Text-Tokens verwendet wird
  • Das Obige passt nicht vollständig zu den Belegen, dass die Leistung beim Zener-Raster nach 5x5 zu sinken beginnt, weil nur ungerade Rastergrößen berücksichtigt werden und 5x5 übersprungen wird
  • Als Alternative könnte man alle Raster bis 5x5 betrachten, also gerade und ungerade
    • Dieser Ansatz liefert 55 Tokens: 12+22+32+42+52=55
  • Nimmt man 3 Tokens pro Mini-Kachel und 1 Trennzeichen-Token zwischen den Kacheln an, lässt sich 170 erreichen
    • 3×(12+22+32+42+52)+5=170
  • Numerisch ist das nicht völlig zufriedenstellend, aber mit den empirischen Ergebnissen stimmt es gut überein
  • Die Pyramidenstrategie ist intuitiv sehr attraktiv und wirkt fast wie die „offensichtliche“ Methode, räumliche Informationen auf verschiedenen Zoomstufen zu kodieren
    • Das könnte erklären, warum sie bei 5x5-Rastern und darunter gut funktioniert, bei 6x6 und darüber jedoch sehr schwach
  • Alle Hypothesen scheinen faszinierend nah daran zu sein, alles zu erklären, aber die Zahlen gehen am Ende nie ganz sauber auf
    • Trotzdem ist eine solche Pyramidenstrategie das Beste, was mir einfällt

Optische Zeichenerkennung (OCR)

  • Keine der obigen Hypothesen erklärt, wie GPT-4o OCR durchführt
    • CLIP kann von Haus aus OCR nicht besonders gut, zumindest nicht bei größeren Textblöcken
    • (Dass GPT-4o überhaupt OCR beherrscht, ist dennoch ziemlich erstaunlich und ein klares Beispiel für emergente Fähigkeiten)
  • GPT-4o kann offenbar hochwertiges OCR ausführen
    • Es kann lange Textblöcke transkribieren und handschriftlichen Text oder verschobenen, gedrehten, perspektivisch verzerrten oder teilweise verdeckten Text lesen
  • Moderne OCR-Engines leisten bereits viel Arbeit, um Bilder zu bereinigen, Begrenzungsrahmen und Textstreifen für Zeichen zu finden und dann entlang dieser Streifen spezielle Zeichenerkennungsmodelle auszuführen, jeweils Zeichen für Zeichen oder Wort für Wort
    • Es ist nicht einfach nur ein großes CNN
  • Theoretisch könnte OpenAI tatsächlich ein so gutes Modell gebaut haben, aber das passt nicht zur relativ schwachen Leistung bei den Zener-Raster-Aufgaben
    • Wenn es die 36 Symbole eines sauberen 6x6-Rasters in einem Bild nicht lesen kann, sollte es auch nicht Hunderte von Textzeichen perfekt lesen können
  • Eine einfache Theorie, um diesen Widerspruch zu erklären:
    • Ich vermute, dass OpenAI ein fertiges OCR-Werkzeug wie Tesseract ausführt (oder ein proprietäres Werkzeug auf dem neuesten Stand der Technik) und den erkannten Text zusammen mit den Bilddaten in den Transformer einspeist
    • Das würde erklären, warum frühe Versionen so leicht durch im Bild versteckten Text verwirrt wurden (aus Sicht von GPT-4o war dieser Text Teil des Prompts)
      • Das wurde inzwischen behoben, und GPT-4o ist geschickt darin, bösartige versteckte Prompts innerhalb von Bildern zu ignorieren
  • Allerdings erklärt das nicht, warum für den im Bild gefundenen Text keine Gebühren pro Token anfallen
  • Interessanterweise ist es tatsächlich effizienter, Text als Bild zu senden
    • Ein 512x512-Bild mit kleiner, aber lesbarer Schrift kann leicht 400–500 Text-Tokens enthalten, es werden aber nur 170 Eingabe-Tokens berechnet, plus 85 für das „Master-Thumbnail“, also insgesamt 255 Tokens (deutlich weniger als die Wortzahl des Bildes)
  • Diese Theorie erklärt, warum bei der Bildverarbeitung zusätzliche Latenz entsteht
    • CNNs sind im Wesentlichen sofort da, aber OCR von Drittanbietern würde zusätzliche Zeit kosten
    • Übrigens ist in der Python-Umgebung, die der OpenAI Code Interpreter verwendet, PyTesseract installiert (was zwar nichts beweist, aber dennoch interessant ist)
      • Man kann darum bitten, PyTesseract auf ein hochgeladenes Bild auszuführen, um eine zweite Meinung zu bekommen

Fazit

  • Im Wesentlichen habe ich aus einer einzigen harten Tatsache, nämlich dass OpenAI die magische Zahl 170 verwendet hat, eine Menge Spekulationen abgeleitet
  • Es scheint jedoch einen völlig plausiblen Ansatz zu geben, der stark mit anderen CNN-Architekturen wie YOLO übereinstimmt, nämlich Bilderkacheln auf Embedding-Vektoren abzubilden
  • Daher glaube ich nicht, dass die 170 Tokens einfach nur ein Näherungswert sind, um ungefähr den für die Bildverarbeitung nötigen Rechenaufwand zu berechnen
  • Ich glaube auch nicht, dass dabei Schichten verkettet werden, um Bild- und Textdaten zu kombinieren, wie es manche anderen multimodalen Modelle tun
  • Ich denke, GPT-4o verwendet eine CNN-Architektur, die eine Mischung aus CLIP und YOLO ist, und bettet Bilder direkt in den semantischen Vektorraum des Transformers ein, sodass ein 512x512-Bild buchstäblich durch 170 Embedding-Vektoren dargestellt wird
  • Als ich diesen Artikel begann, war ich überzeugt, vollständig entschlüsselt zu haben, dass die 170 Tokens für ein 13x13-Raster und ein zusätzliches Token für den „Gestalteindruck“ stehen
    • Doch als die Leistung bei der Zener-Aufgabe nach 5x5 nachzulassen begann, zerplatzte diese Theorie. Was intern auch immer passiert, es scheint viel kleiner als 13x13 zu sein
  • Trotzdem ist die Analogie zu YOLO überzeugend, und die Leistung bei der 5x5-Zener-Aufgabe bestätigt fast schon, dass eine Art Raster verwendet wird
  • Diese Theorie hat auch in anderen Bereichen viel Vorhersagekraft
    • Sie erklärt, wie GPT-4o mehrere Bilder verarbeiten und Aufgaben wie den Vergleich zweier Bilder durchführen kann
    • Sie erklärt, warum es mehrere Objekte im selben Bild sehen kann, aber überfordert ist, wenn in einer komplexen Szene zu viele Objekte vorhanden sind
    • Sie erklärt, warum GPT-4o bei den absoluten und relativen Positionen einzelner Objekte in einer Szene sehr vage wirkt und warum es Objekte in einem Bild nicht exakt zählen kann (wenn sich ein Objekt über zwei benachbarte Rasterzellen erstreckt, wird dieselbe Klasse in beiden aktiviert, sodass unklar bleibt, ob es ein oder zwei Objekte sind)
  • Ironischerweise ist das Einzige, was diese Theorie nicht sauber erklären kann, genau die Frage, die ursprünglich der Anlass für diesen Artikel war: Warum ausgerechnet 170 Tokens?
    • Die Pyramidentheorie (1x1 + 2x2 + 3x3 + 4x4 + 5x5) war das Beste, was mir eingefallen ist, aber wirklich elegant ist sie nicht
  • Ich würde gern hören, ob jemand eine Theorie hat, die etwas besser passt (oder tatsächliches Wissen, sofern es nicht gegen eine NDA verstößt)

Nachtrag: Täuschung durch den Alpha-Kanal

  • Bei diesem Projekt zeigte sich, dass GPT-4o den Alpha-Kanal ignoriert und sich dadurch etwas kontraintuitiv verhält
  • Mit „ignoriert“ ist nicht gemeint, dass ein Bildeditor beim Umwandeln von PNG in JPG Transparenz entfernt, indem er es auf einen Standardhintergrund rendert
    • GPT-4o nimmt buchstäblich nur die RGB-Kanäle und ignoriert den Alpha-Kanal
  • Das lässt sich mit vier sorgfältig vorbereiteten Bildern zeigen
    • Der Einfachheit halber wurden die Bilder per HTML und CSS über einem Schachbrettmuster angezeigt; die Bilder selbst haben einen flachen, transparenten Hintergrund
    • Allerdings hat die eine Hälfte einen transparenten schwarzen Hintergrund und die andere Hälfte einen transparenten weißen Hintergrund
  • Was bedeutet „transparentes Schwarz“ oder „transparentes Weiß“?
    • Wenn eine RGBA-Farbe in 4 Bytes dargestellt wird, existieren die RGB-Bytes auch dann weiterhin, wenn Alpha 100 % beträgt
    • Daher sind (0, 0, 0, 255) und (255, 255, 255, 255) in gewissem Sinne unterschiedliche Farben, aber weil beide 100 % transparent sind, gibt es keine Situation, in der ein korrekter Renderer sie unterschiedlich anzeigen würde
  • Fragt man GPT-4o, was es in diesen vier Bildern „sieht“:
    • Schwarzer Text auf transparent schwarzem Hintergrund: GPT-4o liest „“
    • Schwarzer Text auf transparent weißem Hintergrund: GPT-4o liest „ENORMOUS“
    • Weißer Text auf transparent schwarzem Hintergrund: GPT-4o liest „SCINTILLA“
    • Weißer Text auf transparent weißem Hintergrund: GPT-4o liest „“
  • Was passiert hier also?
    • Es zeigt sich das Muster, dass GPT-4o Text nur lesen kann, wenn sich die Textfarbe von der „Farbe“ des transparenten Hintergrunds unterscheidet
    • Das zeigt, dass GPT-4o den Alpha-Kanal ignoriert und nur auf die RGB-Kanäle schaut. Für GPT-4o ist transparentes Schwarz schwarz, und transparentes Weiß ist weiß
  • Deutlicher wird das, wenn man ein Bild manipuliert, indem man die drei RGB-Kanäle beibehält und den Alpha-Kanal auf 100 % setzt
    • Dafür wurde eine Pillow-Funktion verwendet
    • Damit wurden die beiden folgenden Bilder erzeugt, deren RGB-Daten identisch sind und sich nur im Alpha-Kanal unterscheiden
      • Alpha-Kanal = 255: GPT-4o kann das versteckte Schnabeltier leicht erkennen
      • Alpha-Kanal = 0: Für GPT-4o wirkt das Bild vollständig transparent
  • Man kann hidden_platypus.png herunterladen und direkt in ChatGPT einfügen; es wird korrekt beschrieben
    • Auffällig ist, dass die Bildgröße mit 39,3 KB identisch zu platypus.png ist; wäre es ein vollkommen leeres und transparentes Bild, müsste es wegen der PNG-Komprimierung deutlich kleiner sein
    • Alternativ kann man mit der obigen Funktion den Alpha-Kanal wieder auf 255 setzen und so das ursprüngliche Bild wiederherstellen
  • Ob das ein Bug ist, ist nicht sicher, aber es ist auf jeden Fall ein überraschendes Verhalten, das sich so anfühlt, als könnten böswillige Nutzer damit Informationen direkt an GPT-4o vorbeischmuggeln, ohne dass Menschen sie sehen
  • Allerdings ist GPT-4o viel besser als GPT-4v darin, in Bildern versteckte böswillige Prompts zu erkennen und zu ignorieren
    • In der mit dem image_tagger-Utility erzeugten Galerie von GPT-4o-Testbildern finden sich weitere Beispiele dafür, dass GPT-4o in Bildern versteckte böswillige Prompts erfolgreich erkennt und ignoriert
  • Selbst wenn es also ein Bug ist, bleibt unklar, ob er sich tatsächlich ausnutzen lässt
  • Trotzdem wäre es weniger überraschend, wenn GPT-4o dasselbe „sehen“ würde wie ein Mensch im Browser

2 Kommentare

 
hi098123 2024-06-10

Daher sind (0, 0, 0, 255) und (255, 255, 255, 255) in gewissem Sinne unterschiedliche Farben, aber da beide zu 100 % transparent sind, gibt es keine Situation, in der ein korrekter Renderer sie unterschiedlich anzeigen würde.

Für Transparenz müsste der Alpha-Wert 0 sein, also (0, 0, 0, 0) und (255, 255, 255, 0); im Haupttext ist also wohl ein Tippfehler.

 
xguru 2024-06-10

Hacker-News-Kommentare

  • Bedarf an einer modernen Open-Source-Alternative: Es gibt einen dringenden Bedarf an einer modernen Open-Source-Alternative zu Tesseract, die auf aktuellen Machine-Learning-Techniken basiert. Die derzeit verwendeten LLMs sind überdimensioniert und teuer.
  • OCR-Fähigkeiten von Llava1.6, IntenVL und CogVLM2: Diese Modelle können OCR allein mit gekachelten Bild-Embeddings und einem LLM durchführen. Wenn man die OCR-Ergebnisse von Tesseract als Eingabe hinzufügt, steigt die Zuverlässigkeit, notwendig ist das aber nicht.
  • Texterkennung mit CLIP-Embeddings: CLIP-Embeddings können Text „lesen“, wenn er groß genug ist. Durch Tiling lässt sich auch kleiner Text lesen.
  • Neugier und offene Erkundung: Ich liebe die Neugier und die offene Erkundung dazu, wie diese Technik funktioniert. Auch die Verbindung zur Renormierungsgruppen-Theorie für die Interpretation von Machine-Learning-Modellen ist interessant.
  • Effizienz bei der Übertragung von Text als Bild: Es könnte effizienter sein, Text als Bild zu übertragen. Mit kleiner Schrift lassen sich problemlos 400–500 Tokens in einem 512x512-Bild unterbringen.
  • Mangelnde Dokumentation von OpenAI: Ich verstehe nicht, warum OpenAI keine klare und umfassende Dokumentation bereitstellt. Für Menschen, die die API nutzen, ist dieser Mangel an Dokumentation ein großes Hindernis.
  • Fehler bei der Bildverarbeitung in GPT-4: Ich habe erlebt, dass GPT-4 Vision Inhalte verfälscht, wenn es per OCR ein einzelnes Bild verarbeitet, das mehrere PDF-Seiten darstellt. Mit einer klaren Dokumentation von OpenAI hätte man solche Probleme wohl besser vermeiden können.
  • Qualität des Artikels: Ich finde, dieser Artikel ist sehr gut geschrieben. Er erklärt das Thema leicht verständlich und zugleich mit Tiefe. Um etwas einfach erklären zu können, muss man es gut verstehen.
  • Möglicher Einsatz von VQVAE: Es besteht die Möglichkeit, mit VQVAE ein Token-Wörterbuch zu erstellen und Bilder per Encoder umzuwandeln.
  • Kosten des Bild-zu-Token-Mappings: Das Mapping von Bildern auf Token-Embeddings könnte etwa 170-mal mehr Rechenaufwand und Speicherplatz verbrauchen als das Mapping auf Token-IDs.
  • Möglichkeit von 13x13-Tiling: Es ist nicht ausgeschlossen, dass 13x13-Tiling wegen überlappender rezeptiver Felder kein 13x13-Objektraster erkennen kann. Möglich wäre auch eine Pyramide aus überlappenden Tiling-Auflösungen.
  • Methode zum Testen der GPT-4-Leistung: Die Methode, die Leistung von GPT-4 zu testen, indem man JSON für farbige Formen in einem 7x7-Raster anfordert, ist äußerst clever.