Vorbei sind die Zeiten, in denen ein Datenwissenschaftler 90 % seiner Zeit mit der Vorverarbeitung, der Tokenisierung, der Auswahl der richtigen Modelle und der Validierung der Ergebnisse verbringt. Der jüngste Anstieg an LLMs hat die Artwork und Weise revolutioniert, wie maschinelle Lernaufgaben in natürlicher Sprache durchgeführt werden können. In diesem Artikel verwenden wir das kürzlich von OpenAI über deren API veröffentlichte GPT-4-Modell, um eine unbeaufsichtigte Klassifizierung durchzuführen.
Das Ziel dieses Artikels besteht darin, eine Liste von Unternehmen in einen vordefinierten Satz von Kategorien einzuteilen. Als Eingabe haben wir den Namen, die URL und die Beschreibung des Unternehmens. Zum Zeitpunkt des Verfassens dieses Artikels konnten die Modelle von OpenAI nicht über die API auf das Web zugreifen. Allerdings kann die Angabe der URL des Unternehmens zusätzlichen Kontext für das Modell liefern. Wenn in Zukunft die Web-Looking-Funktion über die API verfügbar wird, bietet die Bereitstellung der URL viel mehr Kontext für das Modell.
OpenAI verfügt über eine Fülle von Modellen. Früher gab es eine Zeit, in der ein bestimmtes Modell für eine bestimmte Aufgabe intestine funktionierte. Beispielsweise übertraf davinci andere Modelle für Klassifizierungsaufgaben in natürlicher Sprache, GPT-3.5 (Chat-GPT) conflict die beste Konversations-KI usw. Aber mit GPT-4 übertrifft es bei den meisten Aufgaben problemlos alle anderen Modelle.
Der Prozess, einen API-Schlüssel von OpenAI zu erhalten, bleibt unkompliziert. GPT-4 ist nur für zahlende Benutzer aktiviert und es gibt normalerweise eine Warteliste, um Zugriff auf den GPT-4-API-Schlüssel zu erhalten. Der Preis für die API hängt von dem von uns verwendeten Modell und der Anzahl der Token ab, die wir in das Modell eingeben. Wir können uns Token als Wortteile vorstellen. Als Faustregel gilt: 750 Wörter entsprechen 1000 Token. https://platform.openai.com/tokenizer kann verwendet werden, um die Anzahl der Token in einem Textual content zu berechnen.
Es stehen zwei GPT-4-Modelle zur Verfügung (8K-Kontext und 32K-Kontext). Der Unterschied liegt hauptsächlich darin, wie viele Token wir in einer einzelnen Transaktion verwenden. Der 8k-Kontext GPT-4 kann bis zu 8000 Token in einer einzigen Transaktion verarbeiten und dieses Modell werden wir in diesem Artikel verwenden. Der Preis beträgt 0,03 $/1000 Token für Immediate-Tokens und 0,06 $/1000 Tokens für Abschluss-Tokens. Eingabeaufforderungstoken werden aus dem Textual content berechnet, den wir in das Modell eingeben, und Abschlusstoken werden aus der Ausgabe des Modells berechnet.
Der zum Ausführen der Anfrage verwendete Code ist unten angegeben. Beim GPT-4-Modell muss der Benutzer die Nachrichtenvariable als Liste von Wörterbüchern übergeben. Bei älteren Modellen wie davinci ist dies nicht erforderlich. „top_p“ und „temperatur“ sind die wichtigsten Hyperparameter, die den Grad der Zufälligkeit oder Kreativität in der generierten Ausgabe steuern. Ein niedrigerer Temperaturwert führt zu einer deterministischeren Ausgabe. Eine deterministische Ausgabe bedeutet, dass die erzeugte Ausgabe mit der Eingabe übereinstimmt. Es ist weniger Zufälligkeit oder Zufall im Spiel. Bei Klassifizierungsaufgaben möchten wir nicht, dass das Modell kreativ denkt. Daher wurde der Temperaturwert auf 0 (kleinstmöglicher Wert) gesetzt.
Der Prime-P-Parameter steuert die Anzahl der Token, die das Modell betrachtet, bevor es das beste Token für die Ausgabe auswählt. Ein Prime-P-Wert von 0,1 bedeutet, dass das Modell anhand seiner Wahrscheinlichkeit nur den nächstbesten Token aus den oberen 10 % der Token auswählt. Klicken Hier für eine ausführlichere Diskussion zu Prime P. Durch die Wahl eines Werts von Prime P = 1 in unserer Anwendung wird sichergestellt, dass das Modell alle Wörter berücksichtigt, bevor eine Ausgabe generiert wird.
Max. Token bezieht sich auf die maximale Anzahl an Token, die vom Modell generiert werden können. In unserem Fall beschränken wir ihn auf 20, um sicherzustellen, dass das Modell keine zusätzlichen unerwünschten Token oder Erklärungen erzeugt.
def execute_llm_request(immediate):
messages = [{"role": "user", "content": prompt}]
response = openai.ChatCompletion.create(
mannequin="gpt-4",
messages=messages,
temperature=0,
max_tokens=20,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
)
prompt_tokens = response["usage"]["prompt_tokens"]
completion_tokens = response["usage"]["completion_tokens"]
worth = PRICE_PER_1000_PROMPT_TOKENS * (
prompt_tokens / 1000
) + PRICE_PER_1000_COMPLETION_TOKENS * (completion_tokens / 1000)return (response["choices"][0]["message"]["content"], worth)
Die Qualität der Ausgabe hängt stark von der Qualität der prompten Eingabe in das Modell ab. Die beiden wichtigsten Leitprinzipien für ein besseres Immediate Engineering lauten wie folgt:
- Seien Sie ganz klar: Verwenden Sie Trennzeichen, fordern Sie eine strukturierte Ausgabe an und geben Sie dem Modell Beispielausgaben
- Geben Sie dem Modell Zeit zum Nachdenken: Geben Sie die Schritte an, die zur Erledigung einer Aufgabe erforderlich sind, indem Sie Schritt-für-Schritt-Anweisungen geben
Einen Beispielcodeblock, den wir zur Klassifizierung des Modells verwendet haben, finden Sie unten. Indem wir so viele Informationen wie möglich bereitstellen, dem Modell klar sagen, was Schritt für Schritt getan werden muss, und das Ausgabeformat klar spezifizieren, können wir die beiden oben genannten Leitprinzipien einhalten.
immediate = (
f"{categories_and_descriptions_text)}n"
"And the next details about the corporate:nn"
f"Title: '{org_name}'n"
f"Web site: '{org_homepage_url}'n"
f"Brief description: '{org_short_description}'n"
f"Description: '{org_long_description}'nn"
"Strictly select the class numbers from the classes talked about above.n"
"Choose as much as 3 classes provided that a number of classes are related.n"
"If the corporate doesn't match into any given classes, merely output the quantity 0n"
"The Reply must be completely the variety of the classes sepparated by comma.n"
)
Mithilfe der oben genannten Logik konnten wir Tausende von Unternehmen erfolgreich klassifizieren. Die Klassifizierungstaxonomie umfasst 4 Ebenen und das Ergebnis der Klassifizierung ist, dass ein Unternehmen entsprechend seiner Tätigkeit auf einer granularen Ebene klassifiziert wird. Die Beschreibung eines Unternehmens X lautet beispielsweise: „X entwirft und entwickelt 100 % batterieelektrische Lkw für den Verbraucher- und Gewerbemarkt.“ Das Hauptziel des Unternehmens besteht darin, Technologien zu entwickeln, die es Partnern ermöglichen, von Benzin- und Dieselfahrzeugen auf Elektroautos umzusteigen, indem sie Optionen mit minimalen Kompromissen anbieten.“ Dieses Unternehmen wurde in „Fahrzeuge“ > „Batterieelektrische Fahrzeuge“ > „Lkw“ eingeteilt.
Insgesamt gibt es 200 vordefinierte Kategorien, bestehend aus 4 Ebenen, in die jedes Unternehmen eingeordnet werden kann. Wenn diese Aufgabe manuell erledigt werden muss, kostet das ein Vermögen, wenn man bedenkt, dass wir quick 100.000 Unternehmen in der Datenbank haben. Mit GPT-4 belaufen sich die durchschnittlichen Klassifizierungskosten für ein Unternehmen auf nahezu 0,08 US-Greenback. Auch die Genauigkeit der Klassifizierung ist zufriedenstellend.
Dieses Modul wird in einer von Berylls Digital Ventures entwickelten Internet-App namens „Startup Radar“ implementiert. Startup Radar wird eine zentrale Anlaufstelle für Einblicke in das Mobilitätsökosystem von Startups und Investitionen mit kuratierten und neuesten Daten sein. Durch die Klassifizierung von Mobilitätsunternehmen in eine von Experten kuratierte Taxonomie können wir dank LLMs eine Fülle von Erkenntnissen und Möglichkeiten in jedem einzelnen Bereich des Mobilitätssektors aufdecken. Kontaktieren Sie uns gerne über LinkedIn (Clinton Charles, Malte Broxtermann, Florian Peter, Matthias Kempf, Johan Torssell) oder über die Berylls Digital Ventures Webseite.
Hat Ihnen dieser Artikel gefallen? Fühlen Sie sich frei, mir ein Comply with-up zu geben LinkedIn für weitere Inhalte zu Datenwissenschaft und Programmierung!