★ DEVICE 本籍 ★ AI 適用 チュートリアル
SlimeTree-RLM チュートリアル ― 入門から高度利用まで
SlimeTree-RLM の本質は SharedArrayBuffer (SAB) + WASM (Rust port) の組合せにあります。「npm install して呼ぶだけ」の rapper engineering では到達できない領域 ― cross-origin isolation / shared linear memory / WebWorker pool / 永続化と監査連鎖 ― を、ソースコード付きで 3 章に分けて解説します。
対象: 製品エンジニア、Web/SaaS でハルシネーション抑制レイヤを組込みたい AI プロバイダ、規制業務に audit chain を埋め込む 業界 SI。
なぜ rapper engineering では使いこなせないのか
SlimeTree-RLM のパフォーマンスと監査特性は、以下 4 つの要素の同時成立を前提とします。これらは「ライブラリを呼ぶ」ことでは満たせません。
Q1. なぜ SharedArrayBuffer (SAB) が必要なのか
SlimeTree-RLM の linear memory を メインスレッド + LLM 推論 Worker + 監査 Worker 等で共有するため。WASM の linear memory は既定で per-Worker 隔離 ― SAB を使わなければ Worker 間のデータコピーが発生し、RLM 設計の中核である「単一の意味記録体を多視点から同時に書込/読出/監査」が成立しません。
Q2. なぜ COOP/COEP の HTTP headers 設定が必要なのか
SAB は Spectre 等のサイドチャネル攻撃対策から、ブラウザが cross-origin isolation を要求します。Cross-Origin-Opener-Policy: same-origin + Cross-Origin-Embedder-Policy: require-corp の両方を返さないと SharedArrayBuffer はコンストラクタすら呼べません (ReferenceError または undefined)。SaaS / 静的ホスティング既定では無効です。
Q3. なぜ Rust → WASM のビルドフラグが必要なのか
Shared linear memory を使う WASM は、Rust 側のビルドで RUSTFLAGS=-C target-feature=+atomics,+bulk-memory,+mutable-globals + --target wasm32-unknown-unknown + nightly Rust の build-std が必要です。wasm-pack build の既定では shared memory 版は出力されません。
Q4. なぜ WebWorker pool 設計が必要なのか
SAB を生かすには、各 Worker が同じ WASM モジュールを 共有メモリ参照で インスタンス化する必要があります。postMessage で WASM Module + Memory を移譲し、各 Worker が独立に同じ linear memory を操作する設計 ― これは「単に Worker を起動する」とは別の問題です。
3 章構成
最小組込 ― WASM ロードと最初の write/read
SlimeTree-RLM の WASM モジュールを静的ホストから読込み、 write() / read() / verify_audit_chain() を 1 つの HTML ファイルで動かす。SAB なし・single-thread。なぜこれだけでは応用にならないかも明示。
- 配布形態 (npm / static / esm)
- HTML 1 ファイル動作確認
- API 3 つの最小例
- single-thread / no-SAB の限界
SAB + COOP/COEP + Rust→WASM ビルド
cross-origin isolation を有効化し、Rust ソースから shared-memory 版 WASM を自分でビルド。WebWorker から SAB 経由で同一 linear memory に同時アクセス。
- COOP/COEP の nginx / Apache / Express 設定
- Rust → wasm32 ビルド (atomics+bulk-memory)
- wasm-pack カスタムテンプレ
- Worker から SAB 参照
WebWorker pool + 永続化 + 実例 2 件
Worker pool で並列 write/read、OPFS / IndexedDB / Node.js fs での audit chain 永続化、(1) LLM ハルシネーション抑制ループ (2) Enterprise audit pipeline の 2 実例。
- WebWorker pool (3〜N 並列)
- OPFS / IndexedDB / Node fs 永続化
- 実例 1: LLM ハルシネーション抑制
- 実例 2: 業務 audit pipeline
前提知識
| JavaScript | ES2022、async/await、ES modules (import)、WebWorker |
|---|---|
| Rust (任意・Ch2 以降) | 1.75 以上 (nightly チャンネル推奨、build-std のため)、cargo、wasm-pack |
| HTTP server | HTTPS 必須 (SAB の secureContext 要件)、レスポンスヘッダ自由に設定可能なこと |
| ブラウザ | Chrome 92+ / Firefox 79+ / Safari 15.2+ (cross-origin isolation 対応版) |
| OS / Tooling | WSL2 / Linux / macOS、curl、git、node 18+ (任意) |
関連
- 製品ページ: SlimeTree-RLM ― 製品詳細 (-20.4±0.3 pt 構造定数、enterprise 効果)
- 一次資料: SlimeTree-RLM 一次資料 (ベンチ手順、4 LLM 横断、特許/論文)
- 同 family 単純記録体: SlimeTree-VSAM + 一次資料
- カテゴリ: DEVICE 製品 / AI 製品 / Resource トップ
