Apple Silicon’da MLX LM
Libre WebUI, MLX biçimli dil modellerini M serisi Mac’te doğrudan çalıştırmak için MLX LM (Apple Silicon) eklentisini içerir. Eklenti, MLX LM içindeki OpenAI uyumlu HTTP API’ye bağlanır.
MLX denetim noktasını Ollama veya GGUF modeline dönüştürmeden yerel Metal çıkarımı istediğinizde bu yol yararlıdır.
Mimari
Libre WebUI in native development mode
frontend http://localhost:5173
backend http://localhost:3001
|
| OpenAI-compatible chat request
v
mlx_lm.server http://127.0.0.1:8081
|
v
MLX model on Apple Silicon unified memory
8081 bağlantı noktası bilinçli seçilmiştir. MLX LM normalde 8080 kullanır; paketli npx libre-webui sunucusuyla çakışır.
Gereksinimler
- Apple Silicon Mac (M1 veya yeni).
- Xcode komut satırı araçları bulunan macOS.
- Python 3.10 veya yeni.
- Model, KV önbelleği ve macOS için yeterli birleşik bellek.
- Yerel çalışan Libre WebUI. İki arka uç da Mac geri döngüsünü kullanabildiğinden kaynak geliştirme akışı en kolay kurulumdur.
Varsayılan Ternary Bonsai modeli diskte yaklaşık 8,5 GB’tır ve çalışırken daha fazla bellek ister. 16 GB birleşik bellekli Mac kısa bağlamları kaldırabilir; 24 GB veya fazlası pratik pay bırakır. Bellek darsa daha küçük MLX denetim noktası kullanıp depo kimliğini kopyalanmış eklenti tanımına ekleyin.
MLX LM’yi Kurma
uv, komutu Homebrew Python paketlerinden ayırır:
brew install uv
uv tool install --upgrade mlx-lm
rehash
mlx_lm.server --help
Araç zaten varsa:
uv tool upgrade mlx-lm
rehash
Qwen 3.5 modelleri mlx-lm 0.30.7 veya yenisini, depo örneği 0.31.3 veya yenisini gerektirir.
Sunucuyu Başlatma
Ternary Bonsai için:
mlx_lm.server \
--model "prism-ml/Ternary-Bonsai-27B-mlx-2bit" \
--host 127.0.0.1 \
--port 8081 \
--max-tokens 262144 \
--allowed-origins "http://localhost:5173,http://127.0.0.1:5173"
İlk çalıştırma modeli Hugging Face’ten indirir; sonrakiler yerel önbelleği kullanır. Ternary Bonsai en çok 262144 konum bildirir. İstem ve çıktı aynı bağlam penceresini paylaşır; uzun istem üretilebilecek belirteçleri azaltır, sunucu izni model üst sınırına ayarlı olsa bile.
Daha küçük başlangıç modeli:
mlx_lm.server \
--model "mlx-community/Llama-3.2-3B-Instruct-4bit" \
--host 127.0.0.1 \
--port 8081 \
--max-tokens 2048
Depoda yeniden kullanılabilir başlatıcı da vardır:
cd examples/mlx-lm-server
uv run server.py
Model yüklemeden çözümlenen komutu inceleyin:
uv run server.py --dry-run
OpenAI Uyumlu API’yi Doğrulama
Durumu ve model keşfini denetleyin:
curl http://127.0.0.1:8081/health
curl http://127.0.0.1:8081/v1/models
Akışsız sohbet isteği gönderin:
curl http://127.0.0.1:8081/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "prism-ml/Ternary-Bonsai-27B-mlx-2bit",
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Reply with: MLX is ready."}
],
"temperature": 0.7,
"top_p": 0.95,
"max_tokens": 64,
"stream": false
}'
Sunucu "stream": true iken Server-Sent Events destekler.
Libre WebUI’yi Bağlama
Libre WebUI depo kökünden:
npm install
npm run dev
http://localhost:5173 adresini açın:
- Settings > Plugins bölümünü açın.
- MLX LM (Apple Silicon) seçeneğini bulun.
- Uç noktanın
http://127.0.0.1:8081/v1/chat/completionsolduğunu doğrulayın. - Eklentiyi etkinleştirin. Yerel MLX API anahtarı istemez.
- Chat’e dönüp MLX modelini seçin.
Yerleşik model listesinde:
prism-ml/Ternary-Bonsai-27B-mlx-2bit
Libre WebUI’de seçilen model MLX sunucusundaki modelle eşleşmelidir. Başka denetim noktası için plugins/mlx-lm.json dosyasını dışa aktarın veya kopyalayın, depo kimliğini model_map içine ekleyip Settings > Plugins üzerinden içe aktarın.
Üretim Ayarları
Ternary Bonsai önerileri:
| Ayar | Değer |
|---|---|
| Temperature | 0.7 |
| Top P | 0.95 |
| Top K | 20 |
Libre WebUI sıcaklık ve Top P değerini eklentiden geçirir. Top K önerisi için sunucuyu --top-k 20 ile başlatın:
mlx_lm.server \
--model "prism-ml/Ternary-Bonsai-27B-mlx-2bit" \
--host 127.0.0.1 \
--port 8081 \
--top-k 20 \
--max-tokens 262144
Work ve Araç Çağırma
MLX eklentisi OpenAI sohbet biçimi kullandığından Work’te görünebilir. Yalnızca model ve sohbet şablonu OpenAI tarzı araç çağrılarını güvenilir destekliyorsa seçin. Chat’te metin üretiminin çalışması araç desteğini kanıtlamaz.
Araç ayrıştırıcıları ve model şablonları hızla değişir. Bozuk çağrıda mlx-lm güncelleyin, aynı isteği doğrudan sunucuda sınayın ve MLX kartı araç kullanımını açıkça belgeleyen model deneyin.
Docker Ağı
Yerel Libre WebUI geliştirmesi önerilir. Kapsayıcı Mac’in 127.0.0.1 adresine erişemez.
Libre WebUI Docker’da çalışıyorsa:
- MLX LM’yi
--host 0.0.0.0ile başlatın. - Eklenti adresi olarak
http://192.168.1.20:8081/v1/chat/completionsgibi özel Mac LAN adresi kullanın. 8081bağlantı noktasını yalnız güvenilir yerel ağlara açın.
mlx_lm.server hizmetini doğrudan genel internete açmayın. Bakımcılar onu temel güvenlik kontrollü yerel sunucu olarak tanımlar. Yerel olmayan dağıtımda kimlik doğrulamalı HTTPS ters vekil kullanın.
Sorun Giderme
Model type qwen3_5 not supported
Eski başlatıcı kullanılıyor:
rehash
which -a mlx_lm.server
uv tool upgrade mlx-lm
Libre WebUI modeli gösteriyor ama istekler başarısız
Aynı model kimliğini doğrudan sınayın:
curl http://127.0.0.1:8081/v1/models
Sonra eklenti adresinin /v1/chat/completions içerdiğini doğrulayın.
Adres kullanımda
Libre WebUI’yi normal bağlantı noktasında tutup MLX’i taşıyın:
mlx_lm.server --model "owner/model" --port 8082
Eklenti adresini http://127.0.0.1:8082/v1/chat/completions olarak güncelleyin.
İlk istek yavaş
İlk yükleme ve istem ön doldurma, belirteç üretiminden pahalıdır. Activity Monitor bellek baskısını izleyin; macOS takasa başlarsa küçük model veya kısa sohbet seçin.