Text Generation
Transformers
Safetensors
English
phi3
phi
nlp
math
code
chat
conversational
text-generation-inference
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
Suggested tokenizer changes by Unsloth.ai (#21)
Browse files- fix(root): Adds proposed changes by unsloth.ai. (b15fb484864f7247bfec0860d31e105173e809c7)
- chore(root): Changes pad_token to <|dummy_85|>. (492fc706206120688c0cc9d538e6be3ad6558f7f)
- config.json +2 -2
- generation_config.json +2 -4
- special_tokens_map.json +2 -2
- tokenizer_config.json +3 -3
config.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
| 8 |
"auto_map": {},
|
| 9 |
"bos_token_id": 100257,
|
| 10 |
"embd_pdrop": 0.0,
|
| 11 |
-
"eos_token_id":
|
| 12 |
"hidden_act": "silu",
|
| 13 |
"hidden_size": 5120,
|
| 14 |
"initializer_range": 0.02,
|
|
@@ -19,7 +19,7 @@
|
|
| 19 |
"num_hidden_layers": 40,
|
| 20 |
"num_key_value_heads": 10,
|
| 21 |
"original_max_position_embeddings": 16384,
|
| 22 |
-
"pad_token_id":
|
| 23 |
"resid_pdrop": 0.0,
|
| 24 |
"rms_norm_eps": 1e-05,
|
| 25 |
"rope_scaling": null,
|
|
|
|
| 8 |
"auto_map": {},
|
| 9 |
"bos_token_id": 100257,
|
| 10 |
"embd_pdrop": 0.0,
|
| 11 |
+
"eos_token_id": 100265,
|
| 12 |
"hidden_act": "silu",
|
| 13 |
"hidden_size": 5120,
|
| 14 |
"initializer_range": 0.02,
|
|
|
|
| 19 |
"num_hidden_layers": 40,
|
| 20 |
"num_key_value_heads": 10,
|
| 21 |
"original_max_position_embeddings": 16384,
|
| 22 |
+
"pad_token_id": 100349,
|
| 23 |
"resid_pdrop": 0.0,
|
| 24 |
"rms_norm_eps": 1e-05,
|
| 25 |
"rope_scaling": null,
|
generation_config.json
CHANGED
|
@@ -1,9 +1,7 @@
|
|
| 1 |
{
|
| 2 |
"_from_model_config": true,
|
| 3 |
"bos_token_id": 100257,
|
| 4 |
-
"eos_token_id":
|
| 5 |
-
|
| 6 |
-
100265
|
| 7 |
-
],
|
| 8 |
"transformers_version": "4.47.0"
|
| 9 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"_from_model_config": true,
|
| 3 |
"bos_token_id": 100257,
|
| 4 |
+
"eos_token_id": 100265,
|
| 5 |
+
"pad_token_id": 100349,
|
|
|
|
|
|
|
| 6 |
"transformers_version": "4.47.0"
|
| 7 |
}
|
special_tokens_map.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
{
|
| 2 |
"bos_token": "<|endoftext|>",
|
| 3 |
-
"eos_token": "<|
|
| 4 |
-
"pad_token": "<|
|
| 5 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"bos_token": "<|endoftext|>",
|
| 3 |
+
"eos_token": "<|im_end|>",
|
| 4 |
+
"pad_token": "<|dummy_85|>"
|
| 5 |
}
|
tokenizer_config.json
CHANGED
|
@@ -771,10 +771,10 @@
|
|
| 771 |
}
|
| 772 |
},
|
| 773 |
"bos_token": "<|endoftext|>",
|
| 774 |
-
"chat_template": "{% for message in messages %}{% if (message['role'] == 'system') %}{{'<|im_start|>system<|im_sep|>' + message['content'] + '<|im_end|>'}}{% elif (message['role'] == 'user') %}{{'<|im_start|>user<|im_sep|>' + message['content'] + '<|im_end|>
|
| 775 |
"clean_up_tokenization_spaces": false,
|
| 776 |
-
"eos_token": "<|
|
| 777 |
"model_max_length": 16384,
|
| 778 |
-
"pad_token": "<|
|
| 779 |
"tokenizer_class": "GPT2Tokenizer"
|
| 780 |
}
|
|
|
|
| 771 |
}
|
| 772 |
},
|
| 773 |
"bos_token": "<|endoftext|>",
|
| 774 |
+
"chat_template": "{% for message in messages %}{% if (message['role'] == 'system') %}{{'<|im_start|>system<|im_sep|>' + message['content'] + '<|im_end|>'}}{% elif (message['role'] == 'user') %}{{'<|im_start|>user<|im_sep|>' + message['content'] + '<|im_end|>'}}{% elif (message['role'] == 'assistant') %}{{'<|im_start|>assistant<|im_sep|>' + message['content'] + '<|im_end|>'}}{% endif %}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant<|im_sep|>' }}{% endif %}",
|
| 775 |
"clean_up_tokenization_spaces": false,
|
| 776 |
+
"eos_token": "<|im_end|>",
|
| 777 |
"model_max_length": 16384,
|
| 778 |
+
"pad_token": "<|dummy_85|>",
|
| 779 |
"tokenizer_class": "GPT2Tokenizer"
|
| 780 |
}
|