Ik heb GPT-4 gevraagd een boek te schrijven.
Het resultaat: “Echo’s van Atlantis”, 12 hoofdstukken, 115 pagina’s, geen menselijke inbreng. (proces inbegrepen)
Boek kan hier gevonden worden: Google Drive let op boek is in het Engels
Het doel van dit project was om GPT-4 een hele roman vanuit het niets te laten genereren, inclusief titel, genre, verhaal, personages, setting en al het schrijfwerk, zonder menselijke input. Het is momenteel onmogelijk om dit te doen met een enkele prompt, maar wat wel mogelijk is, is een reeks prompts die structuur geven aan het proces en het in staat stellen deze grote taak stap voor stap uit te voeren. Om ervoor te zorgen dat al het creatieve werk door GPT-4 wordt gedaan, mogen de aanwijzingen echter geen specifieke verwijzingen naar de inhoud van het boek bevatten, maar alleen naar de structuur van het boek. Het is de bedoeling dat het proces eenvoudig, mechanisch en (in principe) volledig te automatiseren is. Elke keer dat het proces vanaf het begin wordt herhaald, moet er weer een geheel nieuw boek ontstaan, uitsluitend gebaseerd op de onafhankelijke creatieve keuzes van GPT-4.
Het resultaat: Echo’s van Atlantis, een fantasy-avonturenroman met 12 hoofdstukken en 115 pagina’s, geschreven in 10 dagen, vanaf de dag dat GPT-4 werd uitgebracht tot nu.
Inzichten/Technieken
Mijn belangrijkste inzichten heb ik tijdens dit project opgedaan:
- Iteratieve verfijning: Begin met een overzicht op hoog niveau. Maak een gedetailleerde hoofdstukschets. Schrijf dan een conceptversie van het volledige hoofdstuk (dit zal veel korter zijn dan gewenst). Breid vervolgens elke scène uit tot een langere, meer gedetailleerde scène.
- Afbakenen (outside-in): GPT-4 gaat graag te ver vooruit en schrijft over delen van het boek die nog niet moeten gebeuren. De sleutel om dit te voorkomen is eerst de eerste delen te schrijven, dan de laatste delen, en dan de middelste delen in te vullen. Het laatste deel voorkomt dat het te ver vooruit gaat, en de eerste delen binden op hun beurt het laatste deel van het vorige deel. Bounding wordt gebruikt op elk niveau van verfijning behalve het hoogste niveau.
- Enkele prompt: Vaak kun je, door een enkele grote prompt te gebruiken, in plaats van een lopende conversatie, flexibel bepalen welke informatie precies in de invoerbuffer komt, en ervoor zorgen dat alles relevant is voor de huidige taak. Ik heb deze aanpak ontwikkeld om zoveel mogelijk relevante informatie in de tokenbuffer te proppen.
- Continuïteitsnotities: Vraag het om aantekeningen te maken over belangrijke details om te onthouden voor continuïteit en consistentie terwijl het gaat. Begin met een samenvatting van de continuïteitsnotities van de vorige scène, en voeg er dan extra continuïteitsnotities aan toe. Continuïteitsnotities zullen na verloop van tijd groter worden; als ze te lang worden, vraag hem dan ze samen te vatten.
- Contouren herzien: In sommige gevallen improviseert de AI bij het schrijven, bijvoorbeeld door enkele scènes van hoofdstuk 5 te verplaatsen naar hoofdstuk 4, wat het boek breekt. Om dit op te lossen, vraag ik de AI na elk hoofdstuk terug te gaan en zijn eerdere, hogere schetsen bij te werken en de openings- en slotscènes van elk hoofdstuk opnieuw te genereren alvorens verder te gaan. Dit lijkt sterk op hoe echte auteurs na verloop van tijd hun schetsen herzien.
- Gegevens opruimen: Soms doet een uitvoer iets raars, zoals het kopiëren van labels uit de invoerbuffer zoals “Openingsparagraaf”, of vergeet hij de scènes te nummeren, of begint hij bij nul, of voegt hij een beetje verdwaalde tekst toe aan het begin. Momenteel ruim ik dit handmatig op, maar een volledig geautomatiseerde oplossing zou hiermee moeten kunnen omgaan.
Voorbeeld prompts
Dit zijn slechts enkele voorbeelden. Voor volledige details, zie mijn Onderzoekslogboek.
Niveau 1: Overzicht op hoog niveau
Ik: Schrijf een samenvatting op hoog niveau voor een boek. Voeg een lijst met personages toe en een korte beschrijving van elk personage. Voeg een lijst van hoofdstukken toe en een korte samenvatting van wat er in elk hoofdstuk gebeurt. Je mag elke titel en elk genre kiezen.
Niveau 1: Schets bijwerken na elk hoofdstuk
Ik: Bewerk en actualiseer de high-level outline voor het boek hieronder, rekening houdend met wat er al gebeurd is in hoofdstuk 1.
Niveau 2: Scènes (begrenzing)
Ik: Schrijf een gedetailleerde schets die de eerste scène van elk hoofdstuk beschrijft. Het moet beschrijven wat er in die openingsscène gebeurt en het verhaal voor de rest van het hoofdstuk opzetten. Vat niet het hele hoofdstuk samen, maar alleen de eerste scène.
Ik: Schrijf een gedetailleerde beschrijving van de laatste scène van elk hoofdstuk. Het moet beschrijven wat er helemaal aan het eind van het hoofdstuk gebeurt, en het verhaal opzetten voor de openingsscène van het volgende hoofdstuk, dat direct daarna komt.
Niveau 2: Scènes
Ik: Gegeven het volgende boekschema, en de volgende openings- en slotscènes voor hoofdstuk 1, schrijf een gedetailleerde hoofdstukschets met alle scènes in het hoofdstuk en een korte beschrijving van elke scène. Begin de schets met de openingsscène hieronder, en eindig de schets met de slotscène hieronder.
Niveau 3: Ruw ontwerp
Ik: Schrijf een eerste opzet van hoofdstuk 1 met de volgende boekschets en de volgende gedetailleerde hoofdstukschets. Label alle scènes. Stop bij het einde van hoofdstuk 1. Het moet het verhaal opzetten voor hoofdstuk 2, dat onmiddellijk daarna komt. Het moet in een verhalende stijl worden geschreven en lang, gedetailleerd en boeiend zijn.
Niveau 4: Alinea’s (begrenzend)
Ik: Stel je voor dat je de volgende schets van het boek en het volgende ontwerp van hoofdstuk 1 hebt uitgebreid tot een langer, gedetailleerder hoofdstuk. Geef me voor elke scène zowel de eerste openingsalinea als de laatste alinea van die langere, meer gedetailleerde versie. Label ze als openingsalinea en slotalinea. De openingsalinea moet de scène introduceren. De laatste alinea moet het verhaal opzetten voor de volgende scène, die onmiddellijk daarna komt. De laatste alinea van de laatste scène moet het verhaal voorbereiden op het volgende hoofdstuk, dat onmiddellijk daarna komt.
Niveau 4: Alinea’s
Ik: Gegeven het volgende boekoverzicht en het volgende ontwerp van hoofdstuk 1, schrijf een langere, meer gedetailleerde versie van scène 1. De scène moet beginnen en eindigen met de volgende paragrafen: (begin- en eindparagrafen hier)
Aantekeningen over de continuïteit
Ik: Noteer hieronder kort alle belangrijke details of feiten uit de scène die je tijdens het schrijven van de rest van het boek moet onthouden, om de continuïteit en consistentie te waarborgen. Label deze continuïteitsnotities.
Ik: Combineer en vat deze notities samen met de eerdere continuïteitsnotities hieronder.
Reflecties
Hoewel het werk in veel opzichten samenkwam als een samenhangend fictiewerk, dat zijn eigen schets volgde en vorderde in het tempo dat zijn eigen schets voorschreef, en sommige delen echt spannend en interessant waren om te lezen (vooral de vroegste en laatste hoofdstukken), aarzel ik om het een goed boek te noemen. Het heeft nog steeds een aantal vreemde en interessante problemen:
- Verwijzing zonder inleiding: Af en toe verwijst de AI naar dingen die nog niet echt geïntroduceerd/uitgelegd zijn, zoals Langdon die weet van Lord Malakhar in hoofdstuk 4, of Aria die een fysieke hanger heeft na haar droom van koningin Neria. Het voelt alsof je iets gemist moet hebben.
- Naden rond openings- en slotalinea’s: Omdat openings- en slotparagrafen vóór de rest van de scène worden geschreven, vloeien ze soms niet soepel over van de rest, of zijn ze zelfs overbodig. Een of andere extra passage zou dit kunnen verhelpen. Evenzo kan de overgang tussen hoofdstukken soms abrupt lijken, zoals van hoofdstuk 8 naar 9 (het gevecht met Malakhar in het labyrint, om plotseling een doorgang naar Atlantis te openen).
- Het vergeten van bepaalde details: Hoewel bepaalde details worden bijgehouden in de Continuïteitsnotities of in de outline, besluit het andere te laten vallen, en dan kan er nooit meer naar worden verwezen, omdat ze niet meer in de invoerbuffer zitten. Een goed voorbeeld hiervan is het kompas dat Aria kreeg als afstudeercadeau, dat veel weg had van een pistool van Chekov dat nooit meer genoemd werd. Een ander voorbeeld zijn de bijzondere unieke wapens die ze in het begin kochten en die nooit werden gebruikt. De enige duidelijke oplossing is ofwel een grotere buffer of een langetermijngeheugen.
- Herschikkingen: De AI verplaatste sommige delen van latere hoofdstukken naar eerdere hoofdstukken, ondanks mijn beste pogingen om het te begrenzen, zoals de vroege scènes op het eiland die van hoofdstuk 5 naar hoofdstuk 4 werden verplaatst, en de vroege labyrintscènes die van hoofdstuk 6 naar hoofdstuk 5 werden verplaatst. De enige echte manier om dit aan te pakken was om het te vragen zijn grote lijnen achteraf te bewerken en bij te werken. Dit is vergelijkbaar met wat menselijke auteurs doen – zij behandelen hun schetsen zelden als statisch en onaantastbaar.
- Pacing: Voor mij voelden de labyrint hoofdstukken als een beetje ploeteren. Het was de ene valkamer na de andere, heel lang. Deze pasten wel in de oorspronkelijke opzet, dus de oorspronkelijke opzet was een deel van het probleem, maar er zijn ook manieren waarop het labyrint nieuw en anders had kunnen aanvoelen. Dit voelt voor mij als een creatieve schrijffout van GPT-4.
- Te regelmatige structuur: Bijna altijd koos de AI ervoor om 6-8 scènes per hoofdstuk te schrijven, en ongeveer 1-2 pagina’s per scène. Dit voelt minder organisch aan dan veel door mensen geschreven werken waarbij sommige scènes/hoofdstukken kort zijn en andere langer. Het was misschien beter geweest om een dynamische uitbreidingsstructuur te ontwikkelen waarbij het blijft uitbreiden totdat het op de een of andere manier tevreden is dat het het gewenste detailniveau heeft bereikt.
- Variërende mate van detail: Op een verwante noot, sommige scènes waren vrij gedetailleerd, inclusief dialoog en minieme acties, terwijl andere (zelfs belangrijkere scènes) over grote belangrijke momenten heen leken te waaien met een samenvatting. Nogmaals, ik denk dat een soort dynamische uitbreiding om een consistent detailniveau te bereiken hier zou kunnen helpen.
Enkele leuke opmerkingen
- In scène 3 van hoofdstuk 5 schreef GPT-4 spontaan een origineel raadsel in het labyrint dat ze moesten oplossen: “Binnen mijn muren houd ik een zee, / Toch zie je geen druppel water. / Vele paden zijn er om te bewandelen, / Maar slechts één zal je naar huis leiden. / Wat ben ik? Alex heeft het uitgezocht, het antwoord is “een kaart”.
- Op minstens drie plaatsen heeft GPT-4 slinks verwezen naar “het volgende hoofdstuk in haar leven” of “het volgende hoofdstuk in hun avontuur” net toen het hoofdstuk eindigde. Erg meta.
Informatiebron:
Alle informatie is geschreven met expliciete toestemming van de auteur. Links naar het originele bericht en informatie worden hieronder weergegeven:
- reddit post hier
- Medium post Generating a full-length work of fiction with GPT-4
- Audiobook generated by ElevenLabs (partial): Audiobook
Reacties