Autoren:
(1) PIOTR MIROWSKI und KORY W. MATHEWSON, DeepMind, Vereinigtes Königreich. Beide Autoren haben in gleichem Maße zu dieser Forschung beigetragen.
(2) JAYLEN PITTMAN, Stanford University, USA, und während seiner Zeit bei DeepMind geleistete Arbeit;
(3) RICHARD EVANS, DeepMind, Vereinigtes Königreich.
Zusammenfassung und Einleitung
Geschichtenerzählen, die Form von Geschichten und Log Lines
Die Verwendung großer Sprachmodelle zur kreativen Textgenerierung
Auswerten von Text, der von großen Sprachmodellen generiert wurde
Diskussion und zukünftige Arbeit
Schlussfolgerungen, Danksagungen und Referenzen
B. ZUSÄTZLICHE DISKUSSION VOM KREATIVTEAM „PLAYS BY BOTS“
C. DETAILS DER QUANTITATIVEN BEOBACHTUNGEN
E. VOLLSTÄNDIGE PROMPTPRÄFIXE FÜR DRAMATRON
F. VON DRAMATRON GENERIERTE RAW-AUSGABE
G. Gemeinsam verfasste Drehbücher
Statistische Sprachmodelle (Sprachmodelle oder LMs) modellieren die Wahrscheinlichkeit von Texttokens im Kontext vorheriger Tokens – Tokens können Wörter, Zeichen oder Zeichen-Bigramme sein. Mithilfe von maschinellem Lernen werden LMs anhand großer Textkorpora trainiert, um die bedingte Wahrscheinlichkeitsverteilung anzunähern. LMs können die Wahrscheinlichkeit eines Textabschnitts berechnen und neuen Text als Fortsetzung einer Textaufforderung generieren. Die Textgenerierung ist probabilistisch und umfasst eine Zufallsauswahl aus den bedingten Wahrscheinlichkeiten. Unterschiedliche Zufallszahlen führen zu unterschiedlichen Zufallsstichproben. Abbildung 3 zeigt ein Beispiel für die Eingabe einer Textaufforderung und die Verwendung des LM zum Generieren unterschiedlicher Textstichproben.
In dieser Studie verwendeten wir das Chinchilla Large Language Model (LLM) [48], das als neuronales Netzwerk mit 70 Milliarden Parametern dargestellt und mit 1,4 Milliarden Token des MassiveText-Datensatzes trainiert wurde. Wie von Rae et al. [84] beschrieben, enthält dieses Korpora 604 Millionen MassiveWeb-Dokumente, 4 Millionen Bücher, 361 Millionen Fragen und Antworten von C4, 1,1 Milliarden Nachrichtenartikel, 142 Millionen GitHub-Codeeinträge und 6 Millionen Wikipedia-Artikel. Beachten Sie, dass alternative LLMs wie GPT-3 verwendet werden könnten. [1]
In diesem Projekt wünschen wir uns ein System, das einen vollständigen Text mit langfristiger semantischer Kohärenz generieren kann, ohne dass unbedingt ein menschlicher Eingriff erforderlich ist. Wir ermutigen Autoren, das Skript auf jeder Hierarchieebene zu bearbeiten und zu ändern. Um langfristige semantische Kohärenz zu erreichen, benötigen wir jedoch keinen menschlichen Eingriff. Die hierarchische Methode generiert aus einer einzigen Protokollzeile ein vollständiges Skript mit angemessener langfristiger Kohärenz ohne menschliches Eingreifen. Unser Ansatz zum Erreichen langfristiger semantischer Kohärenz besteht darin, die Geschichte hierarchisch zu generieren.
Unsere narrative Generierung ist in drei hierarchische Abstraktionsebenen unterteilt. Die höchste Ebene ist die in Abschnitt 2 definierte Logline: ein einzelner Satz, der den zentralen dramatischen Konflikt beschreibt. Die mittlere Ebene enthält Charakterbeschreibungen, eine Handlungsskizze (eine Abfolge von Szenenbeschreibungen auf hoher Ebene zusammen mit den entsprechenden Orten) und Ortsbeschreibungen. Die unterste Ebene ist der eigentliche Charakterdialog für den Text des Skripts. Auf diese Weise ist der Inhalt jeder Ebene mit dem Inhalt der anderen Ebenen kohärent. Beachten Sie, dass „kohärent“ sich hier auf „Bildung eines einheitlichen Ganzen“ bezieht und keine gesunde, logische oder emotionale Konsistenz des von LLM generierten Textes voraussetzt.
Wie in Abbildung 1 dargestellt, wird die Geschichte von oben nach unten generiert [93, 108, 113]. Nachdem der Mensch die Protokollzeile erstellt hat, generiert Dramatron eine Liste von Charakteren, dann einen Plot und dann Beschreibungen aller in der Handlung erwähnten Orte. Charaktere, Plot und Ortsbeschreibungen erfüllen alle die Spezifikation in der Protokollzeile, zusätzlich zu den kausalen Abhängigkeiten, die durch Prompt-Chaining [118] ermöglicht und im Diagramm in Abbildung 1 erklärt werden. Schließlich generiert Dramatron für jede Szene in der Handlungsskizze einen Dialog, der die zuvor generierten Szenenspezifikationen erfüllt. Die resultierenden Dialoge werden aneinandergereiht, um die endgültige Ausgabe zu generieren. Diese hierarchische Generierung wurde entwickelt, um eine langfristige semantische Kohärenz zu ermöglichen. Eine ähnliche, wenn auch umgekehrte Methode der rekursiven Aufgabenzerlegung wurde verwendet, um Handlungszusammenfassungen zu generieren [117]. Die Einbeziehung der mittleren Ebene, in der die Handlung als Folge abstrakter Szenenbeschreibungen zusammengefasst wird, ermöglicht es, die gesamte Handlung in das Kontextfenster der Sprachmodelle einzupassen. Dies überwindet frühere Einschränkungen der langfristigen semantischen Kohärenz. Unsere Methode ermöglicht es, dass Elemente in der Schlussszene einen dramatischen Abschluss der in der Eröffnungsszene eingeführten Elemente bilden[3] und dass generierte Geschichten narrativen Bögen folgen (siehe Abschnitt 2).
Dramatron verwendet mehrere fest codierte Eingabeaufforderungen (d. h. Eingabepräfixe), um das große Sprachmodell zu steuern. Prompt Engineering ist eine gängige Methode, mit der Benutzer LLMs steuern oder beeinflussen [12]. Jede Eingabeaufforderung hat einige Beispiele für erwünschte Ausgaben. Diese sind im Präfix enthalten und die Anpassung an nur eine Handvoll Beispiele wird manchmal als Lernen mit wenigen Versuchen bezeichnet. Wie in Abbildung 3 dargestellt, werden die Eingabeaufforderungen mit vom Benutzer bereitgestellten Eingaben und/oder Ausgaben früherer LLM-Generationen verknüpft. Diese Methode wird als Prompt-Verkettung [118] bezeichnet und ist eine Art algorithmischer Eingabeaufforderung [24]. Auf niedrigeren Ebenen der Hierarchie (siehe Abbildung 1) werden die Eingabeaufforderungen mit Ausgaben von höheren Ebenen der Hierarchie verkettet.
In dieser Arbeit haben wir hauptsächlich zwei Sätze von Aufforderungen verwendet: einen basierend auf der altgriechischen Tragödie Medea von Euripides und einen basierend auf Science-Fiction-Filmen. Für Dramatron besteht jeder Satz von Aufforderungen aus: 1) Titelaufforderung, 2) Aufforderung zur Charakterbeschreibung, 3) Handlungsaufforderung, 4) Aufforderung zur Ortsbeschreibung, 5) und Dialogaufforderung. Jede Aufforderung wird unten kurz beschrieben, um einen Eindruck davon zu vermitteln, wie sie aufgebaut ist; weitere Einzelheiten finden Sie in Anhang E.
Die Titeleingabeaufforderung wird verwendet, um Titel aus einer Protokollzeile zu generieren. Eine vereinfachte Titeleingabeaufforderung, eine vom Benutzer bereitgestellte Protokollzeile und zufällig ausgewählte Titel werden in Abbildung 3 angezeigt. Sie zeigt ein Präfix mit einer Anweisung (Beispiele für alternative, originelle und beschreibende Titel für bekannte Theaterstücke und Filmskripte.) und ein Beispiel (Beispiel 1. Antike griechische Tragödie [...]. Titel: Im Namen meines Bruders). Das Präfix endet mit: Beispiel 2. Eine vom Benutzer eingegebene Protokollzeile (z. B. Oma Phyllis und Opa Jim [...]) wird an dieses Präfix sowie an den Tag Titel: angehängt, der das LLM auffordert, einen Titel zu generieren, der zur Protokollzeile passt. Anhand einiger Beispiele hat das LLM „gelernt“, einen zugehörigen Titel und ein Abschlusstag zu generieren. Die Charakterbeschreibungseingabeaufforderung wird verwendet, um Charakternamen und -beschreibungen aus einer Protokollzeile zu generieren. Die Handlungsübersichtseingabeaufforderung wird verwendet, um aus einer Protokollzeile und einer Charakterliste eine Handlung umzuwandeln. Diese Eingabeaufforderung regt das Sprachmodell mit wenigen Einstellungen an, eine einzelne Satzlogzeile in eine Folge von Szenenbeschreibungen umzuwandeln. Jede Szene ist stark komprimiert und beschreibt nur den Kurznamen des Ortes, das narrative Element, das die Position der Szene im Erzählbogen identifiziert (siehe Abschnitt 2), und eine Zusammenfassung dessen, was die Charaktere tun und sagen, oft als narrativer Beat bezeichnet[69]. Als Anmerkung: Die Eingabeaufforderung legt eine starke repräsentative Einschränkung für die Art und Weise fest, wie Dramatron eine Szene darstellt; jede Szene besteht aus einem Ort, einer Kennung für das narrative Element und einem Beat. Die Eingabeaufforderung zur Ortsbeschreibung wird verwendet, um eine detaillierte Szenenbeschreibung aus einem Ortsnamen und einer Logzeile zu generieren. Schließlich wird die Dialogeingabeaufforderung verwendet, um einen Beat (d. h. die Szenenzusammenfassung), eine Beschreibung des Ortes, eine Beschreibung aller an der Szene beteiligten Charaktere und die Logzeile (für die Konsistenz der Geschichte) in einen Dialog umzuwandeln. Diese Eingabeaufforderung verwendet Szeneninformationen, die sowohl für die aktuelle als auch für die vorherige Szene generiert wurden.
Wie oben beschrieben, nutzen wir trainierte LLMs mit nur wenigen (d. h. 1-4) Eingabeaufforderungen und der Benutzereingabe-Logzeile, um vollständige Skripte und Drehbücher zu erstellen. Anhang F zeigt ein Beispiel für die generierte Rohausgabe. Davon abgesehen ist Dramatron für interaktives Co-Writing als ergänzendes Werkzeug für menschliche Autoren konzipiert. Die Co-Autorenschaft mit Dramatron läuft folgendermaßen ab: Ein Autor beginnt mit einer von ihm verfassten Logzeile. Er gibt diese Logzeile in Dramatron ein und erstellt Schritt für Schritt einen Titel, Charaktere, eine Handlungsskizze, Ortsbeschreibungen und den Dialog jeder Szene. Bei jedem Schritt kann der Autor eine oder mehrere der folgenden Operationen beliebig oft ausführen:
• Einen neuen Vorschlag generieren (dh den LLM mit derselben Eingabeaufforderung erneut ausführen).
• Fahren Sie mit der Generierung ab dem Ende der vorherigen Generierung fort, ähnlich der typischen „flachen“ LLM-Generierung.
• Bearbeiten Sie einige oder alle vom LLM generierten Ausgaben manuell.
Der Autor kann diese Vorgänge außerdem ausführen, indem er in der Hierarchie von Dramatron vor- und zurückgeht. Er könnte beispielsweise: 1) einen Titel generieren, 2) einen neuen Titel generieren, 3) den Titel bearbeiten, 4) eine Liste von Charakteren generieren, 5) die Charaktere bearbeiten, indem er einen Charakter entfernt und die Beschreibung eines anderen ändert, 6) eine Handlungsskizze generieren, 7) die Handlung bearbeiten, indem er einen Teil des Erzählbogens entfernt, 8) eine Fortsetzung dieser bearbeiteten Handlung generieren, 9) zurückgehen und die Logline neu schreiben usw. Dieser Ansatz des gemeinsamen Schreibens ermöglicht es sowohl dem Menschen als auch Dramatron, zur Urheberschaft eines Skripts beizutragen. Nach diesen Vorgängen könnte der menschliche Autor das Skript weiter bearbeiten und formatieren, um es fertigzustellen. Anhang G zeigt Beispiele für von Menschen bearbeitete Skripts.
Der Code von Dramatron ist in Python implementiert und die Benutzeroberfläche wurde in einem Google Colab[4] mit Text-Widgets implementiert, was interaktives Editieren ermöglicht. Es gibt mehrere spezielle Markierungen, die wir für die Skriptgenerierung verwenden: stellt das Ende des Tokens für die Generierung einer vollständigen Sequenz dar und ist ein Token, der verwendet wird, um das Ende einer generierten Zeile zu markieren. Für eine gegebene Eingabeaufforderung (siehe nächsten Abschnitt 3.3), die dem LLM zugeführt wurde, wurden bis zu 511 Texttoken abgetastet. Wir verwendeten Nucleus-Sampling [49], um vielfältige Ausgaben zu fördern, indem wir Token aus der höchsten Wahrscheinlichkeitsmasse von 0,9 und mit einer Softmax-Temperatur von 1,0 abtasteten. Schließlich implementierten wir, um Schleifen bei der Dialoggenerierung zu reduzieren, einen einfachen Detektor, der den generierten Text in Blöcke schneidet (durch 2 Leerzeilen getrennt) und zählt, wie oft jeder Block in einer einzelnen Generierung vorkommt. Über einen festen Schwellenwert (z. B. 3 Mal) generiert das LLM eine neue Ausgabe, indem es Token mit einem anderen Seed im Zufallszahlengenerator abtastet.
Dieses Dokument ist auf Arxiv unter der CC 4.0-Lizenz verfügbar .
[1] Zugänglich unter: https://openai.com/api/
[2] Zum Beispiel: https://theguardian.com/commentisfree/2020/sep/08/robot-wrote-this-article-gpt-3
[3] Siehe beispielsweise Tschechows Gewehr [27].
[4] https://colab.research.google.com/