Instructions to use DannyAI/phi4_african_history_lora with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use DannyAI/phi4_african_history_lora with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="DannyAI/phi4_african_history_lora") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("DannyAI/phi4_african_history_lora", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use DannyAI/phi4_african_history_lora with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "DannyAI/phi4_african_history_lora" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "DannyAI/phi4_african_history_lora", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/DannyAI/phi4_african_history_lora
- SGLang
How to use DannyAI/phi4_african_history_lora with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "DannyAI/phi4_african_history_lora" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "DannyAI/phi4_african_history_lora", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "DannyAI/phi4_african_history_lora" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "DannyAI/phi4_african_history_lora", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use DannyAI/phi4_african_history_lora with Docker Model Runner:
docker model run hf.co/DannyAI/phi4_african_history_lora
| 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) |