Web LLM

将语言模型聊天直接带到 Web 浏览器上
授权协议 Apache-2.0
开发语言 Python JavaScript
所属分类 神经网络/人工智能、 机器学习/深度学习
软件类型 开源软件
地区 不详
投 递 者 安高义
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Web LLM 是一个可将大型语言模型和基于 LLM 的聊天机器人引入 Web 浏览器的项目。一切都在浏览器内运行,无需服务器支持,并使用 WebGPU 加速。这开辟了许多有趣的机会,可以为每个人构建 AI 助手,并在享受 GPU 加速的同时实现隐私。

查看演示网页以进行试用

Web LLM 中采用的关键技术是机器学习编译(MLC)。该解决方案建立在开源生态系统的基础上,包括 Hugging Face、来自 LLaMA 和 Vicuna 的模型变体、wasm 和 WebGPU;主要流程则建立在 Apache TVM Unity 之上。

  • 在具有原生动态形状支持的 TVM 中烘焙语言模型的 IRModule,避免了填充到最大长度的需要,并减少了计算量和内存使用量。
  • TVM 的 IRModule 中的每个功能都可以进一步转换并生成可运行的代码,这些代码可以普遍部署在最小 tvm 运行时(JavaScript 是其中之一)支持的任何环境中。
  • TensorIR是用于生成优化程序的关键技术。开发团队通过结合专家知识和自动调度程序快速转换 TensorIR 程序来提供高效的解决方案。
  • 启发式算法用于优化轻量级运算符以减轻工程压力。
  • 利用 int4 量化技术来压缩模型权重,以便它们可以适合内存。
  • 构建静态内存规划优化以跨多个层重用内存。
  • 使用Emscripten和 TypeScript 构建一个可以部署生成的模块的 TVM web 运行时。
  • 还利用了 SentencePiece 分词器的 wasm 端口。

具体来说,团队大量使用了 TVM unity,它实现了这种 Python 优先的交互式 MLC 开发体验,使得能够轻松地编写新的优化。

TVM unity 还提供了一种在生态系统中组合新解决方案的简便方法。Web LLM 开发团队将继续带来进一步的优化,例如融合量化内核,并将它们带到更多平台上。

LLM 模型的一个关键特征是模型的动态特性。由于解码和编码过程依赖于随着令牌大小而增长的计算,Web LLM​​​​​​​ 团队利用 TVM 统一中一流的动态形状支持,通过符号整数表示序列维度。使得其能够提前计划静态分配感兴趣的序列窗口所需的所有内存,而无需填充。

还利用张量表达式的集成来快速表达部分张量计算,例如直接旋转嵌入,而无需将它们具体化为全张量矩阵计算。

除了 WebGPU 运行时,Web LLM​​​​​​​ 还提供使用本地 GPU 运行时进行本机部署的选项。因此它们既可以用作在本机环境上部署的工具,也可以用作比较本机 GPU 驱动程序性能和 WebGPU 的参考点。

 相关资料
  • 浏览器模型概述 window 对象 Navigator 对象,Screen 对象 Cookie XMLHttpRequest 对象 同源限制 CORS 通信 Storage 接口 History 对象 Location 对象,URL 对象,URLSearchParams 对象 ArrayBuffer 对象,Blob 对象 File 对象,FileList 对象,FileReader 对象 表单,F

  • Web浏览器 web 浏览器(通常被称为浏览器)是一个用于检索、展示和遍历在万维网上的信息资源的软件应用程序. 信息资源被定义成统一资源定位符(URI/URL). 它可能是网页, 图片, 视频或者一个内容片断. 超链接的出现使用户能轻松的将浏览器导航到相关的资源, 尽管浏览器主要是为了使用万维网, 但它们还可以用来访问 Web服务器在私人网络所提供的信息或文件在文件系统. - Wikipedia

  • 是否可以创建一个html表单,允许Web用户直接将文件上传到azure blob store,而不使用其他服务器作为中介?S3和GAW blob store都允许这样做,但我找不到对azure blob存储的任何支持。

  • 内部Web浏览器 内部Web浏览器视图允许您从Eclipse Workbench窗口中浏览Internet。 要激活内部Web浏览器视图,请单击窗口,然后选择显示视图→其他。 在“显示视图”对话框的过滤器文本框中,输入浏览器 。 从树中选择Internal Web Browser ,然后单击OK 。 要导航到网页,请在“内部Web浏览器”视图的“URL”文本框中输入该网页的URL。

  • 主要内容:Eclipse Web浏览器Eclipse Web浏览器 Internal Web Browser 视图允许您从 Eclipse Workbench 窗口内浏览 Internet。要激活内部 Web 浏览器视图,请单击窗口并选择 “Show View” → Other。 在“Show View”对话框的过滤器文本框中输入browser。从树中选择内部 Web 浏览器并单击确定。 要导航到网页,请在内部 Web 浏览器视图的

  • Web/浏览器 API BOM 和 DOM 并不是唯一的浏览器 API, 在浏览器内部的 Web 平台上, 它们是可用的. DOM 和 BOM 并不是一切, 但是一个用于浏览器编程的接口可以被认识一个 Web 或者 浏览器 API(悲剧的是, 这些 API 曾被称为 HTML 5 API, 这会和 HTML 5 自身的规范/标准混淆, 因为 HTML 5 规范特指 HTML 5 标记语言). We

  • 问题内容: 我使用以下PHP脚本作为网站索引。 该脚本应包括一个特定页面,具体取决于浏览器的语言(自动检测到)。 该脚本无法在所有浏览器上正常运行,因此它始终包含任何检测到的语言(问题的原因很可能是未考虑某些Accept- Language标头的问题)。 您能否建议我一个更强大的解决方案? 问题答案: 你为什么不保持它简单干净

  • ECMAScript 是 JavaScript 的核心,但如果要在 Web 中使用 JavaScript,那么 BOM(浏览器对象模型)则无疑才是真正的核心。BOM 提供了很多对象,用于访问浏览器的功能,这些功能与任何网页内容无关。多年来,缺少事实上的规范导致 BOM 有很多问题,因为浏览器提供商会按照各自的想法随意去扩展它。W3C 为了把浏览器中 JavaScript 最基本的部分标准化,已经将