abumafrim's picture
Upload afriquellama_8b-lora-r4-hau-eng LoRA adapter
e7f82a3 verified
|
Raw
History Blame
4.91 kB
---
library_name: peft
base_model: afriquellama_8b
language:
- ha
- en
tags:
- translation
- african-languages
- scientific-translation
- afriscience-mt
- lora
- peft
- llama
license: apache-2.0
pipeline_tag: translation
---
# afriquellama_8b-lora-r4-hau-eng
[![Model on HF](https://huggingface.co/datasets/huggingface/badges/raw/main/model-on-hf-sm.svg)](https://huggingface.co/AfriScience-MT/afriquellama_8b-lora-r4-hau-eng)
This is a **LoRA adapter** for the AfriScience-MT project, enabling efficient scientific machine translation for African languages.
## Adapter Description
| Property | Value |
|----------|-------|
| **Base Model** | [afriquellama_8b](https://huggingface.co/afriquellama_8b) |
| **Translation Direction** | Hausa → English |
| **LoRA Rank (r)** | 4 |
| **LoRA Alpha** | 8 |
| **Training Method** | QLoRA (4-bit quantization) |
| **Domain** | Scientific/Academic texts |
### Why LoRA?
LoRA (Low-Rank Adaptation) enables efficient fine-tuning by training only a small number of additional parameters. This adapter adds only **~2.0M parameters** to the base model while achieving strong translation performance.
## Usage
### Quick Start
```python
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig
from peft import PeftModel
import torch
# Configure 4-bit quantization (recommended for memory efficiency)
bnb_config = BitsAndBytesConfig(
load_in_4bit=True,
bnb_4bit_compute_dtype=torch.bfloat16,
bnb_4bit_quant_type="nf4",
bnb_4bit_use_double_quant=True,
)
# Load base model
base_model = AutoModelForCausalLM.from_pretrained(
"afriquellama_8b",
quantization_config=bnb_config,
device_map="auto",
torch_dtype=torch.bfloat16,
)
tokenizer = AutoTokenizer.from_pretrained("afriquellama_8b")
# Load LoRA adapter
adapter_name = "AfriScience-MT/afriquellama_8b-lora-r4-hau-eng"
model = PeftModel.from_pretrained(base_model, adapter_name)
model.eval()
# Prepare translation prompt
source_text = "Climate change significantly impacts agricultural productivity in sub-Saharan Africa."
instruction = "Translate the following Hausa scientific text to English."
# Format prompt
prompt = f"""### Instruction:
{instruction}
### Input:
{source_text}
### Response:
"""
# Generate translation
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=256,
num_beams=5,
early_stopping=True,
pad_token_id=tokenizer.pad_token_id,
)
# Decode only the generated part
generated = outputs[0][inputs["input_ids"].shape[1]:]
translation = tokenizer.decode(generated, skip_special_tokens=True)
print(translation)
```
### Without Quantization (Full Precision)
```python
# For GPUs with sufficient memory (>24GB for larger models)
base_model = AutoModelForCausalLM.from_pretrained(
"afriquellama_8b",
device_map="auto",
torch_dtype=torch.bfloat16,
)
model = PeftModel.from_pretrained(base_model, "AfriScience-MT/afriquellama_8b-lora-r4-hau-eng")
```
### Hardware Requirements
| Configuration | VRAM Required |
|---------------|---------------|
| 4-bit (QLoRA) | ~8-12 GB |
| 8-bit | ~16-20 GB |
| Full precision | ~24-40 GB |
## Reproducibility
To reproduce this adapter:
```bash
# Clone the AfriScience-MT repository
git clone https://github.com/afriscience-mt/afriscience-mt.git
cd afriscience-mt
# Install dependencies
pip install -r requirements.txt
# Run LoRA training
python -m afriscience_mt.scripts.run_lora_training \
--data_dir ./data \
--source_lang hau \
--target_lang eng \
--model_name afriquellama_8b \
--model_type llama \
--lora_rank 4 \
--output_dir ./output \
--num_epochs 3 \
--batch_size 4 \
--load_in_4bit
```
## Limitations
- **Domain Specificity**: Optimized for scientific/academic texts; may underperform on casual or colloquial language.
- **Language Direction**: Only supports Hausa → English translation.
- **Base Model Required**: Must be used with the [afriquellama_8b](https://huggingface.co/afriquellama_8b) base model.
- **Context Length**: Maximum context is model-dependent; longer texts should be chunked.
## Citation
If you use this adapter, please cite the AfriScience-MT project:
```bibtex
@inproceedings{afriscience-mt-2025,
title={AfriScience-MT: Machine Translation for African Scientific Literature},
author={AfriScience-MT Team},
year={2025},
url={https://github.com/afriscience-mt/afriscience-mt}
}
```
## License
This adapter is released under the [Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0).
## Acknowledgments
- Base model: [afriquellama_8b](https://huggingface.co/afriquellama_8b)
- LoRA implementation: [PEFT](https://github.com/huggingface/peft)
- Evaluation: [SSA-COMET](https://huggingface.co/McGill-NLP/ssa-comet-stl) for African language assessment