Far scrivere un romanzo a GPT-3

La copertina (generata dall'AI) di "La Porta del Tempo: battaglia contro il Signore dei Sogni"

Si fa un gran parlare (e sparlare…) di ChatGPT e delle potenzialità della sua Intelligenza Artificiale.

Ho visto tanti esempi, buoni e cattivi, allarmati o eccitati, di usare questa potentissima tecnologia. Ma quasi tutti erano solo chiacchierate con ChatGPT, oppure poco più.

Ho voluto provare qualcosa in più: usare le API (Application Programming Interface) di ChatGPT spingendo un po’ più in là il confine dell’esplorazione. Visto che sicuramente la capacità di questo LLM (Large Language Model) è tutta sulla linguistica, mi è parso naturale esplorare la possibilità di fargli scrivere un romanzo in autonomia. E, vista la mia passionaccia per la narrativa, ho scelto di provare a fargli usare come “stile di scrittura” il mio.

Beh, to make a long story short: successo pieno! Se volete vedere il risultato, ecco qui il link al PDF: https://bit.ly/PortaDelTempo

Impressionante no? Vi voglio dettagliare i passaggi.

  1. Ho creato uno script di una sessantina di linee di codice e gli ho passato in input un unico spunto iniziale: “Il protagonista Jon Doe è un pluriassassino ed è stato condannato ad essere proiettato tre secoli nel futuro. Si risveglia nel futuro ma non ha cognizione del suo stato e dovrà ricostruire la sua identità“.
  2. Con lo script ho fatto generare una quarantina di passaggi della trama del romanzo con un tecnica di “proponi – riassumi – proponi…” in cui non ho dato nessun contributo umano alla generazione del testo.
  3. Ho usato l’ultimo riassunto ottenuto per far generare (sempre via API) sia il titolo (“La Porta del Tempo: battaglia contro il Signore dei Sogni“) che l’immagine di copertina (quella che trovate in testa all’articolo) e alcune illustrazioni (qui ho usato la API images/generations cioè quella di DALL-E).

Qui il passaggio più complesso: addestrare un modello al mio stile di scrittura. Ho proceduto così:

  1. Ho raccolto una buona fetta di mia “produzione letteraria” (circa 150.000 parole, cioè 600.000 caratteri) e ho spezzettato il testo in 300 “chunk” da una pagina circa (by the way: codice Python scritto mediante ChatGPT, tanto per gradire).
  2. Con un altro script ho dato in pasto i trecento prompt a GPT-3 chiedendo di estrarne una sintesi minimale. Ho impacchettato il tutto usando le sintesi come “prompt” e i testi originali come “completion” e ho addestrato in fine-tuning un nuovo modello di GPT-3 (per i curiosi si chiama “davinci:ft-andrea-bonvicini:stileab-2023-01-15-14-50-14“)
  3. Ho preso il primo spunto del romanzo suggerito da GPT-3 al passo 2 e gli ho fatto generare la prima pagina del romanzo, intitolata “La stanza era vuota“. Beh, vi posso giurare che lo stile collima con il mio in maniera davvero impressionante…

Al termine dell’elaborazione (nota da ricordare: l’unico input umano sono poche righe di testo per lo spunto iniziale) ho tutto direttamente in un documento Word generato in automatico e quel che mi basta è formattarlo con qualche click, impaginare le immagini… et voilà! (ecco qui di nuovo il link al PDF: https://bit.ly/PortaDelTempo)

A questo punto avrei potuto continuare il loop e fargli generare le altre pagine ma mi è bastato, anche perché usare le API di GPT-3 ha un costo. Già, il costo: meno di 35 dollari… di cui la gran fetta (32-33$ dollari circa) per addestrare il modello linguistico.

In buona sostanza, una volta addestrato il modello con il mio personale stile di scrittura, potrei generare romanzi “a manetta” al costo di un paio di dollari l’uno…

Lesson learned, ora:

  • la potenza degli strumenti è davvero impressionante;
  • per sfruttarla ChatGPT è una bella interfaccia semplice e intuitiva, ma le API possono dare ottime soddisfazioni in termini di automazione e di settaggio fine del risultato;
  • se vuoi ottenere testi consistenti è necessario il fine-tuning di un modello;
  • fare il fine-tuning è piuttosto semplice (GPT-3 mette a disposizione una serie di strumenti CLI che velocizzano il tutto e non è male l’idea di coinvolgere sempre GPT-3 nel processo di definizione prompt-completion);
  • bastano (e probabilmente avanzano) 300 coppie prompt-completion per addestrare il modello.

Ringraziamenti

Spunti di programmazione li ho trovati in due esperti, uno italiano e uno statunitense:

A loro i miei più sentiti ringraziamenti!

Far scrivere un romanzo a GPT-3

1.143 commenti su “Far scrivere un romanzo a GPT-3

  1. Incredible, you’ve done an incredible job this time! Your dedication and creativity are truly admirable of this content. I felt compelled to express my thanks for producing such awesome work with us. You are incredibly talented and dedicated. Keep up the fantastic work! 🌟👏👍

  2. Have you ever considered about adding a little bit more than just your articles? I mean, what you say is fundamental and everything. However just imagine if you added some great images or video clips to give your posts more, “pop”! Your content is excellent but with images and video clips, this blog could definitely be one of the best in its field. Awesome blog!

  3. I appreciate how well-researched and detailed your posts are It’s evident that you put a lot of time and effort into providing valuable information to your readers

  4. I was wondering if you ever considered changing the layout of your site? Its very well written; I love what youve got to say. But maybe you could a little more in the way of content so people could connect with it better. Youve got an awful lot of text for only having 1 or 2 pictures. Maybe you could space it out better?

  5. Oh my goodness, you’ve done an outstanding job this time! Your effort and dedication shine through in every aspect of this piece. I couldn’t help but express my appreciation for bringing such awesome content with us. You are exceptionally talented and dedicated. Keep up the outstanding work! 🌟👏👍

  6. Hey there just wanted to give you a quick heads up. The words in your article seem to be running off the screen in Chrome. I’m not sure if this is a formatting issue or something to do with web browser compatibility but I figured I’d post to let you know. The layout look great though! Hope you get the issue fixed soon. Kudos

  7. Wow, you’ve done an outstanding job this time! Your hard work and creativity are truly inspiring of this work. I just had to take a moment to express my gratitude for sharing such incredible content with us. Your dedication and talent are truly remarkable. Keep up the fantastic work! 🌟👏👍

  8. Incredible, you’ve knocked it out of the park this time! Your hard work and creativity are truly inspiring of this piece. I couldn’t help but express my appreciation for bringing such fantastic content with us. You have an incredible talent and dedication. Keep up the awesome work! 🌟👏👍

  9. Wow, you’ve done an incredible job this time! Your effort and creativity are truly commendable of this piece. I felt compelled to express my thanks for bringing such amazing content with us. You have an incredible talent and dedication. Keep up the excellent work! 🌟👏👍

  10. This is amazing, you’ve really outdone yourself this time! Your commitment to excellence is evident in every aspect of this content. I simply had to thank you for creating such awesome work with us. You have an incredible talent and dedication. Keep up the outstanding work! 🌟👏👍

  11. This is amazing, you’ve done an incredible job this time! Your hard work and creativity are truly inspiring of this work. I felt compelled to express my thanks for bringing such awesome work with us. Your talent and dedication are truly exceptional. Keep up the fantastic work! 🌟👏👍

  12. Heya! I know this is somewhat off-topic however I had to ask. Does managing a well-established website such as yours require a massive amount work? I am brand new to writing a blog however I do write in my journal daily. I’d like to start a blog so I can share my personal experience and thoughts online. Please let me know if you have any kind of suggestions or tips for new aspiring blog owners. Thankyou!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Torna su