跳至主要内容

目前狀態

核心推理
領域狀態備註
Inspect運作中含記憶體估算的 metadata 檢視
Benchmark運作中Forward-only latency/throughput
生成運作中cached decode 為預設路徑
Prefix caching運作中C++ 與 Python 公開 API
INT3 GEMM運作中8 級,3 bits/weight。10 值/32-bit 字。轉換器 --bits 3
LoRA 放大效應運作中(demo)Loop block 的 rank-r LoRA 參數效率為 L 倍。
JSON-RPC 服務運作中無依賴 TCP RPC 用於微服務部署。
基準測試套件運作中L 掃描工具含解碼/預填延遲 + logit-lens 收斂分析。
動態 L 推理運作中同一模型 L=2..64。每請求、每 token、SLO 感知深度。架構獨有。
動態 L 評估運作中tools/dynamic_l_eval.py — 每 L 一致性、Poisson-L 取樣、logit 穩定性。
FP16 殘差流運作中(opt-in)TINYLOOP_FP16_RESIDUAL=1。52 個呼叫點透過 10 個分派輔助函式接線。所有路徑:decode、prefill、chunked、logit-lens、speculative、safety check。H100 驗證:FP32 4/4 回歸通過,FP16 score+generate+speculative 通過。
KV cache mode — 7 種模式
領域狀態備註
Sliding-window運作中cache_window 限制 KV 儲存
INT8 KV運作中KV VRAM −49%
Store-h (FP16)運作中Bit-exact,43–50% 節省
Store-h (INT8)生產就緒66–75% 節省
Store-h (INT4)評估/排序安全78% 節省
Tensor-core 重建推薦−37% decode + 相同節省
Paged attention運作中16-token 頁面,5.6% 額外開銷
推測式與自適應 decode
領域狀態備註
Self-speculative運作中L=2 draft、L=8 verify,相同權重。2.77× 吞吐,零額外參數。
Tree speculative運作中(greedy)一次 mask-gated forward 取代 K 次序列 verify。Bit-exact,零輔助頭。
Warm-start運作中從快取 iter-k 狀態恢復。−32.5% 壁鐘。N=1 次即損益平衡。
Beam search運作中每 beam 獨立 KV cache
約束式解碼運作中Regex NFA,JSON mode
L 排程運作中前 N token 淺深度,~3.3× 快。架構獨有。
Rewind speculation運作中(telemetry)88.9% 命中率。架構獨有。
自適應推測深度運作中Draft-ahead K 在 cached 和 uncached 路徑中自動調整。
CUDA 記憶體池運作中TINYLOOP_CUDA_POOL=1 — 減少配置開銷。
SLO-aware L 降級運作中Scheduler 在預測等待 > SLO 時降低 L 而非拒絕。架構獨有。
Chrome trace 匯出運作中tools/trace_to_chrome.py — chrome://tracing JSON。
Token 軌跡可視化運作中tools/trace_tokens.py — 每迭代 argmax 翻轉偵測。
效能回歸追蹤運作中tools/perf_regression.py — 基線比較與閾值偵測。
一鍵轉換運作中tools/convert.py — 自動偵測 fused/separate QKV、RoPE、GQA。
模型架構支援
領域狀態備註
RoPE運作中所有前向路徑
GQA運作中較少 KV heads,MQA 亦可
GeLU運作中(opt-in)GPT-2/BERT 風格
Post-norm運作中(opt-in)post-norm 模型
架構獨有功能
領域狀態備註
確定性誤差對消運作中(v5 模型)偶數迭代標準 rounding,奇數套用 sign 校正。O(1) 誤差。TINYLOOP_CANCEL_ROUND=1新穎。
每迭代安全檢查運作中每迭代計算 residual L2 norm。超過閾值即中止。每 token L 個檢查點。成本比 attention 便宜 2000×。新穎。
L 排程運作中前 N token 以 warmup_L(如 L=2)執行,其餘以完整深度。快 ~3.3×--l-warmup-tokens 16
Rewind speculation運作中(telemetry)Draft 被拒時檢查中間深度是否一致。88.9% 命中率--rewind-L 4
雙位元權重交換運作中INT2 副本 + INT4 副本。早期 INT2,晚期 INT4。快 3.2%TINYLOOP_DUAL_BIT=1新穎。
三位元權重交換運作中在雙位元基礎上加 INT8 副本(~68 MB)用於迭代 0。TINYLOOP_TRIPLE_BIT=1。第一迭代最高品質。
L-aware 批處理運作中(已驗證)per_lane_loops=[4,16,32]。每 lane 獨立深度,bit-exact 一致。新穎。
基礎建設與服務
領域狀態備註
Marlin INT4運作中(Ampere/Ada)21× over naive
Static batching運作中1.87× 吞吐
HTTP 服務運作中OpenAI 相容 + 原生
Mmap 載入運作中直接 DMA
Memory arena運作中零碎片
NVTX profiling運作中NSight Systems 可視化
優先層級運作中TINYLOOP_TIERS — tier 對應 loop 深度
Trace CLI運作中tinyloop trace — 每迭代 argmax
統一記憶體運作中TINYLOOP_UNIFIED_MEMORY=1 — spill 到系統 RAM
成本優先排序運作中Scheduler 依 prompt_len × loops 自動計算。短便宜請求優先。架構獨有。
SentencePiece運作中TINYLOOP_TOKENIZER_MODEL=path 用於 Llama。encode/decode/token_to_bytes。
Tiktoken運作中TINYLOOP_TIKTOKEN_ENCODING=cl100k_base 用於 GPT-4/Claude。
自動 tokenizer運作中依序嘗試 SentencePiece → Tiktoken → GPT-2 BPE。
INT8 權重 GEMM運作中cuda/int8_gemm.cu — 每權重 1 byte,256 級。三位元路徑使用。
非同步 Python API運作中AsyncModelasyncio.Lock + ThreadPoolExecutor。支援 generategenerate_streamscore*
Torch 原生包裝運作中TorchModel — 透過零複製 from_numpy() 回傳 torch.Tensor
HuggingFace 整合運作中TinyLoopForCausalLM.from_pretrained() 標準 HF generate() 介面。
GGUF 讀取器運作中tools/gguf_reader.py — 讀取 llama.cpp GGUF v2/v3 標頭 + tensor 資訊。
模型分片運作中tools/model_shard.py — 分割 .tinyloop 為 N 片段含 JSON manifest。
β 混合精度運作中tools/beta_mixed_precision.py — 基於 β 的貪心位元配置。
一鍵轉換運作中python tools/convert.py model.pt --bits 4。自動偵測 fused/separate QKV,支援 GQA。
自適應 L 流量運作中AdaptiveLController — 離峰 L=32,尖峰 L=4。架構獨有。
模型編輯放大運作中(demo)Loop block 編輯效果是單層的 L×。
啟動轉向運作中(demo)深度作為免梯度轉向旋鈕。
迭代啟動尺度運作中逐迭代啟動幅度下降 50%。
驗證覆蓋
  • CUDA kernel/unit 測試
  • cache parity
  • CLI / tokenizer 生成 regression
  • variable-L parity(bit-exact)
  • 記憶體洩漏偵測(0 MB 成長)
  • fuzzing(50 次迭代)
  • KV-cache regression(27 點)
  • 約束式解碼驗證
H100 效能數據
路徑結果
預設低位元 benchmark30.48 ms
FP16-body benchmark2.82 ms
FP16 h + fp16_body decode−38% vs baseline ⚡
Warm-start resume−32.5% vs fresh
L 掃描解碼延遲 — 2B INT4,H100,32-token prompt,16 decode tokens
L壁鐘時間 (ms)吞吐量 (tok/s)
2111.8301
4146.8226
8161.3198
16305.5108
32506.564

架構獨有:同一權重檔案在所有深度。品質是計算旋鈕。

多位元權重交換 — 2B INT4,H100,L=8
設定解碼 ms吞吐量備註
基準(INT4)86.9184 tok/s
雙位元(INT2+INT4)86.2186 tok/s快 ~1%
三位元(INT8+INT2+INT4)91.2175 tok/s慢 ~5%,迭代 0 最高品質

誠實的 VRAM 比較(nvidia-smi,H100)

我們的 2B 單 block 模型 — 2 pre + 1 loop × L=8
RuntimeVRAMvs 展開
PyTorch FP16(展開 10 層)2225 MB基線
PyTorch FP16(權重共享 2+1)798 MB少 2.8×
TinyLoop INT4737 MB少 3.0×
TinyLoop INT4 + FP16 body1187 MB少 1.9×(最快)

2.8× 的節省來自權重共享(架構特性),不是 runtime 的功勞。TinyLoop 的 INT4 額外只省 ~1.1×。

Ouro 1.4B — 24 個獨立層 × 4 UT 步
RuntimeVRAMvs PyTorch
PyTorch FP163457 MB基線
TinyLoop FP163343 MB差不多
TinyLoop INT81983 MB少 1.7×
TinyLoop INT41263 MB少 2.7×

Ouro 有 24 個獨立層權重 — 沒有權重共享節省。VRAM 差異純粹來自量化,任何推理引擎都能做到。

誠實的評估

  • 權重共享省 VRAM — 但這是架構特性,不是 TinyLoop 的優勢。PyTorch 用相同共享權重也差不多。
  • INT4 量化省 VRAM — 但任何量化引擎(llama.cpp、vLLM)都能做到。
  • TinyLoop 真正的優勢:L 作為 runtime 旋鈕、self-speculative decode、每請求不同深度、架構獨有功能(誤差對消、安全檢查、雙位元)。這些是其他 runtime 做不到的。

安全主張

  • TinyLoop 是真正的 looped-transformer runtime,100% CTest 通過
  • Cached decode 已實作並預設啟用
  • L 是真正的 runtime 參數:同一模型 L=2..64
  • 多 block loop 支援:Ouro-1.4B 可載入執行(輸出品質進行中)

需謹慎的主張

  • 生產級 hosted serving(無 continuous batching)
  • 與 PyTorch 的廣泛品質等價(Ouro 輸出品質尚未匹配)
  • 「比 PyTorch 少 X× VRAM」而不說明權重共享是架構特性
  • 效能聲明未標註 CUDA context 開銷(H100 ~500 MB)