thenewfolder's picture
Upload folder using huggingface_hub
45b3115 verified
Raw
History Blame Contribute Delete
1.48 kB
#!/usr/bin/env bash
# MLX LoRA Fine-tuning for Ornith-1.0-9B
# Run this script to train adapters on your coding dataset
set -euo pipefail
MODEL="mlx-community/Ornith-1.0-9B-4bit"
DATA_DIR="$HOME/mlx-finetuning/ornith-9b/data"
ADAPTER_DIR="$HOME/mlx-finetuning/ornith-9b/adapters"
FUSED_DIR="$HOME/mlx-finetuning/ornith-9b/fused"
echo "[MLX] Fine-tuning Ornith-1.0-9B with LoRA"
echo "[MLX] Model: $MODEL"
echo "[MLX] Data: $DATA_DIR"
echo "[MLX] Adapters: $ADAPTER_DIR"
echo ""
# Step 1: Train
echo "[Step 1/3] Training LoRA adapters..."
mlx_lm.lora \
--model "$MODEL" \
--train \
--data "$DATA_DIR" \
--batch-size 1 \
--grad-accumulation-steps 4 \
--num-layers 8 \
--iters 200 \
--learning-rate 2e-4 \
--mask-prompt \
--save-every 50 \
--adapter-path "$ADAPTER_DIR"
# Step 2: Evaluate
echo ""
echo "[Step 2/3] Evaluating on validation set..."
mlx_lm.lora \
--model "$MODEL" \
--adapter-path "$ADAPTER_DIR" \
--data "$DATA_DIR" \
--test
# Step 3: Fuse (optional - creates a standalone model)
echo ""
echo "[Step 3/3] Fusing adapters into model..."
mlx_lm.fuse \
--model "$MODEL" \
--adapter-path "$ADAPTER_DIR" \
--save-path "$FUSED_DIR" \
--de-quantize
echo ""
echo "[✓] Fine-tuning complete!"
echo "[✓] Adapters saved to: $ADAPTER_DIR"
echo "[✓] Fused model saved to: $FUSED_DIR"
echo ""
echo "To use the fine-tuned model:"
echo " mlx_lm.chat --model $FUSED_DIR"
echo " OR"
echo " mlx_lm.server --model $FUSED_DIR --port 8082"