This repository features an end-to-end Dyula-to-French translation system built with Fairseq, addressing low-resource language challenges. It incorporates MLOps best practices for optimizing accuracy, latency, throughput, and cost efficiency. The project is fully documented for reproducibility and deployed on the AWS-powered HighWind platform.
# Model Description
This machine translation model translates text from Dyula to French. It is built on a `fairseq` model architecture proposed by Facebook. The architecture was replicated using a Dyula-French translation dataset created by data354. The model was later quantized into int8 and exported to ctranslate2 format for fast inference. The model is designed to support a variety of educational applications by providing accurate and contextually relevant translations between these languages.
## Intended Use
The model is specifically designed to support **AI Student Learning Assistant (AISLA)**, a free educational tool aimed at helping students learn and communicate in their native language.
The model is particularly valuable for enhancing educational accessibility for Dyula-speaking students by enabling reliable translations from Dyula to French. It is intended to be integrated into platforms like Discord to provide seamless support within educational environments.
# Deployment
This folder contains the resources required for deploying the trained model onto Highwind.
## Usage
> All commands below are run from the deployment directory.
### Building the Model Image
This step builds the Kserve predictor image that contains the model.
1. Ensure the trained model folder `model_dir` contains:
- `model.bin` (the model itself)
- `config.json` (model configuration file)
- `combined_model_2000.model` (sentence piece model for tokenization)
- `shared_vocabulary.json` (shared vocabulary)
2. The deployment folder should include:
- `Dockerfile` (steps to build the image)
- `main.py` (starts the Kserve server and runs the model for translation inference tasks)
- `serve-requirements.txt` (model dependencies)
3. Build the container locally without caching and tag it:
```bash
docker build --no-cache -t dyula-french-seqf_8-25-5beams:latest .
```
### Local Testing
1. After building the Kserve predictor image, spin it up to test the model inference:
```bash
docker co …