pip install "torch==2.13.0" "transformers==5.14.1"
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo = "philipjohnbasile/wisp-coder-110m"
revision = "186479fd8c1eb767e0d886014fb78b3426dc509a"
tokenizer = AutoTokenizer.from_pretrained(repo, revision=revision)
model = AutoModelForCausalLM.from_pretrained(
repo, revision=revision, dtype=torch.float32, trust_remote_code=False,
).eval()
inputs = tokenizer("def is_even(n):\n return ", return_tensors="pt", add_special_tokens=False)
with torch.inference_mode():
output = model.generate(**inputs, max_new_tokens=32, do_sample=False,
pad_token_id=tokenizer.pad_token_id)
print(tokenizer.decode(output[0], skip_special_tokens=True))
from transformers import AutoModelForCausalLM, AutoTokenizer
model = AutoModelForCausalLM.from_pretrained("philipjohnbasile/wisp-coder-110m")
tok = AutoTokenizer.from_pretrained("philipjohnbasile/wisp-coder-110m")
print(tok.decode(model.generate(**tok("def quicksort(arr):", return_tensors="pt"),
max_new_tokens=64)[0]))
prompt = f"<|fim_prefix|>{prefix}<|fim_suffix|>{suffix}<|fim_middle|>"
import os
import sys
from huggingface_hub import snapshot_download
from tokenizers import Tokenizer
package = snapshot_download(
"philipjohnbasile/wisp-coder-110m",
local_dir=os.path.abspath("wisp-coder-110m-package"),
)
sys.path.insert(0, package)
from wisp_mtp_reference import WispMTPReferenceRuntime
tok = Tokenizer.from_file(os.path.join(package, "tokenizer.json"))
ids = tok.encode(prompt, add_special_tokens=False).ids
runtime = WispMTPReferenceRuntime.load(package)
result = runtime.verify_greedy_parity(ids, max_new_tokens=16, depth=2)
print(result["mtp_route"])
@software{wisp_coder,
title = {Wisp: fill-in-the-middle and native multi-token prediction in a small code model},
year = {2026},
url = {https://huggingface.co/philipjohnbasile/wisp-coder-110m}
}