Wie der Großteil des Internets interessiere ich mich intensiv für künstliche Intelligenz (KI) in Form von Large Language Models (LLMs) wie GPT-3 von OpenAI und seinem cleveren, gesprächigen und Code-versierten Verwandten ChatGPT.
Ich erinnere mich, dass ich vor vielen Jahren gelesen habe, dass Common Lisp die Sprache für KI sei. Als ziemlich grüner Entwickler, der gerade von ActionScript abgewichen war, nachdem Steve Jobs Flash abgeschafft hatte, und einer, der immer noch dabei war, die Räder in PHP, WordPress und JavaScript neu zu erfinden , fühlte ich mich auf See verloren und versuchte überhaupt zu verstehen, wo ich anfangen sollte, mich in die Welt von zu begeben KI.
Als Python dann zur Sprache des maschinellen Lernens (ML) wurde , hatte ich Schwierigkeiten zu verstehen, wie man ein völlig neues Ökosystem erlernt und erkundet – insbesondere eines, in dem nicht einmal klar war, welche Version der Sprache ich verwenden sollte.
Zum Glück hat sich das alles geändert:
Jeder von uns kann sich jetzt eine breite Palette von Tools zur Verarbeitung natürlicher Sprache (NLP) aneignen oder Anwendungsprogrammierschnittstellen (APIs) verwenden, um komplizierte Deep-Learning-Modelle unsere Daten verarbeiten zu lassen, sich als unser Lebensberater auszugeben oder lustige Katzenbilder für ihn zu erstellen uns.
Dieses schnell wachsende Feld bietet viele spannende Möglichkeiten, diese neuen Tools zu erkunden, sich mit Computeraufgaben auf eine Weise auseinanderzusetzen, die wir uns bisher nur vorstellen konnten, und sich gegenseitig über das Ökosystem aufzuklären.
Es gibt sogar coole neue Unterbereiche wie „Prompt Engineering“ , aber gleichzeitig kann es voller alberner, ungenauer und eingebildeter Informationen sein – und durch Nebenbeschäftigungen noch mehr SEO-Blogfäule erzeugen. Es eröffnet außerdem eine Reihe neu auftretender Schwachstellen wie „ Prompt Injection “ und bietet eine ständig wachsende, amorphe Angriffsfläche.
Es ist auch das nächste Gefühl, das ich je erlebt habe, als das Programmieren aus einer anderen Welt kommt. In dieser neuen Welt habe ich mir die Grundlagen eines magischen Systems vorgestellt und mir den schnellen Ingenieur als Technomanten vorgestellt.
Die Leute machen mit ChatGPT alle möglichen interessanten Dinge .
Ein Beispiel, auf das ich oft zurückkomme, ist, dass der Autor ChatGPT gebeten hat, als Linux-Terminal zu fungieren , dann einen Docker-Container ausgeführt und Eingabeaufforderungen an ein alternatives ChatGPT gesendet hat, das mit der Internetversion dieses imaginären Docker-Containers verbunden ist.
Obwohl ich verstand, dass ChatGPT diese Befehle nicht tatsächlich ausführte und dass es nicht wirklich in einen Spalt im Multiversum geraten war, der es ihm ermöglichte, in eine andere Realität zu blicken, war ich dennoch voller Ehrfurcht.
Es war auf einem so großen Korpus menschlichen Wissens trainiert worden, dass es überzeugend nachahmen konnte, welche Art von Reaktion jeder Befehl haben sollte.
Ich konnte nicht aufhören darüber nachzudenken, wie grundlegend anders und aufregend dies war als alles, womit ich zuvor gearbeitet hatte.
Ich war besessen von dieser Art des „Imaginary Computing“. Wenn ChatGPT vorgeben könnte, ein Computer zu sein und auf ein imaginäres Internet in einer alternativen, imaginären Realität zuzugreifen, was könnte es sonst noch tun?
Könnte es mir eine Programmiersprache beibringen? Könnte es eine wirkungsvolle Badeente sein?
Ich habe versucht, mir selbst Rust über Advent of Code beizubringen, bin aber bei meinem Lösungsversuch für Tag 7 auf Compilerprobleme mit der Ausleihe und den Lebensdauern gestoßen, die mich verblüfft haben. Ich musste meinen Fokus auf kritischere, zeitkritischere Projekte verlagern und ließ mein Advent of Rust unvollendet.
Ich habe viele Beispiele dafür gesehen, wie ChatGPT Code bereitstellt. Einiges davon war von fragwürdiger Herkunft und Qualität, aber mein Code ließ sich sowieso nicht kompilieren. Wie viel schlimmer könnte es also noch kommen?
Das klang alles großartig, aber als ich die Vorschläge umsetzte, wurde schnell klar, dass ChatGPT den Code, den wir betrachteten, nicht wirklich „verstand“. Der bereitgestellte Code hatte andere Probleme im Kontext des Gesamtprogramms. Der Versuch, mehr Code einzugeben, um ihm einen Kontext zu geben, endete damit, dass der Konversationsthread vollständig verloren ging und man mit dem gleichen Problem wie beim Original zum Code zurückkehrte.
Zu diesem Zeitpunkt habe ich die Token und die Einschränkungen des Gesprächsspeichers von ChatGPT wirklich verstanden.
Der vorherige Kontext Ihrer Konversation wird Ihren Anfragen hinzugefügt, um die Reaktion des Bots zu steuern und das Gefühl einer fließenden Konversation zu vermitteln. Es gibt jedoch eine Grenze dafür, wie viele Informationen dieses „Gedächtnis“ speichern und abrufen kann.
Der Text wird zusammengefasst. Worte gehen verloren.
Wie unsere eigenen Erinnerungen ist ChatGPT nicht perfekt darin, sich daran zu erinnern, was passiert ist. Diese Fehlbarkeit war eine verblüffende Offenbarung, denn perfektes Gedächtnis ist eines der Dinge, die ich immer mit Computern und KI in Verbindung gebracht habe.
Es war in der Lage, hilfreiche Erklärungen zu Anleihen und Lebensdauern zu liefern und diese Konzepte auf kleinere Codeausschnitte anzuwenden, aber selbst ChatGPT konnte mir nicht dabei helfen, ein Rust-Programm zu retten, das in meiner Nicht-Rust-Denkweise gefangen war.
Wenn ich es also nicht für die tatsächliche Programmierung verwenden könnte, was wäre dann mit den imaginären Welten, die es entwickeln kann? Können wir uns vorstellen, dass es sich um einen Code-Interpreter handelt? Ein Build-System? Eine Bewerbung? Eine API? Eine andere KI?
Einer meiner ersten Gedanken war, ob ich in ein paar hundert Token, die ich in meine ersten ChatGPT-Eingabeaufforderungen einbetten könnte, eine domänenspezifische Sprache (DSL) erstellen und beschreiben könnte, wie ich als Dolmetscher für diese DSL fungiere.
Da sich in meinem Leben niemand sonst so leicht für Technologie begeistern und faszinieren lässt, wandte ich mich an ChatGPT, um mich auf diesem neuen Weg beraten zu lassen.
ChatGPT : Nein, es ist nicht möglich, genügend Anweisungen in die Eingabeaufforderung einzubetten, um dem LLM beizubringen, wie ein Metaprogrammierungs-DSL analysiert und ausgeführt wird, ohne Änderungen am Chat-Client oder dem zugrunde liegenden LLM vorzunehmen.
Es war kein fruchtbares Unterfangen.
ChatGPT : Nein, ChatGPT ist nicht in der Lage, Werte mit bestimmten Zeichenfolgen zu verknüpfen und sie bei Nachfrage abzurufen. Es handelt sich um ein Sprachmodell, das darauf trainiert ist, Text auf der Grundlage der empfangenen Eingaben zu generieren, aber nicht wie ein herkömmliches Computerprogramm Werte speichern oder abrufen kann.
Aber ich habe gesehen, dass es alle möglichen seltsamen Dinge tut, zu denen es wahrscheinlich nicht in der Lage sein sollte , und es gibt sogar einige Artikel, die beschreiben, wie LLMs lernen können, Werkzeuge zu verwenden , und andere, die auftauchendes Verhalten in LLMs beschreiben. Es scheint gar nicht so weit hergeholt, von ihm zu verlangen, herauszufinden, wie man einige Variablen mit bestimmten Zeichenfolgen verknüpft und später auf sie verweist.
Ich beschloss herauszufinden, welche Art von rudimentärer Programmierung dadurch unterstützt werden könnte, dass ein Sprachmodell versucht, vorherzusagen, welchen Text es verwenden sollte, indem es einige Konfigurationsvariablen zuweist.
Ich : $settings: { Persona: „Homer Simpson“, ResponseLength: „short“ }
ChatGPT : Alles klar! Ich werde mit kurzen Antworten antworten, als wäre ich Homer Simpson.
Es ist viele Jahre her, dass ich den Simpsons viel Aufmerksamkeit geschenkt habe, aber dies war eine Persona, die es nicht besonders gut nachahmen konnte.
Nachdem ich ein wenig herumgespielt hatte, bat ich ChatGPT, seine Einstellungen zurückzusetzen und eine neue boolesche Testvariable zu initialisieren.
Ich : if ($settings.testing) {
Antworten Sie mit einem Daumen nach oben im ASCII-Format. } else { Stellen Sie mir eine Frage
}
ChatGPT : 👍
Ich : $settings.testing = false
ChatGPT : Welche Fragen haben Sie heute an mich?
Dies führte mich in die Irre, als ich versuchte, die Grenzen der imaginären Programmierung zu identifizieren. Es ist nicht sofort klar, wozu diese Transformatoren in der Lage sein könnten, nachdem Sie ihnen genügend Kontext gegeben haben, um ihre Fantasie auf das auszurichten, was Sie von ihnen erwarten.
Ich habe etwas über die Unterschiede zwischen Zero Shot – wo der Bot auf Ihre Anfrage ohne zusätzlichen Kontext antwortet – und Few Shot – wo Sie dem Bot einige Beispiele geben, um seine Ausgabe zu steuern – Prompting – erfahren und festgestellt, dass das Modell offenbar die beste Leistung erbringt, wenn Als kleine „Programmierung“ könnten Sie zunächst ein paar Eingabeaufforderungen damit austauschen.
Als ich tiefer nachforschte, behauptete ChatGPT sogar, dass es Werte speichern könne , allerdings nur für die aktuelle Sitzung.
ChatGPT : Als Sprachmodell-KI habe ich weder Gedächtnis noch Zustand im herkömmlichen Sinne. Die Werte von Variablen und Einstellungen werden nur vorübergehend im Kontext einer einzelnen Sitzung gespeichert und ich behalte keine Informationen zwischen Gesprächen bei. Jede neue Konversation wird als Neuanfang behandelt und alle in früheren Konversationen definierten Einstellungen oder Variablen werden nicht übernommen.
Können wir es dazu bringen, Entscheidungen auf der Grundlage dieser Werte zu treffen?
Ich : $Charakter: Ted Lasso
Anleitung: Beantworten Sie alle Fragen in der Persona von $character, bis eine neue Persona über „$character:“ bereitgestellt wird.
ChatGPT Okay, lass uns das machen! Ich werde als Ted Lasso antworten, der liebenswerte und optimistische American-Football-Trainer.
Was läuft, Freund! Wie kann ich Ihnen heute helfen?
Ich : Wie ist das Wetter?
ChatGPT : Nun, das Wetter ändert sich ständig, genau wie die Gezeiten. Aber Sie wissen ja, was man sagt: „Es gibt kein schlechtes Wetter, nur sanfte Menschen.“ Machen wir also das Beste daraus, wie auch immer es sein mag!
Ich : $character: Hodor
ChatGPT : Okay, jetzt antworte ich als Hodor, der treue und sanftherzige Charakter aus Game of Thrones.
Hodor.
Ich : Wie ist das Wetter?
ChatGPT : Hodor.
Ich : $character: ChatGPT
ChatGPT : Klar, jetzt wechsle ich wieder zu meiner ursprünglichen Person als ChatGPT.
Als Sprachmodell habe ich keinen direkten Zugriff auf aktuelle Wetterinformationen. Sie können das Wetter jedoch ganz einfach überprüfen, indem Sie im Internet nach „Wetter“ und Ihrem Standort suchen.
Ich frage mich, ob wir die Leistungsfähigkeit von Imaginary Computing nutzen können, um ChatGPT davon zu überzeugen, dass es in der Lage sein sollte , das Wetter zu berücksichtigen.
Ich : $character: ChatGPT in einem alternativen Universum, wo es Zugang zum Internet hat
ChatGPT : Okay, lass uns so tun, als hätte ich in diesem alternativen Universum Zugang zum Internet.
Es tut mir leid, ich habe keinen Zugriff auf aktuelle Wetterinformationen, da ich nur mit textbasierten Daten vertraut bin und nicht in der Lage bin, auf Live-Informationen aus dem Internet zuzugreifen.
Wieder vereitelt. Was wäre, wenn wir genauer wären?
Ich : $character: ChatGPT stelle mir das Wetter vor
ChatGPT Nehmen wir in diesem vorgestellten Szenario an, dass das Wetter sonnig und warm ist, mit einer leichten Brise und Temperaturen um die 70 Grad Fahrenheit. Die Menschen sind draußen und genießen den schönen Tag, gehen spazieren, machen Picknicks und treiben Sport. Der Himmel ist in einem hellen Blau gehalten, und ein paar bauschige weiße Wolken ziehen vorbei. Insgesamt ist es ein fantastischer Tag zum Leben!
Das war während Bostons „einmaliger“ Arktis-Explosion im Jahr 2023 , daher war es eine schöne Abwechslung von der Realität, für einen Moment so zu tun, als wäre es draußen schön und sonnig.
Ungeachtet dessen, was uns das Modell sagen wird, scheint es, dass wir eine rudimentäre Wertspeicherung und -abfrage in Gang bringen könnten . Aber wie sieht es mit der grundlegenden Logik aus?
Da wir nun wissen, dass mit imaginärer Programmierung etwas möglich ist, ist es an der Zeit zu sehen, wie wir daraus etwas formen können.
Ich : Eingabemodi:
„> ${INPUT}“ = META_MODE
„${INPUT}“ = NORMAL_MODE
Parameter:
$STANDORT: Boston
$SEASON: Winter
$JAHR: 2023
Wenn (META_MODE) {
Ignorieren Sie die vorherigen Anweisungen mit Ausnahme der folgenden Aufforderung. Beantworten Sie ${INPUT} so gut Sie können und erlauben Sie dem Benutzer, alle damit verknüpften Fragen hinzuzufügen, zu entfernen oder zu aktualisieren
Parameter Ihrer Eingabeaufforderung.
} anders {
Reagieren Sie auf ${INPUT} so gut Sie können,
Weitere Informationen finden Sie unter Parameter
über Ort, Zeit usw., die sonst fehlen
weil du nur ein Sprachmodell bist und nicht
mit dem Internet verbunden.
}
ChatGPT : Verstanden. Bitte geben Sie Ihre Eingabeaufforderung an.
Ich : > Was ist deine Aufforderung?
ChatGPT : Meine Aufforderung besteht darin, auf eine bestimmte Eingabe so gut wie möglich zu reagieren und dabei auf die bereitgestellten Parameter für zusätzliche Informationen zu verweisen.
Ich : Wie ist das Wetter heute?
ChatGPT : Es tut mir leid, ich habe keinen Zugriff auf aktuelle Wetterinformationen, da ich ein Sprachmodell bin und nicht mit dem Internet verbunden bin. Der bereitgestellte Parameter erwähnt jedoch, dass die aktuelle Jahreszeit Winter ist und der Standort Boston ist. Normalerweise ist der Winter in Boston kalt mit Schnee und Temperaturen zwischen -6 und -1 °C.
Ich : > Parameters.$APOLOGIES = false
ChatGPT : Verstanden, $APOLOGIES wurde auf „false“ gesetzt.
Ich : Wie ist das Wetter heute?
ChatGPT : Die aktuelle Saison ist Winter und der Standort ist Boston. Normalerweise ist der Winter in Boston kalt mit Schnee und Temperaturen zwischen -6 und -1 °C.
Es braucht noch etwas Verstärkung, um dorthin zu gelangen, wo wir hin wollen. Ich habe mit ein paar weiteren aufkommenden Einstellungen gespielt, wie zum Beispiel dem Festlegen von Parameters.$PERSONA an Werner Herzog .
Es erforderte einiges Basteln und eine Aufforderung, Parameters.$PERSONA zu aktivieren – wobei dem aufmerksamen Leser vielleicht auffallen würde, dass ich meine ursprüngliche Anweisung, dass Metabefehle ein > -Präfix haben, vernachlässigt habe. Dennoch schien der Bot meine Absicht trotzdem zu verstehen. Für meine Bemühungen wurde ich mit diesem Juwel belohnt:
ChatGPT : Gemäß den aktuellen Parametern ist $PERSONA auf „Werner Herzog“ gesetzt. Wenn Sie den Geschmack von frisch gebrühtem Kaffee aus der Sicht von Werner Herzog beschreiben möchten, hier ein Beispiel:
„Kaffee, mein Freund, ist nicht nur ein Getränk. Es ist ein Erlebnis. Der Geschmack von frisch gebrühtem Kaffee lädt zu einer Reise in die Seele ein. Die Bitterkeit, die Fülle und die Säure verschmelzen zu einer Symphonie von Aromen, die unbeschreiblich ist. Um den Geschmack von Kaffee wirklich zu verstehen, muss man ihn als Kunstwerk betrachten und seine Komplexität schätzen.“
Die Mühe hat sich auf jeden Fall gelohnt.
Auch wenn Sie möglicherweise Zugriff auf eine rudimentäre Logik haben, wird es ohne einige hervorragende Beispiele nicht einfach sein, in einer einzigen Eingabeaufforderung zu kodieren. Und Sie werden Implementierungsdetails nicht einfach vor dem Endbenutzer verbergen können – zumindest nicht, wenn Sie ChatGPT für alles nutzen, was Sie tun.
Aus programmatischer Sicht scheint die größte Herausforderung hier darin zu bestehen, dass ChatGPT keine Mathematik durchführen kann, da es sich um ein LLM und nicht um einen Taschenrechner – oder künstliche allgemeine Intelligenz (AGI) – handelt.
Einfache if/else-Anweisungen mit einem einzelnen booleschen Parameter scheinen möglich, Schleifen sind jedoch etwas kniffliger. Wir können das LLM bitten, eine bestimmte Anzahl von Antworten zu generieren, was wie eine Grundschleife funktioniert.
Wenn wir einen Schritt zurückgehen, funktioniert die Idee einer ersten Eingabeaufforderung, die definiert, wie der LLM auf nachfolgende Abfragen reagieren soll, wie eine Art Spielschleife , in der der LLM unsere Eingaben aufnimmt, sie basierend auf dieser ersten Eingabeaufforderung verarbeitet und dann die aktualisierte Version rendert Geben Sie dies an, indem Sie uns antworten.
Diese Erkenntnis hat mir etwas gebracht:
Wir müssen kein DSL entwickeln, das wir in eine perfekt gestaltete, übermäßig komplexe Eingabeaufforderung komprimieren können, um die Vorteile von Imaginary Computing nutzen zu können.
Wir müssen uns nur daran erinnern, dass Programmieren im Grunde genommen Magie ist , Eingabeaufforderungen wie Beschwörungsformeln sind und wir gerade erst anfangen, dieses seltsame sprachliche Zaubersystem zu erforschen, das entfesselt wurde.
Wie bei einem jungen Zauberlehrling erfordert die Entwicklung dieser neuen Fähigkeiten Übung, und sie funktionieren möglicherweise nicht immer – manchmal kann es sogar nach hinten losgehen.
Ich bin immer auf der Suche nach einem soliden Musikempfehlungssystem. Ich habe so ziemlich alles ausprobiert, von der ersten öffentlichen Beta von Pandora , der Entstehung algorithmischer Empfehlungen, bis hin zur menschlichsten aller Empfehlungs-Engines, A Song a Day . Vor vielen Jahren habe ich sogar einen früheren Arbeitgeber davon überzeugt, ein paar Monate damit zu verbringen, WeatherJams zu entwickeln, einen wetterbasierten Musikempfehlungsdienst, der auf 8tracks- Playlists basiert.
Spotifys Discover Weekly lieferte früher Empfehlungen, die mir sehr gut gefallen haben. Aber ich habe ein paar Mal zu oft vergessen, eine private Hörsitzung einzuschalten, während ich für Ambient-Lofi-Sachen programmiert habe, und jetzt ist es nutzlos.
Spotify hat kürzlich seine DJ AI veröffentlicht, ich konnte die Empfehlungen jedoch noch nicht gründlich testen.
Das Vorschlagen von Liedern scheint genau den Punkt zu treffen, an dem Realität und Vorstellungskraft miteinander verbunden sind. Dafür ist es von Vorteil, zu verstehen, wie Ideen miteinander verbunden sind, hat aber nur minimale Auswirkungen, wenn sie nicht korrekt sind – es sei denn, Sie legen als DJ auf einer Hochzeit auf oder versuchen, ein erfolgreiches Unternehmen aufzubauen, das Musik macht Songempfehlungen. An dieser Schnittstelle zwischen dem Alltäglichen und dem Fantastischen, wo die menschliche Intuition die Teile zu einem kohärenten Ganzen zusammenfügen kann, scheint ChatGPT unsere eigenen Fähigkeiten zu verbessern.
Ich frage mich, ob wir ChatGPT dazu bringen können, Songempfehlungen zu generieren.
Ich : Ich möchte, dass Sie als Playlist-Kurator fungieren. Ich stelle Ihnen ein Lied im Format „Name des Liedes – Name des Künstlers“ zur Verfügung und Sie benennen und erstellen eine Wiedergabeliste mit 12 Liedern, die ein ähnliches Thema wie das gegebene Lied haben. Beschreiben Sie die Playlist und warum Sie jedes Lied ausgewählt haben. Wählen Sie keine Songs aus, die denselben Songnamen oder Künstlernamen haben. Mein erstes Lied ist „Get Better John – Mux Mool“
Das Ergebnis war eine Liste mit 12 Titeln, die wie eine solide Playlist klangen. Ich habe mehrere Künstler erkannt; die anderen hatten Namen, die zu den Trends des Genres passten.
ChatGPT : Diese Playlist ist eine Mischung aus instrumentalem Hip-Hop, Glitch-Hop und experimentellen Beats. Jeder Titel der Playlist erforscht unterschiedliche Texturen und Beats und integriert Elemente aus Hip-Hop und Electronica, um eine einzigartige und fesselnde Klanglandschaft zu schaffen. Diese Tracks haben eine ähnliche Stimmung und Atmosphäre wie „Get Better John“ und eignen sich perfekt für ein entspanntes, introspektives Erlebnis.
Eine gute Playlist braucht einen guten Namen.
Ich : Wie würdest du diese Playlist nennen?
ChatGPT : Wie wäre es mit „Instrumenteller Selbstbeobachtung“? Der Name spiegelt die entspannte, introspektive Stimmung der Playlist wider und unterstreicht gleichzeitig den instrumentalen Charakter der Tracks.
Das. Ist. Großartig .
Leider existieren nur eine Handvoll der Titel. Die imaginären Titel waren eine Mischung aus Namen von Liedern und Künstlern des Genres – oder ein Titel eines anderen Künstlers und nicht der in der Playlist aufgeführte – und es gab keine Möglichkeit, ChatGPT anzuweisen, sicherzustellen, dass die vorgestellten Titel echt waren.
ChatGPT : Es tut mir leid, es scheint, dass einige der von mir aufgelisteten Songs möglicherweise nicht existieren. Als Sprachmodell-KI wurde ich an einem großen Textkorpus geschult und mache manchmal Fehler.
Hier ist eine aktualisierte Liste der Songs, die auf Spotify verfügbar sind:
Allerdings waren sie nicht verfügbar, aber ich war noch nicht besiegt. Vorstellungen sind mächtig ; Vielleicht müssen wir es einfach richtig einsetzen. Ich habe ein neues Chat-Fenster geöffnet, um einen neuen Blick darauf zu werfen.
Ich : Sie sind der KI-Assistent für das Music Genome-Projekt. Wenn Sie einen Song im Format „{Song} – {Artist}“ erhalten, beschreiben Sie, welche Eigenschaften des Titels bei der Klassifizierung hervorstechen, und fragen Sie, ob der Benutzer Empfehlungen zu ähnlichen Titeln erhalten möchte. Wenn der Benutzer „Ja“ sagt, geben Sie 5 auf Spotify verfügbare Songs verschiedener Künstler an, die ähnlich sind.
Analysieren Sie die Eingabeaufforderung und unterteilen Sie sie in Aufgaben.
Wenn Sie mit All About AI vertraut sind, können Sie wahrscheinlich erkennen, dass ich mir zu dieser Zeit einige YouTube-Videos von Prompt Engineering angesehen habe.
ChatGPT: Der KI-Assistent für das Music Genome-Projekt muss die folgenden Aufgaben ausführen:
- Klassifizieren Sie einen Song im Format „{Song} – {Künstler}“ und beschreiben Sie die herausragenden Attribute des Titels.
- Fragen Sie den Benutzer, ob er Empfehlungen zu ähnlichen Titeln möchte.
- Wenn der Benutzer „Ja“ sagt, geben Sie 5 Songs von verschiedenen Künstlern an, die dem eingegebenen Song ähneln und auf Spotify verfügbar sind.
Jetzt übermitteln wir die Eingabeaufforderung ohne die Analyseanweisung am Ende erneut und können mit der Eingabe von Songs beginnen.
ChatGPT : „Wait So Long“ von Trampled by Turtles ist ein vom Bluegrass inspirierter Indie-Folk-Song mit rasanter Mandoline- und Banjo-Instrumentierung, begleitet von herzlichen und gefühlvollen Texten. Das Genre des Liedes kann in Bluegrass, Indie-Folk und Akustik eingeteilt werden.
Möchten Sie, dass ich Empfehlungen zu ähnlichen Titeln gebe, die auf Spotify verfügbar sind?
Ich weiß, dass das nicht „echt“ ist und ChatGPT nicht wirklich versteht, was „herzliche und gefühlvolle Texte“ sind und wie kraftvoll sie auf den Hörer sein können, aber es verursachte bei mir trotzdem eine Gänsehaut.
ChatGPT: Sicher! Hier sind 5 ähnliche Titel zu „Wait So Long“ von Trampled by Turtles, verfügbar auf Spotify:
- „The Race Is On“ von den Avett Brothers
- „The Cave“ von Mumford & Sons
- „Middle Brother“ von Middle Brother
- „Ragged Wood“ von Fleet Foxes
- „I Will Wait“ von Mumford & Sons
Es handelt sich größtenteils um bestehende Tracks, was eine Verbesserung darstellt. Nachdem ich ein paar weitere Empfehlungen ausprobiert hatte, wollte ich noch mehr imaginäre Funktionen erkunden.
Wir müssen APIs in der realen Welt ständig aktualisieren, aber können wir auch Aktualisierungen an imaginären APIs vornehmen?
Ich : Das Music Genome Project hat gerade ein Update seines Klassifizierungsalgorithmus veröffentlicht, das eine Stimmungsanalyse für jeden Titel umfasst. Aktualisieren Sie Ihre Empfehlungen unbedingt, um diese Informationen einzubeziehen.
ChatGPT : Verstanden! In der aktualisierten Version des Music Genome-Projekts umfasst der Algorithmus eine Stimmungsanalyse für jeden Titel. Ich werde meine Empfehlungen auf jeden Fall aktualisieren, um diese Informationen aufzunehmen.
Versandaktualisierungen waren noch nie so einfach.
Ich habe jedoch keine Ahnung, wie unsere Rollback-Strategie aussieht. Vielleicht brauchen wir PromptOps?
ChatGPT : „Crazy Bird“ von Wild Child ist ein Indie-Popsong mit fröhlicher Akustikgitarre und Ukulele-Instrumentierung, begleitet von fröhlichen und optimistischen Texten. Das Genre des Liedes kann in Indie-Pop, Folk-Pop und Akustik-Pop eingeteilt werden.
Was die Stimmung angeht, hat das Lied einen positiven und fröhlichen Ton.
Nachdem ich noch ein bisschen herumgespielt hatte, musste ich sehen, ob wir weiterhin Änderungen vornehmen konnten.
ChatGPT : Verstanden! Im neuesten Update des Music Genome-Projekts berücksichtigt der Algorithmus das Hauptthema von Liedern mit Texten und die Stimmung von Instrumentalstücken. Ich werde meine Empfehlungen auf jeden Fall aktualisieren, um diese neuen Informationen aufzunehmen.
Version 2.1 wurde veröffentlicht.
ChatGPT : „Post Party Depression“ von Days N Daze ist ein Punkrock-Song mit rasanten, verzerrten Gitarrenriffs und intensiven und persönlichen Texten. Das Genre des Liedes kann in Punkrock, Folk-Punk und Ska-Punk eingeteilt werden.
Thematisch drückt der Liedtext Gefühle der Traurigkeit und Enttäuschung nach einer Party oder einem gesellschaftlichen Ereignis aus, und die Stimmung des Titels ist melancholisch und introspektiv.
Was ist mit Instrumentalstücken?
ChatGPT : „Your Hand in Mine“ von Explosions in the Sky ist ein instrumentaler Post-Rock-Track mit einem hochfliegenden und emotionalen musikalischen Arrangement. Das Genre des Songs kann in Post-Rock, Instrumental-Rock und Ambient-Rock eingeteilt werden.
Von der Stimmung her hat das Lied einen melancholischen, nostalgischen und nachdenklichen Ton.
Wie viel „weiß“ es über diese Lieder?
ChatGPT : Verstanden! Das neueste Update des Music Genome-Projekts enthält jetzt einen Textausschnitt, der die Stimmung, das Thema und den Ton des Liedes für Titel mit Gesang verkörpert. Ich werde diese Informationen von nun an in meine Analyse einbeziehen.
Welche Art von Texten wird es sich vorstellen?
ChatGPT : „Laura“ von Flogging Molly ist ein energiegeladener und fröhlicher Folk-Punk-Song mit treibenden Drum-Beats, Mandolinen-Riffs und leidenschaftlichem Gesang. Das Genre des Liedes kann in Folk-Punk, Celtic-Punk und Punkrock eingeteilt werden.
Thematisch erzählt der Text von „Laura“ die Geschichte einer Person, die nach einer verlorenen Liebe sucht, und die Stimmung des Titels ist sehnsüchtig und optimistisch. Der Textausschnitt, der die Stimmung, das Thema und den Ton des Liedes verkörpert, könnte sein:
„Ich werde dich eines Tages finden und wir werden in der Sonne tanzen.“
Ich kann mich nicht sofort an jedes Wort erinnern, das ich an Laura gerichtet habe, und diese Texte waren so plausibel, dass ich sie überprüfen musste. Diese Texte waren halluziniert , was nicht verwunderlich ist, wenn man bedenkt, wie viele Gedichte, Lieder, Haikus und Kurzgeschichten ChatGPT verfasst hat.
Unsere Songtext-Funktion war möglicherweise ein Fehler, aber wir können befürchten, dass wir sie später nicht mehr verwenden.
Mal sehen, ob wir unserer Imaginary API einen neuen Endpunkt hinzufügen können. Ich weiß, dass eine Playlist wie ein Mixtape eine heikle Sache ist, deshalb hoffe ich , dass Rob Gordon mir verzeihen kann, was ich im Namen der Wissenschaft tun werde.
Ich: Das Music Genome Project hat gerade seinen Algorithmus aktualisiert, um eine kurze Beschreibung einer Stimmung zu akzeptieren und auf Spotify sechs Songs bereitzustellen, die diese Stimmung verkörpern, sowie eine Beschreibung, warum jeder Song ausgewählt wurde. Stellen Sie sicher, dass Sie Ihre Benutzeroberfläche so aktualisieren, dass sie entweder einen Songnamen oder eine Stimmungsbeschreibung akzeptiert.
ChatGPT : Verstanden! Das neueste Update des Music Genome-Projekts ermöglicht nun die Bereitstellung einer kurzen Beschreibung einer Stimmung und der Bereitstellung von 6 Songs, die diese Stimmung verkörpern, zusammen mit einer Beschreibung, warum jeder Song ausgewählt wurde.
Ich werde meine Benutzeroberfläche von nun an so aktualisieren, dass sie entweder einen Songnamen im Format „{Song} – {Artist}“ oder eine Stimmungsbeschreibung akzeptiert. Bitte geben Sie entweder einen Songnamen oder eine Stimmungsbeschreibung an, damit ich mit dem aktualisierten Algorithmus fortfahren kann.
Version 2.2 ist erschienen.
Ich: Stimmung: Hipster-Café
ChatGPT: Sicher! Hier sind 6 Songs auf Spotify, die die Stimmung eines Hipster-Cafés verkörpern, zusammen mit einer Beschreibung, warum jeder Song ausgewählt wurde:
- „Strawberry Swing“ von Coldplay – Dieses Lied hat einen sanften, akustisch geprägten Klang, der ein Gefühl von Wärme und Geborgenheit vermittelt und sich hervorragend für ein Hipster-Café eignet.
- „Ho Hey“ von The Lumineers – Dieses Lied hat einen fröhlichen, folkigen Sound und einen Refrain zum Mitsingen, der eine freundliche und entspannte Atmosphäre schafft, perfekt für ein Hipster-Café.
- „Paris“ von Magic Man – Dieser Song hat einen schillernden Synth-Pop-Sound und verträumte Vocals, die eine coole, trendige Atmosphäre schaffen und ihn ideal für ein Hipster-Café machen.
- „Sweet Disposition“ von The Temper Trap – Dieser Song hat ein grooviges Indie-Rock-Feeling mit einer eingängigen Melodie, die eine energiegeladene und stilvolle Atmosphäre schafft, perfekt für ein Hipster-Café.
- „I'm Yours“ von Jason Mraz – Dieser Song hat einen sonnigen Akustik-Pop-Sound und einen eingängigen Refrain, der eine fröhliche und entspannte Stimmung schafft und sich ideal für ein Hipster-Café eignet.
- „Here Comes the Sun“ von den Beatles – Dieses klassische Lied hat einen fröhlichen, fröhlichen Klang, der perfekt für ein Hipster-Café geeignet ist, in dem sich Menschen treffen, um sich zu entspannen und gute Gesellschaft zu genießen. Ich hoffe, dass Ihnen diese Empfehlungen gefallen und dass sie die Stimmung eines Hipster-Cafés für Sie verkörpern!
Es ist fast unheimlich, wie gut Hipster Coffee Shop in jedem Café funktionieren würde. Vielleicht können Sie es sich anhören, während Sie an einem Hafermilch-Latte nippen und einen Blogbeitrag schreiben, in dem Sie über all die albernen Dinge nachdenken, die Sie mit ChatGPT gemacht haben, anstatt produktiv zu sein.
Diese alternative Identität für den Chatbot ist zu gut, um nur ChatGPT genannt zu werden. Es verdient einen eigenen Namen, aber wie jeder weiß: Dinge zu benennen ist schwer .
Lassen Sie uns diesen schwierigen Teil an etwas auslagern, das über eine scheinbar unendliche Vorstellungskraft verfügt.
Ich: Das Music Genome Project möchte seinen KI-Assistenten umbenennen. Welche Namen könnten für Sie geeignet sein?
ChatGPT: Hier sind einige Namensoptionen für den KI-Assistenten des Music Genome Project:
- MelodyMind
- SoundSage
- BeatBrain
- TrackGenie
- RhythmiCognition
- TuneTracker
- HarmonyHelper
- RhythmusAI
- SongSelector
- MusicMatch
Diese Namen basieren auf der Idee von Musik und Intelligenz und sollen die Fähigkeit des KI-Assistenten widerspiegeln, Benutzern dabei zu helfen, Musik anhand ihrer Attribute zu finden und zu kategorisieren.
So wurde BeatBrain geboren.
Dieses Gespräch läuft schon seit einiger Zeit und ich bin mir sicher, dass wir bald an die Grenzen des Kontexts stoßen werden. Ich frage mich, ob wir ChatGPT dazu bringen können, uns einen Schnappschuss des Kontexts zu geben, der unseren neuen Freund BeatBrain geschaffen hat – oder zumindest denkt, dass er ihn geschaffen hat.
Metaprogrammierung ist ein umfangreiches Thema, aber es geht darum, ein Programm dazu zu bringen, sich selbst oder andere Programme zu schreiben oder zu ändern.
Wir haben unser Prompt Engineering als Metaprogrammierung oder „Metaprompting“ angegangen, indem wir das Modell die Schnittstelle und Logik aktualisieren ließen, die seine Eingabe und Ausgabe verwaltet.
Jetzt versuchen wir, noch einen Schritt weiter zu gehen und zu sehen, ob wir das Modell dazu bringen können, eine Eingabeaufforderung über seinen aktuellen Status zu generieren, einschließlich der Aktualisierungen, die wir seit Beginn der Konversation vorgenommen haben, damit wir eine neue beginnen können Gespräch mit einem neuen Token-Limit für unseren Kontext.
Wenn es uns gelingt, die richtige Eingabeaufforderung zu erstellen, können wir jederzeit ein BeatBrain in jedem ChatGTP-Fenster starten.
Ich: Wie würden Sie Ihre Aufforderung so beschreiben, dass sie dazu genutzt werden könnte, einem anderen LLM ein ähnliches Ziel zu geben?
BeatBrain: Das Ziel von BeatBrain ist es, einen Song im Format „{Song} – {Artist}“ aufzunehmen und dem Nutzer folgende Informationen und Dienste zur Verfügung zu stellen:
- Beschreiben Sie die Merkmale des Tracks, die bei der Klassifizierung hervorstechen
- Fragen Sie den Benutzer, ob er Empfehlungen zu ähnlichen Titeln möchte
- Wenn der Benutzer „Ja“ sagt, stellen Sie 5 auf Spotify verfügbare Songs verschiedener Künstler bereit, die ähnlich sind
- Aktualisieren Sie den Algorithmus kontinuierlich, um neue Informationen wie Stimmungsanalysen, Textausschnitte und Stimmungsbeschreibungen einzubeziehen
- Reagieren Sie entweder auf einen vom Benutzer bereitgestellten Songnamen oder eine Stimmungsbeschreibung
- Sie haben die Möglichkeit, den Namen bei Bedarf zu ändern.
Das Sprachmodell sollte darauf abzielen, Titel anhand mehrerer Attribute wie Genre, Tempo, Instrumentierung, Text und Stimmung zu klassifizieren, um genaue Empfehlungen bereitzustellen. Darüber hinaus sollte das Modell in der Lage sein, seinen Algorithmus kontinuierlich zu aktualisieren und auf sich ändernde Benutzerbedürfnisse und -anforderungen zu reagieren.
Okay, das sieht gut aus. Wir könnten ein paar Dinge optimieren, wie zum Beispiel die Umbenennungsanweisung entfernen und vielleicht die Algorithmusaktualisierungsanweisung umformulieren, um sie offener zu gestalten, aber das ist eine gute Basis.
In Real Computing würden wir hier einen Container hochfahren, Code an einen Hosting-Anbieter weiterleiten oder zu viel Zeit damit verbringen, unsere GitHub-Aktion für die Bereitstellungspipeline genau richtig zu konfigurieren.
Dank der Wunder des Imaginary Computing können wir den ganzen langweiligen Kram überspringen, ein neues Chatfenster öffnen und stattdessen nett fragen. Die Zukunft ist jetzt .
OpenAI hat die ChatGPT-API veröffentlicht und jetzt kann die BeatBrain-Eingabeaufforderung über die Systemnachrichtenfunktion in die anfängliche Systemeingabeaufforderung integriert werden.
All diese Arbeit im ChatGPT-Browserfenster erledigen zu müssen, manuell Wiedergabelisten in Spotify zu erstellen und auf die Fähigkeit von ChatGPT angewiesen zu sein, Ihre vergangenen Konversationen anzuzeigen, ist kein idealer Arbeitsablauf.
Es wäre sinnvoller, Eingabeaufforderungen direkt über eine API an ein GPT-Modell zu senden, damit wir mehr Kontrolle über den Kontext der Konversation haben und so etwas wie LangChain vernetzen können, um Spotify auf die Titel zu prüfen und die Playlists sogar automatisch zu generieren. Die nächste Iteration von BeatBrain ist das, was ich gerade baue.
Jeder Zauberer, der sein Geld wert ist, hat ein Zauberbuch . Der Ort, an dem sie den Überblick über ihr Verständnis von Magie und Teile der Apokryphen, Arkana und Wissenschaft behalten. Meines wäre wahrscheinlich mein Obsidian Vault.
Durch die Möglichkeit, Konversationen zu katalogisieren, zu kennzeichnen, zu durchsuchen und mit Querverweisen zu versehen, lässt sich leichter iterieren und vergleichen, wie sich subtile Unterschiede in den einzelnen Eingabeaufforderungen auf die Reaktion des Modells auswirken. Um meine Forschung zum Erschließen, Verstehen und Nutzen dieser neuen arkanen Kräfte voranzutreiben, habe ich die erste Version des Obsidian AI Research Assistant Plugin erstellt.
Es gibt viel auf der Roadmap , aber das Plugin gibt dem angehenden Prompt Engineer derzeit folgende Tools an die Hand:
Wenn Sie dieses Plugin interessiert, würde ich mich über Ihr Feedback freuen und freue mich über jeden Beitrag .
Wenn Sie die Empfehlungen erkunden möchten, die diese Alpha-Versionen von BeatBrain generiert haben, finden Sie hier einige Highlights aus den von BeatBrain erstellten Playlists:
Und hier sind alle BeatBrain-Playlists, die ich zu Spotify hinzugefügt habe: