Fine-tunes OpenAI's open-source gpt-oss-20b model on the Arabic Instruct chatbot dataset using Unsloth with 4-bit quantization and LoRA. Originally a Kaggle notebook, converted to a plain Python script.
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python main.py
The dataset is downloaded automatically from Kaggle via kagglehub
(uses ~/.kaggle/kaggle.json or KAGGLE_USERNAME/KAGGLE_KEY if the dataset
requires authentication). To use a local copy instead:
DATA_PATH=/path/to/train.parquet python main.py
The repo ships an orchestra.yml pipeline for the Beskar-Core GPU worker.
The worker clones the repo, installs requirements.txt, and runs the steps;
everything written to $OUTPUT_DIR (/scratch/workspace/artifacts) is
collected as the job artifact. Tune the run via the env block:
NUM_SAMPLES, MAX_STEPS, MODEL_NAME.
Local dry-run of the pipeline:
python run_pipeline.py orchestra.yml --dry-run # from Beskar-Core/spawner/worker
All outputs are written under $OUTPUT_DIR (defaults to the repo root locally):
outputs/ — training checkpointsgpt-oss-arabic-finetuned-v1/ — final LoRA adapterslog_history.pt — training log historytraining_loss.png — loss curve7 commits
Python
100.0%
Fine-tunes OpenAI's open-source gpt-oss-20b model on the Arabic Instruct chatbot dataset using Unsloth with 4-bit quantization and LoRA. Originally a Kaggle notebook, converted to a plain Python script.
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python main.py
The dataset is downloaded automatically from Kaggle via kagglehub
(uses ~/.kaggle/kaggle.json or KAGGLE_USERNAME/KAGGLE_KEY if the dataset
requires authentication). To use a local copy instead:
DATA_PATH=/path/to/train.parquet python main.py
The repo ships an orchestra.yml pipeline for the Beskar-Core GPU worker.
The worker clones the repo, installs requirements.txt, and runs the steps;
everything written to $OUTPUT_DIR (/scratch/workspace/artifacts) is
collected as the job artifact. Tune the run via the env block:
NUM_SAMPLES, MAX_STEPS, MODEL_NAME.
Local dry-run of the pipeline:
python run_pipeline.py orchestra.yml --dry-run # from Beskar-Core/spawner/worker
All outputs are written under $OUTPUT_DIR (defaults to the repo root locally):
outputs/ — training checkpointsgpt-oss-arabic-finetuned-v1/ — final LoRA adapterslog_history.pt — training log historytraining_loss.png — loss curve7 commits
Python
100.0%