Fu01978's picture
Create README.md
fbba457 verified
---
license: apache-2.0
datasets:
- Fu01978/ao3_chat
language:
- en
base_model:
- HuggingFaceTB/SmolLM2-135M-Instruct
pipeline_tag: text-generation
library_name: transformers
tags:
- creative-writing
- roleplay
- smollm
- ao3
---
# SmolLM2-135M-Instruct-AO3
This model is a fine-tuned version of [HuggingFaceTB/SmolLM2-135M-Instruct](https://huggingface.co/HuggingFaceTB/SmolLM2-135M-Instruct) trained on the [Fu01978/ao3_chat](https://huggingface.co/datasets/Fu01978/ao3_chat) dataset.
It is designed to blend the instruction-following capabilities of SmolLM2 with the descriptive, narrative, and atmospheric prose styles commonly found in creative writing communities.
## Model Description
- **Model type:** Causal Language Model (Fine-tuned)
- **Language(s) (NLP):** English
- **License:** Apache 2.0
- **Finetuned from model:** [HuggingFaceTB/SmolLM2-135M-Instruct](https://huggingface.co/HuggingFaceTB/SmolLM2-135M-Instruct)
## Training Details
The model was fine-tuned for a short duration to "infuse" the base model with narrative flair without completely overwriting its general knowledge.
### Training Hyperparameters
* **Steps:** 75
* **Learning Rate:** 5e-4
* **Batch Size:** 8
* **Gradient Accumulation Steps:** 2
* **LR Scheduler Type:** linear
* **Precision:** FP32 (Full Precision)
### Loss Curve
The model showed a rapid descent in the first 20 steps, eventually stabilizing around a loss of **2.5-2.6**.
| Step | Training Loss |
| :--- | :--- |
| 5 | 3.572342 |
| 15 | 2.720610 |
| 30 | 2.497861 |
| 45 | 2.626326 |
| 60 | 2.708193 |
| 75 | 2.637797 |
## Usage
This model uses the **ChatML** template. It is recommended to use the `apply_chat_template` method for best results.
```python
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
model_id = "Fu01978/SmolLM2-135M-Instruct-AO3"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(model_id, torch_dtype=torch.float32, device_map="auto")
messages = [
{"role": "system", "content": "You are a creative writing assistant."},
{"role": "user", "content": "Write a scene about a rainy library."},
]
inputs = tokenizer.apply_chat_template(messages, tokenize=True, add_generation_prompt=True, return_tensors="pt").to(model.device)
outputs = model.generate(**inputs, max_new_tokens=150, do_sample=True, temperature=0.7)
print(tokenizer.decode(outputs[0][len(inputs[0]):], skip_special_tokens=True))
```
## Intended Use & Limitations
* **Roleplay & Fiction:** Best suited for creative prompts and stylistic prose.
* **Domain Shift:** While it retains general knowledge, its explanations (e.g., science) may adopt a more narrative or "story-like" tone.