Instructions to use Jonnester/Purrence-3M with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Jonnester/Purrence-3M with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Jonnester/Purrence-3M", trust_remote_code=True)# pip install -U transformers accelerate # Load model directly from transformers import AutoModelForCausalLM model = AutoModelForCausalLM.from_pretrained("Jonnester/Purrence-3M", trust_remote_code=True, device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Jonnester/Purrence-3M with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Jonnester/Purrence-3M" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Jonnester/Purrence-3M", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/Jonnester/Purrence-3M
- SGLang
How to use Jonnester/Purrence-3M 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 "Jonnester/Purrence-3M" \ --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": "Jonnester/Purrence-3M", "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 "Jonnester/Purrence-3M" \ --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": "Jonnester/Purrence-3M", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use Jonnester/Purrence-3M with Docker Model Runner:
docker model run hf.co/Jonnester/Purrence-3M
File size: 1,677 Bytes
921bf58 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | """Load the inference-only FP32 Purrence package without training state."""
import argparse
import json
from pathlib import Path
from dataclasses import fields
import torch
from safetensors.torch import load_file
from purrence_runtime.config import ModelConfig
from purrence_runtime.model import RecurrentLM
from purrence_runtime.tokenizer import Sub3MTokenizer
from purrence_runtime.scorer import Scorer
def load_model(directory=None, device="cpu"):
root = Path(directory) if directory else Path(__file__).resolve().parent
values = json.loads((root / "config.json").read_text())
config = ModelConfig(**{f.name: values[f.name] for f in fields(ModelConfig)})
model = RecurrentLM(config)
state = load_file(str(root / "model.safetensors"), device="cpu")
model.load_state_dict(state, strict=True)
if any(not torch.isfinite(p).all() for p in model.parameters()):
raise ValueError("Nonfinite model weights")
if model.parameter_count() != 2987712:
raise ValueError("Inference parameter count differs from the qualified model")
model = model.to(device).float().eval()
tokenizer = Sub3MTokenizer(root / "tokenizer")
return model, tokenizer
if __name__ == "__main__":
p = argparse.ArgumentParser()
p.add_argument("--directory", type=Path)
p.add_argument("--device", default="cpu")
p.add_argument("--prompt", default="Once upon a time")
p.add_argument("--max-new-tokens", type=int, default=32)
args = p.parse_args()
torch.set_num_threads(2)
model, tokenizer = load_model(args.directory, args.device)
print(Scorer(model, tokenizer).generate(args.prompt, max_new_tokens=args.max_new_tokens))
|