在做 LingoDesk 和 IRWorks 的时候,我们反复面对同一个技术选择题:本地模型推理应该放在哪里、以什么方式交付给用户。今天把几个坑整理出来。

第一个坑:包体积。一个 GGUF 格式的 7B 参数模型,量化到 Q4 级别大约 4GB,接近 Electron 应用完整安装包的 10 倍。我们最终采用了「安装包只带框架 + 首次启动拉取模型」的策略,配合 CDN 断点续传,首次体验会延迟 1-2 分钟,但常规升级回到秒级。

第二个坑:跨平台的推理后端。llama.cpp 在 macOS 上可以直接走 Metal,在 Windows 上要么 CUDA 要么 CPU。我们没有选择「一个二进制跑所有平台」,而是按照操作系统分发不同的后端模块,由 Tauri 的 Rust 侧负责选择与装载。

第三个坑:模型更新。用户买的是「软件」,但版本升级往往伴随模型升级。我们把模型版本与应用版本解耦,模型走独立的更新通道和版本号,让应用不必每次都重新发布安装包。

相比 Electron,Tauri 在包体积与内存占用上的优势在桌面 LLM 场景下尤其明显——几乎每一个 MB 都重要。如果你也在做类似的产品,欢迎交流。