Edit model card

datasets: - afoland/penchant - language: en

Penchant

Penchant-7B is a poetry-writing model finetuned on dolphin-2.1-mistral-7b from eric hartford (https://huggingface.co/cognitivecomputations/dolphin-2.1-mistral-7b/tree/main) using the penchant dataset. It is an instruction model; it does not expect multi-round chat. Included is example code that calls a local LLM server for completion.

Dataset

The dataset is penchant, a collection of public-domain poetry of (due to public domain / copyright dates) primarily Victorian poets. The dataset has been cleaned to primarily shorter poems. There are a little over 3000 poems in the dataset.

Training

It took 12 hours to train 4 epochs on 2x 3090's.

Loading and Using the Model

Use bitsandbytes / Transformers to load the model in 8 bits. This gives the best performance.

Prompt format: This model uses ChatML prompt format.

<|im_start|>system
You are Dolphin, a helpful AI assistant.<|im_end|>
<|im_start|>user
{prompt}<|im_end|>
<|im_start|>assistant

Example:

<|im_start|>system
You are Dolphin, a helpful AI assistant.<|im_end|>
<|im_start|>user
Write me a poem entitled "Sleeping Where I Fell".  It should be in the style of Emily Dickinson.<|im_end|>
<|im_start|>assistant

The model is very sensitive to getting the format exactly right. The model expects a <BOS> token at the beginning, and will output an <EOS> token. If loading the model in text-generation-webui, use instruct mode only.

The output will be between a <POEM> and </POEM> tag.
About 5% of the time it will fail to use these tags.

The model sometimes outputs poems it has learned; it is particularly prone to do so in response to short prompts. Favorites are "The World Is Too Much With Us", "A Sick Rose", "The Windhover", "I Wandered Lonely as a Cloud" (this one is often under another title).

The model, of course, has its own native capability and knowledge of poetry; sometimes this comes through in reciting poems it has "never seen" in the penchant training set.

Example Output

<|im_start|>system
You are Dolphin, a helpful AI assistant.<|im_end|>
<|im_start|>user
Write a poem about nature.<|im_end|>
<|im_start|>assistant
<POEM>
The Cuckoo's Nest

A little nest of straw and feathers
In the old apple-tree;
And in it lay two eggs together,
As white as they could be:
But one was blue, and one was green,
And both were speckled brown;
And there was not a bird to hatch them,
Nor any creature round.
</POEM>
<|im_start|>system
You are Dolphin, a helpful AI assistant.<|im_end|>
<|im_start|>user
Write a poem about a season<|im_end|>
<|im_start|>assistant
<POEM>
Spring

I am the Spring that in my heart doth keep
The seeds of every flower that ever grew;
And I have tasted of the honey-dew
That drips from blossoms when the bees do creep:
And I am changed to something rich and sweet,
To bees a flow'ring heath among the weeds;
A hideous plant with many a hooked seed,
That clasps me round about the middle neat.
</POEM>

Prompt Construction

The model has been trained on primarily complex prompts. Very simple prompts are much more likely to lead to recitation of known poems. Here are some for inspiration:

-Write a poem about [subject]

-Create a literary poem. Use vivid imagery and sensory details to describe [subject]. Incorporate personification or metaphor to enhance the description. Pay attention to rhythm and rhyme scheme. Consider different points of view and tones. Choose words that evoke emotion and create a mood. Keep it simple yet profound.

-Write a poem entitled [title]

-Write an artistic poem. The title should be [title]. Use vivid imagery and creative metaphors throughout your work. Draw inspiration from the works of [poet]. Pay close attention to the sounds that words make when read aloud, and use these sounds to create rhythm and musicality within your piece.

-Generate a poem with a whimsical mood

-Write an artistic poem. Include alliteration and onomatopoeia throughout your work. Be sure to consider how the great poet [poet] might approach this task. Finally, make sure that your poem has a clear theme or message. The title of your poem should be [title].

Example Code

The "examples" folder includes code for generating poetry by calling a local http LLM server. The code given is for the text-generation-webui completions endpoint but the code is easily replaced. The folder also has examples of titles that are mostly not of known poems of these authors.

Other Notes

-If the prompt is very short, it can simply quote an existing poem up to 50% of the time. The most reliable way to get original poems is to give a longer prompt with a title and a poet, where the title is novel.
Always double-check output for originality.

-Victorian poets were a moody, nature-loving lot. This shows in the poetry. If you know of a more modern public domain poetry dataset, I'd love to add it.

-The underlying dolphin is uncensored, filtered to remove alignment and bias. It is not recommended to expose it as a service, please read eric's blog post about uncensored models. https://erichartford.com/uncensored-models

-You are responsible for any content you create using this model. Enjoy responsibly.

-Apache-2.0 license, so it is suitable for commercial or non-commercial use.

Gratitude

  • Eric Hartford for the dolphin series of models on which this is based
  • Dolphin-2.1-mistral-7b's training, on which penchant is based, was sponsored by a16z.
  • poemhunter.com for making poetry accessible
  • Thank you to all the other people in the Open Source AI community who have taught me and helped me along the way.
Downloads last month
8
Safetensors
Model size
7.24B params
Tensor type
FP16
·
Inference API
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.

Model tree for afoland/penchant-7B

Quantizations
1 model