整理 | 凌敏、核子可乐

AI 时代即将翻开新的篇章。

随着 ChatGPT 火爆全球,越来越多的同类型大型语言模型同台竞技。不过,这些大型语言模型的训练成本并不低。据国盛证券报告《ChatGPT 需要多少算力》估算,GPT-3 训练一次的成本约为 140 万美元,对于一些更大的 LLM, 训练成本介于 200 万美元至 1200 万美元之间 。


【资料图】

以 ChatGPT 在 1 月的独立访客平均数 1300 万计算,其对应芯片需求为 3 万多片英伟达 A100 GPU,初始投入成本约为 8 亿美元,每日电费在 5 万美元左右。如果将当前的 ChatGPT 部署到谷歌进行的每次搜索中,需要 512820.51 台 A100 HGX 服务器和总共 4102568 个 A100 GPU,这些服务器和网络的总成本仅资本支出就超过 1000 亿美元。

既然需要服务器支持的 LLM 训练成本这么高,那有没有可能让 LLM 只在浏览器内运行,降低训练成本?

Web LLM:能在浏览器中运行的

vicuna-7b 大语言模型

Django 的共同创始人 Simon Wilison 提出这样的假设:能不能用 8.5 万美元训练出能压倒 ChatGPT 的模型,同时要求它可以纯在浏览器内运行?这里的 8.5 万美元,就是 LLaMA 7B 加上 Stanford Alpaca 的训练成本。而所谓“在浏览器内运行”,则是考虑到 1.9 GB 大小的 Stable Diffusion 模型确实能够单靠浏览器跑起来。既然有成功的先例,那至少用浏览器运行小语言模型并不是太大的问题。

如今看来,这个假设已然成真,新的篇章已经翻开。

Web LLM 是一个将大型语言模型和基于 LLM 的聊天机器人引入 Web 浏览器的项目,希望通过 Chrome 测试版中刚刚发布的全新 WebGPU API,在浏览器内运行 vicuna-7b-delta-v0 模型。该项目最大的亮点是,一切都在浏览器内运行,无需服务器支持,并使用 WebGPU 加速。

Web LLM 的测试效果

Simon Willison 在 M2 MacBook Pro 上测试 Chrome Canary 演示版本,而且完全按照谷歌建议的选项操作,最终发现该模型的效果确实非常好:

/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary --enable-dawn-features=disable_robustness

首先,Web LLM 的处理速度非常快,每秒大概能够处理 15 个 token。在测试环节,Willison 先从最简单的问题起步,查询客观事实。比如“谁登上过月球?”

接下来,Willison 开始询问一些更困难的问题,比如“用 markdown 格式列出雪儿的五张专辑”。

Web LLM 还答做对了,这对大语言模型来说绝非易事。另外,它甚至很明白 markdown 格式是怎么回事。

但这里的 www.cherproject.com 域名是假的,纯属捏造。其中两张专辑的名称也有问题:“Cher’s Gold”应该是“Cher’s Golden Greats”。而且虽然雪儿确实是 Geffen Records 的签约艺人,但我完全找不到“Greatest Hits: Geffen Years”这张专辑存在的证据。

但从好的方面看,Willison 压根没想到它能完成这条提示。所以哪怕给出的答案只是部分正确,仍然给 Willison 留下了深刻印象。

接下来,Willison 想看看它认不认识自己。“Simon Willison 是谁?”

它的回答是“某人:花生是谁?”这个回答只能得零分。

那总结能力如何呢?Willison 从最近的博客文章中随机复制了一些文本段落,要求它“总结这些内容:粘贴出来”。

它做得也非常非常棒!

到这里,Willison 表示自己开始兴奋起来了。其实 Willison 并不指望本地运行的大语言模型能准确回答那么多关于客观事实的问题,这毕竟不是它的长项。Willison 真正想要的是一个单词核算器,想要一套模型,能够将内容输入其中并自动执行各种操作——总结、事实提取、据此为提示给出回答等等。

而从 Web LLM 加上 vicuna-7b-delta-v0 的文本总结能力来看,它似乎已经达到了 Willison 所期待的可用水平。

所以是时候启动我最喜欢的大语言模型测试了——如果几只水獭想开一家咖啡店,能不能帮忙起个意有双关的店名?

为了探探 Web LLM 的能力极限,Willison 给出了一条自认为不可能完成的提示:“创作一段鹈鹕和海獭之间的说唱 battle”。

虽然水平也不咋样,但能做到这个程度着实厉害。

那写代码行不行?Willison 试着“编写一个 JavaScript 函数,从表中提取数据并将结果以 CSV 格式记录到控制台”。

乍看之下挺唬人的,但其实根本用不了:table.headers.split(",") 跟 HTML 表在 JavaScript DOM 中的工作方式不符。

但再次强调,这是个小到能在浏览器内直接运行的模型,能有这样的表现已经很可以了。

能在浏览器里运行重要吗?

在 Willison 看来,浏览器其实是大语言模型的绝佳归宿,因为它能提供一个安全的沙箱环境。

本质上讲,大语言模型是种颇具风险的技术。倒不是说它们可能突然觉醒过来并打算干掉人类——这纯纯是科幻小说的臆想——但仍有危险的一面。因为无论指令来自何处,它们都会无脑加以执行。一旦总结了错误的网页,攻击者就可能诱导大语言模型助手泄露关于你自己的所有私人数据、删除所有电子邮件,甚至造成更严重的后果。

这就是所谓“提示注入”,哪怕是对于个人 AI 助手,这类攻击也可能在极端状况下引发巨大的风险。

为了安全地运行个人 AI 助手,我们需要借助沙箱,在这样的隔离环境下认真控制 AI 所能使用的信息和工具。网络浏览器则是我们开发出的最为可靠的沙箱环境。

浏览器沙箱能帮助我们应对以下一系列安全挑战:

使用 CORS 和 Content-Security-Policy 作为额外安全层,控制助手所能访问的具体 HTTP API。

想用助手生成并执行代码?别忘了 WebAssembly 沙箱,这项在全部主流浏览器上得到长期支持的功能能够稳定可靠地完成这项工作。虽然在浏览器之外也不是不能解决问题,但浏览器的确是个极为强大、也非常可靠的方案原语,值得大家认真考量。

再来看看 Vicuna 模型的底层工作原理:Vicuna 是一款开源聊天机器人,训练数据来自 ShareGPT 收集的用户共享对话,并由 LLaMA 模型微调而来。

Facebook 打造的 LLaMA 仅授权用于非商业和研究目的。ShareGPT 则是人们分享自己 ChatGPT 记录的网站,也就是说这个微调模型完全建立在不符合许可条款的数据基础之上。(OpenAI 在条款中规定不得使用这些数据来训练与其竞争的语言模型。)

所以在 Vicuna 之上建立的内容将受到严格限制。

不过跟之前的 LLaMA 和 Alpaca 一样,Vicuna 最令人兴奋的地方在于它所展示出的可能性:现在,我们终于能纯在浏览器内运行一套功能强大的大语言模型。虽然对应的浏览器还仅是 beta 版,同时要求使用配置极高的笔记本电脑,但这仍然是把不可能化为了可能。

下一个值得期待的里程碑,无疑是完全开放许可的大语言模型——类似于 Dolly 2。如果它也能使用 Web LLM 演示中的同类栈完全在浏览器内运行,那么 AI 时代将翻开新的篇章。

推荐内容