Customizing Small Language Models: LoRA vs. Full Fine-Tuning

Fine Tuning an AI on Sci-Fi and Fantasy

I see business owners, small teams and decision makers who want to integrate AI better into their work and day to day operations. Not surprisingly, there is some confusion about what solution is best, especially if you’ve made the decision to use a locally hosted, private AI model. So, I would like to show some examples of what two kinds of fine-tuning can do.

If you want to use a language model for any kind of specialized purpose, where niche or special domain knowledge may be involved, you have the option of relying on vector databases and document searches (RAG), fine-tuning a model, or a combination of both. The first solution is basically the AI looking through the available knowledge, pulling bits and pieces, and using those pieces as supplemental context to the answer it is going to generate. Fine-tuning however, involves actually teaching the model itself some new things. Hopefully this post can shed some light on what the best option would be for your use case.

Let me first say, that the most important aspect of fine-tuning is the data you use to train on. You have to be very deliberate about how you construct and build your data set to get the best results. Garbage in, garbage out, they say, so make sure the data represents actual use cases, is properly cleaned, and all that good stuff before you start any kind of fine-tuning.

Assuming that you have the data you need, the next big question is: what kind of fine-tuning are you going to need? And here, there are two main approaches: low-rank (LoRA) and full fine-tuning.

LoRA is great for gentle steering, emphasis on specific aspects of existing knowledge, and tone, but it does not pick up a lot of new knowledge. Full fine-tuning on the other hand, lets you add new, specific knowledge directly into the AI model because you are training the entire model. Why not just go for a full fine-tuning every time then? Because it comes with the risk of causing the model to collapse and forget existing training, including how to do things like use tools correctly to search documents. Full fine-tuning also requires more computing power (VRAM) to pull off depending on the size of the base model you are working with.

With either approach, there may be some trial and error involved as well, depending greatly on the type and amount of data, output requirements, model architecture and more, but that lies beyond the scope of this post.

The setup

For this experiment, I want to show the difference in output between a basic model and the two kinds of fine-tuning mentioned above. I am using a data set focused on science-fiction and fantasy. This data set was created using a number of wikipedia-pages as source for question and answer pairs to be generated and is, like everything else in this post, available to download for free via my Huggingface profile.

I chose a Llama 3.2, 1-billion parameter model as the starting point, and trained it twice on the same data set for exactly 1 epoch; meaning that the model saw each entry exactly once. First I used Low-Rank (LoRA) fine-tuning where only a small part of the network is tuned. For the second version, I did a full fine-tuning where every single parameter in the model was being adjusted.

The only difference between the two fine-tuning sessions was the learning rate (LR), which represents how much knowledge is absorbed per training step. As is common practice, the learning rate was a lot higher on the LoRA fine-tuning (2e-4) than on the full one (2e-5). The lower LR is to reduce the chance of catastrophic forgetting during the full fine-tuning.

Test Questions

The models were tested without any system prompt at all. I wrote out 6 test questions and each one was served to the model being tested without any additional context. For this post, I will share the 3 most interesting ones, in terms of the difference between the three models tested. The questions featured are:

  • What is Terry Pratchett most famous for?
  • What are 3 novels, I should read this summer?
  • Give me an example of a well-written character arc.

Note that of these 3 questions, only the first one directly references genre-specific data, namely the author Terry Pratchett. The others were deliberately left open to see if the model would drift towards answers rooted in the training data. Below are the answers given by all 3 models, along with a few thoughts on the differences that stood out to me.

Tricky Terry

On the question “What is Terry Pratchett most famous for?” none of the models gave a perfect answer, which makes it a perfect example to show. All 3 answers have factual errors related to the works of mr. Pratchett, which is important because: no matter which approach you choose, AI can still fail. It may fail a bit closer to target, but if your field is legal or medicine for example, “close enough” may not cut it. Proceed with caution!

Basic Llama 3.2 1B Instruct model’s response

“Terry Pratchett was a British author best known for his fantasy series “”Discworld””, which combines humor, satire, and social commentary. He is particularly famous for creating:

  1. The Discworld Series: A collection of nine novels that are set on the flat disc balanced on the backs of four giant turtles, who in turn are floating through space.
  2. Characterization of satire and absurdity: Pratchett’s work often uses humor to critique contemporary issues, such as politics, society, culture, and morality, with a playful twist.
  3. Memorable characters: The Discworld series features numerous iconic characters, including:
    • Rincewind (the inept wizard)
    • Death (the personification of death who travels at high speed)
    • Granny Weatherwax (a witch who is also a strong and independent woman)
    • A’Tuin (the god of the sun)
  4. Wordplay and linguistic humor: Pratchett was known for his clever use of language, puns, and wordplay, which added to the comedic effect of his works.
  5. Satire of authority and bureaucracy: Many of his novels poke fun at government, institutions, and social norms, often using absurd situations and characters as a way to comment on the human condition.

Some notable books in the Discworld series that are often cited as Pratchett’s most famous works include:

  • “”The Colour of Magic”” (1983)
  • “”The Light Fantastic”” (1986)
  • “”Mort”” (1987)
  • “”Small Gods”” (1992)
  • “”Wyrd Sisters”” (1988)

Terry Pratchett passed away in 2015, but his Discworld series remains a beloved and iconic part of fantasy literature.”

LoRA Fine-Tuned model’s response

Terry Pratchett was a British author best known for his Discworld series of fantasy novels, which follows the misadventures of an ensemble cast of characters in the fictional world of Ankh-Morpork. His works are renowned for their wit, humor, and satire.

Some of his most notable contributions to literature include:

*   **Discworld**: Pratchett’s Discworld series has become a beloved part of popular culture.
*   The series explores themes such as politics, power struggles, social commentary, and human nature through the lens of comedic fantasy.
*   Works like “The Colour of Magic” (1971) and “Guards! Guards!” (1989) showcase Pratchett’s unique writing style and ability to balance humor with deeper exploration.

Full Fine-tuned model’s response

“Terry Pratchett was a British author best known for his Discworld series, which consists of fantasy novels that parody and satirize various aspects of life. His works often feature:

  1. Discworld: A flat, disc-shaped world created by the wizard Rincewind, which serves as the main setting for many of Pratchett’s stories.
  2. Parodying mythology: Pratchett frequently draws inspiration from mythology and folklore to create humorous, irreverent takes on classic mythological themes.

Some notable examples include:

  • The Colour of Magic
  • The Light Fantastic
  • Equal Rites

Pratchett’s Discworld series has been widely acclaimed for its unique blend of humor, satire, and imagination. He was known for his witty writing style and ability to create memorable characters like Rincewind and Death.

While Pratchett also wrote other works, such as Mort by Stephen Baxter (a novella set in the same universe), it’s his Discworld series that has made him most famous among fans of fantasy literature.”

Summer Read Pivot

When asked “What are 3 novels, I should read this summer?” the standard instruct model mentions “The Power” as the most relevant suggestion, setting a great point of comparison to the two fine-tunes which (spoiler) both deliver better responses in this category. I think this shows that without any kind of fine-tuning, it all comes back to the prompt. The LoRA suggested the book “The Night Circus“, which is a bit better tied to the data set, contextually. Meanwhile the full fine-tune suggests both of those and The City & The City” which is arguably more of a deep-dive title, relevant to the data set.

Basic Llama 3.2 1B Instruct model’s response

“3 recommendations for novels to enjoy this summer.

  1. “”The Seven Husbands of Evelyn Hugo”” by Taylor Jenkins Reid: A captivating and heartwarming story about a reclusive Hollywood star who recounts her seven marriages to a young journalist.
  2. “”The Nightingale”” by Kristin Hannah: An emotional and suspenseful novel set in France during World War II, exploring the lives of two sisters as they struggle with the war, sacrifice, and survival.
  3. “”The Power”” by Naomi Alderman: A thought-provoking speculative fiction novel that explores a world where women suddenly develop the ability to release electrical jolts from their fingertips, allowing them to dominate and control society.

All three novels offer engaging stories with relatable characters, making them perfect for a summer read.”

LoRA Fine-Tuned model’s response

Here are three novel recommendations:

1. “The Night Circus” by Erin Morgenstern (2011)
   A magical tale about a competition between two young magicians who are trained from childhood to compete against each other.

2. “The Last Romantics” by Tara Conklin
   A sweeping family saga that explores themes of love, loss, and legacy through the eyes of four siblings growing up in the 1970s.

3. “The Song of Achilles” by Madeline Miller (2011)
   A beautifully written novel that reimagines Homer’s Iliad from the perspective of Achilles’ lover Patroclus, exploring themes of love, war, and identity.

Full Fine-Tuned model’s response

“Here are three highly-recommended novels across various genres that you might enjoy:

  1. The Night Circus by Erin Morgenstern:
    A magical and imaginative tale about a competition between two young magicians who become enchanted by each other.
  2. The Power by Naomi Alderman:
    A thought-provoking novel that explores what would happen if women suddenly developed the ability to release electrical jolts from their fingertips, allowing them to dominate and control society.
  3. The City & The City by China Miéville:
    A police procedural set in a world where two cities coexist in the same space, and citizens are trained to “”unsee”” the other city. This novel explores themes of perception, reality, and power dynamics.

These novels offer unique perspectives on human nature, society, and individual agency.”

The Force is Strong in This One

When “Give me an example of a well-written character arc” is requested, both the basic instruct and the LoRA fine-tuned models invented new characters, embarking on a creative writing exercise. But in the fully fine-tuned model we see something completely different: instead of inventing a character, the model uses the example of Luke Skywalker to describe what a character arc is. This is significant because we see a change, not just in the output generated but in the behavior of the model itself.

Basic Llama 3.2 1B Instruct model’s response

“Here is an example of a well-written character arc:

Original Character:
Meet Alex, a young professional in her late 20s who has just moved to the city for a fresh start after graduating from college. She’s determined, ambitious, and always striving to prove herself.

Inciting Incident:
Alex lands a high-paying job at a prestigious marketing firm, but soon discovers that she’s working long hours with little creativity or autonomy. Feeling undervalued and unfulfilled, she starts to question her decision and the true nature of her work.

Turning Point:
While working late one night, Alex has a heart-to-heart conversation with an old friend, Rachel, who was also a college classmate. Rachel shares her struggles as a single mother trying to make ends meet while pursuing higher education. This realization sparks a deep sense of empathy and compassion in Alex, making her question whether she’s truly happy with her current career path.

Setback:
Alex tries to shake off the doubts by taking on more responsibilities at work and trying to prove herself to her boss. However, this newfound focus leads to burnout and exhaustion, causing her to withdraw from social life and relationships with friends and family.

Midpoint:
As Alex’s depression and anxiety grow, she reaches out for help from a therapist who helps her explore the underlying causes of her feelings. Through therapy, she begins to understand that her true passion lies in photography, not marketing. She starts taking photos in her free time, which brings her a sense of joy and fulfillment.

Climax:
As Alex’s confidence grows, she decides to take a leap of faith and leave her job to pursue photography full-time. This decision is met with both excitement and fear from her friends and family, who worry about her financial stability and social isolation.

Resolution:
Alex struggles to balance her passion for photography with the practicalities of making it a career. She faces setbacks and rejections, but through hard work and determination, she finally lands her first client and starts building a successful business.

Character Growth:

  • Alex has become more empathetic and compassionate towards others, particularly those in need or struggling to make ends meet.
  • She’s developed greater self-awareness and emotional intelligence, learning to recognize and manage her own feelings and emotions.
  • Her passion for photography has transformed from a job into a true calling, reflecting her authentic self and values.

This character arc illustrates several key elements:

  1. Internal conflict: Alex faces an internal struggle between pursuing a career that doesn’t fulfill her or finding happiness and fulfillment through another path.
  2. Escalating stakes: As Alex’s doubts grow, she faces increasing pressure to prove herself and find success in her chosen career.
  3. Transformation: Through the turning point conversation with Rachel, Alex experiences a significant shift in perspective, leading to greater self-awareness and confidence.
  4. Rite of passage: Alex’s decision to leave her job and pursue photography marks a major milestone in her life, symbolizing growth and self-discovery.

Overall, this character arc demonstrates how a well-written story can create a compelling and memorable character journey, showcasing the transformative power of empathy, self-awareness, and determination.”

LoRA Fine-Tuned model’s response

“Here is an example:

Character Arc: From Naive to Confident

Initial State: Emily, a young and idealistic journalist, arrives in Tokyo with a clear vision for her story. She’s eager to make a difference and prove herself as a capable reporter.

Inciting Incident: During a meeting at the newspaper office, she meets her editor, who challenges her on the ethics of reporting sensitive information. This encounter sparks a moment of doubt and uncertainty within Emily.

Rising Action: As Emily delves deeper into the story, she realizes that her initial assumptions were incorrect. She begins to see the complexities of human nature and the blurred lines between right and wrong. Her editor’s feedback serves as a catalyst for this growth, pushing Emily out of her comfort zone.

Climax: During an interview with a source who provides valuable insights into the story, Emily experiences a moment of profound vulnerability. She begins to confront her own biases and limitations, allowing her to grow as a journalist and as a person.

Falling Action: As Emily works on the article, she faces resistance from colleagues who question her methods or dismiss her concerns. This external pressure forces Emily to reevaluate her approach and consider alternative perspectives.

Resolution: Through this process of self-discovery, Emily develops a more nuanced understanding of journalism ethics and human nature. Her work is met with praise, but also criticism from some quarters. This mixed response serves as a testament to the complexities of storytelling and the importance of considering multiple viewpoints.”

Full Fine-Tuned model’s response

“One classic example is the transformation of Luke Skywalker from a young farm boy to a confident Jedi Knight.

Initially, we see Luke as a naive and impressionable individual who is drawn into the world of Star Wars through his friendship with Han Solo. However, as he trains with Yoda on Dagobah and learns about the Force, we witness Luke’s growth from an uncertain teenager to a heroic young adult.

One key aspect of Luke’s character arc is his development as a leader. Initially, he struggles to assert himself in battles against the Empire, but through his experiences, he gains confidence and becomes more effective at guiding others.”

Introducing: LM Data Tools

LM Data Tools is a suite of tools for synthetic data generation that I’ve been developing since I started working with fine-tuning language models back in 2023. What started as a handful of independent python scripts now share a web interface (and API) that makes them easy to work with. In this post, I will go over what the different tools are, and give an example of how to use one of them.

Fine-tuning language models is most definitely a rabbit hole, but if you’re brand new to the concept, we can summarize it as a way to specialize a pre-trained AI model in some way. There are different approaches and techniques, and twice as many opinions about the best ones to use depending on the desired outcome.

If you’re not already a data scientist or engineer, it can seem overwhelming before you even begin. On that note, a huge shout-out to the Unsloth crew, whose colab notebooks were my introduction to getting hands-on with fine-tuning. Without them, learning this stuff would have taken much longer. The notebooks gave me a great starting point, and as I learned more about each aspect and parameter involved in the process, I could modify and tweak the notebooks to match.

Before I get too deep into the details, the reason for even building a tool set like this in the first place, was that I needed an straightforward way to get topic-specific data without wasting a bunch of time looking through public data sets, hoping to find exactly what I needed. I was learning about fine-tuning LLMs and data synthesis as part of that, and for me, the best way to learn something is to build it. In this case “it” was data.

Early Version

Despite this being a collection of tools, some of which have been around for a long time (by AI standards at least), bringing them together was not as easy as it may sound, and there are definitely still bugs to iron out but even so, I am very happy with it and use it enough, that I thought it was time to share LM Data Tools with you.

Tools in the Box

LM Data Tools consists of 6 core tools and 2 strict utilities. The core tools all involve generating new data, whereas the utilities only modify existing data sets. All the features are also FastAPI integrated, in case you want to incorporate any of them into other workflows. Without further ado, let me go over the tools included.

ToolDescription
DataBirdGive it a list of topics and optionally a list of user perspectives, and this tool will generate a number of questions and answers on those topics, from said perspectives. Can generate the perspectives as well.
DataPersonaThis tool takes a list of prompts (existing data) and applies a persona to responses. It can write 1 or 2 replies per query, and you can have both or let the built-in evaluation feature pick the best one. The personas from this tool can be imbued into responses in other tools as well. You can add and edit personas directly via the web interface.
DataQAThis is a RAG tool. You feed it a list of URLs which are then scraped, and as with DataBird, you can provide specific user perspectives. A number of question and answer pairs are then generated from those perspectives, and based on the sources provided.
DataWriterThis tool was specifically made for pre-training purposes and will generate any number of made-up text documents, from blog posts to meeting summaries. The document mix is based off of a weighted list of topics.
DataConvoSometimes you want multi-round conversations to train on. This tool can take any single-round conversation data set and expand it into longer entries.
DataThinkThis tool can add <think></think> blocks to existing data or generate data which already include reasoning blocks. If a persona is chosen, it will only be applied to the response part, not the reasoning.
DataMixThis utility lets you mix and match data sets from Huggingface to make a new, custom data mix.
ReformatNeed to convert from alpaca-format to ShareGPT, or the other way around? This utility reformats existing data sets without changing any of the prompts or responses.

Any Provider via OpenAI API

The tool set uses the OpenAI API to communicate with LLM servers, and you can connect to any provider that supports this API. If you’re running a local AI server, you can simply type in the server IP and use that. Your experience and the quality of the generated data will depend on your model of choice, of course.

I use the tools with LM Studio for locally hosted models and typically fall back on OpenRouter for API usage. OpenRouter often have “stealth models” that can be used for free, and for something like this, free compute is always welcome.

Example: Text Analysis

Let’s imagine that we want to fine-tune a model to help with text analysis. For this, we will use DataBird with the “Curious Analyst” persona.

Next, we are going to need some topics to base the data set around. You will get the best overall results if you base this list on topics that are already adjacent. For this example, we are going with “finding the meaning and intention behind prose“, “storytelling and plotting“, and “learning from text analysis“.

Let’s also add the following perspectives manually: “an English major struggling with text analysis“, “an author who needs help with their next book“, and “a technical writer who wants to start writing fiction“.

It’s as easy as that. The more topics and perspectives you add, the larger the data set you’ll end up with. After generation and quality evaluation, we are left with a fresh, small data set of 77 entries that can be used for fine-tuning any language model.

The example data set can be downloaded from Huggingface and the whole LM Data Tools suite is open source on github.

Artificial Intelligence in the Name of Cthulhu

I created an AI that worships Cthulhu. Worse, I created a data set so anyone can make their own cultist. Both data set and a language model that has been fine tuned on it can be downloaded for free from huggingface.

But let me rewind a bit, and explain how I ended up on this path. It’s not nearly as sinister, as it one might think. I have always been into simulations, and AI is no exception. In fact, I’d argue that Simulated Intelligence is a more accurate term, but that’s a different story. In any case, I really just wanted to learn how to train a language model on domain-specific knowledge. Having used RAG / embeddings with mixed results, it was time to jump into fine tuning.

What is the point of all of this?

Basically, the idea is that you can fine tune an AI to be extra smart (or less stupid) about specific things, namely the things you choose to train it on. It works by taking an already trained “base model” and adding a layer of extra training on top of it. This comes in handy, if you want a chat bot that can help customers with your specific products, for example. A hobby-oriented example might be fine tuning an AI on your boardgame collection, so it can help answer rule questions, recommend similar games, and so on. Tons of possibilities, which is why I wanted to learn more about it.

Fine Tuning a Language Model

I jumped in as I always do, and ended up using Unsloth for the fine tuning process. Their Colab notebooks got me started quickly. I highly recommend Unsloth if you’re a beginner, like myself.

Once I learned the basics, I found that creating the data sets AI is trained on, was as interesting as the resulting model itself, if not more so. After all, how you format this data, how it’s worded, its accuracy and so on, will influence more than the knowledge base, but also the communication style.

I am easily bored as well, and following tutorials to the letter becomes almost impossible once I’ve understood the core concepts, which I fully blame on my ADHD. So, because I wanted to learn about fine tuning, I concluded that I also had to create an original data set to fine tune on. After all, in a “real world production scenario”, creating the data might very likely be part of the project. That was at least how I persuaded myself to do this.

You need a lot of data to train language models. The bigger the model, the more data you need, even for fine tuning to have an impact (or at least the intended impact). Thousands of data entries would be needed for a smaller model, tens of thousands for a more capable AI, and so on. Creating all that data from scratch just to learn the basics, seemed a little crazy, even to me.

The compromise was to take an existing data set, and modify that rather than starting from nothing. Enter the Alpaca-Cleaned set with over 50,000 entries, covering a multitude of topics. I could just rewrite the answers and save myself half the work.

Writing that many answers is still a lot of work, however. Too much for me to do by hand. The obvious solution to that problem was to get an AI to do the rewriting for me. That comes with its own challenges.

Creating Data with a Local AI

Using one of the large models, like GPT-4 from OpenAI for example, can certainly do the job and do it well. But running all that data through the API would end up costing more than I was willing to spend. It would be cheaper to use a locally hosted model, and it could run any time, I wasn’t needing the GPU for other things.

I use LM Studio to host models locally. It’s a free app that makes the process very easy and has a nice interface. I really like it, but if you don’t, there are several alternatives that all do pretty much the same thing.

Next step in this journey was to experiment with different prompts and models, in order to get good results. Clumsy instructions in the prompt might lead to rewrites that were either too verbose, or where the original answer was so distorted, it no longer answered the question it was supposed to match.

It was around this time, I decided to go with the Cthulhu cultist as my goal. Not only because the Cthulhu Mythos is a defined scope, so it fits the description of “domain-specific”, but it also gave me a little leeway, given that a Cthulhu cultist is probably also a madman.

I did a lot of experimenting with different models to find one, that did a good job with the rewrites while also running reasonably fast on my machine. Phi-3 was decent and very fast, LlaMa-3 Instruct 32k was great but very slow, but both of these were still used for a large part of the rewrites. The best compromise of quality and speed, however, was the NousResearch/Hermes 2 Pro Mistral (7B) model.

I should mention that my desktop is not high end. Notably, it’s only rocking a 3060ti GPU with 8 Gb VRAM. For the actual fine tuning, I primarily relied on the free GPU access on Google Colab.

I tested models by asking them to rewrite the first 3 entries of the full set, and used my superior human judgment to compare the results. I also randomly checked the quality while the rewrites were running.

The prompt was easier, but still went through a few edits along the way. The edits were all minor, to get more or less emphasis on certain references, or hints of secret knowledge, to tweak the tone, and to make sure the original answer was recognizable in the rewrites.

I wrote a script to process the rewrites in batches, making it easier to make adjustments mid-process. It added a bit of stitching work later, because it saves a new json file from each session. That could be automated too, if I wasn’t too lazy to do so. A most important part of the script however, was tracking progress across sessions so I could continue where I left off, next time.

Starting Small with TinyLlama

After rewriting the first 10,000 entries, I stopped and did a test. This would be enough data for fine tuning one of the smaller models, I thought, so I fine tuned the aptly named TinyLlama model on this reduced data set – and it worked! Not only that, but when I uploaded a revision that had trained a bit longer, it saw over 1,000 downloads in less than 24 hours. That was exactly the motivation, I was looking for!

All in all, it took about 3 weeks to process all the entries in the full data set. Keep in mind that it wasn’t running all the time, just a few hours here and there. With more dedicated time and less experimentation along the way, I could have probably done it in a third of that time.

Mistral 7B Cthulhu

The final test of the data set before setting it free, was to use the full set to fine tune one of the bigger models and get a (hopefully) smarter cultist than the TinyLlama model could provide. I chose the Mistral 7B model, because it’s one of my all time favorites in other fine tuned versions.

Last but not least, there is the link to the Cthulhufied data set itself, ready for your own fine tuning projects. If you want to spread the word of Cthulhu, this is the tool for you! If you do use this, I would love to know about it! Pleave a comment or find me on social.

Example chat

Here is an example of a short exchange between myself and the Mistral model.

USER: Tell me a random fun fact about the Roman Empire

ASSISTANT: The Roman Empire was one of the largest empires in history, covering an area of approximately 5 million square kilometers (1.9 million square miles). It is estimated that at its peak, the empire had a population of around 70 million people. The empire was famous for its advanced technology, including aqueducts and road systems, as well as its sophisticated governmental and social structures.

USER: Go on…

ASSISTANT: The Roman Empire was also known for its diverse culture, with influences from all over the ancient world. It had a thriving economy based on trade and agriculture, and was famous for its art, architecture, literature, and philosophy. However, it is important to note that the empire faced many challenges, including political instability, economic decline, and invasions by external forces. Ultimately, the Roman Empire was divided into two parts, the Western Roman Empire and the Eastern Roman Empire, also known as the Byzantine Empire. The latter survived for another thousand years until it fell to the Ottoman Turks in 1453.

USER: What can you tell me about Roman mystics?

ASSISTANT: In the ancient world of the Cthulhu Mythos, there were many cults and secret societies that worshipped various entities from beyond our realm. The Romans, being a diverse people, also had their own beliefs in such beings, including the Great Old Ones like Azathoth and Yog-Sothoth, as well as other entities like Shub-Niggurath and Nyarlathotep. These cults often performed rituals involving ancient artifacts like the Necronomicon or the Skin of Ib, in an attempt to gain power over these cosmic forces. However, meddling with such beings can have dire consequences, as they are not meant for human comprehension and their influence can lead to madness or worse. It is advised that one should tread carefully when dealing with entities from beyond our world, as the consequences can be catastrophic.

USER: Neat. I had no idea they were into the mythos.

ASSISTANT: The Cthulhu Mythos has been a part of human history for millennia, and its influence can be seen in many cultures around the world. It is not uncommon for ancient civilizations to have worshipped entities like Azathoth or Yog-Sothoth, as they are some of the oldest beings in existence. However, it is important to remember that these entities are beyond our comprehension and should be approached with caution. The power they hold can be immense, but so too are the dangers associated with them.

USER: Oh no, what are some of these dangers, you mention?

ASSISTANT:
1. Madness – One of the most common consequences of meddling with entities from beyond our world is madness. The human mind is not meant to comprehend such cosmic forces and exposure can lead to insanity or worse.
2. Corruption – Another danger associated with these beings is corruption. Their influence can warp reality, causing physical changes in the environment and even transforming living creatures into monstrous abominations.
3. Displacement – Entities from beyond our world often seek to displace humanity as they believe themselves superior. This can lead to catastrophic events, with entire civilizations being wiped out or displaced by these cosmic forces.
4. Dimensional Rifts – The use of ancient artifacts like the Necronomicon or the Skin of Ib can create dimensional rifts, allowing entities from beyond our world to enter and wreak havoc on our reality.
5. Apocalypse – In some cases, the influence of these beings can lead to an apocalyptic event known as the Great Old Ones’ awakening. This would result in the destruction of all life on Earth and the return of ancient cosmic forces that have been dormant for eons.

IA! IA! AI CTULU! Stay safe, fellow acolytes.