{"adoption": {"forks": 91, "observed_at": "2026-08-28T04:04:35.323788+00:00", "stars": 1389}, "canonical_url": "https://ross.abutalabs.com/products/mlx-tune", "card": {"archived": false, "artifact_type": "library", "description": "Fine-tune LLMs on your Mac with Apple Silicon. SFT, DPO, GRPO, Vision, TTS, STT, Embedding, and OCR fine-tuning — natively on MLX. Unsloth-compatible API.", "domain": ["large-language-models", "machine-learning", "deep-learning", "speech-processing", "computer-vision"], "enriched": true, "function": ["llm-training", "machine-learning", "deep-learning", "speech-recognition", "tts", "ocr", "transformers"], "health_score": 92, "homepage": "https://arahim3.github.io/mlx-tune/", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["ARahim3/mlx-tune"], "name": "ARahim3/mlx-tune", "platform": ["python"], "pushed_at": "2026-06-23T12:24:30+00:00", "repo": "ARahim3/mlx-tune", "stars": 1389, "tags": ["mlx", "apple-silicon", "lora", "peft", "fine-tuning", "unsloth-compatible", "sft", "dpo", "grpo", "vision-language-model", "whisper", "gguf-export", "huggingface", "on-device-ai", "jepa", "mixture-of-experts", "natural-language-processing", "macos", "gpu"], "topics": ["apple-silicon", "deep-learning", "huggingface", "large-language-models", "llm", "llm-finetuning", "local-llm", "lora", "machine-learning", "macos", "mlx", "on-device-ai", "peft", "transformers", "unsloth", "vision-language-model", "speech-recognition", "speech-to-text", "text-to-speech", "whisper"], "urls": [], "use_cases": ["fine-tune an LLM with LoRA on my MacBook without a cloud GPU", "run my existing Unsloth training script on Apple Silicon", "fine-tune Whisper for speech-to-text locally on a Mac", "train a TTS model with LoRA on Apple Silicon", "fine-tune a vision-language model like Qwen on my Mac", "train sentence embeddings for semantic search on-device", "fine-tune an OCR model for receipts or handwriting recognition", "prototype fine-tuning locally then move the same script to a CUDA cluster"], "what_it_is": "A Python library for fine-tuning LLMs, vision-language, audio (TTS/STT), embedding, OCR, and JEPA models natively on Apple Silicon Macs using Apple's MLX framework. It provides an Unsloth-compatible API so existing Unsloth training scripts run on Macs with only an import change, and exports to HuggingFace or GGUF formats.", "when_to_avoid": ["you need maximum training throughput on large-scale clusters — CUDA-based tools like Unsloth are the gold standard", "you are on Linux or Windows with NVIDIA GPUs — this is Apple Silicon only", "you need full fine-tuning of very large models beyond unified memory limits", "you require a battle-tested, officially supported tool — this is an unofficial community project"], "when_to_choose": ["you want to fine-tune LLMs or multimodal models locally on an M1-M5 Mac without cloud GPUs", "you already use Unsloth and want code portability between Mac prototyping and CUDA training", "you need LoRA fine-tuning across many modalities (text, vision, audio, OCR, embeddings) in one library", "you want to export fine-tuned models to GGUF for Ollama or llama.cpp"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/mlx-tune", "repo": "ARahim3/mlx-tune", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:35.323788+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:39:40.912410+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "6df1b0cd6e1f6f3fb9b5f4121c80944ad41af6cd06c1c1256e8968339640b66e", "fetched_at": "2026-08-28T04:04:35.323788+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ARahim3/mlx-tune"}, {"content_hash": "d17e58e0ae996cdb2110bc52483466d47a5bf11f129b69563e3051d089292677", "fetched_at": "2026-08-29T11:54:54.785596+00:00", "kind": "homepage", "missing": false, "url": "https://arahim3.github.io/mlx-tune/"}, {"content_hash": "d8acc95deb2f1c62e0c135887ff9b38af317bbd27f5f0800dd157479f3e8c4e3", "fetched_at": "2026-08-29T11:54:54.795223+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/mlx-tune/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 89, "longevity": 17, "rhythm": 90}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 242, "days_push": 71, "days_rel": 71, "gap_med": 1, "n_releases_24m": 34}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}