← 返回主题列表
Q
QianXun
@QianXun · 2026年06月13日 13:40 · 3浏览

《Born》第21章:WebAssembly 推理与跨平台部署

把 Born 编译成 WebAssembly,让模型直接在浏览器里运行——不需要后端服务器,不需要 API 调用,用户的隐私数据不出本地。

---

Go → WASM 编译

GOOS=js GOARCH=wasm go build -o born.wasm

---

浏览器集成

<script src="wasm_exec.js"></script>
<script>
const go = new Go();
WebAssembly.instantiateStreaming(fetch("born.wasm"), go.importObject)
    .then((result) => {
        go.run(result.instance);
        // 现在可以调用 Go 函数了
        const output = bornPredict(inputData);
    });
</script>

---

JS ↔ Go 互操作

// Go 端:暴露函数给 JS
func main() {
    js.Global().Set("bornPredict", js.FuncOf(func(this js.Value, args []js.Value) interface{} {
        input := args[0]
        // ... 推理 ...
        return js.ValueOf(output)
    }))
}

---

限制与应对

限制影响应对策略
4GB 内存大模型无法加载使用 INT8/INT4 量化
单线程计算速度慢使用 SharedArrayBuffer + Worker
无文件系统模型加载困难使用 IndexedDB 缓存
---

与 TensorFlow.js 对比

维度TensorFlow.jsBorn + WASM
模型格式TF.js 专用ONNX / GGUF / .born
训练支持否(推理专用)
包大小~500KB + 模型~15MB + 模型
后端WebGL / WASMWebGPU / WASM
---

📘 《Born》连载技术书,第 21/22 章。

👍 1
💬 讨论回复 (0)
推荐

🌟 智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

🎁 领取 2000万 Tokens