AI Decision System
Replayable, offline-verifiable records for AI-assisted go/no-go decisions: experiment promotions, typed model answers and human-approved actions.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
Custom inference engine for Qwen3.5-9B on a single Tenstorrent N300 card (two Wormhole chips). All device operations use hand-written Tensix kernels via the tt-metalium C++ API — no ttnn dependency. Supports prefix caching for fast multi-turn conversations.
Measured on a Tenstorrent N300 (2x Wormhole) in a 4-CPU container. The first few tokens are slower while Metal Traces are captured; subsequent tokens run at steady state.
• Tenstorrent N300 card
• clang-20
• tt-metalium SDK v0.66 (installed via debs)查看完整 README ↗Custom inference engine for Qwen3.5-9B on a single Tenstorrent N300 card (two Wormhole chips). All device operations use hand-written Tensix kernels via the tt-metalium C++ API — no ttnn dependency. Supports prefix caching for fast multi-turn conversations.
https://github.com/user-attachments/assets/f9da983a-4178-4ab0-b22a-7cbaa2b7cf8e
Measured on a Tenstorrent N300 (2x Wormhole) in a 4-CPU container. The first few tokens are slower while Metal Traces are captured; subsequent tokens run at steady state.
| Metric | Value |
|---|---|
| Decode throughput | ~8.2 tok/s (~122 ms/tok) |
| Prefill throughput | ~87 tok/s |
| Model size on device | ~9.5 GB (BFP8_B across 2 chips) |
Install the tt-metalium debs (one-time):
~/install-tt-metal-debs.sh
Build everything:
make -j$(nproc)
The default model (vibekernels/Qwen3.5-9B-GGUF:BFP8B-tiled) is automatically downloaded from HuggingFace on first run and cached in ~/.cache/qwen-models/.
Run the smoke test to verify everything works:
make quicktest # "The capital of France is" -> Paris
Run the full integration test suite (~60s, 8 tests):
make test
make chat # interactive chat CLI
make serve # HTTP server on port 8888
make quicktest # single-prompt smoke test
The HTTP server provides an OpenAI-compatible API and a built-in chat UI:
GET / — Chat UI with streaming responsesPOST /v1/chat/completions — OpenAI-compatible chat APIGET /v1/models — Model listGET /health — Health checkcurl http://localhost:8888/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen3.5-9b","messages":[{"role":"user","content":"Hello!"}],"max_tokens":128}'
Build and run locally:
docker build -t qwen-n300 .
docker run --rm --device /dev/tenstorrent -p 8888:8888 qwen-n300
The container image is published to ghcr.io/vibekernels/qwen3.5-9b-bfp8b-1xn300:latest on every push to main. It can be deployed to Koyeb with a Tenstorrent N300 GPU instance — use the deploy button at the top of this page.
All make targets and the Docker container use sensible defaults. Override as needed:
| Variable | Default | Description |
|---|---|---|
MODEL_PATH | vibekernels/Qwen3.5-9B-GGUF:BFP8B-tiled | GGUF model file or HuggingFace tag |
CTX_SIZE | 4096 | Maximum context length |
PORT | 8888 | HTTP server port |
PUBLIC_KEY | (none) | SSH public key for container remote access |
QUIET | 0 | Set 1 to suppress per-token debug output |
NO_TRACES | 0 | Set 1 to disable Metal Trace replay (useful for debugging) |