Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

deciax

High-performance decision models on TPUs, powered by JAX and Pallas.

Install

pip install deciax

On TPU, pip install "deciax[tpu]" pulls in jax[tpu].

Usage

import deciax

decider = deciax.load("laya")  # or "laya-multilingual"; bf16 on TPU, fp32 elsewhere
decider.decide(
    {"user": "I was charged twice this month, please fix it."},
    {
        "intent": {
            "type": "choice",
            "instructions": "What does the user want?",
            "criteria": {"billing": "payments, refunds", "other": "everything else"},
        },
        "urgency": {
            "type": "score",
            "instructions": "How urgent is this?",
            "criteria": ["not urgent", "soon", "blocking"],
        },
        "angry": {"type": "noul", "instructions": "Is the user angry?"},
    },
)

The response has the same shape as Laya's system_one response. Install with uv sync --extra tpu on a TPU host.

HTTP server

uv run python -m deciax.serve --model laya --model laya-multilingual --default-model laya-multilingual --port 8000
curl -s localhost:8000/v1/systemone -d '{"state": "I was charged twice", "questions": {"angry": {"type": "noul", "instructions": "Is the user angry?"}}}'

Compared with laya-serve:

laya-serve deciax
Routes POST /v1/systemone, POST /v1/systemone/batch, GET /health same same
Request limits, status codes, x_jev_confidence on choice/score answers same same
--jev-strict, Bearer auth (DECIAX_API_KEY) same same
Controls model, max_len, head_max_len same same
Language routing routes by language none; missing/unknown model (e.g. jev-1) gets the default model
Controls task, lang, lang_guess, min_confidence, batch_size, sort_by_length accepted 422

Every flag also reads an environment variable: DECIAX_HOST, DECIAX_PORT, DECIAX_MODELS, DECIAX_DEFAULT_MODEL, DECIAX_MAX_CONCURRENT, DECIAX_JEV_STRICT, DECIAX_DTYPE, DECIAX_IMPL and DECIAX_LOG_LEVEL.

Status

The Laya inference path works end to end. The runtime needs only JAX and tokenizers; it does not need torch, transformers or laya. Parity against PyTorch Laya 0.4.4 (tests/laya/):

  • Inputs: tokenizer ids and input_ids / marker_pos match token for token.
  • CPU fp32: option and act logits are within 1e-3 (act logits within 1e-5 relative). Responses match up to the last rounded digit.
  • TPU bf16: probabilities are within 0.02 and the argmax matches, with both the jax and pallas attention.

impl="auto" uses XLA attention, which is faster than the Pallas flash kernel at these shapes.

Not yet supported:

  • the parallel option layout
  • per-language temperatures and binning maps
  • predict_long windowing
  • tournament selection
  • language routing between checkpoints
  • benchmarks

Laya is Apache-2.0 (https://github.com/NandhaKishorM/laya). Code ported from it is attributed in each module docstring.

Metadata

Release files for deciax 0.1.1.dev2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for deciax 0.1.1.dev2
File Size Uploaded
deciax-0.1.1.dev2.tar.gz 24.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for deciax 0.1.1.dev2
File Interpreter ABI Platform
deciax-0.1.1.dev2-py3-none-any.whl Python 3 none any Details

Total release size: 59.7 kB

Release files / deciax-0.1.1.dev2.tar.gz

Download URL deciax-0.1.1.dev2.tar.gz
Size 24.2 kB
Tags Source
SHA-256 checksum
How to use checksums
dfde3e94753fab3c0839b5912a972210aa1b2150ba945e70a688282b7c1c7655
BLAKE2b-256 checksum
How to use checksums
9cbb872fd7d28e172176b1bf06059df43ee2268237c2ffe8cb7f6a17f56d23f6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / deciax-0.1.1.dev2-py3-none-any.whl

Download URL deciax-0.1.1.dev2-py3-none-any.whl
Size 35.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c15653ff970489ea30e38083b1ead694ce477aa8a08651fe0d964d6b71e54559
BLAKE2b-256 checksum
How to use checksums
6947ca95a60840ac80543860a40ddc062895f05a47ef82c63fcae0883a6db8e9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.1.1

2 release files

This release

0.1.1.dev2 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page