Experiment mit der OpenAI API: Wie ich versuchte, mithilfe von KI die neuesten KI-Errungenschaften zusammenzufassen
Wenn die KI dabei helfen soll, Nachrichten schneller zu kompensieren

Experiment mit der OpenAI API: Wie ich versuchte, mithilfe von KI die neuesten KI-Errungenschaften zusammenzufassen

Ich habe mein Wochenende damit verbracht, die GPT-3 API von OpenAI auf ihre sinnvolle Anwendbarkeit auf eines meiner Alltagsprobleme anzuwenden.

Der Plan war es, eine Anwendung zu schreiben, die sich über die Google News Search die 10 letzten Nachrichten (der letzten 24 Stunden) zu einem Thema, in meinem Fall Artificial Intelligence, raussucht, sie zusammenfasst und letztlich einen kurzen Beitrag darüber verfasst. Der finale Beitrag sollte so geschrieben sein, dass er mir morgens ein erstes Update über neue Errungenschaften und Erkenntnisse auf KI Ebene weltweit verschafft.

Es wurde kein Alt-Text für dieses Bild angegeben.
SerpWow hat auch eine schöne Online Spielwiese, kostenlos

Zunächst habe ich per API und mit Hilfe von SerpWow die News-Seiten ermittelt und die Links zum weiteren Crawlen gesammelt. Zwar geben die Suchergebnisse selber schon eine Vorschau auf die dahinterliegende Texte, die Vorschau ist aber zu kurz und verleitet GPT-3 zu eigenen Annahmen und Mutmaßungen, die aufgrund der „alten“ Datenbasis von GPT-3 keinen Mehrwert bieten.

Es wurde kein Alt-Text für dieses Bild angegeben.
Zuerst, mit der SerpWow API verbinden


Das nächste „Problem“ trat auf, als ich die News-Seiten crawlen wollte. Wie die meisten sicher schon mitbekommen haben, hat sich etwas lästiges, wenn auch nachvollziehbares, namens Paywall auf Newsseiten breit gemacht. Inhalt gegen Bares. Da sich das nicht immer zuverlässig umgehen lässt, musste ich eben diese Ergebnisse rausschmeissen. So wurde aus einer Newsliste von 10 Ergebnissen ein Sammelsurium von 5 crawlbaren Seiten.


Es wurde kein Alt-Text für dieses Bild angegeben.
Die Paywall als Wächter der interessanten Seiten


Die nächste „Herausforderung“ war weitreichender. Selbst, wenn ich die Newsseiten crawlen kann, habe ich die Aufgabe, den weitesgehend sinnvollen, oder eben gewünschten Inhalt bei all dem weiteren Text rauszufiltern. Ich wollte weder eine Navigation an die GPT-3 API weitergeben, noch irgendwelche Footer Links oder Cross-Reading Schlagzeilen.

Und hier kommen wir auch schon an die erste Grenze von GPT-3. Ich habe es einmal probeweise gemacht, eben den kompletten Seiteninhalt übergeben und ich bekam einen unfassbar kreativen, mit dem eigentlichen Thema rein gar nichts zu tun habenden Text zurück.

Das war aber nicht der einzige Grund, weshalb ich den Content filtern musste. GPT-3 hat einen Maximalwert an so genannten Tokens, die per Prompt, also per API übergeben werden können. Die Grenze liegt hier bei 4000 Tokens, die nicht ganz Wörtern entsprechen, also ist es im Voraus schwer zu planen, wie viel übergeben wird, da die auszulesenden Texte mir ja zuvor unbekannt sind. Der Knackpunkt bei diesen 4000 Tokens ist außerdem, dass die Zahl für Input als auch für Output gemeinsam zählt. Als Beispiel, übergebe ich Content mit 3900 Tokens, bekomme ich nur noch 100 Tokens zurück. Das sorgt im schlechtesten Fall nicht für gute Ergebnisse.


Es wurde kein Alt-Text für dieses Bild angegeben.
Dann mit OpenAI verbinden und den Prompt abschicken


Da ich aber ohnehin die Ergebnisse einzeln zusammenfassen und anschließend als Ganzes noch einmal bündeln lassen wollte, musste ich einen sinnvollen Wert finden, der übergeben werden kann, damit das Ergebnis aufschlussreich war. Wenn ich also 2000 Tokens übergebe, so die Überlegung, habe ich noch gut 2000 +- für eine sinnvolle Aufbereitung der Texte. Bei 10 Texten heißt das, jeder Text darf maximal 200 Zeichen in einen Volltext einbringen, sodass der finale Text genug Tokens zur Verfügung hat, dass er bei der Begrenzung von 4000 Tokens die Möglichkeit bekommt, verständlichen Inhalt zu vermitteln.

Hatte ich endlich Text in nutzbarer Länge, habe ich diesen erneut an die OpenAI API übergeben und mir daraus eine Zusammenfassung all meiner verschiedenen News-Texte geben lassen.

Das Ergebnis war einfach nur katastrophal. Der Sinn verschwand komplett aus den Texten, vielmehr erschuf die API eine Utopie aus der Zusammennudelung verschiedener Texte, gepaart mit eigenen Ideen, wie man den Text anschaulicher machen kann. All das hatte leider nichts mit dem zu tun, was die fleißigen Reporter erzählen wollten.

Meiner Grundidee treu, suchte ich nach Mitteln, der KI trotz Token-Limit mehr Informationen zur Verfügung stellen zu können. Und wer sagt es denn, GPT-3 kann Texte lesen, auch wenn es kein einziges Leerzeichen mehr gibt. Dadurch konnte ich den übergebenen Text erweitern und GPT-3 durfte mehr Text nutzen, mir eine lesbare und informative Zusammenfassung zu geben.

Das Ergebnis war… katastrophal.


Es wurde kein Alt-Text für dieses Bild angegeben.
Wenn die ganze Arbeit einen erst mal ernüchtert...

Wenn man sich einmal vor Augen führt, was GPT-3 an der Stelle versucht, ist es auch einleuchtend. Die GPT-3 API nimmt Text entgegen und führt ihn fort. Mit all den übermittelten Texten schreibt die KI einfach nur weiter.

Das ist für mich einer der wichtigsten Punkte, der aus diesem kleinen Versuch hervorgeht. Die KI hinter GPT-3 versteht nicht wirklich, was sie „liest“. Wie alle KIs nutzt sie die Technik der Mustererkennung. Mit Hilfe vieler Synonyme und Wort- und Satz-Muster erkennt sie, in welche Richtung ein Text geht, was er erwartet, bzw. wohin er sich entwickeln kann.

Erwarte ich eine Zusammenfassung aus 10 verschiedenen Texten, werden die von der KI gemischt und als ein Text genutzt, der entsprechend weiter „gedacht“ und kreativ fortgesetzt wird.


Es wurde kein Alt-Text für dieses Bild angegeben.
Viel Code kam, noch mehr Code musste am Ende wieder gehen

Da ich schon einiges an Erfahrung mit chatGPT sammeln konnte wusste ich, wer den Prompt versteht, beherrscht die KI. Oder so ähnlich. Ich möchte damit sagen, wer weiß, wie er mit der KI sprechen muss, wie er den übergeben Text in einen Kontext bringen muss, bestimmt das Ergebnis.

Wenn ich mich also darauf einlasse, dass Texte nur fortgeführt, also ergänzt werden, dann spiele ich das Spiel gerne mit.

Eine komplette Zusammenfassung konnte ich nun erstmal nicht mehr erwarten, so funktioniert die KI leider nicht. Aber ich hatte ja im 2. Schritt, im ersten Schritt gegenüber der KI einzelne Texte zusammenfassen lassen. Also Planänderung, nehme ich eben diese und lasse sie sinnvoll, kurz aber verständlich aufbereiten.

Um für mich noch schneller zu entscheiden, ob der Text in mein Interessengebiet fällt, habe ich am Ende des Texts 5 Keywords generieren lassen, die den Text möglichst gut beschreiben.


Es wurde kein Alt-Text für dieses Bild angegeben.
Meine Ergebnisse, noch nicht formatiert aber inhaltlich brauchbar


Zugegeben, am Ende des Experiments war es fraglich, ob ich nicht einfach das Ergebnis der Google News Search nutzen könnte, wahrscheinlich ist es so. Aber davon ausgehend, dass der Plan ein anderer war und ich interessante Einblicke in die openAI API habe sammeln können, bin ich sehr zufrieden mit meinen Erkenntnissen, wenn auch nicht mit dem Ergebnis.


Aber das ist ja alles nur eine Frage der Zeit, bis hier wieder riesige Schritte gemacht werden können. Es bleibt spannend und ich bleibe dran.

Es wurde kein Alt-Text für dieses Bild angegeben.



Schwierigkeiten:

- Da GPT-3 mit alten Daten (von 2021) arbeitet, muss man vor einer Auswertung neuer Daten, die KI erst einmal mit diesen füttern.

- Durch das Limit an verarbeitbaren Tokens, lässt sich die KI eben nur bedingt speisen.

- Anders als bei ChatGPT lässt sich beim Verwendern der API kein Cache nutzen. Daten, die ich hoch lade kann ich bei einer späteren Abfrage nicht mehr nutzen, sie sind leider komplett flüchtig.

- Die Befehle, die ich bei ChatGPT innerhalb des Prompts übergebe, werden scheinbar anders verarbeitet und verstanden, als es innerhalb der API der Fall ist, die Ergebnisse sind bei ChatGPT eindrucksvoller und näher an dem, was erwartet würde.

- Die verfügbare GPT-3 API verwendet text-davinci-003, um ChatGPT über die offizielle OpenAI Completions API zu imitieren Leider verwendet es kein auf den Chat abgestimmtes Modell.


Meine Learnings:

- Die Arbeit mit der openAI Api macht Spaß, ist aber nichts, was mal eben eingerichtet wird und direkt so sauber läuft wie ChatGPT.

- Noch kann die KI zu wenig Informationen entgegen nehmen, um daraus verwertbaren Content zu generieren.

- Ich habe bisher 9,20$ für die GPT-3 API an Verbindungskosten gezahlt. Dafür habe ich wirklich 385 Model-Nutzungen bekommen, das ist fair.

- Die KI-Schnittstelle ist noch sehr dumm und einfach. Für kleine Projekte durchaus geeignet aber ohne eigenes Model-Training oder wenigstens Feintuning sind die Möglichkeiten sehr begrenzt.

Dank an Orhan Erday für die Bereitstellung des OpenAI GPT-3 Api Client in PHP.


Und für die, die es interessiert, hier der Code zum Download. Nicht schön aber funktioniert ;-)

Oliver Breitfeld

ecommerce, digital, punkrock & parenting

1y

Ich finde die Grundidee spannend, das Ergebnis aber auch grundsätzlich schwierig, ähnlich wie abstracts von Büchern. Jeder nimmt ja andere Stellen wahr und nimmt andere Sachen mit. Vielleicht wären in dem Artikel ein Nebensatz spannend, der einen neuen Denkanstoß liefert, der dann in der Zusammenfassung fehlt. Vielleicht wäre der Versuch die KI Texte taggen zu lassen besser und dir dann eine Audiodatei mit den langartikeln als Podcast zu erstellen 😃 also falls du nächstes Wochenende Zeit hast.

Christopher D.

With Cybooks we digitalize the accounting & bookkeeping industry in Cyprus.

1y

Interessant - ja einer der Nachteile ist das du nur eine maximale Anzahl an tokens hast. Prompt-Chaining kann man so etwas eine Lösung sein 🧐 Wenn du einzelne vordefinierte Seiten crawlen möchtest, kann Mann die natürlich so crawlten, dass man sich nur den Inhalt holt anstatt das gesamte Gerüst. Oder eben auch nur den Text ohne das gesamte HTML Gesönse 🥸 Bzgl. PHP Client schau dir auch mal openai-php von Nuno Maduro an: https://github.com/openai-php/client

Vielen Dank, dass Sie OpenAI Api Client in PHP verwenden.

To view or add a comment, sign in

Explore topics