2026年6月25日 2 分钟阅读

Sipp 实战:在浏览器中本地运行 LLM,速度提升 3 倍

tinyash 0 条评论

想在浏览器里直接跑大模型,又不想忍受 WebLLM 或 Transformers.js 的龟速?最近开源的 Sipp 给出了一个新答案——它是一款基于 WebGPU 的高性能 AI 推理框架,专为浏览器、桌面和云端统一设计,核心优势是 零依赖、零安装,在浏览器端推理速度是 WebLLM 的 3 倍、Transformers.js 的 12 倍。

这篇文章带你从零上手 Sipp,在浏览器里运行 GGUF 模型,并扩展到 Node.js 和云端部署。

什么是 Sipp?

Sipp 是由 Noumena Labs 开发的全栈 AI 推理框架(Apache-2.0 开源),核心引擎用 Rust + C++ 编写,通过 WebAssembly 编译到浏览器。它提供了一套统一的对称 API——不论你在浏览器、Node.js 还是云端代理,API 接口完全一致。

npm install @sipphq/sipp

一句话概括:Sipp = WebGPU 推理引擎 + 云端网关代理 + 统一 SDK

为什么需要 Sipp?

目前浏览器端跑 LLM 的主流方案有三个痛点:

  1. WebLLM:冷启动约 160ms,解码速度约 25.8 tok/s
  2. Transformers.js:冷启动约 301ms,解码速度约 33.3 tok/s
  3. 两者 API 与后端(Python、Node.js)不统一,切换环境需重写代码

Sipp 的基准测试成绩(NVIDIA GTX 3080 实测):

指标SippWebLLMTransformers.js
TTFT(首 Token 延迟)24.3 ms160 ms(6.5x)301 ms(12.4x)
解码速度77.1 tok/s25.8 tok/s(3x)33.3 tok/s(2.3x)
端到端延迟6,655 ms19,930 ms(3x)15,670 ms(2.4x)

3 倍的速度提升主要来自 Sipp Engine 的 WebGPU 深度优化——用 Rust + C++ 直接操作 GPU 着色器,避免了 JS 层的额外开销。

实战:在浏览器中运行本地 LLM

前提准备

你需要:

  • 一个支持 WebGPU 的浏览器(Chrome 113+、Edge 113+、Firefox Nightly)
  • 一个 GGUF 格式的模型文件(推荐 Q4_K_M 量化的小模型,如 Llama 3.2 1B 或 Phi-3 Mini)

第一步:安装

npm install @sipphq/sipp

Sipp 的浏览器包没有任何外部依赖——零依赖是它的设计目标之一。

第二步:初始化客户端并加载模型

import { SippClient } from '@sipphq/sipp';

const messages = [
  { role: 'system', content: '你是一个简洁的 AI 助手。' },
  { role: 'user', content: '用一句话解释 Sipp。' },
];

const client = new SippClient();
const endpoint = await client.add('default', {
  kind: 'local',
  source: '/models/model.gguf', // 你的 GGUF 模型路径
  options: {
    backend: 'webgpu',
    runtime: {
      context: { n_ctx: 2048 },
    },
  },
});

const run = client.chat(messages, {
  endpoint,
  maxTokens: 64,
});

console.log((await run.response).text);
await client.close();

这里关键的是 client.add() 方法——它返回一个 endpoint 句柄,后续所有推理请求都通过这个句柄路由。kind: 'local' 表示在本地 WebGPU 上执行。

第三步:流式输出

大多数实际场景需要逐 token 输出,而不是等全部生成完:

const run = client.chat(messages, {
  endpoint,
  emitTokens: true,
  maxTokens: 256,
});

let streamed = '';
for await (const batch of run.tokens) {
  streamed += batch.text;
  process.stdout.write(batch.text);
}
const response = await run.response;
console.log(streamed || response.text);

run 对象同时支持 await run.response(一次性获取全部结果)和 for await...of 遍历 run.tokens(流式获取),与 OpenAI API 的风格一致。

扩展到云端:统一 API

Sipp 最实用的设计是本地和云端使用完全相同的 API。当你需要更强的算力时,只需将 endpoint 从 local 切换到 gateway

import { SippClient } from '@sipphq/sipp';

const client = new SippClient();

// 本地推理
const localEndpoint = await client.add('local', {
  kind: 'local',
  source: '/models/model.gguf',
});

// 云端推理——API 完全相同
const cloudEndpoint = await client.add('gateway', {
  kind: 'gateway',
  target: 'upstream-cluster',
  baseUrl: 'https://gateway.example.com/v1/',
  authentication: {
    kind: 'bearer',
    value: await getGatewayToken(),
  },
});

// 同时运行两个推理任务
const [localResult, cloudResult] = await Promise.all([
  client.chat([{ role: 'user', content: '解释本地推理。' }], { endpoint: localEndpoint }),
  client.chat([{ role: 'user', content: '解释云端推理。' }], { endpoint: cloudEndpoint }),
]);

这种对称 API 设计让你可以:

  • 开发阶段用本地模型调试,生产环境切换到云端
  • 根据任务复杂度动态路由(简单查询走本地,复杂推理走云端)
  • 不修改任何业务代码,只切换 endpoint

在 Node.js 中使用

Sipp 也支持 Node.js 后端,使用 CUDA/Metal 原生编译:

npm install @sipphq/sipp-server
import { SippClient } from '@sipphq/sipp-server';

const client = new SippClient();
const endpoint = await client.add('default', {
  kind: 'local',
  modelPath: '/models/llama3.gguf',
  config: {
    context: { n_ctx: 2048 },
  },
});

const prompt = [
  '<|system|>',
  'Answer concisely.',
  '<|user|>',
  'What is WebGPU?',
  '<|assistant|>',
].join('\n');

const run = client.query({
  endpoint,
  prompt,
  emitTokens: true,
  options: { maxTokens: 128, temperature: 0.7 },
});

let result = '';
for await (const batch of run) {
  result += batch.text;
}
console.log(result || (await run.response).text);
await client.close();

Node.js 版本的优势是支持 CUDA GPU 加速和更大的上下文窗口,适合服务端推理场景。

适合哪些场景?

Sipp 最适合这几类用途:

  1. 浏览器内 AI 应用:AI 聊天、文档助手、代码补全,不依赖后端
  2. 游戏和交互式应用:零安装的 AI NPC 对话、动态剧情生成
  3. 隐私敏感场景:所有数据在用户本地处理,不上传到云端
  4. 离线环境:没有网络也能使用 AI 能力

目前 Sipp 处于活跃开发阶段(v0.1.0),官方路线图还包括嵌入式向量记忆、设备端 PII 脱敏和自动智能路由等特性。

小结

Sipp 用一个统一的 SDK 解决了浏览器端 AI 推理的多个痛点——性能、统一 API、零依赖。如果你在做浏览器内 AI 应用,或者想要一套代码同时覆盖本地和云端推理,Sipp 值得关注。

相关链接

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。