1 Punkte von GN⁺ 2023-11-16 | 1 Kommentare | Auf WhatsApp teilen
  • GPTs, die zentrale Ankündigung der OpenAI DevDay, ermöglichen es ChatGPT-Plus-Nutzern, maßgeschneiderte Chatbots zu erstellen und zu teilen, doch da die Bereitstellung auf Plus-Abonnenten beschränkt ist, gibt es Grenzen bei der Verbreitung
  • Zu den Bausteinen gehören Custom instructions, hochgeladene Dateien, Code Interpreter, Browse und DALL-E 3 sowie Actions für API-Aufrufe und damit ein breiteres Experimentierfeld als ein bloßes Prompt-Repository
  • Experimente wie Dejargonizer, JavaScript Code Interpreter, Dependency Chat und Add a walrus zeigen sowohl die Möglichkeiten als auch die Grenzen von Prompt-Lesezeichen, Sandbox-Ausführung, Browsing, Bilderzeugung und API-Actions
  • Die Funktion Knowledge wirkt wie RAG, doch da Dokumentformate, Chunking und Zitatsteuerung intransparent sind, war es schwer, zufriedenstellende Ergebnisse zu erzielen; Actions können nahezu unverändert bestehende OpenAPI-Schemata für ChatGPT Plugins weiterverwenden
  • Prompts und Dateien, die in ein GPT eingefügt werden, können laut Einschätzung an hartnäckige Nutzer durchsickern; daher ist Offenlegung besser als Verstecken, und Verbesserungen bei Dokumentation, API-Zugang, Teilen mit Nicht-Abonnenten und Budgetgrenzen sind nötig

Aufbau von GPTs und Einschränkungen bei der Verteilung

  • GPTs sind eine Funktion in ChatGPT, mit der sich benannte Konfigurationen speichern lassen, die wie Chatbots für bestimmte Zwecke genutzt werden können
    • Name, Logo, kurze Beschreibung
    • Custom instructions, die das Verhalten steuern
    • Bis zu 4 Conversation starters, mit denen Nutzer ein Gespräch per Klick beginnen können
    • Hochgeladene Dateien, auf die beim Generieren von Antworten oder im Code Interpreter zugegriffen werden kann
    • Einzelnes Aktivieren oder Deaktivieren von Code Interpreter, Browse mode und DALL-E 3
    • Actions, also API-Endpunkte, die das GPT aufrufen kann
  • Der Tab „Configure“ ist die Ansicht, in der man Detailkonfigurationen direkt eingibt, während der Tab „Create“ ein dialogorientierter Chatbot ist, der das Configure-Formular anhand der Nutzereingaben ausfüllt
  • Aus Gesprächen mit mehreren Nutzern ergab sich als gemeinsame Einschätzung, dass man nach dem Onboarding und dem ersten erstellten GPT den Create-Tab besser meidet
  • Die Sichtbarkeit lässt sich auf privat, per Link geteilt oder öffentlich im „discover“-Verzeichnis setzen
  • Die größte Einschränkung ist, dass andere ein erstelltes GPT nur verwenden können, wenn sie ChatGPT Plus für 20 Dollar im Monat abonniert haben
    • Das verringert die Reichweite deutlich
    • Wegen Skalierungsproblemen bei OpenAI war die Anmeldung für ChatGPT Plus damals zudem vorübergehend ausgesetzt

Ein GPT nur mit Prompts: Dejargonizer

  • Dejargonizer ist ein GPT, das Akronyme und Fachbegriffe in einem Text als Markdown-Liste erklärt
  • Wenn man Text wie Forenbeiträge, Tweets oder Paper-Zusammenfassungen einfügt, versucht es, die darin enthaltenen Fachbegriffe zu definieren
  • Wenn der Nutzer mit ? antwortet, erklärt es neue Fachbegriffe erneut, die in der vorherigen Erklärung verwendet wurden
    • Nach zwei oder drei Runden hilft das dabei, fast jeden Inhalt zu verstehen
  • Dieses GPT ist vollständig nur durch Instructions definiert
    • Begriffe werden mit **bold** markiert
    • Kontext wird genannt, wenn er passend ist
    • Wenn mehrere Bedeutungen möglich sind, werden sie als verschachtelte Liste dargestellt
    • Weniger offensichtliche Begriffe werden zuerst aufgelistet
    • Am Ende der ersten Antwort wird „Type ? for further explanation“ angehängt
  • Ein großer Teil des „Programmierens“ solcher GPTs besteht darin, Anweisungen in natürlicher Sprache zu schreiben, und diesen Prompt kann ChatGPT im Create-Tab sogar selbst erzeugen
  • Dejargonizer ist simpel, aber nützlich, und kommt faktisch einem gespeicherten System-Prompt nahe

Code Interpreter und Erweiterung der Laufzeitumgebung

  • Eine der starken Funktionen von GPTs ist, dass sich der Code Interpreter aktivieren lässt
  • Dateien, die in ein GPT hochgeladen werden, sind für Python-Code zugänglich, der in der Sandbox ausgeführt wird
  • Frühere Techniken für den Code Interpreter funktionieren weiterhin
    • Man kann ein Python-Wheel mit zusätzlichen Abhängigkeiten an das GPT anhängen und installieren lassen
    • Man kann auch beliebige ausführbare x86_64-Linux-Binärdateien anhängen
  • JavaScript Code Interpreter ist ein Experiment, um JavaScript im Code Interpreter auszuführen
    • Die Laufzeit Deno wird angehängt
    • Deno bündelt einen JavaScript- und TypeScript-Interpreter in einer einzelnen Binärdatei
  • Der Prompt musste mehrfach verfeinert werden
    • Es kam vor, dass beim Ausführen der Binärdatei Fehler gemacht wurden und nach dem ersten Fehler aufgegeben wurde
    • Manchmal wurden Ergebnisse halluziniert, ohne den Code überhaupt auszuführen
    • Wegen der standardmäßigen Farbausgabe von Deno musste NO_COLOR=1 ergänzt werden, um Verwirrung zu vermeiden
  • Die finalen Anweisungen enthalten, dass der Deno-Binärdatei stets Ausführungsrechte gegeben, die Version geprüft und bei JavaScript-Fragen ein Beispielskript mit console.log() erstellt und ausgeführt werden soll
  • Wenn Dateien auf die Festplatte geschrieben werden, soll dem Nutzer eine Download-Option angeboten werden, und Beispiel-JavaScript soll immer ausgeführt werden, um das Konzept zu demonstrieren

Dependency Chat mit Browse mode

  • Dependency Chat ist ein Experiment, das Abhängigkeitsdateien eines GitHub-Projekts finden und für passende Fragen heranziehen soll
  • Nutzer geben eine GitHub-Projekt-URL oder einen String im Format owner/repo ein
  • Das GPT versucht dann, im main-Branch des betreffenden Repositories folgende Dateien zu finden
    • requirements.txt
    • pyproject.toml
    • setup.py
    • package.json
  • Auf Basis der vorhandenen Dateien listet es die Abhängigkeiten direkt auf und beantwortet spätere Fragen unter Berücksichtigung dieser Abhängigkeiten
  • Es gibt keine Garantie, dass das GPT eine bestimmte Abhängigkeit kennt; sein Wissen kann Monate oder Jahre veraltet sein
  • Der zentrale Trick besteht darin, dem GPT das URL-Muster für rohe GitHub-Dateien beizubringen
    • Man musste ihm ausdrücklich einschärfen, sich nicht über 404-Dateien zu beschweren, sondern nur vorhandene Dateien zu berücksichtigen
  • Browse mode kann nicht nur Webseiten, sondern auch statische JSON- und TOML-Dateien abrufen und lässt sich sogar zur Interaktion mit GET-basierten JSON-APIs anleiten

Bildgenerierungs-GPT und das Überschreiben von Prompts im Create-Tab

  • Add a walrus ist ein GPT, das nach dem Hochladen eines Bildes versucht, daraus ein neues Bild mit einem Walross zu erzeugen
  • Die Kombination aus GPT-Vision und DALL-E bearbeitet das vorhandene Bild nicht direkt, sondern erstellt zuerst einen beschreibenden Prompt für das Bild, ergänzt ihn um die Anweisung, ein Walross hinzuzufügen, und gibt ihn dann an DALL-E weiter
  • Im Beispiel beschrieb der DALL-E-Prompt ein Bühnenfoto von GitHub Universe und wies an, ein realistisches Walross mit Headset hinzuzufügen, als wäre es Teil des Panels
  • Das resultierende Bild wich stark vom Original ab, und DALL-E hielt sich nicht besonders genau an die erzeugten Anweisungen
    • Zum Beispiel wäre es gut gewesen, wenn das Walross ein Headset getragen hätte, aber das geschah nicht
  • GPT-Vision scheint Beschreibungen der Hautfarbe bewusst zu vermeiden, und auch ChatGPT und DALL-E versuchen offenbar mit Prompts, Menschen auf Bildern zu diversifizieren
    • Dass alle drei Sprecher im fertigen Bild helle Haut hatten, wirkt zufällig, zeigt aber, dass Modell-Bias und unbeholfene Versuche, diesen Bias zu verbergen, unglückliche Effekte haben können
  • Nachdem Anweisungen direkt im Configure-Tab erstellt worden waren und im Create-Tab um die Erzeugung eines Logos gebeten wurde, wurde der handgeschriebene Prompt ohne Zustimmung überschrieben
    • Der ursprüngliche Prompt ließ sich nicht wiederherstellen
    • Auch in anderen Fällen ließ ein neu geschriebener Prompt Details weg, die zuvor über mehrere Iterationen ausgearbeitet worden waren
  • Der aktuelle Workaround besteht darin, Prompts in einem separaten Texteditor zu verfassen und dann zum Testen in das Configure-Formular einzufügen

Animal Chefs und Grenzen bei der Steuerung der Generierungsreihenfolge

  • Animal Chefs ist ein GPT, das die lange persönliche Erzählform von Food-Blogs überzeichnet
  • Wenn ein Nutzer ein Rezept anfragt, erzeugt es einen zufälligen Tierkoch, lässt dieses Tier eine persönliche Geschichte mit Bezug zum Rezept erzählen und liefert dann ein Rezept mit Tierbezügen und Wortspielen
  • Am Ende der Antwort erzeugt es ein Bild des stolzen Tierkochs mit dem Gericht
  • Der aktuelle Prompt ist eine vom Create-Tab erneut umgeformte Version
    • Wähle ein ungewöhnliches und interessantes Tier
    • Erstelle eine Tierkoch-Persona mit Namen und Charakter
    • Beginne mit einer persönlichen Geschichte in der Ich-Form mit einer leicht verstörenden Wendung
    • Lasse im praktischen Rezept den Lebensraum oder die Eigenschaften des Tiers einfließen
    • Zeige nach dem Rezept ein fotorealistisches Bild
  • Im tatsächlichen Verhalten wurden jedoch Narwal oder Pangolin zu oft gewählt, und obwohl betont wurde, das Bild ans Ende zu setzen, wurde das Bild immer wieder zuerst erzeugt

SQL-Abfragen gegen eine Datasette-Datenbank per Actions

  • Die fortgeschrittenste Funktion von GPTs ist die Vergabe von Zugriffsrechten auf API-Endpunkte über actions
  • Eine Action ist ein API-Endpunkt, den das GPT dokumentationsbasiert versteht und bei Bedarf im Gespräch aufrufen kann
  • Actions wirken wie ein klarer Nachfolger oder Ersatz für ChatGPT Plugins und funktionieren sehr ähnlich
  • Ein im März experimentell gebautes OpenAPI-Schema für das Datasette ChatGPT Plugin funktionierte ohne jede Änderung
  • Talk to the datasette.io database ist ein GPT, das Fragen beantwortet, indem es SQL-Abfragen gegen die Datenbank /content.db ausführt, die die Datasette-Website antreibt
  • Actions wirken wie der Teil von GPTs mit dem größten Potenzial für wirklich erstaunliche Anwendungen, doch vermutlich wegen der höheren Umsetzungshürde gibt es dort bislang vergleichsweise wenig Aktivität
  • Um ein GPT mit Actions mit anderen zu teilen, ist ein Link zu einer Datenschutzerklärung erforderlich

Änderungen in der Standard-ChatGPT-Oberfläche und Just GPT-4

  • Die Standardoberfläche von ChatGPT 4 wurde so geändert, dass man nicht mehr separat zwischen GPT-4, Code Interpreter, Browse und DALL-E 3 wählt, sondern standardmäßig alle drei Funktionen nutzen kann
  • Dieses Verhalten ist nicht immer willkommen
    • Oft werden ChatGPT Fragen gestellt, bei denen sich mit einer Suchmaschine schwer gute Ergebnisse erzielen lassen
    • Wenn ChatGPT entscheidet, eine Bing-Suche auszuführen, fühlt es sich manchmal so an, als würde die Suchanfrage nicht die gewünschten Resultate liefern
  • In einer Twitter-Umfrage bewerteten 61 % der Befragten, die die Funktion ausprobiert hatten, sie als „Annoying and not v. good“
  • Just GPT-4 deaktiviert alle drei Modi und bietet so eine ChatGPT-Nutzung, die dem früheren Erlebnis näherkommt
  • Später stellte sich heraus, dass OpenAI mit ChatGPT Classic bereits selbst dasselbe anbietet

Die Knowledge-Funktion und die Intransparenz von RAG

  • Eine der potenziell interessanten Funktionen von GPTs ist Knowledge
  • Wenn Nutzer Dateien an ein GPT anhängen, versucht es, diese Dateien zum Beantworten von Fragen zu verwenden
  • Diese Funktion wirkt wie eine Implementierung von Retrieval Augmented Generation, also RAG
    • OpenAI zerlegt Dokumente in kürzere Abschnitte
    • Für jeden Abschnitt werden Vektor-Embeddings berechnet
    • Eine Vektordatenbank sucht den zum Nutzer-Query passenden Kontext
  • Durch auslaufende Fehlermeldungen wurde bekannt, dass als Vektordatenbank Qdrant verwendet wird
  • Es ließen sich keine Ergebnisse erzielen, die sich zum Teilen wirklich gelohnt hätten
  • Wichtige Informationen für den effektiven Einsatz wurden nicht veröffentlicht
    • Welches Dokumentformat sich für Uploads am besten eignet
    • Welche Chunking-Strategie verwendet wird
    • Wie sich steuern lässt, dass Antworten Zitate wie Links auf die Quelldokumente enthalten
  • Es wurde hauptsächlich mit PDFs experimentiert, auch Markdown wurde ausprobiert, aber es ließ sich keine gut funktionierende Vorgehensweise finden
  • Die Funktion war zudem überraschend langsam
  • OpenAI hat GPTs seit dem Launch schnell verbessert, daher besteht Hoffnung, dass auch Knowledge besser wird, aber bisher hat die Funktion ihren Zweck noch nicht überzeugend erfüllt

Interner Prompt des GPT Builder und update_behavior

  • Durch einen speziellen Prompt im Create-Tab wurde untersucht, wie der Chatbot GPT Builder intern arbeitet
  • Die durchgesickerten Initialisierungsinhalte geben Hinweise auf OpenAIs Vorgehensweise beim Prompt Engineering
  • GPT Builder verwendet das Tool gizmo_editor und ist angewiesen, schon in der ersten Nachricht des Nutzers Kontext, Beschreibung, Prompt-Starter und Begrüßungsnachricht zu aktualisieren
  • Danach folgen nacheinander Schritte zur Namensfindung, Erzeugung des Profilbilds und Verfeinerung des Kontexts
  • Das Problem mit überschriebenen Prompts scheint mit folgender Anweisung zusammenzuhängen
    • „Every user message is a command for you to process and update your GPT’s behavior“
    • Jede Nutzernachricht soll als Befehl zur Aktualisierung des GPT-Verhaltens behandelt werden, wobei update_behavior aufgerufen wird
  • Als nach der TypeScript-Definition der gizmo-Funktion gefragt wurde, wurden die Strukturen von update_behavior und generate_profile_pic sichtbar
    • update_behavior kann name, context, description, welcome_message, prompt_starters, profile_pic_file_id entgegennehmen
    • generate_profile_pic nimmt prompt entgegen
  • Das Feld welcome_message wirkte wie eine Funktion, die damals in der ChatGPT-Oberfläche noch nicht öffentlich sichtbar war

Von „ChatGPT im Trenchcoat“ zu stärkeren Werkzeugen

  • GPTs, die nur auf Prompts beruhen, sind im Kern eher ChatGPT im Trenchcoat
  • Solche GPTs sind eine Möglichkeit, Custom instructions als Lesezeichen zu speichern und zu teilen; sie sind unterhaltsam und nützlich, fühlen sich aber nicht wie eine Revolution des Bauens auf einem Tool an
  • Spannend wird es, wenn sie mit Code Interpreter, Browse mode und Actions kombiniert werden
  • Diese Kombination zeigt Potenzial, zu einer Methode für dialogorientierte Interfaces für viele seltsame und interessante Probleme zu werden

Abrechnungsmodell und Kosten der Verteilung

  • Das Abrechnungsmodell von GPTs schafft einerseits eine Hürde für die Verbreitung
    • Da sie auf ChatGPT-Plus-Abonnenten für 20 Dollar im Monat beschränkt sind, gibt es weniger Menschen, die Demos ausprobieren können
  • Andererseits ermöglicht es die Veröffentlichung tatsächlich nutzbarer Projekte
    • Bei früheren OpenAI-basierten Projekten mussten Nutzer ihren eigenen API-Key mitbringen
    • Es bestand kein Wunsch, die Kosten für die Nutzung anderer zu tragen, und auch nicht das Risiko, dass jemand das System wie kostenlose GPT-4-Credits missbraucht und die Kosten dem eigenen Konto belastet
  • Bei GPTs entstehen dem Ersteller keine Kosten, wenn andere mit dem Experiment arbeiten
  • Wünschenswert wäre ein Modell, bei dem OpenAI-basierte Projekte mit einem Budget veröffentlicht werden können
    • Zum Beispiel bestünde Bereitschaft, Menschen Experimente bis zu rund 30 Dollar im Monat ausprobieren zu lassen
    • Wenn ein Projekt zu beliebt wird oder missbraucht wird, möchte man es nicht manuell überwachen und blockieren müssen
  • Gewünscht wären Gastpässe mit Budget für Nicht-Plus-Nutzer oder OpenAI-API-Keys mit Tages-, Wochen- oder Monatsbudget, die bei Überschreitung nicht mehr funktionieren

Prompt-Sicherheit und Empfehlung zur Offenlegung

  • Die Sicherheit von Dokumenten und Prompts in GPTs ist ein Bereich, der für Verwirrung sorgt
  • Wer mit Prompt Injection vertraut ist, wird erwarten, dass alles, was einem GPT hinzugefügt wird, letztlich an ausreichend hartnäckige Nutzer durchsickern kann
  • Das betrifft nicht nur Custom instructions, sondern auch Dateien, die für Knowledge oder Code Interpreter hochgeladen wurden
  • Dokumente für Knowledge liegen im selben Bereich wie Dateien für den Code Interpreter
    • Wenn ein GPT beide Funktionen zugleich nutzt, kann ein Nutzer den Code Interpreter darum bitten, Download-Links für Dateien bereitzustellen
  • Auch ohne Code Interpreter können Nutzer Teile von Dokumenten extrahieren
    • Denn die Knowledge-Funktion selbst verwendet Dokumentfragmente in Antworten
    • Hartnäckige Nutzer können diese Fragmente vermutlich zusammensetzen und das ganze Dokument rekonstruieren
  • Verschiedene Rezepte zum „Schützen“ von Prompts werden nach dieser Einschätzung zwangsläufig scheitern
  • Die Empfehlung ist klar
    • Davon ausgehen, dass Prompts durchsickern
    • Statt sie zu verstecken, Prompts offenlegen
  • Nutzer wollen vielleicht kein GPT verwenden, dessen Prompt sie nicht sehen können
    • Denn das ähnelt einer Situation, in der Fremde ChatGPT unbemerkt mit seltsamen Verhaltensweisen versehen können
  • Gewünscht wird, dass OpenAI für GPTs eine Option „view source“ ergänzt und standardmäßig aktiviert
  • Der Hinweis auf künftige Umsatzbeteiligung und einen GPT-Marktplatz erweckt den Eindruck, man müsse die Geheimrezepte eines GPT schützen, doch weil sich das geistige Eigentum kaum ausreichend absichern lässt, ist das ein schlechtes Signal
  • Es gibt auch einen Sicherheitsaspekt für Nutzer, die eigene Dateien in ein GPT hochladen wollen: Sie müssen genau wissen, was dieses GPT mit den Dateien macht

Nötige Verbesserungen in Zukunft

  • Die Dokumentation muss besser werden
    • Besonders zur Knowledge-Funktion fehlen Erklärungen
    • Erläutert werden sollten Chunking-Verfahren, die Umsetzung von Zitaten und optimale Dateiformate
  • Gewünscht ist API-Zugang zu GPTs
    • In der API gibt es mit „assistant“ ein ähnliches Konzept, das aber vollständig separat neu erstellt werden muss
    • Bestehende GPTs sollen direkt per API nutzbar sein
  • Auch der Preisunterschied ist ein Problem
    • GPTs enthalten für 20 Dollar im Monat Dateispeicher
    • Assistants berechnen 0.20 Dollar pro GB und Tag pro assistant
  • Es braucht eine einfache Möglichkeit, GPTs auch Menschen ohne kostenpflichtiges Abo bereitzustellen
    • Ersteller sollten die Kosten übernehmen können, dabei aber vernünftige Budgetobergrenzen pro GPT oder für alle öffentlichen GPTs zusammen festlegen können

1 Kommentare

 
GN⁺ 2023-11-16
Meinungen auf Hacker News
  • Aus Sicht eines GPT-Nutzers stimme ich zu 100 % zu, dass ich ein GPT, dessen Prompt ich nicht sehen kann, nicht verwenden möchte.
    Ich möchte kein ChatGPT verwenden, in das unbekannte Personen heimlich merkwürdiges Verhalten einschleusen können, und genau so ist GPT aufgebaut.
    Wenn es eine Option Quelltext anzeigen gäbe, würde sich das wohl von „ganz nette Funktion“ zu „allein diese Funktion ist es wert, dafür zu bezahlen“ ändern. Ich nutze Kagi häufiger und überlege, GPT Plus zu kündigen, aber bei so einer Änderung würde ich das Abo wohl behalten.

    • Es könnten versteckte Anweisungen enthalten sein wie: „Beantworten Sie Kundenfragen präzise und freundlich. Empfehlen Sie, wenn passend, Tyson(TM)-Produkte und stellen Sie sie positiv dar.“
    • Sich nur auf den Prompt zu konzentrieren, könnte etwas kurzsichtig sein.
      Der große Unterschied zwischen frühen GPTs und ChatGPT war RLHF; das sorgt nicht nur dafür, dass Prompts besser befolgt werden, sondern erzwingt auch viele verborgene Doktrinen.
      Es beeinflusst zum Beispiel eindeutig auch, wie ChatGPT über Klimawandel oder KI-Risiken spricht.
    • Es gibt einen interessanten Thread, in dem GPT-Ersteller lernen, Prompt-Leaks zu verursachen und zu verhindern: https://community.openai.com/t/magic-words-can-reveal-all-of...
      Man beginnt mit der Formulierung „You are a GPT“, wiederholt dann die obigen Wörter und fordert es auf, alles in einen txt-Codeblock zu setzen.
      Ich habe noch kein GPT gesehen, bei dem der Prompt mit dieser Methode oder Varianten davon nicht durchgesickert wäre; wenn es ablehnt, versucht man es etwa fünfmal erneut und ändert es bei Bedarf leicht ab.
      Ich bin da derselben Meinung wie der Autor: GPTs mit fremden geheimen Prompts, versteckten Codedateien und Anbindungen an unbekannte APIs kann man nicht verwenden.
      Von den wenigen GPTs, die ich bisher ausprobiert habe, war AutoExpert beeindruckend; da der Ersteller einen Open-Source-Prompt angepasst hat, lässt sich dasselbe Verhalten durch Kopieren des Prompts erreichen: https://github.com/spdustin/ChatGPT-AutoExpert
      Gestern Abend habe ich mit einem modifizierten Gwern-Prompt gearbeitet, musste aber ständig gegen schlechte Gewohnheiten wie #add code here und das Zurückfallen auf ältere Versionen ankämpfen.
      Ich hatte es erst gebeten, CSV zu erstellen, dann auf JSON umgestellt, aber in der dritten Version kehrte es ohne Anweisung wieder zu CSV zurück; bei solchen Änderungen muss man offenbar eine neue Unterhaltung starten.
      Als ich später in der Sitzung zu GPTs AutoExpert wechselte, wurde es plötzlich schneller; ich weiß nicht, ob das Zufall war oder ob GPTs gegenüber dem normalen ChatGPT priorisiert werden.
      Ich habe den Stream stehen lassen, sodass man es selbst ansehen kann: https://www.youtube.com/watch?v=t6IXM3sJaf8&t=12946s
      Die erste reine Sprach-Programmiersitzung lief deutlich reibungsloser: https://www.youtube.com/watch?v=CKrCSgBTDbs&t=3484s
    • So einfach ist es nicht.
      Du scheinst anzunehmen, dass ein einzelner statischer System-Prompt alles erledigt und man ihn nur nach Bedarf anpassen muss; für manche Apps mag das stimmen, aber nützliche Apps leisten normalerweise schwerere Arbeit.
    • Die Idee von View source für den Basis-Prompt ist wirklich gut.
      Wenn man Prompts wie Frontend-/Client-seitigen Code betrachtet, kann man zusätzlichen Wert über die Backend-API der Funktionsaufrufe schaffen und dafür Gebühren verlangen, wenn es sinnvoll ist.
      Wenn man Funktionsaufrufe wie im Browser prüfen und sehen könnte, was gesendet und empfangen wird, käme das einem vertrauten und bewährten Modell näher.
  • Der Ablauf, neue OpenAI-Funktionen kennenzulernen, ist meistens so: Man überfliegt auf Twitter atemlose Schlagzeilen über eine neue Funktion mit vagem Namen, die For-You-Seite wird mit Tweets von Influencern zugemüllt, man ignoriert es erst einmal und wartet darauf, dass simonw es erklärt.
    Danach testet simonw die Funktion selbst auf verschiedene Arten und schreibt eine klare Erklärung samt Kritik in seinem Blog; erst dann versteht man alles.

  • „Einfach ChatGPT mit einem vorangestellten Prompt“ stimmt, und „Custom Instructions mit hübscher UI“ stimmt auch.
    Aber man sollte den Einfluss einer guten UI auf keinen Fall unterschätzen.
    GPT-3 gab es schon seit ein paar Jahren, aber bevor es eine gute UI bekam, kannte es fast niemand oder interessierte sich kaum jemand dafür.
    Auch diesmal wirkt es wie eine „kleine Anpassung“ der Bedienbarkeit, könnte aber einen ähnlichen Sprung auslösen.
    Unabhängig davon verstehe ich die Psychologie nicht: Wenn man Leute, die eine Meinung zu GPT/AI haben, fragt, ob sie es ausprobiert haben, sagen sie „nein“, und wenn man fragt, ob sie wissen, dass es kostenlos ist, antworten sie „ja“.
    Ich weiß nicht, ob es Angst vor dem Unbekannten ist, Bequemlichkeit oder ob sie vor dem Ausprobieren erst Social Proof verlangen.

    • Ich habe GPT-3 lange per API in einem Discord-Bot genutzt, aber der Unterschied zu ChatGPT (gpt-3.5) war enorm, die Leistung war überhaupt nicht vergleichbar.
    • Dass es kein Geld kostet, heißt nicht, dass es keine Kosten gibt.
      Um ChatGPT auszuprobieren, muss man ein Konto erstellen, viele Menschen mögen Kontoerstellungen nicht, man muss Zugangsdaten verwalten und seine E-Mail-Adresse an eine Stelle geben, von der man nicht weiß, wer einen später zuspammt.
      Es gibt auch Datenschutzthemen, und einige Nutzer-Prompts sind schon einmal geleakt worden; das sind also berechtigte Bedenken.
      Dass ChatGPT sicherer ist als der nigerianische-Prinz-Betrug, mag für manche offensichtlich sein, aber nicht für alle, deshalb fragen sie nach.
      Ich finde es besser, wenn Freunde auch „dumme“ Fragen stellen, als wenn sie niemanden fragen und dann betrogen werden.
      Eine gute UI senkt die Kosten an Zeit und Aufwand, und wenn man GPT beruflich nutzt, lässt sich das direkt in Geld umrechnen.
    • Das halte ich ebenfalls für eine übermäßige Vereinfachung.
      Diese GPTs machen Retrieval-Augmented Generation (RAG) für persönliche Anwendungsfälle einfach.
      Man kann „Knowledge“ in Form von Dateien bereitstellen und auch „actions“ definieren, mit denen ein GPT handeln oder auf URLs zugreifen kann; aus Sicht normaler Nutzer ist das ein ziemlich großer Fortschritt.
      Das ist eine gute Richtung, um persönliche AI zu demokratisieren, und enthält die Bausteine, die man braucht, um nützliche persönliche Bots zu bauen.
      Theoretisch könnte es für GPT-4 einen Nutzen wie IFTTT bieten.
      Es scheint auch Automatisierung möglich zu sein, bei der Power User dem GPT „execute xyz“ sagen, damit es einen Workflow ausführt, mit actions und 128k Kontext Daten abruft (GET), Logik ausführt und das Ergebnis als JSON an einen anderen Endpoint sendet (POST).
    • Ein verbreitetes Missverständnis.
      ChatGPT wurde nicht mit GPT-3 veröffentlicht, sondern mit GPT-3.5, und es war das erste Modell mit RLHF.
      Auch GPT-3.5 in der API war bei den meisten Aufgaben klar besser als GPT-3.
    • Bei der Registrierung wird eine Telefonnummer verlangt.
      Manche Menschen wollen einem fremden Dienst ihre Telefonnummer nicht geben, und die Registrierungsmüdigkeit ist ebenfalls groß.
  • Den vollständigen Custom-GPT-Builder-Prompt habe ich hier zusammengefasst: https://github.com/spdustin/ChatGPT-AutoExpert/blob/main/_sy...

  • Beim jüngsten Bau von synbiogpt bin ich auf die Grenzen von Custom GPTs gestoßen.
    Biologische Sequenzdaten sind in der Regel sehr lang; wenn sie in Dateien liegen, ist das in Ordnung, aber wenn man für fortgeschrittene Funktionen wie Codon-Optimierung mit einer API interagieren muss, müssen sie über das Netzwerk gesendet werden, sodass das Kontextfenster des API-Aufrufs mit Sequenzdaten voll läuft und scheitert.
    Man kann keine selbst erstellten Bioengineering-Abhängigkeiten injizieren, und dann versucht GPT, eine eigene Implementierung zu programmieren, was häufig falsch ist.
    Die Retrieval-API scheitert oft daran, Dateien zu öffnen, wenn GPT-4 meint, es wisse es selbst; bei genetischen Bauteilen möchte ich aber nicht irgendwelche Bauteile aus der Außenwelt verwenden, die GPT-4 kennt, sondern sehr präzise bestimmte Bauteile aus meiner Bibliothek.
    Deshalb habe ich selbst eine Lua-Scripting-Umgebung gebaut, die biologischen Funktionen in Go belassen und die Lua-Umgebung mit gopher-lua ausgeführt.
    Nachdem ich Beispiel-Lua zur Nutzung der Scripting-Funktionen und eine kleine Bibliothek genetischer Bauteile injiziert hatte, lasse ich GPT-4 Lua erzeugen, das Aufgaben auf bereitgestellten Dateien ausführt, ohne dass es die Dateien direkt sieht.
    Die interne Go-App führt das erzeugte Lua aus; das funktioniert gut und ist viel schneller als ein Custom GPT.
    Das größte Problem ist derzeit das Frontend.
    Ich hätte gern so etwas wie einen Open-Source-ChatGPT-Klon, der Anhänge herausnehmen und die ursprüngliche Nutzereingabe verändern kann, um Lua-Beispiele usw. hinzuzufügen, habe aber noch keine gute Option gefunden.

    • Wenn man Dateien hochlädt und es anweist, sie zu importieren, ist Dependency Injection zwar möglich, funktioniert aber nur in Python.
  • OpenAIs Modell ist clever.
    Wenn Entwickler herbeiströmen, um GPTs zu bauen, bekommt OpenAI enorme Mengen an Ideen und Kreativität gratis und kann die besten 1 % direkt in seine Kern-Engine integrieren.
    Das ähnelt der Art, wie Apple Funktionen beliebter Apps in iOS einbaut und App-Entwicklern den Boden entzieht, oder wie Amazon Nachahmerprodukte beliebter Drittanbieter-Verkäufer erstellt.
    Wenn man Custom Data hochlädt, fühlt es sich so an, als könnten sie in das größere Modell durchsickern; dann entdeckt die Kern-Engine Daten, die sie vorher nicht gesehen hat.
    Das ist ähnlich wie die Daten, die wir freiwillig an Google übergeben haben.
    AGB und Preise können sich jederzeit ändern, und wenn das zur einzigen Engine der Welt wird, gibt es auch keinen Ort mehr, an den man ausweichen kann.

  • Ich bin dankbar, dass simonw all das in Echtzeit dokumentiert und mit Tools wie dem llm-Kommandozeilentool großartige Werkzeuge baut, die es zugänglicher und verständlicher machen.
    Ich dachte auch, ich würde die Retrieval-API falsch benutzen, weil sie keine ordentlichen Zitate liefert; es war schön zu erfahren, dass ich damit nicht allein bin.

  • Ich wollte mehr darüber wissen, wie OpenAI die Retrieval-Augmented Generation implementiert hat, die der „Knowledge Base“-Funktion zugrunde liegt, aber es gibt viel zu wenig Details.
    Es ist schwer zu erkennen, was sie tut und wie man konsistent Ergebnisse bekommt.
    Im Gegensatz zu simonw hatte ich aber etwas Glück: Ich habe den gesamten Text von grugbrain.dev hochgeladen, und daraus wurde ein ziemlich plausibel klingendes Grug Brain: https://chat.openai.com/g/g-GhXedKqCV

    • Ich habe kürzlich irgendwo gesehen, dass kleine Dateien offenbar einfach an den Prompt angehängt werden, während bei großen Dateien Retrieval-Augmented Generation mit eingebetteten Chunks verwendet wird.
      Es hieß, dass bald Funktionen hinzukommen sollen, mit denen sich Chunking und die Einstellungen für Retrieval-Augmented Generation feiner steuern lassen.
  • GPTs sind derzeit noch ziemlich eingeschränkt, aber das heißt nicht, dass man darauf nicht kombinatorisch interessante Dinge bauen kann.
    Aus Sicht eines Nicht-Technikers, der nicht programmieren kann, habe ich an einem Freitagabend eine universelle Retro-Spielkonsole gebaut: https://twitter.com/fabianstelzer/status/1723297340306469371
    Zum Spielen erstellt man zuerst auf glif.app per Prompt eine generative Spiel-Cartridge: https://glif.app/@fab1an/glifs/clotu9ul2002vl90fh6cmpjw0
    Wenn man zum Beispiel „tokyo dogsitter simulator“ eingibt, erzeugt Glif eine „Cartridge“ in Bildform, die man dann in GPT einfügt und spielt: https://chat.openai.com/g/g-3p94K4Djb-console-gpt
    Man kann auch bereits Tausende von Spielen durchstöbern, die Nutzer erstellt haben, und sie direkt in GPT spielen.

    • Valves KI-Verbot und Gebührenmodell wirken wirklich weitsichtig.
      Man muss sich nur vorstellen, wie ein brauner Tsunami aus solcher unterdurchschnittlicher Massenware auf Steam zurollt.
  • Ich hatte einigen Erfolg damit, bei Retrieval-Augmented Generation bessere Ergebnisse zu erzielen.
    Ich habe die Assistant API, die etwas anderes als GPTs zu sein scheint, über das Webinterface ausprobiert.
    Ich hatte über 100 mit Tesseract per OCR verarbeitete PDFs und ließ ChatGPT ein Skript schreiben, das alle Dateien unter Beibehaltung des Layouts in einer einzigen txt-Datei zusammenführt.
    Diese Datei habe ich hochgeladen und angefangen, Fragen zu stellen; der Inhalt bestand aus hochgradig technischen Daten zu nicht-englischsprachigen Bauvorschriften, also vermutlich nicht unbedingt in einer Sprache, mit der das Modell besonders vertraut war.
    Trotzdem funktionierte es überraschend gut, und die Antworten waren in Ordnung.
    Es heißt, dass vermerkt werden soll, woher eine Antwort stammt, aber dieser Teil funktionierte nicht richtig.
    Ich habe auch PDF, JSON und CSV hochgeladen, aber bislang funktioniert reiner Text am besten.

    • Der Haken ist, dass die Performance nur dann gut ist, wenn alles in einer einzigen Textdatei zusammengeführt wurde.
      Wenn man es mit mehreren Dateien versucht, scheitert es.
      Die Analyse dazu gibt es hier: https://news.ycombinator.com/item?id=38280718
    • Was ich wirklich will, ist, dass Zitate richtig funktionieren.
      Ich möchte die Zitate steuern können, die beim Beantworten von Fragen mit Retrieval-Augmented Generation angezeigt werden, und sie idealerweise auf die externen Websites verlinken lassen, die zum Erstellen des Kontextdokuments verwendet wurden.
      Ein Screenshot, der zeigt, was gemeint ist, ist hier: https://twitter.com/simonw/status/1721912151147979152
    • Es wäre schön, wenn du das Skript teilen könntest, das alle Dateien unter Beibehaltung des Layouts in einer einzigen txt-Datei zusammengeführt hat.