# A GPT-3 Prompt for Creating ByteWords Mnemonic Poems ## by Wolf McNally, Blockchain Commons ### Goal A sequence of [ByteWords](https://github.com/BlockchainCommons/Research/blob/master/papers/bcr-2020-012-bytewords.md) can be used as a cryptographic seed. Some people may wish to use ByteWords as a mnemonic, and may therefore find it desirable to have a large language model such as GPT-3 produce a mnemonic poem that incorprates the specific ByteWords, facilitating a [brainwallet](https://en.bitcoin.it/wiki/Brainwallet) backup. This document shows my current approach to generating iambic pentameter poetry that can be used as mnemonics for a sequence of 16 ByteWords, corresponding to a 128-bit cryptographic seed. Obviously, if security is a strong concern then submitting one's seed to OpenAI's servers in any form could be considered a security risk. Caveat lector. If you have an OpenAI acccount you can try the settings described below by using [this shared preset](https://platform.openai.com/playground/p/peS6skQvjSp4xwlasKseqwg6?model=text-davinci-003) in the GPT playground. ### Approach The pretraining prompt below starts with a command to compose a generic iambic pentameter poem. This is intended to put an example of the general form we're looking for into the conversation context. This poem was originally composed by GPT-3 and then tweaked by the author. This is followed by a more specific set of rules, used to guide the model toward the specific form and syntax we want. Finally a sequence of example prompts that produce a full poem is given. This is done one verse at a time to ensure that the proper words are used and keep the model from producing increasingly divergent responses. Each of the verses, therefore, is a separate generation. The special words given in the training example are deliberately *not* part of the ByteWords vocabulary to avoid biasing later ByteWords-based queries. Again, these verses were originally composed by GPT-3 with a lot of curation and refinement by the author. In addition, the GPT playground settings are given the stop sequence "⏎Verse" to keep it from rushing ahead and writing additional verses with its own confabulated special words. The API knows that if it starts to generate a designated stop sequence, it is to stop generation at that point. Below the pretraining prompt are several examples of generated output. The inputs are randomly generated ByteWords seeds that do not include the 4-word (32-bit) CRC-32 checksum at the end. ### Pretraining Prompt ``` Write a verse of four lines in iambic pentameter. Use modern English. The sky is lit with stars so bright, The darkness soothes me with its light, Its beauty evokes a sense of awe, I'm lost in its eternal draw. Write a verse of four lines in iambic pentameter. Use modern English. Each line must start with a special word from the given list written in ALL CAPS. each special word must be used only once at the start of a line and may not be repeated, and in the order given. Don't repeat the special words! --- Starting a new poem. Verse 1: LIFE PATH FAIL TRUE LIFE is a road that we must choose, PATH that leads on to peace and song, FAIL if we heed not our hearts' cues, TRUE joy comes by remaining strong. Verse 2: TIME HEED LOOK ARTS TIME slips away while we take cares, HEED what our eyes can not behold, LOOK deep inside our inner selves, ARTS of life's wisdom we unfold. Verse 3: WILD LATE SEEN DIRE WILD winds blow through my open door, LATE night brings sorrow yet untold, SEEN through the eyes of times before, DIRE is the future I behold. Verse 4: COOL WAIT QUIT HAZE COOL breezes flow through darkened air, WAIT for a sign I'm not alone, QUIT searching for things I cannot share, HAZE that conceals the deep unknown. ``` ### Example 1 The ByteWords seed is: `JAZZ ZONE ZERO FREE DRAW INCH FIGS URGE JADE JOWL CHEF FACT CITY FIZZ PURR CATS` The fact that there are so many references to symbols of "the night" in the pretraining prompt probably accounts for their frequency in this output. ``` --- Starting a new poem. Verse 1: JAZZ ZONE ZERO FREE JAZZ of the night is my repose, ZONE in which I can be me, ZERO in on my innermost woes, FREE my soul of its misery. Verse 2: DRAW INCH FIGS URGE DRAW me closer to the sky, INCH me closer to the sun, FIGS of my life I must undo, URGE me on to the finish line. Verse 3: JADE JOWL CHEF FACT JADE of the night is my new friend, JOWL of the moon my trusted guide, CHEF of my dreams is the one I send, FACT of my life I must decide. Verse 4: CITY FIZZ PURR CATS CITY of stars in the sky above, FIZZ of the night as I dream away, PURR of distant dreams I love, CATS of the night that seek their prey. ``` ### Example 2 The ByteWords seed is: `MINT EXAM KICK OWLS EVEN REAL JUDO VERY HUTS GALA TIED POOL VOID GEMS HANG LOGO` In this example we suggest a theme, which it follows pretty well. ``` --- Starting a new poem. The theme is "wealth." Verse 1: MINT EXAM KICK OWLS MINT coins with heads of kings and queens, EXAM what we truly value most, KICK away the things we don't need, OWLS that guard our hidden coast. Verse 2: EVEN REAL JUDO VERY EVEN as our wealth grows and grows, REAL joy comes from a humble heart, JUDO in the things we own and know, VERY few can make that start. Verse 3: HUTS GALA TIED POOL HUTS with windows that glisten bright, GALA days of banquets and song, TIED to the wealth we can not hide, POOL of riches that will not last long. Verse 4: VOID GEMS HANG LOGO VOID of things our souls can not keep, GEMS that sparkle in the night, HANG our hopes on earthly dreams, LOGO of wealth eternal, our delight. ``` ### Example 3: The ByteWords seed is: `SAFE POSE YAWN DRAW KITE MAZE EXIT LIMP ONYX GYRO UNIT HUTS LEAF PUMA CRUX DRUM` ``` --- Starting a new poem. The theme is "safety, secrecy, and security". Verse 1: SAFE POSE YAWN DRAW SAFE in the arms of secrecy, POSE with a mask to hide my soul, YAWN as I drift off to slumber, DRAW the curtains to console. Verse 2: KITE MAZE EXIT LIMP KITE soars in the freedom of sky, MAZE of secrets that I can't find, EXIT the shadows in my mind, LIMP on the path I've left behind. Verse 3: ONYX GYRO UNIT HUTS ONYX walls that protect me here, GYRO of the stars above me, UNIT of the shadows I fear, HUTS of the secrets I keep. Verse 4: LEAF PUMA CRUX DRUM LEAF from the tree of silence, PUMA that prowls the night, CRUX of the secrets I own, DRUM of the secrets I mustn't tell. ``` ### Example 4: The ByteWords seed is: `CODE PURR FERN SAGA GRIM ONYX VAST VOID BODY LUAU QUIZ NEWS RUNS DRAW BREW GAME` ``` --- Starting a new poem. The theme is "the Harry Potter saga." Use lots of named characters, places, objects, and events from the story. Verse 1: CODE PURR FERN SAGA CODE of secrecy kept in the castle, PURR of the cat, a magical guide, FERN that explodes into a time bubble, SAGA of Harry, the Boy Who Lived. Verse 2: GRIM ONYX VAST VOID GRIM forebodings of The Dark Lord’s plan, ONYX eyes of the basilisk stare, VAST adventures by train and ford, VOID of fear in the heart of the snare. Verse 3: BODY LUAU QUIZ NEWS BODY of Voldemort left behind, LUAU held by house-elves in the kitchens, QUIZ of Potions holding its hue, NEWS of his defeat in all the editions. Verse 4: RUNS DRAW BREW GAME RUNS so fast to beat time of day, DRAW of his wand when trouble a-calls, BREW of the potion to win the day, GAME of chess to enter the walls. ```