Model reference · open weights

Puffin-Phi

LLMs teknium Text gen 1 build Its own licence terms 34 dl/mo

Puffin-Phi is an open-weight language model from teknium. Puffin-Phi-v2 (BF16) weighs 2.8 GB; the smallest configuration that runs it is RTX 3060 12 GB.

  • Puffin-Phi is a text-generation model created by teknium and published as teknium/Puffin-Phi-v2.
  • It is a fine-tune of the Phi model trained on the Puffin Dataset, which was modified to remove entries longer than 2000 tokens to match the model's 2048-token context length.
  • The model supports English and uses the ShareGPT/Vicuna prompt format.

Summary of the teknium/Puffin-Phi-v2 model card, 2026-10-01

What it is

Released byteknium
Released2023-09-12
VRAM2.8 GB for the weights

What it runs on

Memory and cards for Puffin-Phi-v2 (BF16)

2.8 GBweights, file size
197 MBcache per 1K tokens
582 MBruntime overhead, at least
2,048 tokenscontext max
CardRequests at onceContext maxMemory
2K each
RTX 3060 12 GB20all 2K11.6 GB
RTX 4060 Ti 16 GB29all 2K15.4 GB
RTX 3090 24 GB49all 2K23.4 GB
RTX 4090 24 GB49all 2K23.4 GB
RTX 5090 32 GB68all 2K31.0 GB
L40S 48 GB100all 2K44.0 GB
A100 80 GB185all 2K78.2 GB
H100 80 GB178all 2K78.1 GB
RTX PRO 6000 Blackwell 96 GB217all 2K93.8 GB
DGX Spark (GB10) 128 GB unified250all 2K107 GB
H200 141 GB326all 2K138 GB
B200 180 GB420all 2K176 GB
Memory needed at each load
Requests at once2K tokens each
13.8 GB
55.4 GB
86.6 GB
169.9 GB
3216.3 GB
6429.2 GB

One card, with vLLM's small-card settings.

From the model card

What teknium says about Puffin-Phi

Read the model card

This is my first fine-tune of Puffin that seems to be working fairly reliably!

Model Details

Model Sources

This model was trained on the Puffin Dataset, made by LDJ, using a slightly modified version of the dataset that removed >2000 token entries, so there would be no early cutoffs during training phi, since it's context is 2k.

Uses

Let me know!

How to Get Started with the Model

Phi does not support device_map "auto", and does not seem to want to inference in fp16, so use bf16.

Here is working code to inference, though it can be improved:

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

sysprompt = "The assistant gives helpful, detailed, and polite answers to the user's questions.\n"

model = AutoModelForCausalLM.from_pretrained("teknium/Puffin-Phi-v2", trust_remote_code=True, torch_dtype=torch.bfloat16).to("cuda")
tokenizer = AutoTokenizer.from_pretrained("teknium/Puffin-Phi-v2", trust_remote_code=True, torch_dtype=torch.bfloat16)
inputs = tokenizer(f"{sysprompt}USER: Write a negative review for the website Twitter.\nASSISTANT:", return_tensors="pt", return_attention_mask=False)
outputs = model.generate(**inputs, max_length=128, do_sample=True, temperature=0.2, top_p=0.9, use_cache=True, repetition_penalty=1.2, eos_token_id=tokenizer.eos_token_id)
text = tokenizer.batch_decode(outputs)[0]
print(text)

The prompt format is ShareGPT/Vicuna, so it uses the sysprompt (defualt in sysprompt variable) then is prompted like so:

USER:
ASSISTANT:

Training Details

Training Procedure

Trained with Axolotl. View the wandb runs for all my puffin runs (this is puffin-phi-4 on wandb): https://wandb.ai/teknium1/puffin-phi/runs/puffin-phi-4

Evaluation

TODO

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms