Apple Silicon पर MLX LM
Libre WebUI में M-श्रृंखला Mac पर MLX मॉडल सीधे चलाने के लिए MLX LM (Apple Silicon) प्लगइन है। यह MLX LM के OpenAI-संगत HTTP API से जुड़ता है।
MLX चेकपॉइंट को Ollama या GGUF में बदले बिना Metal अनुमान के लिए यह तरीका उपयोगी है।
वास्तुकला
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 जानबूझकर है। MLX LM सामान्यतः 8080 उपयोग करता है, जो npx libre-webui से टकराता है।
आवश्यकताएँ
- Apple Silicon Mac (M1 या नया)।
- Xcode कमांड-लाइन उपकरण वाला macOS।
- Python 3.10 या नया।
- मॉडल, KV कैश और macOS के लिए पर्याप्त संयुक्त स्मृति।
- स्थानीय Libre WebUI। दोनों बैकएंड Mac लूपबैक उपयोग कर सकते हैं, इसलिए स्रोत विकास सरल है।
Ternary Bonsai डिस्क पर लगभग 8.5 GB और चलने पर अधिक स्मृति लेता है। 16 GB Mac छोटे संदर्भ सँभाल सकता है, 24 GB अधिक गुंजाइश देता है। स्मृति कम हो तो छोटा MLX चेकपॉइंट और उसकी रिपॉज़िटरी ID प्लगइन प्रतिलिपि में जोड़ें।
MLX LM स्थापित करना
uv कमांड को Homebrew Python से अलग रखता है:
brew install uv
uv tool install --upgrade mlx-lm
rehash
mlx_lm.server --help
पहले से हो तो:
uv tool upgrade mlx-lm
rehash
Qwen 3.5 को mlx-lm 0.30.7+, रिपॉज़िटरी उदाहरण को 0.31.3+ चाहिए।
सर्वर शुरू करना
Ternary Bonsai:
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"
पहला रन Hugging Face से मॉडल डाउनलोड करता है; बाद के रन कैश उपयोग करते हैं। Ternary Bonsai अधिकतम 262144 स्थान बताता है। प्रॉम्प्ट और आउटपुट विंडो साझा करते हैं, इसलिए लंबा प्रॉम्प्ट जनरेशन घटाता है, भले सर्वर मॉडल सीमा पर हो।
छोटा मॉडल:
mlx_lm.server \
--model "mlx-community/Llama-3.2-3B-Instruct-4bit" \
--host 127.0.0.1 \
--port 8081 \
--max-tokens 2048
रिपॉज़िटरी लॉन्चर:
cd examples/mlx-lm-server
uv run server.py
मॉडल लोड किए बिना कमांड देखें:
uv run server.py --dry-run
OpenAI-संगत API जाँच
स्थिति और मॉडल खोज:
curl http://127.0.0.1:8081/health
curl http://127.0.0.1:8081/v1/models
गैर-स्ट्रीम अनुरोध:
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
}'
"stream": true पर Server-Sent Events भी समर्थित हैं।
Libre WebUI जोड़ना
रिपॉज़िटरी जड़ से:
npm install
npm run dev
http://localhost:5173 खोलें:
- Settings > Plugins खोलें।
- MLX LM (Apple Silicon) खोजें।
- एंडपॉइंट
http://127.0.0.1:8081/v1/chat/completionsजाँचें। - प्लगइन सक्रिय करें। स्थानीय MLX को कुंजी नहीं चाहिए।
- Chat में MLX मॉडल चुनें।
अंतर्निहित सूची:
prism-ml/Ternary-Bonsai-27B-mlx-2bit
चुना मॉडल MLX सर्वर पर उपलब्ध होना चाहिए। दूसरे चेकपॉइंट के लिए plugins/mlx-lm.json कॉपी/निर्यात करें, ID model_map में जोड़कर Settings > Plugins से आयात करें।
जनरेशन सेटिंग
Ternary Bonsai अनुशंसा:
| सेटिंग | मान |
|---|---|
| Temperature | 0.7 |
| Top P | 0.95 |
| Top K | 20 |
Libre WebUI तापमान और Top P भेजता है। Top K के लिए --top-k 20:
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 और उपकरण कॉल
OpenAI चैट फ़ॉर्मैट के कारण MLX Work में दिख सकता है। केवल मॉडल और टेम्पलेट उपकरण कॉल विश्वसनीय रूप से समर्थित करें तभी चुनें। Chat में टेक्स्ट चलना उपकरण समर्थन सिद्ध नहीं करता।
पार्सर और टेम्पलेट तेज़ बदलते हैं। खराब कॉल पर mlx-lm बदलें, अनुरोध सीधे जाँचें और उपकरण का स्पष्ट दस्तावेज़ वाला मॉडल उपयोग करें।
Docker नेटवर्क
स्थानीय Libre WebUI विकास अनुशंसित है। कंटेनर Mac के 127.0.0.1 तक नहीं पहुँचता।
Docker में:
- MLX LM को
--host 0.0.0.0से शुरू करें। http://192.168.1.20:8081/v1/chat/completionsजैसा निजी LAN URL उपयोग करें।8081केवल विश्वसनीय नेटवर्क को दें।
mlx_lm.server को सार्वजनिक इंटरनेट पर न खोलें। यह मूल सुरक्षा वाला स्थानीय सर्वर है। दूरस्थ परिनियोजन में प्रमाणीकृत HTTPS रिवर्स प्रॉक्सी रखें।
समस्या निवारण
Model type qwen3_5 not supported
पुराना लॉन्चर चल रहा है:
rehash
which -a mlx_lm.server
uv tool upgrade mlx-lm
मॉडल दिखता है, अनुरोध विफल
ID सीधे जाँचें:
curl http://127.0.0.1:8081/v1/models
एंडपॉइंट में /v1/chat/completions की पुष्टि करें।
पता उपयोग में है
MLX को दूसरे पोर्ट पर रखें:
mlx_lm.server --model "owner/model" --port 8082
URL http://127.0.0.1:8082/v1/chat/completions करें।
पहला अनुरोध धीमा
पहला लोड और प्रॉम्प्ट तैयारी टोकन जनरेशन से महँगे हैं। Activity Monitor स्मृति देखें; macOS स्वैप करे तो छोटा मॉडल या चैट चुनें।