Getting Started
PMetal is a complete machine learning platform for Apple Silicon — from low-level Metal GPU kernels and Apple Neural Engine integration to high-level training APIs, a terminal TUI, and a full desktop GUI.
Prerequisites
Section titled “Prerequisites”- macOS on Apple Silicon (M1 or later)
- Rust 1.85+ (for building from source or using the SDK)
- Xcode Command Line Tools:
xcode-select --install
Quick Install
Section titled “Quick Install”# Option 1: Prebuilt binarycurl -fsSL https://github.com/Epistates/pmetal/releases/latest/download/pmetal-aarch64-apple-darwin.tar.gz | tar xzsudo mv pmetal /usr/local/bin/
# Option 2: Install from crates.iocargo install pmetalSee Installation for all options including building from source and GUI setup.
Your First Training Run
Section titled “Your First Training Run”Fine-tune a model with LoRA in one command:
pmetal train \ --model Qwen/Qwen3-0.6B \ --dataset train.jsonl \ --output ./output \ --lora-r 16 --batch-size 4 --learning-rate 2e-4PMetal automatically downloads the model from HuggingFace Hub, detects your hardware capabilities, and tunes kernel parameters for your specific chip.
Run Inference
Section titled “Run Inference”Chat with your fine-tuned model:
pmetal infer \ --model Qwen/Qwen3-0.6B \ --lora ./output/lora_weights.safetensors \ --prompt "Explain quantum entanglement" \ --chat --show-thinkingUse the SDK
Section titled “Use the SDK”Integrate PMetal into your own Rust applications:
use pmetal::easy;
let result = easy::finetune("Qwen/Qwen3-0.6B", "train.jsonl") .lora(16, 32.0) .learning_rate(2e-4) .epochs(3) .output("./output") .run() .await?;Or from Python:
import pmetal
result = pmetal.finetune( "Qwen/Qwen3-0.6B", "train.jsonl", lora_r=16, learning_rate=2e-4, epochs=3,)Explore Further
Section titled “Explore Further”- CLI Reference — All 21 commands
- Rust SDK — Builder API reference
- Python SDK — PyO3 bindings
- Training Methods — SFT, DPO, GRPO, distillation, and more
- Supported Models — All supported architectures
- Hardware — Chip detection and kernel tuning