Instructions to use OpenVINO/phi-4-fp16-ov with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use OpenVINO/phi-4-fp16-ov with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="OpenVINO/phi-4-fp16-ov") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("OpenVINO/phi-4-fp16-ov") model = AutoModelForCausalLM.from_pretrained("OpenVINO/phi-4-fp16-ov") 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 OpenVINO/phi-4-fp16-ov with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "OpenVINO/phi-4-fp16-ov" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "OpenVINO/phi-4-fp16-ov", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/OpenVINO/phi-4-fp16-ov
- SGLang
How to use OpenVINO/phi-4-fp16-ov 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 "OpenVINO/phi-4-fp16-ov" \ --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": "OpenVINO/phi-4-fp16-ov", "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 "OpenVINO/phi-4-fp16-ov" \ --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": "OpenVINO/phi-4-fp16-ov", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use OpenVINO/phi-4-fp16-ov with Docker Model Runner:
docker model run hf.co/OpenVINO/phi-4-fp16-ov
| <net name="detokenizer" version="11"> | |
| <layers> | |
| <layer id="0" name="Parameter_212474" type="Parameter" version="opset1"> | |
| <data shape="?,?" element_type="i64" /> | |
| <output> | |
| <port id="0" precision="I64" names="Parameter_212474"> | |
| <dim>-1</dim> | |
| <dim>-1</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="1" name="Convert_212644" type="Convert" version="opset1"> | |
| <data destination_type="i32" /> | |
| <input> | |
| <port id="0" precision="I64"> | |
| <dim>-1</dim> | |
| <dim>-1</dim> | |
| </port> | |
| </input> | |
| <output> | |
| <port id="1" precision="I32"> | |
| <dim>-1</dim> | |
| <dim>-1</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="2" name="Constant_212476" type="Const" version="opset1"> | |
| <data element_type="i32" shape="100352" offset="0" size="401408" /> | |
| <output> | |
| <port id="0" precision="I32"> | |
| <dim>100352</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="3" name="Constant_212478" type="Const" version="opset1"> | |
| <data element_type="i32" shape="100352" offset="401408" size="401408" /> | |
| <output> | |
| <port id="0" precision="I32"> | |
| <dim>100352</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="4" name="Constant_212480" type="Const" version="opset1"> | |
| <data element_type="u8" shape="644978" offset="802816" size="644978" /> | |
| <output> | |
| <port id="0" precision="U8"> | |
| <dim>644978</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="5" name="Slice_212485" type="Const" version="opset1"> | |
| <data element_type="i32" shape="96" offset="1447794" size="384" /> | |
| <output> | |
| <port id="0" precision="I32"> | |
| <dim>96</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="6" name="VocabDecoder_212487" type="VocabDecoder" version="extension"> | |
| <data skip_tokens="" /> | |
| <input> | |
| <port id="0" precision="I32"> | |
| <dim>-1</dim> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="1" precision="I32"> | |
| <dim>100352</dim> | |
| </port> | |
| <port id="2" precision="I32"> | |
| <dim>100352</dim> | |
| </port> | |
| <port id="3" precision="U8"> | |
| <dim>644978</dim> | |
| </port> | |
| <port id="4" precision="I32"> | |
| <dim>96</dim> | |
| </port> | |
| </input> | |
| <output> | |
| <port id="5" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="6" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="7" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="8" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="9" precision="U8"> | |
| <dim>-1</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="7" name="FuzeRagged_212488" type="FuzeRagged" version="extension"> | |
| <input> | |
| <port id="0" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="1" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="2" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="3" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| </input> | |
| <output> | |
| <port id="4" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="5" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="8" name="UTF8Validate_212489" type="UTF8Validate" version="extension"> | |
| <data replace_mode="true" /> | |
| <input> | |
| <port id="0" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="1" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="2" precision="U8"> | |
| <dim>-1</dim> | |
| </port> | |
| </input> | |
| <output> | |
| <port id="3" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="4" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="5" precision="U8"> | |
| <dim>-1</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="9" name="StringTensorPack_212490" type="StringTensorPack" version="opset15"> | |
| <input> | |
| <port id="0" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="1" precision="I32"> | |
| <dim>-1</dim> | |
| </port> | |
| <port id="2" precision="U8"> | |
| <dim>-1</dim> | |
| </port> | |
| </input> | |
| <output> | |
| <port id="3" precision="STRING" names="Result_212491,string_output"> | |
| <dim>-1</dim> | |
| </port> | |
| </output> | |
| </layer> | |
| <layer id="10" name="Result_212491" type="Result" version="opset1" output_names="Result_212491,string_output"> | |
| <input> | |
| <port id="0" precision="STRING"> | |
| <dim>-1</dim> | |
| </port> | |
| </input> | |
| </layer> | |
| </layers> | |
| <edges> | |
| <edge from-layer="0" from-port="0" to-layer="1" to-port="0" /> | |
| <edge from-layer="1" from-port="1" to-layer="6" to-port="0" /> | |
| <edge from-layer="2" from-port="0" to-layer="6" to-port="1" /> | |
| <edge from-layer="3" from-port="0" to-layer="6" to-port="2" /> | |
| <edge from-layer="4" from-port="0" to-layer="6" to-port="3" /> | |
| <edge from-layer="5" from-port="0" to-layer="6" to-port="4" /> | |
| <edge from-layer="6" from-port="7" to-layer="7" to-port="2" /> | |
| <edge from-layer="6" from-port="9" to-layer="8" to-port="2" /> | |
| <edge from-layer="6" from-port="8" to-layer="7" to-port="3" /> | |
| <edge from-layer="6" from-port="6" to-layer="7" to-port="1" /> | |
| <edge from-layer="6" from-port="5" to-layer="7" to-port="0" /> | |
| <edge from-layer="7" from-port="4" to-layer="8" to-port="0" /> | |
| <edge from-layer="7" from-port="5" to-layer="8" to-port="1" /> | |
| <edge from-layer="8" from-port="3" to-layer="9" to-port="0" /> | |
| <edge from-layer="8" from-port="4" to-layer="9" to-port="1" /> | |
| <edge from-layer="8" from-port="5" to-layer="9" to-port="2" /> | |
| <edge from-layer="9" from-port="3" to-layer="10" to-port="0" /> | |
| </edges> | |
| <rt_info> | |
| <add_attention_mask value="True" /> | |
| <add_prefix_space /> | |
| <add_special_tokens value="True" /> | |
| <bos_token_id value="100257" /> | |
| <chat_template value="{% 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 %}" /> | |
| <clean_up_tokenization_spaces /> | |
| <detokenizer_input_type value="i64" /> | |
| <eos_token_id value="100265" /> | |
| <handle_special_tokens_with_re /> | |
| <max_length /> | |
| <number_of_inputs value="1" /> | |
| <openvino_tokenizers_version value="2025.1.0.0-523-710ddf14de8" /> | |
| <openvino_version value="2025.1.0-18503-6fec06580ab-releases/2025/1" /> | |
| <original_tokenizer_class value="<class 'transformers.models.gpt2.tokenization_gpt2_fast.GPT2TokenizerFast'>" /> | |
| <pad_token_id value="100349" /> | |
| <sentencepiece_version value="0.2.0" /> | |
| <skip_special_tokens value="True" /> | |
| <streaming_detokenizer value="False" /> | |
| <tiktoken_version value="0.9.0" /> | |
| <tokenizer_output_type value="i64" /> | |
| <tokenizers_version value="0.21.1" /> | |
| <transformers_version value="4.51.3" /> | |
| <use_max_padding value="False" /> | |
| <use_sentencepiece_backend value="False" /> | |
| <utf8_replace_mode value="replace" /> | |
| <with_detokenizer value="True" /> | |
| </rt_info> | |
| </net> | |