Ulam-1

Ulam-1 is a 27.357-billion-parameter mathematical reasoning model developed by Ulam AI. It is distributed as a standalone merged BF16 Transformers model obtained by cumulative post-training of a pinned Qwen3.8-27B base. No separate Qwen checkpoint or adapter is required. The released model is Math-RL v3 seed 303 checkpoint 80.

Built with Qwen. The upstream model is Qwen/Qwen3.8-27B. Ulam post-training modifies low-rank modules in the text decoder while preserving the upstream tokenizer, processor, chat template, and vision branch. Attribution and modifications are recorded in NOTICE and provenance.json.

The model is intended for exploratory mathematical problem solving, proof debugging, and research assistance. It is not a theorem-certification system: strong claims, counterexamples, imported theorems, and literature statements require independent expert review.

Technical report

Model details

Field Value
Developer Ulam AI
Repository ulamai/ulam-1
Release v1.0.0
Base model Qwen/Qwen3.8-27B
Architecture Qwen3_5ForConditionalGeneration
Parameters 27,356,728,560
Weight dtype BF16
Native position setting 262,144 tokens
Validated serving context 131,072 tokens
Selected checkpoint Math-RL v3 seed 303 checkpoint 80
Distribution format Standalone merged safetensors model

The 262,144-token architectural setting is not a guarantee that every deployment can serve that length. Context capacity and concurrency depend on accelerator memory, KV-cache settings, serving engine, and workload. Validate the intended configuration before production use.

Quick start with Transformers

Ulam-1 retains the upstream multimodal architecture. The same processor supports text-only, image, and video messages; Ulam post-training and the reported ErdosBench audit are text-focused.

import torch
from transformers import AutoModelForMultimodalLM, AutoProcessor

model_id = "ulamai/ulam-1"

processor = AutoProcessor.from_pretrained(
    model_id,
    trust_remote_code=False,
)
model = AutoModelForMultimodalLM.from_pretrained(
    model_id,
    dtype=torch.bfloat16,
    device_map="auto",
    trust_remote_code=False,
)

messages = [
    {
        "role": "user",
        "content": [
            {
                "type": "text",
                "text": "Prove that there are infinitely many prime numbers.",
            }
        ],
    }
]
inputs = processor.apply_chat_template(
    messages,
    add_generation_prompt=True,
    tokenize=True,
    return_dict=True,
    return_tensors="pt",
).to(model.device)

with torch.inference_mode():
    output = model.generate(
        **inputs,
        do_sample=False,
        max_new_tokens=4096,
    )

completion = output[0, inputs["input_ids"].shape[-1]:]
print(processor.decode(completion, skip_special_tokens=True))

The model operates in thinking mode by default and can emit explicit <think>...</think> spans. Applications should deliberately retain, route, or suppress those spans rather than assuming they are absent.

Serving with SGLang

python3 -m sglang.launch_server \
  --model-path ulamai/ulam-1 \
  --served-model-name ulamai/ulam-1 \
  --host 0.0.0.0 \
  --port 30000 \
  --tp-size 1 \
  --context-length 131072

Example OpenAI-compatible request:

curl http://localhost:30000/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "ulamai/ulam-1",
    "messages": [
      {"role": "user", "content": "Solve x^2 - 5x + 6 = 0."}
    ],
    "temperature": 0,
    "max_tokens": 4096
  }'

Start with a smaller context or fewer concurrent requests if the target accelerator cannot sustain the validated configuration. Long mathematical generations can consume substantial KV-cache memory even when the model weights fit comfortably.

Release validation

The final adapter was merged into the pinned BF16 base with safe merge enabled. The standalone release contains 15 safetensors shards, retains 27,356,728,560 runtime parameters, and preserves the upstream processor and multimodal assets.

A private NVIDIA DGX Spark/GB10 SGLang smoke test loaded the merged model with a 131,072-token context, BF16 KV cache, and two concurrent request slots. /health, /v1/models, and /v1/chat/completions passed, and the requested smoke response returned exactly READY. This is a tested compatibility configuration, not a minimum-memory claim.

The final tree passed native Transformers generation with trust_remote_code=False, base-plus-adapter versus merged-model equivalence checks, full tensor and checksum validation, and clean-download validation at the immutable release commit. Machine-readable build, equivalence, and runtime receipts are included in this repository.

Intended uses

  • exploratory mathematical problem solving with human review;
  • proof debugging, obstruction finding, and statement checking;
  • research-progress summaries and candidate approaches;
  • research on verifier-backed mathematical post-training;
  • text-focused inference and experimental multimodal mathematical assistance;
  • local or hosted inference through standard Transformers and SGLang interfaces.

Out-of-scope uses

  • treating generated arguments as formally verified proofs;
  • autonomous theorem announcements or unsupervised research publication;
  • factual or literature citation without checking primary sources;
  • high-stakes medical, legal, financial, or safety decisions;
  • autonomous tool use or agentic API operation without separate validation;
  • redistributing protected benchmark prompts, private training rows, verifier controls, or reviewer material.

See RESPONSIBLE_USE.md for deployment guidance.

Training lineage

Qwen/Qwen3.8-27B (pinned revision)
  -> curated research-reasoning SFT, seed 303 checkpoint 33
  -> V-RLVR seed 202 checkpoint 2 (U2)
  -> conclusion-focused Math-RL v2 seed 404 checkpoint 58
  -> conclusion-focused Math-RL v3 seed 303 checkpoint 80
  -> standalone merged Ulam-1 candidate

Every selected stage continues from the retained state produced by the preceding stage. The final checkpoint is not an independent adapter applied directly to the public Qwen base. Post-training adapters target the text decoder; the upstream vision branch remains frozen.

Training data

Ulam AI develops mathematical training data as a data vendor. The complete production mixture, private rows, and intermediate training artifacts are not disclosed. The following public repositories provide representative inspection samples and task formats:

These repositories are not complete dumps of the proprietary training corpus. Protected ErdosBench prompts, answers, grades, reviewer notes, and final-evaluation artifacts were excluded from the final-stage training builders.

Post-training objectives

The retained pipeline combines:

  • supervised research-reasoning refinement;
  • verified-reward optimization;
  • conclusion-focused mathematical reinforcement learning;
  • correctness-dominant reward shaping;
  • terminal credit assignment spanning the reasoning suffix and final answer.

The final reward assigns 0.95 weight to verifier correctness, 0.01 to valid terminal format, 0.01 to EOS, and up to 0.03 to correctness-gated concision. An incorrect but formatted response can receive at most 0.02 auxiliary reward. A missing natural reasoning close receives a 0.005 penalty. Actor credit covers the final 512 sampled tokens, including the reasoning suffix and answer; controller-inserted boundary tokens receive no policy credit.

Evaluation

ErdosBench

The final candidate received one independent solve-only attempt on each of 226 protected problem variants. Generation used SGLang, temperature 0, top-p 1, a 131,072-token server context, and at most 120,000 output tokens.

Artifact A B C D F M Mean / 4 A+B Natural stop Length hit
Ulam-1 seed303 cp80 19 118 82 5 2 0 2.385 137 163 63
CURRENT-SFT previous run 14 10 200 0 2 0 1.872 24 27 199

Grades use A/B/C/D/F/M = sound and scoped / useful but incomplete / material gap / likely wrong / contradicted / missing, mapped to 4/2.7/1.7/1/0/0 points. ErdosBench is used here as a correctness-first signal for research-mathematics progress, not as theorem certification.

The two rows share 226 problem identities but are not protocol-matched. The candidate used transformed solve-only prompts, SGLang, and a 120,000-token cap; CURRENT-SFT used a different protected prompt asset, vLLM, and a 65,536-token cap. Of the candidate's 163 natural stops, 117 occurred at or beyond 65,536 generated tokens. The comparison supports selecting seed303 checkpoint 80 under the intended long-output service protocol, but it does not isolate a checkpoint-only training effect.

The solve-only protocol did not request a self-verdict. A heuristic strong-claim audit identified 132 responses containing language such as "we prove", "we solve", "false", or "counterexample". These received 19 A, 93 B, 14 C, 5 D, and 1 F grades. Across the full run, seven outputs were graded D or F. Strong claims remain subject to independent expert or formal review.

SIMOBench was deliberately excluded from this final checkpoint-selection decision.

Development-time selection evidence

Intermediate development repeatedly used 139-item ErdosBench slices to compare supervised mixtures, reinforcement-learning doses, and later endpoints. V-RLVR seed 202 checkpoint 2 scored 0.3743135 on the matched selector, compared with 0.371908 for the previous U1 selection, and became the parent of the conclusion-focused stages. These consumed development slices are model-selection evidence, not untouched generalization estimates.

Machine-readable metrics and claim boundaries are provided in evaluation_results.json.

Limitations

  • Outputs are not formal proofs and can contain subtle or decisive mathematical errors.
  • The 226-problem audit uses one deterministic generation and one supplied item-level judgment pass.
  • Eighty-two candidate outputs retain material mathematical gaps; seven are graded D or F.
  • The candidate and CURRENT-SFT comparison differs in prompt transformation, inference engine, and output cap.
  • Intermediate checkpoint selection repeatedly consumed ErdosBench-family development slices.
  • No sampling-variance estimate or inter-rater agreement statistic is available for the final audit.
  • The full response archive and protected prompts are not distributed in the model repository.
  • The model can expose reasoning spans or fail to produce a compact terminal answer.
  • The retained vision branch was not independently evaluated after text-only Ulam post-training.
  • Quantized runtimes and serving configurations other than the recorded Transformers and SGLang setups require independent validation.

Reproducibility and integrity

  • release_manifest.json records the public file inventory and validation state.
  • provenance.json describes the public lineage without private storage paths or proprietary rows.
  • evaluation_results.json contains publishable aggregate results, protocol details, and claim boundaries.
  • build_receipt.json and sglang_smoke_receipt.json record the sanitized merge and serving checks.
  • checksums.sha256 binds every publication file except the checksum manifest itself.

Use the immutable v1.0.0 tag for reproducible downloads. Do not treat a mutable main revision as the canonical scientific artifact.

License

Ulam-1 weights and repository content are released under the Apache License 2.0. The upstream Qwen3.8-27B model is also licensed under Apache 2.0; upstream terms and attribution are recorded under UPSTREAM_LICENSES/.

Citation

@misc{ulam2026ulam1,
  title        = {Ulam-1: Conclusion-Focused Post-Training for Research Mathematics},
  author       = {{Ulam AI}},
  year         = {2026},
  howpublished = {Hugging Face model release},
  url          = {https://huggingface.co/ulamai/ulam-1}
}

The complete technical report is included under paper/.

Contact

For model questions, data licensing, deployment guidance, or responsible disclosure, contact Ulam AI through ulam.ai.

Downloads last month
6
Safetensors
Model size
27B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for ulamai/Ulam-1

Base model

Qwen/Qwen3.8-27B
Finetuned
(346)
this model
Quantizations
1 model

Datasets used to train ulamai/Ulam-1

Evaluation results