Man schätzt, dass die Menschen täglich mehr als fünftausend Werbebotschaften zu sehen bekommen. Unternehmen, Produkte und Organisationen versuchen alle, sich visuell ansprechend und unverwechselbar zu präsentieren. Große Unternehmen geben manchmal riesige Sum men aus, um ihre Marke zu entwickeln, aber der Rest von uns muss oft improvisieren und wendet sich an Online-Logoersteller wie Looka oder Tailor Brands als Ausgangspunkt. Mit diesen Diensten können Sie mit wenigen Klicks ein Logo erstellen, indem Sie Text, visuelle Elemente und Stilmerkmale auswählen. Die Erstellung eines Logos ist in der Regel kostenlos, aber wenn Sie eine hochwertige, vektorisierte Version herunterladen möchten, müssen Sie einen kleinen Betrag zahlen.
Logo-Generatoren bedienen einen bestimmten Markt, und die daraus resultierenden Logos sehen schick aus. Der Generierungsprozess ist jedoch weitgehend "vorlagenbasiert", wobei eine feste Anzahl visueller Elemente wie Symbole, Schriftarten und Farben auf vorgegebene Weise kombiniert werden.
In gewisser Weise sind Logo-Generatoren, die auf Vorlagen basieren, mit cleveren, interaktiven Kochbüchern vergleichbar. Aber was wäre, wenn Sie stattdessen einen echten Koch zu sich nach Hause kommen lassen könnten, um ein einzigartiges Gericht zu kochen? Generative KI-Modelle wie DALL-E 1 und 2 von OpenAI und Imagen und Parti von Google haben gezeigt, dass sie in der Lage sind, komplexe Konzepte zu kombinieren und zu integrieren und sie in qualitativ hochwertige visuelle Darstellungen zu übersetzen, die von menschlicher Kreativität nicht zu unterscheiden sind, ihr aber sehr nahe kommen. Was wäre, wenn wir ein spezielles generatives KI-Modell entwickeln könnten, das wirklich kreative und aussagekräftige Logos erzeugt, die nicht nur clevere Kombinationen vorgefertigter Elemente sind, sondern genauso gut wie echte Logos? Hinzu kommt, dass Logos ein gemeinsames symbolisches Verständnis der Bedeutung und des Sinns haben, den sie zu vermitteln versuchen (Semiotik). Könnten wir ein KI-Modell dazu bringen, diese Bedeutung zu verstehen und nicht nur "attraktive" Logos zu erstellen, sondern Logos, die unseren menschlichen Erwartungen und Konventionen entsprechen? Dieser Blogpost dokumentiert die Entwicklung eines Proof-of-Concept-Demonstrators eines DALL-E-ähnlichen Modells zur Erzeugung von Logos. Wir besprechen die Datenerfassung, die Vorverarbeitung, die Erzeugung von Beschriftungen, das Modelltraining und die Ergebnisse. Wenn Sie direkt zur interaktiven Demo springen möchten, können Sie zu Replicate gehen.
Bevor wir uns mit der Datenaufbereitung befassen, die den größten Teil dieses Blogposts einnehmen wird, ist es sinnvoll, kurz bei dem Modell stehen zu bleiben, das wir verwenden wollten, da es viele unserer nachfolgenden Entscheidungen bestimmte.
Als wir mit diesem Projekt begannen, war DALL-E 1 der Stand der Technik bei der textbasierten Bilderzeugung, so dass es die logische Wahl war. Genauer gesagt haben wir uns entschieden, mit minDALL-E zu beginnen, einer quelloffenen PyTorch-Implementierung einer kleineren DALL-E-Variante, die das ursprüngliche, vortrainierte VQGAN mit einem GPT-ähnlichen Transformator mit 1,3b Parametern kombiniert, der auf 14 Millionen Bild-Text-Paaren trainiert wurde.
Ohne zu sehr ins Detail zu gehen, besteht minDALL-E aus zwei Teilen:
Zur Trainingszeit müssen Sie zunächst den Bild-Tokenizer (VQGAN) trainieren, um die Bilder im Datensatz anhand von Bild-Token zu rekonstruieren. Sobald dies geschehen ist, können Sie den Bild-Token-Prädiktor (GPT) trainieren, um sequentiell vorherzusagen, welche Bild-Token angesichts der bereitgestellten Text-Token vorhanden sein sollten (Vorhersage des Bildes auf der Grundlage der Bildunterschrift)
Zur Inferenzzeit, wenn ein Logo erzeugt werden soll, wird die Eingabeaufforderung in Text-Token umgewandelt, die vom Transformator (GPT) zur Vorhersage von Bild-Token verwendet werden, die dann vom Decoder des Bild-Tokenizers in ein neues, zuvor nicht gesehenes Bild übersetzt werden.
Ausgangspunkt unserer Datensammlung ist der Wikipedia-basierte Image Text Dataset(WIT), der aus über 11 Millionen Bildern mit umfangreichen Textbeschreibungen und Metadaten besteht, die es uns ermöglichen, relativ einfach nach Logos zu filtern. Weitere nützliche offene Datensätze, die wir gefunden haben, sind der Large Logo Dataset(LLD, 120k Logos) und der WebLogo-2M Dataset (2 Mio. Logos mit schwachen Bezeichnungen). Diese werden durch Logos ergänzt, die wir mit Selenium automatisch online von öffentlichen Websites gesammelt haben. Seit kurzem ist auch der Laion-5b-Datensatz (5b Bild-Text-Paare) verfügbar, den wir für diese Untersuchung noch nicht verwenden, der sich aber in Zukunft als nützliche Ergänzung erweisen könnte.
Der erste Schritt besteht darin, alle Bilder in das jpeg-Dateiformat zu konvertieren und die Größe anzupassen. Eine Herausforderung dabei ist, dass einige Dateitypen transparente Hintergründe zulassen, unser Modell aber jpeg-Dateien (ohne Transparenz) erfordert. Um dieses Problem zu lösen, müssen wir die richtige Hintergrundfarbe anhand der Ränder des Logos erraten und sie vor der Konvertierung des Bildes ausfüllen. Das ist oft alles andere als einfach, und es hat sich herausgestellt, dass eine weitere manuelle Bereinigung erforderlich ist.
Zweitens erfordert unser Modell jpg-Bilder mit einer Größe von 256x256 Pixeln, was für ein Logo nicht sehr groß ist, insbesondere wenn es viel Text enthält. Darüber hinaus enthalten viele der von uns gesammelten Dateien eine beträchtliche Menge an Leerraum um die Logos herum, was natürlich eine Verschwendung von Informationen darstellt und beschnitten werden muss. Zu diesem Zweck verwenden wir die Python-Bildbearbeitungsbibliothek, um den Unterschied zwischen dem Logobild und einem Bild mit nur der Hintergrundfarbe zu berechnen und auf diesen Bereich zuzuschneiden. Zu kleine Bilder werden entfernt und die anderen in die richtige Form und Größe umgewandelt.
Wir stellen schnell fest, dass die von uns gesammelten Daten nicht als solche verwendet werden können, sondern dass eine ernsthafte Filterung und Bereinigung erforderlich ist. Zunächst einmal braucht man für die textbasierte Bilderzeugung Paare aus Bildern und Text. Einige Informationen lassen sich aus den Bildern selbst ableiten, aber wenn man das Logo mit einem Unternehmen oder Produkt, einer Branche oder mit anderen Markeninformationen verknüpfen will, braucht man Metadaten und vorzugsweise auch kontextbezogene Informationen. Dies schließt einige der offenen Datensätze sofort aus.
Zweitens handelt es sich bei Bildern von Logos oft um reale Bilder von Objekten mit Logos wie Autos oder Gebäuden. Darüber hinaus sind einige Bilder von Logos nicht einmal Logos, wie man sie sich vorstellt, z. B. historische Embleme und Papierstempel. Da wir saubere Logos erzeugen wollen, die mehr oder weniger für die Verwendung auf einer Website geeignet sind, wollen wir diese herausfiltern.
Eine sehr nützliche Heuristik zur Erkennung von Nicht-Logobildern ist die Betrachtung der Dateigröße. Logos sind digitale Bilder, die aus einer begrenzten Anzahl von Farben bestehen, die in Blöcken von mehreren Pixeln auftreten. Das bedeutet, dass sie sehr leicht zu komprimieren sind. Komprimierte Bilder mit einer sehr kleinen Dateigröße sind höchstwahrscheinlich "leer" oder enthalten große weiße Streifen, während Bilder mit einer großen Dateigröße höchstwahrscheinlich Informationen mit hoher Frequenz enthalten, was typisch für Bilder aus der realen Welt ist. Wir wählen daher einen unteren und einen oberen Schwellenwert und behalten nur die Bilder, die dazwischen liegen.
Schließlich sind viele Elemente Duplikate oder Beinahe-Duplikate (z. B. gelegentliche Varianten), von denen Sie nicht zu viele in Ihrem Datensatz haben möchten, um Verzerrungen zu vermeiden. Für die Erkennung von Duplikaten verwenden wir ein vortrainiertes CNN, das auf ImageNet trainiert wurde und in seinen letzten Schichten Allzweckrepräsentationen enthält. Wir kodieren alle Bilder unseres (bereits gefilterten) Datensatzes mit dem Modell und speichern ihre Einbettungen. Anschließend berechnen wir die Abstände zwischen diesen Einbettungen, um die semantische Ähnlichkeit zwischen den einzelnen Bildpaaren zu ermitteln. Wenn die Einbettungen zweier Bilder nahe beieinander liegen, haben sie einen sehr ähnlichen Inhalt.
Durch Versuch und Irrtum lernen wir, dass wir mehrere Filter- und Bereinigungstechniken iterativ kombinieren müssen, und oft müssen wir nach einer weiteren Vorverarbeitung darauf zurückgreifen, um eine weitere Bereinigung durchzuführen. Die Verarbeitung von Daten in der realen Welt kann eine hässliche Angelegenheit sein. Wir wenden verschiedene Techniken an, um minderwertige Daten in mehreren Schritten zu reduzieren. Auf diese Weise erhalten wir einen Datensatz von etwas mehr als 140.000 unterschiedlichen Logobildern mit Kontextinformationen.
Ein gutes Logo ist meist ein geschicktes Zusammenspiel von Text, Schrift, Farben und Bildern. Um dies zu ermöglichen, müssen wir den Bildunterschriften der Logos die entsprechenden Informationen hinzufügen, damit das Modell die richtigen Assoziationen lernen kann. Ein erster Schritt besteht also darin, den genauen Text aus dem Logo zu extrahieren. Wir testen mehrere Optionen und entscheiden uns dann für den Google Cloud Vision API OCR-Dienst, der im Modus text_detection sehr gut in der Lage ist, Text aus einer Vielzahl von Bildern zu extrahieren, darunter auch Verkehrszeichen und Logos.
Wir möchten dem Benutzer auch die Möglichkeit geben, die wichtigsten Farben im Logo auszuwählen, aber diese Information ist nur selten in den Metadaten oder im umgebenden Text verfügbar. Daher beschließen wir, die Hintergrund- und die wichtigsten Vordergrundfarben aus den Bildern selbst zu extrahieren, indem wir Colorgram, Color Thief und die Python Image Library verwenden. Wir definieren eine Liste von gewünschten Farbnamen und gleichen die extrahierten Farben mit diesen ab.
Außerdem wird häufig zwischen verschiedenen Logotypen unterschieden, von denen wir einige gezielt generieren wollten. Zu diesem Zweck haben wir einen Klassifikator trainiert, der 6 verschiedene Logotypen vorhersagt: Buchstabenmarke, Wortmarke, Symbol, abstraktes Maskottchen und Emblem (wie hier beschrieben). Dann haben wir 600 Logos mit Labelbox manuell beschriftet und einen Out-of-the-Box-Klassifikator MobileNetV2 feinabgestimmt.
Wir extrahieren Schlüsselwörter aus einer Beschreibung des Unternehmens oder der Organisation, die hinter dem Logo steht, mit Hilfe eines vortrainierten Satzumwandlers, der einer KeyBERT-Architektur zugrunde liegt. Der Grundgedanke ist, dass diese Schlüsselwörter Aufschluss darüber geben, wofür das Unternehmen steht und wie es wahrgenommen werden möchte. Beide Aspekte spiegeln sich höchstwahrscheinlich in der Gestaltung des Logos wider (d. h. ein Technologieunternehmen, das als modern und innovativ wahrgenommen werden möchte, wird sich wahrscheinlich für ein minimalistisches Logo entscheiden, während eine Bank, die als stabil und vertrauenswürdig wahrgenommen werden möchte, ein traditionell aussehendes Emblem wählen wird).
Einige Beispiele von Organisationen zusammen mit den wichtigsten Schlüsselwörtern, die wir für sie extrahiert haben
Im Idealfall hätte man eine oder mehrere von Menschen erstellte Beschreibungen für jedes Logo, aber die Beschriftung von 140k Bildern wäre unerschwinglich teuer. Da wir uns in der Bootstrapping-Phase befinden, werden wir die automatische Beschriftung mit ClipCap ausprobieren, einem System, das CLIP und GPT2 geschickt kombiniert, um Beschreibungen für bisher ungesehene Bilder in freier Wildbahn zu finden.
ClipCap ist auf den kleineren Conceptual Captions-Datensatz abgestimmt, der etwas mehr als 3 Mio. Bild-Text-Paare enthält, von denen die meisten Bilder von Szenen, Objekten oder Landschaften und nicht von Logos sind. Trotzdem liefert es akzeptable Ergebnisse, wenn es auf Logos angewandt wird, wobei in einigen Fällen lediglich festgestellt wird, dass es sich um ein "Logo" handelt. In anderen Fällen erkennt ClipCap Stilmerkmale, visuelle Elemente oder liefert sogar so etwas wie eine Interpretation.
Bei der Erstellung einer Beschriftung wird der Text Token für Token mit Hilfe des GPT2-Decoder-Netzwerks von ClipCap nacheinander erzeugt. Bei jedem Schritt gibt dieses Modell eine Wahrscheinlichkeitsverteilung von Wörtern aus, die für die Beschriftung geeignet sind. Da wir diese Verteilung erhalten, haben wir mehrere Möglichkeiten, unsere Beschriftung zu konstruieren. Die einfachste (und langweiligste) Methode ist, immer das Wort mit der höchsten Wahrscheinlichkeit (und der geringsten Entropie) zu nehmen. Dies ist natürlich etwas kurzsichtig, denn das beste Wort an einem bestimmten Punkt ist nicht unbedingt das beste Wort insgesamt.
Eine Alternative zu dieser Methode ist eine Stichprobe aus der Wahrscheinlichkeitsverteilung der Ausgabe. Dadurch erhalten wir variablere Beschriftungen, da das Wort mit der höchsten Wahrscheinlichkeit nicht immer sehr informativ ist und wir durch die Einbeziehung einiger weniger offensichtlicher Wörter interessantere Sätze erhalten können. Außerdem können wir durch Hinzufügen eines Temperaturparameters den Grad des "Abenteurertums" des Stichprobenmechanismus beeinflussen. Eine niedrigere Temperatur macht das Modell zuversichtlicher, so dass es häufiger die sicherere, wahrscheinliche Option wählt; eine höhere Temperatur gleicht die Verteilung stärker aus, was zu einer variableren Auswahl führt (siehe Abbildung unten).
Eine andere Erweiterung dieser Stichprobentechnik, die als Balkensuche bezeichnet wird, besteht darin, mehrere Sequenzen (oder Balken) anstelle von nur einer zu konstruieren und am Ende zu prüfen, welche Sequenz die beste Gesamtbewertung hat. Durch Änderung der Balkengröße wird ein Kompromiss zwischen dem erforderlichen Rechenaufwand und der Qualität der Bildunterschrift gefunden.
Für den Teil der Pipeline, der sich mit der Beschriftung befasst, führen größere Bilder im Allgemeinen zu besseren Ergebnissen, ebenso wie die Verwendung der Balkensuche mit der Größe 5 und die Anpassung der Temperatur auf 0,3. Dies ergibt eine schöne Kombination aus wahrheitsgetreuen, aber kreativen und semantisch reichen Beschreibungen.
Eine letzte Herausforderung bei der Datenverarbeitung besteht darin, alle gesammelten Informationen zu kohärenten, aber gleichzeitig ausreichend variablen Bildunterschriften mit fast 64 Text-Token zu kombinieren, mit denen wir unser Modell trainieren können. Nachdem wir den DALL-E-Artikel noch einmal gelesen und den Blogpost noch einmal gelesen haben, entscheiden wir, dass es am besten ist, die verfügbaren 64 Text-Token bis zur Grenze zu füllen, um dem Modell so viele Informationen wie möglich zu geben, mit denen es arbeiten kann, wenn es Bild-Token vorhersagt.
Für jedes Logo stehen uns die folgenden Informationen zur Verfügung:
Als Nächstes erstellen wir ein Skript, um Permutationen von Sätzen zu generieren und die verfügbaren Informationselemente so weit wie möglich umzuordnen, um Verzerrungen in Position und Reihenfolge zu vermeiden und gleichzeitig einen gewissen Anschein von natürlicher Sprache zu wahren. Wir unterscheiden auch zwischen mehreren Phasen, um Verzerrungen einzuschränken, da einige Begriffe häufiger vorkommen als andere, wie zum Beispiel Farben. Jede Phase enthält zehn generierte Beschriftungen, aus denen das Modell zur Trainingszeit eine auswählt.
Als Ausgangspunkt verwenden wir die vortrainierten Standardgewichte von minDALLE. Der erste Schritt ist die Feinabstimmung von VQGAN. Dieses VQGAN-Modell wurde bereits mit einer Vielzahl von Daten trainiert, darunter auch, aber nicht nur, Computergrafiken wie Logos. Obwohl dieses Encoder-Decoder-Netzwerk Bilder bereits recht gut rekonstruieren kann, kann es speziell bei Logobildern noch viel besser abschneiden. Daten aus der realen Welt enthalten in der Regel hochfrequente Informationen, da es in natürlichen Bildern eine große unregelmäßige Vielfalt an Farben und Texturen gibt. Logos hingegen bestehen im Allgemeinen aus gleichfarbigen Flächen mit relativ einfachen Formen.
Wir wollen, dass VQGAN uns scharfe Kanten und schöne, gleichmäßig gefärbte Flächen liefert, um unsere Logos zu rekonstruieren, was eine gewisse Feinabstimmung des Modells erfordert. Während der Feinabstimmung können wir deutlich die Verbesserungen in diesen Aspekten erkennen, und wir sehen, dass der Verlust mit jeder Epoche abnimmt. Wir trainieren das Modell vierzig Epochen lang, bis wir mit der Qualität der Ergebnisse zufrieden sind. Zu diesem Zeitpunkt ist das Modell noch nicht überangepasst, so dass weitere Qualitätssteigerungen durch zusätzliches Training möglich sind.
Der allgemeine Ablauf beim Training des DALL-E-Modells besteht darin, einen Stapel von Bildunterschriften aus der Trainingsmenge zu kodieren und zu lernen, die diskreten Bild-Token von VQGAN vorherzusagen (siehe auch den Abschnitt über das Modell oben). Jedes dieser Token stellt eine eigene Klasse dar, und dieser Schritt wird in der Regel mit dem Cross-Entropy-Verlust trainiert.
Zusätzlich zu dieser autoregressiven Bild-Token-Vorhersage gibt es, um sinnvolle Texteinbettungen zu erlernen, die die Beziehungen zwischen den Wörtern erfassen, einen Sprachmodellierungsverlust, ähnlich dem, der zum Trainieren der autoregressiven Decoder-only-GPT-Modelle verwendet wird. Dieser wird mit einer bestimmten Gewichtung zum Gesamtverlust addiert, um die Auswirkungen der Sprach- und Bildmarkenvorhersageverluste auszugleichen.
Beim eigentlichen Training dieses Modells für die textbedingte Bilderzeugung stellen wir schnell fest, dass unser Datensatz nicht sehr groß ist und dass unser Modell groß genug ist, um sich einen Großteil davon zu merken. Dies führt schnell zu einer Überanpassung, bei der das Modell die Daten auswendig lernt, anstatt verallgemeinerbare Prinzipien abzuleiten. Dadurch erreicht es eine hervorragende Leistung bei gesehenen Daten, aber eine miserable bei ungesehenen Daten, was natürlich nicht das ist, was wir wollen!
Es gibt im Wesentlichen drei Möglichkeiten, das Overfitting zu bekämpfen: Vergrößerung des Trainingsdatensatzes, Verkleinerung des Modells oder Anwendung der Regularisierung. Da die ersten beiden Möglichkeiten nicht in Frage kommen, wenden wir verschiedene Regularisierungstechniken an, um die Fähigkeit des Modells, Dinge auswendig zu lernen, einzuschränken und es zu zwingen, nützlichere Darstellungen zu lernen, die sich auf den Testsatz verallgemeinern lassen. Zu den verwendeten Techniken gehören Focal Loss, Gradient Clipping, Weight Decay und Caption Variation, die alle im Folgenden näher erläutert werden. Mit diesem angepassten Setup führen wir eine Feinabstimmung des Modells für 15 Epochen durch, bis es anfängt, überzupassen.
Zunächst einmal ersetzen wir den Kreuzentropieverlust durch einen Verlust, der für klassenungleiche Datensätze besser geeignet ist. Aber wie kann unser Datensatz unausgeglichen sein, werden Sie sich fragen? Da wir nicht direkt das gesamte Bild vorhersagen, sondern eher Segmente (in Form von Bild-Token), kommen einige Token in Logos viel häufiger vor als andere, z. B. das Token, das einen schwarzen oder weißen Hintergrund darstellt. Diese sind sehr viel häufiger als ein exotischer Bildausschnitt mit Text und mehreren Farben darin (wobei letzterer eigentlich wichtiger ist). Um die Auswirkungen dieser dominanten Token (die sichereren Token) zu reduzieren, implementieren wir den Focal Loss. Dabei handelt es sich um einen angepassten Kreuzentropieverlust, der den Token, die nicht gut vorhergesagt werden (und daher eine geringere Wahrscheinlichkeit haben), mehr Gewicht verleiht (in Form von Verlusten) und das Gewicht der Klassen, die bereits mit einer angemessenen Wahrscheinlichkeit vorhergesagt werden, verringert. Dadurch verlagert sich der Schwerpunkt des Modells von der Optimierung der einfacheren Teile auf die Bewältigung der schwierigeren Aufgaben.
Eine zweite Regularisierungstechnik ist die Gradientenbeschneidung, die die Größe der Gradienten während des Trainings begrenzt und die Wahrscheinlichkeit verringert, dass das Modell durchdreht. Für den Fall, dass eine bestimmte Probe (oder ein Stapel) einen seltsamen und/oder absurd hohen Gradienten ergibt, der die Modellgewichte in eine unerwünschte Richtung drängt, wird die Auswirkung begrenzt. Obwohl die Gradienten im Allgemeinen in eine günstige Richtung weisen, wollen wir nicht bei jeder Aktualisierung zu große Änderungen vornehmen.
Eine weitere Technik, die auf die Gradienten angewendet wird, ist der Gewichtsverfall. Dabei handelt es sich um eine bekannte Technik, bei der die Größe der Modellgewichte in die Verlustfunktion einbezogen wird. Die Idee dahinter ist, dass es sehr einfach ist, alle Trainingsdaten zu lernen, wenn die Modellgewichte einen beliebigen Wert annehmen können. Durch die Einschränkung dieser Gewichtsgrößen, indem die Amplituden der Gewichte zum Verlust mit dem L2-Verlust addiert werden, bleiben die Modellgewichte innerhalb vernünftiger Grenzen und erhalten eine bessere Chance, Merkmale zu lernen, die weithin verwendbar sind und tatsächlich nützliche Informationen enthalten, die während der Inferenz verwendet werden können.
Eine letzte wichtige Technik, die wir anwenden, besteht darin, die Vielfalt der Bildunterschriften zu erhöhen, die mit jedem Bild verbunden sind. Wie im Abschnitt über die Generierung von Bildunterschriften beschrieben, können wir eine Liste von Bildunterschriften für jedes Bild generieren und in jeder Trainingsepoche eine zufällig zuweisen. Auf diese Weise hat das Modell nicht die Möglichkeit, nur die direkte Zuordnung von Text zu Bild zu lernen, sondern muss vielmehr die semantischen Informationen innerhalb der Bildunterschriften lernen.
Nicht alles, was wir ausprobieren, funktioniert jedoch wie geplant. Wir definieren separate Zeicheneinbettungen, um die Generierung von Text innerhalb des Logos zu steuern, indem wir ihn der Texteingabe hinzufügen. Der Hauptgrund dafür ist, dass das Modell klar erkennen kann, welcher Text sich tatsächlich im Bild befindet und nicht Teil des semantischen Inhalts ist.
Obwohl dies ein vernünftiger Ansatz zu sein scheint, ist es in der Praxis sehr schwierig für das Modell, diese Art von komplexen Informationen zu lernen (Zeichen, Schriftarten, Gehäuse, Farben, Größe, Richtung usw.). Auch wenn es 1,3 B Parameter hat, ist es immer noch relativ klein und hat es schwer, diese neue Art von Informationen in seine Vorhersagen einzubeziehen. Wenn man sich die Originalarbeit von DALL-E und andere große multimodale Modelle ansieht, wird deutlich, dass die Fähigkeiten der Modelle mit der Größe des Modells skalieren und dass ein solch komplexes Verhalten auftritt, wenn es größer und schlechter wird (die so genannten Skalierungsgesetze).
Ein zweiter Grund ist, dass wir einen relativ kleinen Datensatz mit "nur" 140k Bildern haben und dass die Textinformationen in einem Logo oft einen Markennamen enthalten und daher einzigartig sind. Dadurch kann das Modell recht leicht beginnen, Texte eins zu eins mit Bildern zu assoziieren und eine Überanpassung vorzunehmen. Dies führt zu einer Verschlechterung der Modellleistung und zu einem "Mode Collapse" (d. h., dass das Modell immer wieder dieselben Stichproben erzeugt).
Insgesamt sind wir mit den Ergebnissen sehr zufrieden, da wir wissen, dass dies die erste funktionierende Version eines Proof of Concept Demonstrators ist. Nachfolgend finden Sie einige Beispiel-Prompts mit jeweils vierzig (nicht herausgepickten) generierten Logos, geordnet nach nicht feinabgestimmter CLIP.
Einige unserer Beobachtungen sind die folgenden:
Beim Vergleich mit Logos, die mit dem ursprünglichen minDALL-E (unten) generiert wurden, fällt auf, dass unser Ansatz vielfältigere, konsistentere und visuell ansprechendere Ergebnisse liefert. Beim Vergleich mit dem neueren Laion-Ai/Erlich-Diffusionsmodell fällt auf, dass unser Ansatz schneller und "kreativer" ist, da die generierten Logos vielfältiger sind. Die erlich generierten Logos können jedoch viel besser mit Text umgehen und sind näher an einem Endprodukt.
Wir sind davon überzeugt, dass die KI-gestützte Logoerstellung bald Realität sein wird (und dass KI auch eine Reihe anderer komplexer kreativer Prozesse steuern wird). Unsere hier beschriebene Übung hat gezeigt, dass fortschrittliche generative KI-Modelle wie DALL-E einzigartige, qualitativ hochwertige Ergebnisse erzeugen können, die dem menschlichen Verständnis und der Semiotik entsprechen und im Grunde genommen mit der menschlichen Kreativität mithalten können.
Wir machen diese Aussage sogar auf der Grundlage unseres relativ "kleinen" Modells und sind der festen Überzeugung, dass eine weitere Erweiterung und Feinabstimmung unseres Datensatzes dazu beitragen wird, unsere Ergebnisse für den Einsatz in der realen Welt fit zu machen. Über den Datensatz hinaus können weitere Verbesserungen vorgenommen werden, z. B. durch die Verwendung eines latenten Diffusionsmodells, durch gezieltes Vortraining z. B. für Schriftarten und Icons, durch die Verwendung eines fein abgestimmten ML-basierten Beschriftungsgenerators und durch eine Feinabstimmung von CLIP, um die Ergebnisse zu ordnen.
Schließlich hat dieses Experiment wieder einmal gezeigt, wie schnell sich KI entwickeln und lernen kann. Dies deutet darauf hin, dass der Input der Nutzer in Verbindung mit dem vorhandenen Fachwissen ein wesentlicher Faktor für den Erfolg sein wird. Dies stellt eine Herausforderung für bestehende Kreativprozesse dar, denen es oft an klaren Erfolgsfaktoren und KPIs mangelt (z. B. How Brands Grow - Distinctive Brand Assets für einen Versuch, dies messbar zu machen). Das Fehlen einer klaren Designsprache (was ist für Sie "minimal"?) und eines Bewertungsmodells (ein "gutes" gegenüber einem "schlechten" Logo) erschwert den Lernprozess für KI. Unabhängig davon wird es darauf ankommen, relevante (und getestete) Klassifikatoren zur bestehenden Datenbank hinzuzufügen und aus Benutzereingaben und implizitem Feedback zu lernen. Interessanterweise glauben wir, dass dies, wenn es gut gehandhabt wird, tatsächlich eine neue Ära des wissenschaftlicheren Marketings einleiten könnte.
Sie können die interaktive Demo auf Replicate testen.
Wir danken Bert Christiaens, Karel Haerens, Mathias Leys und Elina Oikonomou für ihre Arbeit an der Demo und diesem Blogpost sowie Daan Raemdonck für die Bereitstellung seines Fachwissens. Wir möchten auch dem Vlaams Supercomputer Centrum(VSC) und Tim Jaenen von der Forschungsstiftung Flandern(FWO) für die Nutzung ihrer Infrastruktur danken.