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_posmatch 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
jaxandpallasattention.
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_longwindowing- 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)
| File | Size | Uploaded | |
|---|---|---|---|
| deciax-0.1.1.dev2.tar.gz | 24.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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}
|