|
|
--- |
|
|
base_model: meta-llama/Meta-Llama-3.1-8B-Instruct |
|
|
library_name: peft |
|
|
datasets: |
|
|
- sanaa-11/math-dataset |
|
|
language: |
|
|
- fr |
|
|
--- |
|
|
# Model Card for LLaMA 3.1 Fine-Tuned Model |
|
|
|
|
|
## Model Details |
|
|
|
|
|
### Model Description |
|
|
- **Developed by**: Sanaa Abril |
|
|
- **Model Type**: Fine-tuned Causal Language Model |
|
|
- **Language(s) (NLP)**: French |
|
|
- **License**: |
|
|
- **Finetuned from model**: Meta LLaMA 3.1 8B Instruct |
|
|
|
|
|
### Model Sources [optional] |
|
|
- **Repository**: https://huggingface.co/sanaa-11/mathematic-exercice-generator/tree/main |
|
|
- |
|
|
## Uses |
|
|
|
|
|
### Direct Use |
|
|
- **Primary Application**: This model is primarily used for generating math exercises tailored to Moroccan students in French, based on specific lessons and difficulty levels. |
|
|
- **Example Use Case**: Educators can input lesson topics to generate corresponding exercises for classroom use or online learning platforms. |
|
|
|
|
|
### Downstream Use [optional] |
|
|
- **Potential Applications**: The model can be extended or adapted to create exercises in other languages or for different educational levels. |
|
|
|
|
|
### Out-of-Scope Use |
|
|
- **Not Suitable For**: The model is not designed for high-stakes assessments, as it may generate exercises that require further validation by subject matter experts. |
|
|
|
|
|
## Bias, Risks, and Limitations |
|
|
- **Bias**: The model may inherit biases from the data it was trained on, potentially generating exercises that reflect unintended cultural or linguistic biases. |
|
|
- **Risks**: There is a risk of generating mathematically incorrect exercises or exercises that do not align with the intended curriculum. |
|
|
- **Limitations**: The model's accuracy and relevance may decrease when generating exercises outside of its training domain or when applied to advanced mathematical topics not covered during fine-tuning. |
|
|
|
|
|
### Recommendations |
|
|
- **For Educators**: It is recommended to review the generated exercises for correctness and relevance before using them in a classroom setting. |
|
|
- **For Developers**: Fine-tune the model further or adjust the training data to mitigate any biases and improve the quality of the generated content. |
|
|
|
|
|
## How to Get Started with the Model |
|
|
Use the following code snippet to load and generate exercises using the model: |
|
|
|
|
|
```python |
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer, BitsAndBytesConfig |
|
|
from peft import PeftModel, PeftConfig |
|
|
import torch |
|
|
|
|
|
# Base model name |
|
|
model_name = "meta-llama/Meta-Llama-3.1-8B-Instruct" |
|
|
|
|
|
# Load the base model without specifying rope_scaling |
|
|
model = AutoModelForCausalLM.from_pretrained( |
|
|
model_name, |
|
|
device_map="auto", # Adjust based on your environment |
|
|
offload_folder="./offload_dir", # Specify a folder for offloading if necessary |
|
|
torch_dtype=torch.float16, # Use float16 for better performance on compatible hardware |
|
|
revision="main" # Specify the correct revision if needed |
|
|
) |
|
|
|
|
|
# Load the adapter configuration |
|
|
config = PeftConfig.from_pretrained("sanaa-11/mathematic-exercice-generator") |
|
|
|
|
|
# Load the adapter weights into the model |
|
|
model = PeftModel.from_pretrained(model, "sanaa-11/mathematic-exercice-generator") |
|
|
|
|
|
# Load the tokenizer |
|
|
tokenizer = AutoTokenizer.from_pretrained(model_name, use_fast=True) |
|
|
``` |
|
|
``` |
|
|
generated_text = "" |
|
|
prompt = "Fournis un exercice basé sur la vie reelle de difficulté moyenne de niveau 2 annee college sur les fractions." |
|
|
for _ in range(5): |
|
|
inputs = tokenizer(prompt + generated_text, return_tensors="pt").to(model.device) |
|
|
outputs = model.generate( |
|
|
**inputs, |
|
|
max_length=1065, |
|
|
temperature=0.7, |
|
|
top_p=0.9, |
|
|
num_beams=5, |
|
|
repetition_penalty=1.2, |
|
|
no_repeat_ngram_size=2, |
|
|
pad_token_id=tokenizer.eos_token_id, |
|
|
early_stopping=False |
|
|
) |
|
|
new_text = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
|
generated_text += new_text |
|
|
print(new_text) |
|
|
``` |
|
|
## Training Details |
|
|
|
|
|
### Training Data |
|
|
- **Dataset**: The model was fine-tuned on a custom dataset consisting of 3.6K rows of math exercises, lesson content, and solutions, specifically designed for Moroccan students in French laungage. |
|
|
|
|
|
### Training Procedure |
|
|
|
|
|
#### Preprocessing [optional] |
|
|
- **Data Cleaning**: Text normalization, tokenization, and padding were applied to prepare the data. |
|
|
- **Tokenization**: The French tokenizer provided by Hugging Face was used to process the text data. |
|
|
|
|
|
### Training Hyperparameters |
|
|
- **Training Regime**: The model was fine-tuned using 4-bit quantization with QLoRA to optimize GPU and RAM usage. The training was performed on a Kaggle environment with limited resources. |
|
|
- **Batch Size**: 1 (with gradient accumulation steps of 8) |
|
|
- **Number of Epochs**: 8 |
|
|
- **Learning Rate**: 5e-5 |
|
|
|
|
|
|
|
|
## Evaluation |
|
|
|
|
|
### Testing Data, Factors & Metrics |
|
|
|
|
|
**Testing Data** |
|
|
- A separate subset of 10% of the dataset was reserved for evaluation. |
|
|
|
|
|
**Factors** |
|
|
- **Complexity of Generated Exercises**: Exercises were evaluated based on their complexity relative to the intended difficulty level. |
|
|
|
|
|
**Metrics** |
|
|
- **Training Loss**: The loss measured during training. |
|
|
- **Validation Loss**: The loss measured on the validation dataset during training. |
|
|
|
|
|
**Results** |
|
|
- **Training and Validation Loss**: The model was evaluated based on training and validation loss over 8 epochs. The results indicate that the model's performance improved significantly after the first few epochs, with a steady decrease in both training and validation loss. The final validation loss achieved was 0.154888, indicating a good fit to the validation data without significant overfitting. |
|
|
|
|
|
### Summary |
|
|
**Model Examination** |
|
|
- The model demonstrated a consistent reduction in both training and validation loss across the training epochs, suggesting effective learning and generalization from the provided dataset. |
|
|
|
|
|
|
|
|
## Environmental Impact |
|
|
**Carbon Emissions** |
|
|
- **Hardware Type**: Tesla T4 GPU |
|
|
- **Hours Used**: 12 hours |
|
|
- **Cloud Provider**: Kaggle |
|
|
- **Carbon Emitted**: [Can be estimated using the Machine Learning Impact calculator by Lacoste et al. (2019)] |
|
|
|
|
|
### Technical Specifications [optional] |
|
|
|
|
|
**Model Architecture and Objective** |
|
|
- The model is based on the LLaMA 3.1 architecture, fine-tuned to generate text in French for educational purposes, specifically math exercises. |
|
|
|
|
|
**Compute Infrastructure** |
|
|
- The model was trained on Kaggle’s free-tier environment, leveraging a single Tesla T4 GPU. |
|
|
|
|
|
**Hardware** |
|
|
- **GPU**: Tesla T4 with 16GB RAM |
|
|
|
|
|
|
|
|
**Software** |
|
|
- **Transformers Version**: 4.44.0 |
|
|
- **PEFT Version**: 0.12.0 |
|
|
|
|
|
### Citation [optional] |
|
|
|
|
|
**BibTeX**: |
|
|
|
|
|
```bibtex |
|
|
@misc{your_name_2024_model, |
|
|
author = {Sanaa Abril}, |
|
|
title = {Fine-Tuned LLaMA 3.1 for Generating Math Exercises}, |
|
|
year = {2024}, |
|
|
publisher = {Hugging Face}, |
|
|
note = {\url{https://huggingface.co/sanaa-11/mathematic-exercice-generator}} |
|
|
} |
|
|
**APA**: |
|
|
Abril, S. (2024). Fine-Tuned LLaMA 3.1 for Generating Math Exercises. Hugging Face. https://huggingface.co/sanaa-11/mathematic-exercice-generator |
|
|
|
|
|
### More Information [optional] |
|
|
- For further details or questions, feel free to reach out to the model card authors. |
|
|
|
|
|
### Model Card Authors [optional] |
|
|
- **Sanaa Abril** - sanaa.abril@gmail.com |
|
|
|
|
|
### Framework versions |
|
|
- **Transformers**: 4.44.0 |
|
|
- **PEFT**: 0.12.0 |