Puma 1.0

Puma 1.0 is a 1.42-billion-parameter (1,418,911,232 parameters) open-weight autoregressive language and code generation model created by Merkium and released under the Apache 2.0 license. Built on a 28-layer LlamaForCausalLM decoder (hidden_size = 1536, intermediate_size = 9216, 6:1 Grouped-Query Attention, 32K RoPE) paired with a custom 49,152-token byte-level BPE vocabulary, Puma 1.0 is engineered for responsive local execution on desktop CPUs, laptops, and mobile devices (~1.44 GB in Q8_0 GGUF).


Architecture & Specifications

Parameter Value
Architecture Pre-norm Transformer decoder (LlamaForCausalLM, arch: llama)
Total Parameters 1,418,911,232 (1.42B, tied input/output embeddings)
Layers (num_hidden_layers) 28
Hidden Dimension (hidden_size) 1536
FFN Dimension (intermediate_size) 9216 (6.0x SwiGLU MLP, SiLU gate)
Attention Heads 12 Query heads / 2 Key-Value heads (GQA 6:1, head_dim = 128)
Positional Encoding Rotary Position Embeddings (RoPE, theta = 1,000,000.0)
Normalization RMSNorm (eps = 1e-6)
Context Window 32,768 tokens (8,192 default in Ollama Modelfile for low RAM usage)
Vocabulary (vocab_size) 49,152 custom byte-level BPE (`<
Weights Provided model.safetensors (FP16, 2.71 GB) and puma-1.0-q8_0.gguf (Q8_0, 1.44 GB)
License Apache-2.0

Custom 49,152-Token Puma BPE Vocabulary

Puma 1.0 uses a compact 49,152-token (3 * 2^14) byte-level BPE vocabulary focused on English prose, mathematics, and source code:

  • IDs 0..255: Complete 256-byte UTF-8 fallback table (0 unknown tokens on any input).
  • IDs 256..49143: 48,888 ancestor-closed BPE merges prioritized for English, symbolic math, and programming syntax.
  • IDs 49144..49151: Dedicated control tokens (<|pad|>, <|bos|>, <|eos|>, <|system|>, <|user|>, <|assistant|>, <|fim_prefix|>, <|fim_middle|>), shrinking the embedding matrix to 75.5M parameters (49,152 x 1,536) for faster CPU token selection and lower memory bandwidth.

Capabilities & Intended Scope

What Puma 1.0 Does Well

  1. Python & General Software Engineering: Writes clean, idiomatic functions, data structures, CLI scripts, unit tests, SQL queries, regular expressions, and debugging explanations (90% Python AST validity and 70% strict unit-test pass rate on held-out algorithmic benchmarks including merge_intervals, two_sum, length_of_longest_substring, valid_brackets, binary_search, flatten, and top_k_frequent).
  2. Everyday Assistant & Concise Chat: Handles casual greetings, short follow-ups, brainstorming, summarization, and structured formatting (JSON, YAML, Markdown tables) across multi-turn conversations without losing turn boundaries.
  3. STEM & Introductory Reasoning: Explains algorithms, computer systems, physics, and step-by-step arithmetic clearly at low latency.
  4. Offline & Privacy-Preserving Edge Execution: Runs 100% locally in ~1.6 GB RAM with zero network calls.

Limitations

  • Compact 1.42B Capacity: Puma 1.0 does not store encyclopedic world trivia or obscure historical citations reliably; pair it with local document retrieval (RAG) when exact factual lookup is required.
  • English-Centric Vocabulary: Non-Latin scripts fall back to UTF-8 byte tokens (0..255), increasing token count on non-English text.
  • Single-Pass Reasoning Depth: Complex multi-constraint math or large-codebase refactors benefit from explicit step-by-step prompts or external test execution.

Running Puma 1.0 on CPU (Desktop, Laptop, or Raspberry Pi 5)

Option 1: Ollama (Recommended โ€” One Command)

ollama run Merkium/puma-1.0

Or run directly from Hugging Face via Ollama:

ollama run hf.co/Ueuee82683/Puma-1.0

Expected throughput on modern CPUs (Q8_0, 1.44 GB):

  • Apple Silicon (M1 / M2 / M3 / M4): 55 - 95 tokens/s
  • Modern x86_64 Laptop/Desktop CPU (AVX2, 8 threads): 20 - 40 tokens/s
  • Raspberry Pi 5 (8 GB RAM, ARM64): 7 - 12 tokens/s

Option 2: llama.cpp CLI / Server (Pure C++, Zero Python Dependencies)

Download puma-1.0-q8_0.gguf and run directly on CPU:

huggingface-cli download Ueuee82683/Puma-1.0 puma-1.0-q8_0.gguf --local-dir .

# Interactive multi-turn chat on CPU
./llama-cli -m puma-1.0-q8_0.gguf -cnv -c 8192 -t 8 --temp 0.4 \
  -p "You are Puma 1.0, an open-weight 1.42B-parameter AI assistant and coding model created by Merkium and released under Apache 2.0."

# Local OpenAI-compatible HTTP API server on port 8080
./llama-server -m puma-1.0-q8_0.gguf -c 8192 -t 8 --port 8080

Running Puma 1.0 on a Phone (iOS & Android)

Because puma-1.0-q8_0.gguf is a standard arch: llama GGUF (1.44 GB), it runs offline on any modern smartphone with 4 GB+ RAM (iPhone 13 or newer, Pixel 7/8/9, Galaxy S22/S23/S24, or Snapdragon 8-series devices):

  1. PocketPal AI (iOS & Android โ€” Free, Open Source):
    • Install PocketPal AI from the iOS App Store or Google Play Store.
    • Open Models -> + -> Add from Hugging Face, search Ueuee82683/Puma-1.0, and download puma-1.0-q8_0.gguf (1.44 GB).
    • Open model settings, set stop strings to <|eos|> and <|user|>, and tap Load. Expect 12 - 28 tokens/s completely offline (including in Airplane Mode).
  2. Layla Lite / ChatterUI / Maid (Android & iOS):
    • Download puma-1.0-q8_0.gguf directly from Ueuee82683/Puma-1.0 onto device storage and load it as a local GGUF model with context size 4096 for minimal battery drain.
  3. Android Termux (ollama or llama.cpp):
    pkg update && pkg install ollama
    ollama serve &
    ollama run Merkium/puma-1.0
    

Using Puma 1.0 as a Local Assistant (Python API & Transformers)

Local Assistant via OpenAI-Compatible SDK (Ollama)

Once ollama run Merkium/puma-1.0 has pulled the model, query it from any Python script, IDE plugin (Continue.dev, Zed, Cursor local), or CLI tool at http://localhost:11434/v1:

from openai import OpenAI

client = OpenAI(base_url="http://localhost:11434/v1", api_key="ollama")

messages = [
    {"role": "system", "content": "You are Puma 1.0, a concise local engineering assistant."},
    {"role": "user", "content": "Write a Python function to merge overlapping intervals and include 2 assertions."},
]

response = client.chat.completions.create(
    model="Merkium/puma-1.0",
    messages=messages,
    temperature=0.3,
)
print(response.choices[0].message.content)

Direct Hugging Face transformers Usage (FP16 / CPU)

import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "Ueuee82683/Puma-1.0"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.float16 if torch.cuda.is_available() else torch.float32,
    device_map="auto",
)

messages = [
    {"role": "user", "content": "Explain binary search time complexity and show a clean Python implementation."}
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to(model.device)

stop_ids = [
    tokenizer.eos_token_id,
    tokenizer.convert_tokens_to_ids("<|user|>"),
    tokenizer.convert_tokens_to_ids("<|system|>"),
]

with torch.no_grad():
    out = model.generate(
        **inputs,
        max_new_tokens=512,
        temperature=0.4,
        top_p=0.9,
        do_sample=True,
        eos_token_id=stop_ids,
        pad_token_id=tokenizer.pad_token_id,
    )

print(tokenizer.decode(out[0, inputs["input_ids"].shape[1]:], skip_special_tokens=True))

Prompt Format

Puma 1.0 uses explicit turn delimiters from its custom control vocabulary:

<|bos|><|system|>
You are Puma 1.0, an open-weight 1.42B-parameter AI assistant and coding model created by Merkium and released under Apache 2.0.<|eos|>
<|user|>
{user_message}<|eos|>
<|assistant|>
{assistant_response}<|eos|>

License

Released under the Apache License 2.0.

Downloads last month
104
Safetensors
Model size
1B params
Tensor type
F16
ยท
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support