Instructions to use microsoft/phi-1_5 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use microsoft/phi-1_5 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="microsoft/phi-1_5")# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-1_5") model = AutoModelForCausalLM.from_pretrained("microsoft/phi-1_5") - Inference
- Notebooks
- Google Colab
- Kaggle
- Local Apps
- vLLM
How to use microsoft/phi-1_5 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "microsoft/phi-1_5" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "microsoft/phi-1_5", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/microsoft/phi-1_5
- SGLang
How to use microsoft/phi-1_5 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-1_5" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "microsoft/phi-1_5", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'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-1_5" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "microsoft/phi-1_5", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use microsoft/phi-1_5 with Docker Model Runner:
docker model run hf.co/microsoft/phi-1_5
Evaluating phi-1.5 on GSM8K
As is reported in the technical report, phi-1.5 can obtain 40.2% pass rate for GSM8K via coding. Did anyone manage to replicate the result? It would be great if you could share your evaluation script somewhere.
I tried to run gsm8k_yaml task of EleutherAI/lm-evaluation-harness and got acc=0.3055.
The evaluation didn't work out of the box and my modifications involve:
- enable the
get_answerfilter in yaml file - use
gold_aliasinstead ofdoc_to_target
Hello @hacky !
I am not able to share the full GSM8k evaluation due to some internal imports, but this snippet might help you in using code for the evaluation:
def _timeout_handler(signum: int, frame: Any) -> None:
raise Exception()
def _validate_completion(completion: str, label: str) -> bool:
completion_lines = completion.split("TA:")[1].strip().split("\n")
completion_code = "\n".join(completion_lines[1:] if ":" in completion_lines[0] else completion_lines)
try:
signal.signal(signal.SIGALRM, _timeout_handler)
signal.alarm(2)
try:
stdout = io.StringIO()
with contextlib.redirect_stdout(stdout):
exec(
"import math\nfrom math import *\nimport numpy as np\nimport hashlib\n"
+ completion_code
+ "\n\n"
+ "if type(result) == str:\n\tresult = result.replace(',', '')\n"
+ f"assert(int(result) == {label})",
{},
)
signal.alarm(0)
prediction = 1
except Exception:
prediction = 0
finally:
signal.alarm(0)
except Exception:
prediction = 0
return prediction
The overall idea is to execute the code that was generated by the model and assert whether its outputs are equal to the ground-truth label. We also added some public imports to prevent many answers from failing.
