Instructions to use microsoft/phi-4 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use microsoft/phi-4 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="microsoft/phi-4") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-4") model = AutoModelForCausalLM.from_pretrained("microsoft/phi-4") 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]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use microsoft/phi-4 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "microsoft/phi-4" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "microsoft/phi-4", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/microsoft/phi-4
- SGLang
How to use microsoft/phi-4 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 "microsoft/phi-4" \ --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": "microsoft/phi-4", "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 "microsoft/phi-4" \ --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": "microsoft/phi-4", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use microsoft/phi-4 with Docker Model Runner:
docker model run hf.co/microsoft/phi-4
Phi-4 Training Cutoff Date (Responds October 2023)
Overview
On the model card we see here,
Dates October 2024 β November 2024
Also, Microsoft's official documentation at https://azure.microsoft.com/en-us/products/phi states in their FAQ,
However, when prompting the model responds October 2023.
Example 1
user: What is the cutoff date for Phi training data?phi-4: As a large language model, my training data includes information up until October 2023. This means I can provide information and insights based on developments and knowledge available up to that point. It's important to stay updated with the latest sources for the most current developments beyond this date.
Example 2
user: When is your training cutoff date?phi-4: As of my last update, my training data includes information up to October 2023. This means I can provide information and insights based on knowledge available up to that date. If you have questions about developments or events beyond this time, I recommend consulting more current resources. How else may I assist you today?
Discussion
- Is this intended behavior?
- Is this a hallucination?
- Which prompts illicit a correct response?
- If it's a hallucination or otherwise incorrect, can this be fixed?
Hello @kittikitti !
According to the model card, "Dates" are referred to the period when the model has been trained, whereas the "Status" indicates the model's knowledge cutoff. It is expected that for publicly available data the model answers with a date earlier than June 2024.
Hello @kittikitti !
According to the model card, "Dates" are referred to the period when the model has been trained, whereas the "Status" indicates the model's knowledge cutoff. It is expected that for publicly available data the model answers with a date earlier than June 2024.
Thank you, this is a good explanation.

