This repository contains code and resources for fine-tuning language models specifically for Model United Nations (MUN) scenarios. The project uses QLoRA (Quantized Low-Rank Adaptation) to efficiently fine-tune large language models on MUN-specific data.
The project uses two main data sources:
-
Model United Nations Dataset
- Source: Harvard Dataverse
- Contains structured MUN discussions and resolutions
-
Reddit MUN Community Data
- Source: r/MUN subreddit
- Contains real-world MUN discussions, advice, and experiences
- Provides contemporary and practical insights into MUN practices
LLM4MUN/
├── data/ # Raw and processed data files
├── dataset/ # HuggingFace dataset storage
├── scripts/ # Utility scripts
├── train_qlora.py # Main training script
├── push_df_hf.py # Script for pushing data to HuggingFace
└── requirements.txt # Project dependencies
- Create a virtual environment:
python -m venv myenv
source myenv/bin/activate # On Unix/macOS
# or
.\myenv\Scripts\activate # On Windows
- Install dependencies:
pip install -r requirements.txt
The project uses QLoRA to fine-tune the Meta-Llama-3-8B-Instruct model with the following specifications:
- 4-bit quantization for memory efficiency
- LoRA configuration:
- Rank (r): 16
- Alpha: 32
- Target modules: q_proj, v_proj
- Dropout: 0.05
Training parameters:
- Batch size: 2 (per device)
- Gradient accumulation steps: 4
- Learning rate: 2e-4
- Number of epochs: 3
- Mixed precision training (FP16)
graph TD
A[Data Collection] --> B[Data Preprocessing]
B --> C[Dataset Creation]
C --> D[Model Selection]
D --> E[QLoRA Configuration]
E --> F[Training Setup]
F --> G[Fine-tuning Process]
G --> H[Model Evaluation]
H --> I[Model Deployment]
subgraph "Data Sources"
A1[Harvard Dataverse] --> A
A2[r/MUN Reddit] --> A
end
subgraph "Training Configuration"
E1[4-bit Quantization] --> E
E2[LoRA Parameters] --> E
E3[Training Parameters] --> E
end