一名开发者采用了一个 3.5 亿参数的语言模型,对其进行了微调,并将其部署为一个功能完备的 AI 助手,该助手可以在任何现代浏览器中运行——无需服务器调用,无需 API 密钥,也无需支付云端费用。
该项目将模型权重与静态网页一同发布,让智能体能够选择工具、绑定参数、解析诸如“第二个”之类的引用,并在缺乏信息时拒绝回答——而这一切都在您的本地设备上完成,确保数据安全。
基于浏览器的智能体是如何构建的
起点是 LiquidAI 的 LFM2.5 系列,特别是 230 M 和 350 M 参数的版本。
训练者并没有将产品目录或价格表硬塞进模型,而是教会了它交互的模式。智能体并不知道具体的 SKU;它学习的是如何:
- 为给定请求选择合适的工具。
- 为该工具绑定正确的参数和标识符。
- 解释模糊的引用(如“一打”、“第二个”)。
- 提取外部文本并利用其回答问题。
- 在所需信息缺失时拒绝回答。
- 保持对话不偏离主题。
工具集是刻意设计的静态集合:list_items、get_item、search_knowledge、add_to_cart、remove_from_cart、clear_cart、checkout 和 navigate。固定工具列表可以防止模型记住工具 ID,并保持微调数据的精简。
三个工程选择使系统保持轻量化:
- 固定的工具列表 – 模型面对的是一组固定的操作,因此不需要庞大的工具名称词汇表。
- 将 RAG 作为一种工具 – 检索增强生成 (RAG) 就像其他任何函数一样。智能体调用
search_knowledge来获取文本,然后直接将该文本插入其响应中,从而避免了会增加延迟和内存开销的独立检索流水线。 - 语法约束解码 – 在生成过程中,解码器遵循一种简单的语法,强制输出符合有效的工具调用结构。这种约束消除了无效 token 的浪费,并减少了格式错误的指令。
训练采用了合成数据蒸馏。作者定义了 18 种交互方案,每种方案描述了一次典型的用户与助手之间的交流。一个更大的“教师”模型生成自然语言部分,而一个确定性脚本则生成精确的工具调用格式。微调过程消耗了大约 3000 万个 token,并可以在单块 16 GB 显存的 GPU 上运行。
为什么端侧运行至关重要
- 隐私 – 所有用户提示词都保留在浏览器的内存中。没有任何遥测数据离开设备,这对于敏感查询非常重要。
- 离线能力 – 由于模型缓存在本地,助手在没有互联网连接的情况下也能工作,为实地工作或旅行提供了可能性。
- 成本 – 发布静态模型文件消除了持续的 GPU 推理服务器费用或按次计费的 API 费用。
- 无障碍性 – 在低配置设备上实现复杂 Web 界面的语音驱动导航变得可行,从而将 Web 应用的覆盖范围扩大到依赖辅助技术的用户。
这些优势将讨论的重心从“巨型模型能否回答这个问题?”转向了“在保持有用辅助功能的同时,模型可以做到多小?”
潜在的局限性
这种规模的模型无法保留百科全书式的知识。当用户询问特定产品价格或近期新闻头条时,助手要么通过 search_knowledge 获取信息,要么礼貌地拒绝。这种设计在保护隐私的同时,也将系统的表现与外部知识源的质量和新鲜度绑定在了一起。
值得关注的后续动态
公开演示位于一个简单的 GitHub Pages URL,源代码也是公开可用的。
核心要点: 通过教会规模适中的 LLM 遵循严格的工具语法,并将检索视为另一种函数,开发者可以发布一个完全运行在浏览器中的实用 AI 助手——在不牺牲核心对话能力的前提下,提供隐私保护、离线使用和零云端成本。
