Ugrás a fő tartalomra

MLX LM Apple Siliconon

A Libre WebUI tartalmazza az MLX LM (Apple Silicon) bővítményt MLX-modellek közvetlen futtatásához M-sorozatú Mac gépeken. Az MLX LM OpenAI-kompatibilis HTTP API-jához kapcsolódik. Az útvonal natív Metal-inferenciát biztosít anélkül, hogy a checkpointot Ollama- vagy GGUF-formátumba kellene alakítani.

Architektúra

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

A 8081 port szándékos; a szokásos 8080 ütközik a csomagolt npx libre-webui folyamattal.

Követelmények

  • Apple Silicon Mac (M1 vagy újabb).
  • macOS az Xcode parancssori eszközeivel.
  • Python 3.10+.
  • Elegendő egyesített memória a modellhez, a KV-gyorsítótárhoz és a macOS-hez.
  • Natív Libre WebUI; a forrásból történő fejlesztés egyszerűbb, mert mindkét backend loopbacket használ.

A Ternary Bonsai körülbelül 8,5 GB lemezterületet foglal, futás közben pedig többet igényel. 16 GB kisebb kontextusokhoz elegendő, 24 GB+ tartalékot ad. Memóriahiánynál használjon kisebb MLX-checkpointot, és adja hozzá a repository ID-jét a bővítmény egy másolatához.

Az MLX LM telepítése

brew install uv
uv tool install --upgrade mlx-lm
rehash
mlx_lm.server --help

Ha már telepítve van:

uv tool upgrade mlx-lm
rehash

A Qwen 3.5 az mlx-lm 0.30.7+ verzióját, a repository példája pedig 0.31.3+ verziót igényel.

A szerver elindítása

Ternary Bonsaihoz:

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"

Az első futás letölti a modellt a Hugging Face-ről, később a gyorsítótárat használja. A Ternary Bonsai 262144 pozíciót deklarál. A prompt és a kimenet közösen használja a kontextust, ezért egy nagy prompt csökkenti a generált tokenek számát a modell maximuma ellenére.

Kisebb kezdőmodell:

mlx_lm.server \
--model "mlx-community/Llama-3.2-3B-Instruct-4bit" \
--host 127.0.0.1 \
--port 8081 \
--max-tokens 2048

Újrahasznosítható indító:

cd examples/mlx-lm-server
uv run server.py

A parancs megtekintése betöltés nélkül:

uv run server.py --dry-run

Az OpenAI-kompatibilis API ellenőrzése

curl http://127.0.0.1:8081/health
curl http://127.0.0.1:8081/v1/models

Nem streamelt kérés:

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
}'

A szerver támogatja a Server-Sent Events formátumot, ha "stream": true.

A Libre WebUI csatlakoztatása

npm install
npm run dev

Nyissa meg a http://localhost:5173 címet:

  1. Settings > Plugins.
  2. Keresse meg az MLX LM (Apple Silicon) elemet.
  3. Ellenőrizze a http://127.0.0.1:8081/v1/chat/completions címet.
  4. Engedélyezze; a helyi MLX nem igényel API-kulcsot.
  5. Válassza ki az MLX-modellt a Chatben.

A beépített lista tartalmazza a prism-ml/Ternary-Bonsai-27B-mlx-2bit modellt. A választásnak egyeznie kell a szerverrel. Másik checkpointhoz másolja vagy exportálja a plugins/mlx-lm.json fájlt, adja hozzá az ID-t a model_map mezőhöz, majd importálja a Settings > Plugins alatt.

Generálási beállítások

BeállításÉrték
Temperature0.7
Top P0.95
Top K20

A Libre WebUI elküldi a temperature és Top P értékét. Top K-hoz induljon a --top-k 20 beállítással:

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 és eszközhívás

A bővítmény az OpenAI-formátum miatt megjelenik a Workben. Csak akkor használja, ha a modell és a Chat-sablon megbízhatóan támogatja az eszközhívásokat; az egyszerű szöveggenerálás ezt nem bizonyítja. Hibásan formázott hívásoknál frissítse az mlx-lm csomagot, tesztelje közvetlenül, és válasszon dokumentált eszköztámogatással rendelkező modellt.

Docker-hálózat

A natív fejlesztés ajánlott; egy konténer nem éri el a Mac 127.0.0.1 címét. Dockerrel:

  1. Indítsa az MLX LM-et --host 0.0.0.0 beállítással.
  2. Használjon privát LAN-címet, például http://192.168.1.20:8081/v1/chat/completions.
  3. A 8081 portot csak megbízható hálózatokon engedélyezze.

Ne tegye nyilvánosan elérhetővé az mlx_lm.server szolgáltatást. Ez alapvető ellenőrzésekkel rendelkező helyi szerver; a helyi hálózaton kívül használjon hitelesített HTTPS reverse proxyt.

Hibaelhárítás

Model type qwen3_5 not supported

rehash
which -a mlx_lm.server
uv tool upgrade mlx-lm

A modell látható, de a kérések sikertelenek

curl http://127.0.0.1:8081/v1/models

Ellenőrizze a /v1/chat/completions útvonalat a végpontban.

A cím már használatban van

mlx_lm.server --model "owner/model" --port 8082

Módosítsa a végpontot erre: http://127.0.0.1:8082/v1/chat/completions.

Az első kérés lassú. A kezdeti betöltés és a prompt előfeldolgozása költségesebb a tokengenerálásnál. Figyelje a memóriaterhelést, és válasszon kisebb modellt vagy rövidebb beszélgetést, ha a macOS swapet használ.

Kapcsolódó dokumentáció