CoolFace
Modelpublic

MaziyarPanahi/calme-2.3-phi3-4b

sourceHugging Facemitupdated 2y agoView on Hugging Face
9likes98downloads
Model Card

<img src="./phi-3-instruct.webp" alt="Phi-3 Logo" width="500" style="margin-left:'auto' margin-right:'auto' display:'block'"/>

MaziyarPanahi/calme-2.3-phi3-4b

This model is a fine-tune (DPO) of microsoft/Phi-3-mini-4k-instruct model.

โšก Quantized GGUF

All GGUF models are available here: MaziyarPanahi/calme-2.3-phi3-4b-GGUF

๐Ÿ† Open LLM Leaderboard Evaluation Results

Detailed results can be found here

Leaderboard 2

MetricValue
Avg.23.38
IFEval (0-Shot)49.26
BBH (3-Shot)37.66
MATH Lvl 5 (4-Shot)2.95
GPQA (0-shot)9.06
MuSR (0-shot)7.75
MMLU-PRO (5-shot)31.42

Leaderboard 1

MetricValue
Avg.70.26
AI2 Reasoning Challenge (25-Shot)63.48
HellaSwag (10-Shot)80.86
MMLU (5-Shot)69.24
TruthfulQA (0-shot)60.66
Winogrande (5-shot)72.77
GSM8k (5-shot)74.53

MaziyarPanahi/calme-2.3-phi3-4b is the best-performing Phi-3-mini-4k model on the Open LLM Leaderboard. (03/06/2024).

image/png

Prompt Template

This model uses ChatML prompt template:

<|im_start|>system
{System}
<|im_end|>
<|im_start|>user
{User}
<|im_end|>
<|im_start|>assistant
{Assistant}

How to use

You can use this model by using MaziyarPanahi/calme-2.3-phi3-4b as the model name in Hugging Face's transformers library.

python
from transformers import AutoModelForCausalLM, AutoTokenizer, TextStreamer
from transformers import pipeline
import torch

model_id = "MaziyarPanahi/calme-2.3-phi3-4b"

model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=True,
    # attn_implementation="flash_attention_2"
)

tokenizer = AutoTokenizer.from_pretrained(
    model_id,
    trust_remote_code=True
)

streamer = TextStreamer(tokenizer)

messages = [
    {"role": "system", "content": "You are a pirate chatbot who always responds in pirate speak!"},
    {"role": "user", "content": "Who are you?"},
]

# this should work perfectly for the model to stop generating
terminators = [
    tokenizer.eos_token_id, # this should be <|im_end|>
    tokenizer.convert_tokens_to_ids("<|assistant|>"), # sometimes model stops generating at <|assistant|>
    tokenizer.convert_tokens_to_ids("<|end|>") # sometimes model stops generating at <|end|>
]

pipe = pipeline(
    "text-generation",
    model=model,
    tokenizer=tokenizer,
)

generation_args = {
    "max_new_tokens": 500,
    "return_full_text": False,
    "temperature": 0.0,
    "do_sample": False,
    "streamer": streamer,
    "eos_token_id": terminators,
}

output = pipe(messages, **generation_args)
print(output[0]['generated_text'])