GPT vs. BERT: Was ist besser? Vergleich zweier großsprachiger Modelle… | von Pranay Dave | Juni 2023

0
27


Vergleich zweier großsprachiger Modelle: Ansatz und Beispiel

Bild erstellt von DALLE und PPT vom Autor (https://labs.openai.com/s/qQgpAQbLi0srYlZHOHQjGKWh)

Die zunehmende Beliebtheit der generativen KI hat auch zu einer Zunahme der Anzahl großer Sprachmodelle geführt. In dieser Geschichte werde ich zwei davon vergleichen: GPT und BERT. GPT (Generative Pre-trained Transformer) wird von OpenAI entwickelt und basiert auf einer reinen Decoder-Architektur. Andererseits wurde BERT (Bidirektionale Encoder-Repräsentationen von Transformers) von Google entwickelt und ist ein vorab trainiertes Modell nur für Encoder

Beide sind technisch unterschiedlich, haben aber ein ähnliches Ziel: Aufgaben zur Verarbeitung natürlicher Sprache auszuführen. Viele Artikel vergleichen die beiden aus technischer Sicht. In dieser Geschichte würde ich sie jedoch anhand der Qualität ihres Ziels vergleichen, nämlich der Verarbeitung natürlicher Sprache.

Wie kann man zwei völlig unterschiedliche technische Architekturen vergleichen? GPT ist eine reine Decoder-Architektur und BERT ist eine reine Encoder-Architektur. Ein technischer Vergleich einer Nur-Decoder-Architektur mit einer Nur-Encoder-Architektur ist additionally wie ein Vergleich von Ferrari mit Lamborgini – beide sind großartig, aber mit völlig unterschiedlicher Technologie unter dem Chassis.

Wir können jedoch einen Vergleich anhand der Qualität einer gemeinsamen Aufgabe in natürlicher Sprache anstellen, die beide bewältigen können – nämlich der Generierung von Einbettungen. Bei den Einbettungen handelt es sich um Vektordarstellungen eines Textes. Die Einbettungen bilden die Grundlage jeder Verarbeitungsaufgabe natürlicher Sprache. Wenn wir additionally die Qualität von Einbettungen vergleichen können, kann uns dies dabei helfen, die Qualität von Aufgaben in natürlicher Sprache zu beurteilen, da Einbettungen die Grundlage für die Verarbeitung natürlicher Sprache durch die Transformatorarchitektur bilden.

Unten ist der Vergleichsansatz dargestellt, den ich wählen werde.

Vergleichsansatz (Bild vom Autor)

Ich habe eine Münze geworfen und GPT hat den Wurf gewonnen! Beginnen wir additionally zunächst mit GPT. Ich werde Textual content aus dem Amazon-Datensatz für Feinkostbewertungen übernehmen. Rezensionen sind eine gute Möglichkeit, beide Modelle zu testen, da Rezensionen in natürlicher Sprache erfolgen und sehr spontan erfolgen. Sie umfassen die Gefühle der Kunden und können alle Arten von Sprachen enthalten – gute, schlechte, hässliche! Darüber hinaus können sie viele falsch geschriebene Wörter, Emojis und häufig verwendete Umgangssprache enthalten.

Hier ist ein Beispiel für den Rezensionstext.

Beispiel einer Kundenrezension (Bild vom Autor)

Um die Einbettungen des Textes mithilfe von GPT zu erhalten, müssen wir einen API-Aufruf an OpenAI durchführen. Das Ergebnis ist eine Einbettung oder ein Vektor mit einer Größe von 1540 für jeden Textual content. Hier sind Beispieldaten, die die Einbettungen enthalten.

Vom Modell erhaltene Einbettungen (Bild vom Autor)

Der nächste Schritt ist Clustering und Visualisierung. Man kann KMeans verwenden, um den Einbettungsvektor zu gruppieren, und TSNE verwenden, um die 1540 Dimensionen auf 2 Dimensionen zu reduzieren. Unten sind die Ergebnisse nach Clustering und Dimensionsreduzierung dargestellt.

GPT-Einbettungscluster (Bild vom Autor)

Man kann beobachten, dass die Cluster sehr intestine geformt sind. Wenn Sie mit der Maus über einige der Cluster fahren, können Sie die Bedeutung der Cluster besser verstehen. Der rote Cluster steht beispielsweise im Zusammenhang mit Hundefutter. Eine weitere Analyse zeigt auch, dass GPT-Einbettungen korrekt erkannt haben, dass die Wörter „Canine“ und „Dawg“ ähnlich sind, und sie in denselben Cluster eingeordnet haben.

Insgesamt liefern GPT-Einbettungen gute Ergebnisse, wie die Qualität des Clusterings zeigt.

Kann BERT eine bessere Leistung erbringen? Finden wir es heraus. Es gibt mehrere Versionen des BERT-Modells, z. B. Bert-Base-Case, Bert-Base-Uncased usw. Im Wesentlichen haben sie unterschiedliche Einbettungsvektorgrößen. Hier ist das Ergebnis basierend auf der Bert-Foundation mit einer Einbettungsgröße von 768.

BERT-Einbettung (768) Clustering (Bild vom Autor)

Der grüne Cluster entspricht Hundefutter. Allerdings ist zu beobachten, dass die Cluster weit verteilt und im Vergleich zu GPT nicht sehr kompakt sind. Der Hauptgrund ist, dass die Einbettungsvektorlänge von 768 im Vergleich zur Einbettungsvektorlänge von 1540 von GPT geringer ist.

Glücklicherweise bietet BERT auch eine höhere Einbettungsgröße von 1024. Hier sind die Ergebnisse.

BERT-Einbettung (1024) Clustering (Bild vom Autor)

Hier entspricht die orangefarbene Gruppe dem Hundefutter. Der Cluster ist relativ kompakt, was im Vergleich zur Einbettung von 768 ein besseres Ergebnis darstellt. Allerdings gibt es einige Punkte, die weit vom Zentrum entfernt sind. Diese Punkte sind falsch klassifiziert. Es gibt zum Beispiel eine Rezension für Kaffee, aber er wurde fälschlicherweise als Hundefutter eingestuft, weil er das Wort „Hund“ enthält.

Offensichtlich leistet GPT im Vergleich zu BERT bessere Arbeit und bietet Einbettungen mit höherer Qualität. Allerdings möchte ich GPT nicht alle Ehre machen, da der Vergleich noch andere Aspekte hat. Hier ist eine Übersichtstabelle

GPT überzeugt BERT aufgrund der Einbettungsqualität, die durch die höhere Einbettungsgröße erreicht wird. Für GPT warfare jedoch eine kostenpflichtige API erforderlich, während BERT kostenlos ist. Darüber hinaus ist das BERT-Modell Open Supply und kein Blackbox-Modell, sodass Sie weitere Analysen durchführen können, um es besser zu verstehen. Die GPT-Modelle von OpenAI sind Black-Field-Modelle.

Zusammenfassend würde ich die Verwendung von BERT für mittelkomplexe Texte wie Webseiten oder Bücher mit kuratiertem Textual content empfehlen. GPT kann für sehr komplexe Texte wie Kundenrezensionen verwendet werden, die vollständig in natürlicher Sprache verfasst und nicht kuratiert sind.

Hier ist ein Python-Codeausschnitt, der den in der Geschichte beschriebenen Prozess implementiert. Zur Veranschaulichung habe ich ein GPT-Beispiel gegeben. Das BERT-Modell ist ähnlich.


##Import packages
import openai
import pandas as pd
import re
import contextlib
import io
import tiktoken
from openai.embeddings_utils import get_embedding
from sklearn.cluster import KMeans
from sklearn.manifold import TSNE

##Learn knowledge
file_name = 'path_to_file'
df = pd.read_csv(file_name)

##Set parameters
embedding_model = "text-embedding-ada-002"
embedding_encoding = "cl100k_base" # this the encoding for text-embedding-ada-002
max_tokens = 8000 # the utmost for text-embedding-ada-002 is 8191
top_n = 1000
encoding = tiktoken.get_encoding(embedding_encoding)
col_embedding = 'embedding'
n_tsne=2
n_iter = 1000

##Will get the embedding from OpenAI
def get_embedding(textual content, mannequin):
openai.api_key = "YOUR_OPENAPI_KEY"
textual content = textual content.substitute("n", " ")
return openai.Embedding.create(enter = [text], mannequin=mannequin)['data'][0]['embedding']

col_txt = 'Evaluation'
df["n_tokens"] = df[col_txt].apply(lambda x: len(encoding.encode(x)))
df = df[df.n_tokens <= max_tokens].tail(top_n)
df = df[df.n_tokens > 0].reset_index(drop=True) ##Take away if there no tokens, for instance clean traces
df[col_embedding] = df[col_txt].apply(lambda x: get_embedding(x, mannequin='text-embedding-ada-002'))
matrix = np.array(df[col_embedding].to_list())

##Make clustering
kmeans_model = KMeans(n_clusters=n_clusters,random_state=0)
kmeans = kmeans_model.match(matrix)
kmeans_clusters = kmeans.predict(matrix)

#TSNE
tsne_model = TSNE(n_components=n_tsne, verbose=0, random_state=42, n_iter=n_iter,init='random')
tsne_out = tsne_model.fit_transform(matrix)

Der Datensatz ist hier mit der Lizenz CC0 Public Area verfügbar. Sowohl die kommerzielle als auch nichtkommerzielle Nutzung ist gestattet.

Bitte abonnieren um auf dem Laufenden zu bleiben, wenn ich eine neue Geschichte veröffentliche.

Du kannst auch Treten Sie Medium bei mit meinem Empfehlungslink

Sie können meine Web site besuchen, um Analysen ohne Programmieraufwand durchzuführen. https://experiencedatascience.com

Bitte besuchen Sie meinen YouTube-Kanal, um anhand von Demos mehr über Knowledge Science und KI-Anwendungsfälle zu erfahren



Source link

HINTERLASSEN SIE EINE ANTWORT

Please enter your comment!
Please enter your name here