|
|
--- |
|
|
library_name: transformers |
|
|
tags: |
|
|
- history |
|
|
- conversational |
|
|
- PEFT |
|
|
license: mit |
|
|
datasets: |
|
|
- DannyAI/African-History-QA-Dataset |
|
|
language: |
|
|
- en |
|
|
metrics: |
|
|
- bertscore |
|
|
base_model: |
|
|
- microsoft/Phi-4-mini-instruct |
|
|
pipeline_tag: text-generation |
|
|
--- |
|
|
|
|
|
# Model Card for Model ID |
|
|
|
|
|
This is a LoRA fine-tuned version of **microsoft/Phi-4-mini-instruct** for African History using the **DannyAI/African-History-QA-Dataset** dataset. |
|
|
It achieves a loss value of 1.488960 on the validation set |
|
|
|
|
|
## Model Details |
|
|
|
|
|
### Model Description |
|
|
|
|
|
- **Developed by:** Daniel Ihenacho |
|
|
- **Funded by:** Daniel Ihenacho |
|
|
- **Shared by:** Daniel Ihenacho |
|
|
- **Model type:** Text Generation |
|
|
- **Language(s) (NLP):** English |
|
|
- **License:** mit |
|
|
- **Finetuned from model:** microsoft/Phi-4-mini-instruct |
|
|
|
|
|
## Uses |
|
|
|
|
|
This can be used for QA datasets about African History |
|
|
|
|
|
### Out-of-Scope Use |
|
|
|
|
|
Can be used beyond African History but should not. |
|
|
|
|
|
## How to Get Started with the Model |
|
|
|
|
|
```python |
|
|
from transformers import pipeline |
|
|
from transformers import ( |
|
|
AutoTokenizer, |
|
|
AutoModelForCausalLM) |
|
|
from peft import PeftModel |
|
|
|
|
|
|
|
|
model_id = "microsoft/Phi-4-mini-instruct" |
|
|
|
|
|
tokeniser = AutoTokenizer.from_pretrained(model_id) |
|
|
|
|
|
# load base model |
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
model_id, |
|
|
device_map = "auto", |
|
|
torch_dtype = torch.bfloat16, |
|
|
trust_remote_code = False |
|
|
) |
|
|
|
|
|
# Load the fine-tuned LoRA model |
|
|
lora_id = "DannyAI/phi4_african_history_lora" |
|
|
lora_model = PeftModel.from_pretrained( |
|
|
model,lora_id |
|
|
) |
|
|
|
|
|
generator = pipeline( |
|
|
"text-generation", |
|
|
model=lora_model, |
|
|
tokenizer=tokeniser, |
|
|
) |
|
|
question = "What is the significance of African feminist scholarly activism in contemporary resistance movements?" |
|
|
def generate_answer(question)->str: |
|
|
"""Generates an answer for the given question using the fine-tuned LoRA model. |
|
|
""" |
|
|
messages = [ |
|
|
{"role": "system", "content": "You are a helpful AI assistant specialised in African history which gives concise answers to questions asked."}, |
|
|
{"role": "user", "content": question} |
|
|
] |
|
|
|
|
|
output = generator( |
|
|
messages, |
|
|
max_new_tokens=2048, |
|
|
temperature=0.1, |
|
|
do_sample=False, |
|
|
return_full_text=False |
|
|
) |
|
|
return output[0]['generated_text'].strip() |
|
|
``` |
|
|
``` |
|
|
# Example output |
|
|
African feminist scholarly activism is significant in contemporary resistance movements as it provides a critical framework for understanding and addressing the specific challenges faced by African women in the context of global capitalism, neocolonialism, and patriarchal structures. |
|
|
``` |
|
|
|
|
|
## Training Details |
|
|
|
|
|
### Training Data |
|
|
|
|
|
| Step | Training Loss | Validation Loss | |
|
|
|------|--------------|----------------| |
|
|
| 100 | 1.643300 | 1.649192 | |
|
|
| 200 | 1.546300 | 1.576022 | |
|
|
| 300 | 1.580200 | 1.552545 | |
|
|
| 400 | 1.575900 | 1.538777 | |
|
|
| 500 | 1.499500 | 1.529112 | |
|
|
| 600 | 1.400600 | 1.516559 | |
|
|
| 700 | 1.524000 | 1.513925 | |
|
|
| 800 | 1.437100 | 1.507401 | |
|
|
| 900 | 1.547300 | 1.504273 | |
|
|
| 1000 | 1.441300 | 1.502129 | |
|
|
| 1100 | 1.452500 | 1.499649 | |
|
|
| 1200 | 1.466400 | 1.495797 | |
|
|
| 1300 | 1.407500 | 1.494715 | |
|
|
| 1400 | 1.511400 | 1.493275 | |
|
|
| 1500 | 1.489600 | 1.495470 | |
|
|
| 1600 | 1.384400 | 1.492817 | |
|
|
| 1700 | 1.534900 | 1.490099 | |
|
|
| 1800 | 1.469300 | 1.490490 | |
|
|
| 1900 | 1.407500 | 1.488490 | |
|
|
| 2000 | 1.512300 | 1.487388 | |
|
|
| 2100 | 1.438900 | 1.490232 | |
|
|
| 2200 | 1.434700 | 1.490498 | |
|
|
| 2300 | 1.421200 | 1.489342 | |
|
|
| 2400 | 1.418200 | 1.487220 | |
|
|
| 2500 | 1.441200 | 1.487831 | |
|
|
| 2600 | 1.453900 | 1.488960 | |
|
|
|
|
|
|
|
|
### Training Hyperparameters |
|
|
|
|
|
- per_device_train_batch_size=2 |
|
|
- gradient_accumulation_steps = 4 |
|
|
- learning_rate=2e-5 |
|
|
- num_train_epochs=10 |
|
|
- bf16=True |
|
|
- eval_strategy="steps" |
|
|
- eval_steps=100, |
|
|
- save_strategy="steps" |
|
|
- save_steps=200 |
|
|
- logging_steps=10 |
|
|
|
|
|
### Lora Configuration |
|
|
- r: 8 |
|
|
- lora_alpha: 16 |
|
|
- target_modules: ["q_proj", "v_proj", "k_proj", "o_proj"] |
|
|
- lora_dropout: 0.05 # dataset is small, hence a low dropout value |
|
|
- bias: "none" |
|
|
- task_type: "CAUSAL_LM" |
|
|
|
|
|
|
|
|
## Evaluation |
|
|
|
|
|
#### Metrics |
|
|
| Models | Bert Score | TinyMMLU| TinyTrufulQA |
|
|
|------|--------------|----------------|----------------| |
|
|
| Base model | 0.88868 | 0.6837 |0.49745| |
|
|
| Fine tuned Model | 0.90726 | 0.67751 |0.43555| |
|
|
|
|
|
|
|
|
## Compute Infrastructure |
|
|
|
|
|
[Runpod](https://console.runpod.io/). |
|
|
|
|
|
### Hardware |
|
|
|
|
|
Runpod A40 GPU instance |
|
|
|
|
|
## Citation |
|
|
|
|
|
If you use this dataset, please cite: |
|
|
``` |
|
|
@Model{ |
|
|
Ihenacho2026phi4_african_history_lora, |
|
|
author = {Daniel Ihenacho}, |
|
|
title = {phi4_african_history_lora}, |
|
|
year = {2026}, |
|
|
publisher = {Hugging Face Models}, |
|
|
url = {https://huggingface.co/DannyAI/phi4_african_history_lora}, |
|
|
urldate = {2026-01-27}, |
|
|
} |
|
|
``` |
|
|
|
|
|
## Model Card Authors |
|
|
|
|
|
Daniel Ihenacho |
|
|
|
|
|
## Model Card Contact |
|
|
|
|
|
- [LinkedIn](https://www.linkedin.com/in/daniel-ihenacho-637467223) |
|
|
- [GitHub](https://github.com/daniau23) |