写点什么

大型语言模型也能跑在浏览器上了!又一 ChatGPT 平替诞生,训练成本 8.5 万美元

  • 2023-04-17
    北京
  • 本文字数:2611 字

    阅读完需:约 9 分钟

大型语言模型也能跑在浏览器上了!又一ChatGPT平替诞生,训练成本8.5万美元

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 时代将翻开新的篇章。


参考链接:

https://mlc.ai/web-llm/?continueFlag=fc3a3716774c34de2354e44eababc022

https://simonwillison.net/2023/Apr/16/web-llm/

2023-04-17 14:165744

评论 2 条评论

发布
用户头像
操作一下
2023-04-21 14:25 · 北京
回复
用户头像
AI技术平民化就和个人计算机到来一样, 将是革命
2023-04-18 08:24 · 浙江
回复
没有更多了
发现更多内容

自制操作系统日记(5):跳转到C语言执行

操作系统

CSS高级技巧

默默的成长

CSS 前端 11月月更

初始Java诊断工具-Arthas

石臻臻的杂货铺

Java Arthas 11月月更

算法题学习---删除链表的倒数第n个节点

桑榆

算法题 11月月更

SpringBoot3正式版将于11月24日发布:都有哪些新特性?

艾小仙

Java spring-boot spring、

一年前端面试打怪升级之路

loveX001

JavaScript

开发和学习时需要造一些kafka消息,于是写了段脚本实现,在这里记录备忘,后面会常用到

程序员欣宸

kafka 11月日更

面试官:React怎么做性能优化

beifeng1996

React

IO原理(一):从BIO到NIO

苏格拉格拉

Linux io nio 多路复用

这些js原型及原型链面试题你能做对几道

loveX001

JavaScript

CSS 定位

默默的成长

CSS 前端 11月月更

我的react面试题笔记整理(附答案)

beifeng1996

React

构建高质量的持续交付体系

老张

软件工程 持续交付

从0开始,让你的Spring Boot项目跑在Linux服务器

闫同学

spring Linux 服务器 11月月更

MySQL事务的隔离级别以及脏读、幻读和不可重复读

闫同学

MySQL 事务 11月月更

【Dubbo源码】SPI机制源码解析

石臻臻的杂货铺

dubbo 11月月更

指标体系搭建中需要规避的问题

穿过生命散发芬芳

指标体系 11月月更

前端面试如何回答,这些题目或许可以给你一些提示

loveX001

JavaScript

Linux中传输文件如何做到又快又安全?同学,scp命令了解一下!

wljslmz

Linux 运维 scp 11月月更

湖仓一体电商项目(十一):编写写入DWS层业务代码

Lansonli

湖仓一体电商项目 11月月更

浅谈MVC、MVP、MVVM框架模式

闫同学

mvc MVP MVVM 11月月更 框架模式

透视用户需求深挖服务潜力:2022中国商业查询行业洞察

易观分析

商业 查询

python小知识-单元测试

AIWeker

Python python小知识 11月月更

ISO 8601持续时间格式

HoneyMoose

面试官让你说说react状态管理?

beifeng1996

React

OWASP API安全漏洞类型

阿泽🧸

11月月更 OWASP API

湖仓一体电商项目(九):业务实现之编写写入DIM层业务代码

Lansonli

湖仓一体电商项目 11月月更

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript

2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法。 宏使用如下: #[derive(Builder)] pub stru

福大大架构师每日一题

rust 福大大 过程宏

倒计时3天!银行APP用户体验外滩峰会嘉宾阵容抢先看!

易观分析

App 银行

湖仓一体电商项目(十):业务实现之编写写入DWD层业务代码

Lansonli

湖仓一体 11月月更

大型语言模型也能跑在浏览器上了!又一ChatGPT平替诞生,训练成本8.5万美元_文化 & 方法_凌敏_InfoQ精选文章