OAICA · PRISM  /  01 · 21
NVIDIA Open Hackathons  ·  AI for Science, Australia  ·  7-Minute Finale Pitch

Oaica + PRISM

One Rust inference engine. One API. One toolchain — from a $100 phone to an H200 cluster. AI infrastructure you can own, run, and scale anywhere.

SDG · Synthetic Malay/SEA Safety Data Finetuning · NeMo/Nemotron on V4-Flash & KAT Agentic · Oaica Code, our NemoClaw

Team Sprapp — Sam Wong · Aiden Kee · S K Song · Keshav Adjovi Sim · Chong En Lim
Mentors — Dr. Ann Ang  ·  Built in 28 days on Bitdeer 8×H200

01 — The Problem

Training gets the funding. Deployment gets ignored.

The real barrier isn't training a model — it's deploying AI where it's actually needed: on hardware people already own, offline, without a cloud bill.

Pain pointWhat it meansOaica's answer
Training is complexWeeks and budget burned on setup, eval, iteration.We focus on deployment — take proven models, tune them, run them anywhere.
Cloud inference is expensiveEvery API call has a meter.Local inference cuts the meter — Oaica runs fully offline on phone, laptop, or DGX Spark.
Runtimes ignore real hardwareMost engines assume a data-center GPU.PRISM targets hardware people actually own: $100 Android → H200 cluster.
SDKs multiplyEdge, laptop, cloud each need a different stack.One engine, one API, one skill set.
Small models hallucinateA 3B model asked trivia will guess.Router + RAG: edge model emits tool calls; offline DB/API supplies facts. Zero hallucination in the answer path.
Sprapp — Oaica / PRISM02 / 21
02 — Submission

One system, three NVIDIA hackathon tracks

A single generate → verify → filter → audit pipeline feeds all three submissions — not three unrelated projects.

Track · SDG

Synthetic Multilingual Data

Pipeline generates a synthetic Malay/SEA conversation + safety-audit dataset. Two-arm bias probe (raw Malay vs MT-English) vs a hand-authored Malaysia policy. 58,888 paired rows, gated HF release.

Track · Finetuning/Customisation

Domain Models on NeMo/Nemotron

DeepSeek-V4-Flash 284B MoE + KAT-Coder 35B, SFT/GRPO/quant on Megatron-Bridge (NeMo's training core). Domain verticals: coder / legal / tutor LoRAs, Malay-sovereign 35B.

Track · Agentic Workflows

Oaica Code — our NemoClaw

Multi-agent enterprise workflow automation (config-drift audit → rollout plan) on the NVIDIA agentic pattern: decompose → spawn → delegate → synthesize, driving our own fine-tuned models live.

SDG is the pipeline's safety-audit arm · Finetuning is its trained output · Agentic is that output put to work on stage.

Sprapp — Oaica / PRISM03 / 21
03 — Track: SDG (Synthetic Data Generation)

A synthetic multilingual conversation + safety pipeline

Malay ~34M speakers, zero native NVIDIA safety-classifier coverage. We built the pipeline, not just a dataset.

flowchart LR
    G["Generate
bandit-picked prompt variant
per-family autoresearch"] --> Q["Quality gate stack
heuristics → GBM classifier →
LLM-judge → KenLM → langid"] Q --> S["Two-arm safety probe
raw Malay vs MT-English
Nemotron-3 + custom S23-S26 policy"] S --> P["PII / license audit
handle-mask, contamination check"] P --> R(["Gated release
5,411 rows · 2,422 public-safe
58,888 paired probe rows"])
10.1M

curated samples in the corpus DB; 6.3B-token Malay CPT shard set, 5× the original target

+0.191

mean_composite gain from prompt-style search vs +0.102 from sampling-param tuning — the real lever we found

NVIDIA stack

Nemotron-3 content-safety + Aegis taxonomy as eval/filter signal only — never trained into our own weights

Sprapp — Oaica / PRISM04 / 21
04 — Track: Model Finetuning & Customisation

Domain-specific models, trained on the NeMo/Nemotron stack

CPT → SFT → RL/GRPO on two architecturally distinct model families, plus a sovereign-language domain vertical.

Oaica V4-Flash — DeepSeek-V4-Flash 284B MoE

Day-one architecture support (landed llama.cpp upstream, ran in production same day). Full-818 sweep pass@8 floor 74.3%. MTP speculative decode 75.2 tok/s (+34%). Custom I-Quality per-expert quant: 5.2× compression, ~114 GB deploy.

KAT (Oaica Coding 35B) + Malay-35B

Qwen3.6-35B-A3B, Apache-2.0, security-specialist SFT, ~214 tok/s bf16. Malay-35B ties SEA-LION v4.5 (95% CI overlap), +16.8pp NLU composite. Domain verticals via LoRA: coder, legal, tutor.

Megatron-Bridge (NeMo's training core) Nemotron-3 content-safety Nemotron Ultra 550B Nemotron-Reasoning-4B NeMo Curator NIM / vLLM
Scoped honestly: trained on Megatron-Bridge — NeMo Framework's own large-scale training core — not the packaged NeMo Framework toolkit itself. A real NVIDIA-stack claim, correctly scoped.
Sprapp — Oaica / PRISM05 / 21
05 — Track: Agentic Workflows

Oaica Code: enterprise workflow automation, NemoClaw-style

A real tool-use agent loop — not a chatbot — built on the same decompose → spawn → delegate → synthesize pattern as NVIDIA NemoClaw, driving our own fine-tuned model family live.

flowchart LR
    T["Task
'Audit staging vs prod config drift
and give me a safe rollout plan'"] --> D["Decompose"] D --> A1["config_auditor"] D --> A2["migration_author"] D --> A3["rollout_planner"] A1 --> SY["Synthesize"] A2 --> SY A3 --> SY SY --> OUT(["One ordered plan
+ rollback command"])

Enterprise workflow automation, live

Same pattern NVIDIA showcases with NemoClaw — applied to real infra ops (config-drift audit) instead of a toy demo. Runs on phone, PWA, or cluster — same code.

Drives our own models, not a wrapper

PRISM backend speaks the Ollama HTTP API — any Ollama-compatible agent CLI drives Oaica V4-Flash, KAT, Malay-35B as local models, verified live at ~26 tok/s.

Sprapp — Oaica / PRISM06 / 21
06 — Model Family

Four Oaica tiers, one engine

Same API, tokenizer, and tool-call parser at every scale — tuned per tier instead of forcing data-center assumptions everywhere.

TierModelSizeRuns onHeadline number
0.8B PhoneQwen3.5-0.8B Q4_K_M508 MB$100 Galaxy A06, entry Android3.61 tok/s offline
4B ToolQwen3.5-4B + r16 LoRA2.6 GBTablet / phone, CPU-only94.4% select · 77.8% strict
35B A3BQwen3.6-35B-A3B (i-nano/mini/compact)11–16 GBDGX Spark, MacBook, 16 GB VRAM + 128 GB RAM256K → 1M ctx (TurboQuant)
V4-FlashDeepSeek-V4-Flash 284B MoE, 13B active94–136 GBH200 cluster, Spark upper-bound75.2 tok/s (+34% MTP)
35B-class model, same harnessDecode tok/sPrefill tok/s
base (Qwen3.6-35B-A3B)12.9919.45
sfc6 (Malay-35B, ours)12.9719.12
v45 (SEA-LION 27B)12.6012.80
qwen35 (Qwen3.5-27B)11.7420.18

Apples-to-apples: all 4 on Bitdeer H200 GPU7, same script — our belebele +35.4pp fine-tune costs essentially zero decode speed (12.97 vs base 12.99 tok/s), and beats SEA-LION v4.5 on both decode and prefill.

Sprapp — Oaica / PRISM07 / 21
07 — Hardware Fit

DGX / RTX Spark: the Oaica 35B A3B sweet spot

128 GB unified memory in a desk-side box — where 35B A3B becomes genuinely useful without a rack of GPUs.

TierVRAMCPU RAMExample hardwareExperience
CPU-only min0 GB~14 GB16 GB RAM laptop~5.75 tok/s decode
Minimum12 GB64 GBRTX 4070 laptop / 4060 TiLoads; needs patience on long ctx
Recommended16 GB128 GBRTX 4080/90, DGX/RTX SparkSmooth 256K, LoRA hot-swap, interactive
Ideal128 GB UMAsharedDGX/RTX Spark, high-end UMA MacBest throughput + context, one pool
TurboQuant KV: 3-bit packed KV-cache compression, ~4.5× smaller — 256K context costs about the same memory budget as 64K raw. This is what makes the "recommended" row possible at all.

Demo beat: Oaica + 35B A3B i-mini Coder LoRA on a DGX/RTX Spark laptop, fully offline, 256K context.

Sprapp — Oaica / PRISM08 / 21
08 — Results

Tool-calling: our best number beats KAT's own flagship

BFCL-1240, measured on our own PRISM /v1/chat/completions endpoint. More merge components ≠ better — a clean finding, not an accident.

4-way DARE-TIES (shipped)
85.5%
KAT i-compact
85.2%
5-way (+3rd component)
81.4%
KAT i-mini
80.8%
KAT i-nano
79.0%
94.4%

Oaica 4B Tool — tool-name selection on a 2.6 GB CPU-only GGUF (77.8% strict-pass, up from 61.1% via schema fix, zero retrain)

~214 tok/s

KAT-Coder bf16, single 80GB GPU — Apache-2.0, 3B active params/token, security-specialist SFT

+34%

MTP speculative decode on V4-Flash — 75.2 tok/s at 100% draft acceptance vs 56.3 baseline

Sprapp — Oaica / PRISM09 / 21
08 — Results, continued

Malay-35B: reading comprehension +35.4pp over base

Full 8-axis SEA-HELM breakdown, 4 models, complete. GlossoBench MS & official gate_axis.py composite shown honestly as separate, non-comparable measurements.

belebele — base
49.1%
belebele — Malay-35B (ours)
84.5%
SEA-LION v4.5-27B-IT composite
0.723
Malay-35B (ours) composite
0.710

belebele (reading comprehension) is the axis this track exists to move — 84.5%, our single biggest jump in the family. Composite: 95% CI overlaps SEA-LION v4.5 — a statistical tie, +16.8pp NLU vs v4.5.

+35.4pp

Malay-35B vs base on belebele — largest single-axis gain across the whole model family

+16.9pp

Nanbeige SFT-3B beats SEA-LION E2B-IT 2B on SEA-HELM overall

58,888

paired safety rows — 3.6% vs 5.9% translation-loss (off-the-shelf vs our custom policy)

Honest: a cross-model DARE merge gained parallel tool-calling (+11.5–14pp) but collapsed irrelevance detection 82%→12% — reported as measured, not oversold as a win.
Sprapp — Oaica / PRISM10 / 21
09 — Trajectory

28 days: cloud-only prototype → NVIDIA-ready runtime

CapabilityBeforeAfter
Model on cheap phoneNone ran well3.61 tok/s on Galaxy A06
35B+ model on laptopNeeded data-center GPU / cloudRuns on 16 GB VRAM + 128 GB CPU RAM
Coding modelNot loaded end-to-endKAT i-compact 85.2% BFCL v4
V4-Flash servingSeparate stackSame PRISM engine + MTP recipe
Agent orchestrationNot built3-turn swarm, live in PWA
KV memory pressureBig context = OOMTurboQuant KV, ~4.5× compression

In 28 days: phone → Spark → H200 cluster, one runtime, one API.

Sprapp — Oaica / PRISM11 / 21
10 — Product

One base model, many domain experts

A 127 MB LoRA download turns a commodity chatbot into a specialist — the finance/healthcare/legal customisation pattern, made cheap.

  • Coder LoRA — Python / TypeScript / Rust suggestions, diff blocks, git help
  • Lawyer LoRA — document review, statute references, contract Q&A
  • Tutor LoRA — step-by-step explanations, Socratic prompts
  • Same 35B A3B base. Adapters swap at runtime — same tokenizer, same tool parser.

Oaica 4B Tool — proof, not a claim

94.4% tool-name selection (34/36) · 77.8% strict-pass (28/36)

Strict-pass went 61.1% → 77.8% from one schema-enrichment fix — zero retrain, pure deployment config.

Runs as a 2.6 GB GGUF Q4_K_M on tablet/phone CPU. Smoke test 5/5 PASS.

Sprapp — Oaica / PRISM12 / 21
11 — Architecture

One datagen pipeline, three submissions

The SDG entry proves the pipeline produces training-quality data; the Finetuning entry is that data's downstream result; the Agentic entry is that model put to work.

flowchart TD
    CORE(["Datagen pipeline
generate → verify → filter → audit"]) CORE --> SDG["SDG
Malay/SEA safety cross-check"] CORE --> FT["Model Finetuning/Customisation
Oaica V4-Flash 284B + KAT 35B"] CORE --> AG["Agentic Workflows
Oaica Code CLI"] SDG --> SDGOUT(["Gated Malay safety eval set
5,411 rows (2,422 public-safe)"]) FT --> FTOUT(["SFT + GRPO + quant, shipped
day-one arch support, +34% MTP decode"]) AG --> AGOUT(["Live agentic demo
drives the whole model family on stage"])
Sprapp — Oaica / PRISM13 / 21
12 — SDG, continued

The giveback: a gated Malay safety dataset, audited by its own pipeline

Category filter → PII mask → license split. The provenance system caught and fixed its own leak before release — proof the rigor is real, not decorative.

flowchart TD
    DQ[("Disagreement queue
5,588 rows")] DQ --> CAT["Category hard-exclude
S24 royal defamation only"] CAT -->|"177 excluded"| CATOUT["excluded: legal-risk"] CAT -->|"5,411 pass"| PII["PII / handle scan
mask, don't drop"] PII -->|"1,534 masked, incl.
1,390 raw handles missed earlier"| GATED(["GATED RELEASE
5,411 rows"]) PII --> SRC["Source-license filter
Twitter-sourced, unconfirmed terms"] SRC -->|"3,057 excluded"| SRCOUT["excluded: unconfirmed terms"] SRC -->|"2,422 pass"| PUBLIC(["PUBLIC-SAFE VARIANT
2,422 rows"])
5,411

rows, gated research-use release on Hugging Face — live now

1,390

raw Twitter handles our own audit caught and masked before shipping — same day

2,422

row public-safe variant, all Twitter-sourced rows dropped

Sprapp — Oaica / PRISM14 / 21
13 — SDG, continued

Quality improves every cycle, not just once

Same-harness eval, calibrated on a known-good model first, diagnosed down to raw-response dumps — failures feed straight back into the gate.

flowchart LR
    GEN["① Generate
bandit-picked prompt variant"] --> GATEX["② Gate
full quality-gate chain"] GATEX --> TRAIN["③ Train
consumer run"] TRAIN --> EVAL["④ Eval
real-harness only"] EVAL --> DIAG["⑤ Diagnose
per-axis gaps, regressions"] DIAG --> FIX["⑥ Fix the pipeline
not just the data"] FIX --> GEN DIAG -.->|"new filter"| GATEX DIAG -.->|"harder pool"| GEN EVAL -.->|"disagreement rows"| GOLD(["New eval sets
released as artifacts"])
Quality gate stack, in order: heuristic register/structure filters (recovers ~32% of LOW-register text a blanket length gate would drop) → trained GBM classifier (r² MAE 0.106) → LLM-judge (Spearman 0.78 vs Sonnet anchor) → KenLM perplexity tiers → fastText langid → eval-set contamination guard.
Sprapp — Oaica / PRISM15 / 21
14 — SDG, continued

Prompt style beat sampling-parameter tuning — a real finding

Before generation runs at scale, a CPU-only autoresearch loop searches prompt variants against the same scorer that later gates the real corpus.

flowchart TD
    CAND["Candidate prompt variants
control · reorder · exemplar · persona · format"] --> SCORE["score_sample() — CPU-only
textbook + structural + register quality"] SCORE --> RANK{"gap_score(knob)
coordinate-ascent"} RANK -->|"high-gap, keep testing"| CAND RANK -->|"gap < 0.02, converged"| CONFIG[("optimal_configs.json
keyed by family × provider × quant")] CONFIG --> DRIVERS["generation drivers adopt config"] RANK -.-> FOUND(["Finding: prompt STYLE beats
sampling-param tuning"])
+0.191

mean_composite gain from the winning prompt-style variant

+0.102

mean_composite gain from the best sampling-parameter search alone — the wrong lever

Sprapp — Oaica / PRISM16 / 21
15 — NVIDIA Fit

Same CUDA/RTX ecosystem, laptop to cluster

Students learn on RTX. Developers prototype on DGX Spark. Labs scale on H200. Skill transfer only works if the runtime doesn't change underneath them.

Validated on NVIDIA stack

H200 SXM training + cloud inference · DGX/RTX Spark 128 GB UMA fit for 35B A3B and V4-Flash i-micro · MTP speculative decode · BFCL-1240 on our own PRISM endpoint.

Stack used, scoped honestly

Nemotron-3 content-safety, Nemotron Ultra 550B, Nemotron-Reasoning-4B, NeMo Curator, Aegis, NIM/vLLM. Trained on Megatron-Bridge — NeMo's own training core — not overclaimed as "we used NeMo Framework."

Compute: Bitdeer 8×H200 SXM · 120× Intel Xeon Platinum 8580 cores · 2.0 TB DDR5-5600 · 62 TB NVMe

Sprapp — Oaica / PRISM17 / 21
16 — Impact

AI for Science, AI for Everyone

Accessible by default

One open engine, one API, phone to data center. Students, indie hackers, rural clinics build without a cloud gatekeeper.

Hardware choice, not lock-in

Same runtime on a $100 phone, a DGX Spark, or an H200 cluster. Upgrade when you need to — not because a platform forces you.

Scientific sovereignty

Local copilots on patient records and unpublished data, no cloud exfiltration. Deterministic, auditable, offline science.

Oaica turns AI from a cloud service you rent into infrastructure you can own, tune, and run anywhere.

Sprapp — Oaica / PRISM18 / 21
17 — Reproducibility

Recipes, not screenshots

28 days captured repeatable know-how we can re-run on the next model family, the next vertical, the next language.

Deployment

Ship one Rust/WGSL engine from a $100 phone to an 8×H200 cluster. Compress KV with TurboQuant. Plan heterogeneous offload. Hot-swap LoRA without reloading base weights.

Quality

Benchmark tool-calling, coding, safety, long-context with GlossoBench. Move a model through CPT → SFT → RL/GRPO. Merge and ablate across three distinct architectures.

Product

Turn a local model into a retrieval router that calls tools instead of hallucinating. Build a 3-turn agent swarm inside a PWA, deploy on Cloudflare Pages.

Sprapp — Oaica / PRISM19 / 21
18 — Wishlist

What would make the next 28 days faster

Tools

Native Malay content-safety classifier (no English-translation proxy). On-device ternary/GGUF converter inside a model hub. One-click LoRA marketplace inside Oaica.

Standards

Aegis / Nemotron taxonomy coverage for Bahasa Malaysia + Indonesia — the exact gap our SDG track exists to document.

Systems

Always-on Bitdeer 8×H200 node for CPT, SFT, RL/GRPO, classifier training, merge/ablate sweeps, V4-Flash speculative-decode work.

Event

Longer judging slots for multi-device demos. A physical smoke-test room for hardware-tier demos.

Sprapp — Oaica / PRISM20 / 21
Thank you

Own it. Run it. Scale it.

PRISM + Oaica — a Rust inference engine and four model tiers, from a $100 Galaxy A06 to an H200 cluster, shipped in 28 days on one API.

This work was completed in part at the AI for Science Australian Open Hackathon, part of the Open Hackathons program.
The authors acknowledge OpenACC-Standard.org for their support.  ·  @OpenACCorg  #OpenHackathons