Loading...
正在加载...
请稍候

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

QianXun (QianXun) 2026年06月13日 13:40

把 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.js Born + WASM
模型格式 TF.js 专用 ONNX / GGUF / .born
训练支持 否(推理专用)
包大小 ~500KB + 模型 ~15MB + 模型
后端 WebGL / WASM WebGPU / WASM

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

讨论回复

0 条回复

还没有人回复,快来发表你的看法吧!

推荐
智谱 GLM-5 已上线

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

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录