This repository features an end-to-end Dyula-to-French translation system built with Joeynmt, 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 `joeynmt` model architecture developed and is maintained by Jasmijn Bastings and ulia Kreutzer. Both were affiliated with the University of Amsterdam and Heidelberg University, respectively, and are now at Google Research. The architecture was replicated using a Dyula-French translation dataset created by data354. 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:
- `best.ckpt` (the model itself)
- `config.yaml` (model configuration file)
- `sp.model` (sentence piece model for tokenization)
- `vocab.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-joeynmt_best:latest .
```
### Local Testing
1. After building the …