Instructions to use mlx-community/Phi-4-mini-instruct-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use mlx-community/Phi-4-mini-instruct-4bit with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="mlx-community/Phi-4-mini-instruct-4bit", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("mlx-community/Phi-4-mini-instruct-4bit", trust_remote_code=True) model = AutoModelForCausalLM.from_pretrained("mlx-community/Phi-4-mini-instruct-4bit", trust_remote_code=True) messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - MLX
How to use mlx-community/Phi-4-mini-instruct-4bit with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("mlx-community/Phi-4-mini-instruct-4bit") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- LM Studio
- vLLM
How to use mlx-community/Phi-4-mini-instruct-4bit with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "mlx-community/Phi-4-mini-instruct-4bit" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mlx-community/Phi-4-mini-instruct-4bit", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/mlx-community/Phi-4-mini-instruct-4bit
- SGLang
How to use mlx-community/Phi-4-mini-instruct-4bit with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "mlx-community/Phi-4-mini-instruct-4bit" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mlx-community/Phi-4-mini-instruct-4bit", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "mlx-community/Phi-4-mini-instruct-4bit" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mlx-community/Phi-4-mini-instruct-4bit", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Pi new
How to use mlx-community/Phi-4-mini-instruct-4bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/Phi-4-mini-instruct-4bit"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "mlx-community/Phi-4-mini-instruct-4bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use mlx-community/Phi-4-mini-instruct-4bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "mlx-community/Phi-4-mini-instruct-4bit"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default mlx-community/Phi-4-mini-instruct-4bit
Run Hermes
hermes
- MLX LM
How to use mlx-community/Phi-4-mini-instruct-4bit with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "mlx-community/Phi-4-mini-instruct-4bit"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "mlx-community/Phi-4-mini-instruct-4bit" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "mlx-community/Phi-4-mini-instruct-4bit", "messages": [ {"role": "user", "content": "Hello"} ] }' - Docker Model Runner
How to use mlx-community/Phi-4-mini-instruct-4bit with Docker Model Runner:
docker model run hf.co/mlx-community/Phi-4-mini-instruct-4bit
Please rename
@pcuenq , could you please rename this to mlx-community/Phi-4-mini-instruct-4bit to follow the established naming convention?
@pcuenq , I created a repo for this model at https://huggingface.co/mlx-community/Phi-4-mini-instruct-4bit using the established naming convention, which the other quantizations of this model also use. I think it's important to stick to the convention. I recommend deleting this repo.
I'm curious to know if you used a tool that generated the name for this repo, so that we can change it if necessary to use the naming convention.
I used mlx-my-repo.
This repo already has some downloads, so deleting it could potentially break things. I'm happy to rename it, because renaming will automatically redirect the old name to the new one.
Yes, this must be the source of the divergently named repos that I've been seeing lately. How can we change MLX My Repo to use the established convention? This is going to create problems as long as it doesn't get changed.
I can take a look too. Do you have some pointers on the ways the community is using these naming conventions?
So if you rename yours to anything I'll adopt the mlx-community/Phi-4-mini-instruct-4bit name here, @depasquale .
I'm not sure what other people are doing, but I'm using the established convention in Local Chat to group models with different quantizations in a UI. I often type model names into the search field in Hugging Face with this in mind.
I deleted mine. You can go ahead and rename this one.
Renamed. FWIW, I think mentioning mlx in the model name (not just the org) may be helpful in some cases.
But happy to try to adapt to the way the community is using it.
I can see it being helpful if the model is outside of the MLX Community, but otherwise I think it's redundant.