WebGPT VS WebGPU

推荐:使用 NSDT编辑器 快速搭建3D应用场景

随着WebGPU的引入,Web开发发生了有趣的转变,WebGPU是一种新的API,允许Web应用程序直接访问设备的图形处理单元(GPU)。这种发展意义重大,因为 GPU 擅长复杂的计算。

一个说明WebGPU潜力的项目是WebGPT。这是一个用JavaScript和HTML编写的简单应用程序,旨在展示WebGPU API的功能。

在这篇文章中,我们将讨论为什么 WebGPT 很重要以及如何在本地和浏览器中实现它。我们走吧!

跳跃前进:

  • 什么是 WebGPT 和 WebGPU?
  • 实现 WebGPT
  • 在浏览器中运行 WebGPT
  • 在本地运行 WebGPT
  • 使用自定义 WebGPT 模型
  • WebGPT 的挑战和局限性
  • GPT 和其他变压器模型的未来

什么是 WebGPT 和 WebGPU?

在我们深入研究 WebGPT 的实际实现之前,让我们简要介绍一下它在幕后是如何工作的。

WebGPT 是转换器模型的 JavaScript 和 HTML 实现,转换器模型是一种特定的机器学习模型,旨在有效地处理序列数据。在自然语言处理 (NLP) 中,序列数据通常是指文本,其中单词和字符的顺序对其含义至关重要;序列的各个部分与整体一样重要。

转换器模型是擅长处理 NLP 序列数据的机器学习模型。这些模型构成了许多最先进的自然语言处理模型的基础,包括GPT(生成预训练转换器)。

WebGPT 的转换器模型旨在与 WebGPU 配合使用,WebGPU 是一个允许 Web 应用程序访问和使用设备GPU 的 API。GPU 特别擅长执行机器学习模型所需的并行计算类型,使其成为 WebGPT 的强大资源。

在WebGPU之前,应用程序必须主要依赖于设备的中央处理器(CPU)或较旧的,效率较低的API,如WebGL。相比之下,WebGPT 使用明确设计的转换器模型,以使用 WebGPU API 在浏览器中运行。

当 WebGPT 接收到输入时,它使用其转换器模型来处理数据。借助WebGPU API,它可以在用户设备上本地执行计算。然后,结果直接在浏览器中返回,从而实现快速高效的执行。

将如此强大的机器学习模型引入浏览器对 Web 开发具有深远的影响,包括:

  1. 实时数据处理:当可以在客户端完成计算时,有可能以最小的延迟进行实时数据处理。这可以改变一系列应用程序的用户体验,从交互式工具和游戏到实时分析。
  2. 增强的隐私:由于数据处理在用户设备上本地进行,因此无需将潜在的敏感数据发送到服务器。对于处理个人或敏感数据的应用程序来说,这可能会改变游戏规则,从而增强用户的信任和隐私。
  3. 成本效益:公司可以通过将计算负载从服务器转移到客户端来节省服务器成本。这可以使小型公司或个人开发人员可以使用高级机器学习功能。

实现 WebGPT

WebGPT被设计为易于使用:它只需要一组HTML和JavaScript文件即可运行。但是,由于WebGPU是一项相当新的技术,因此您需要与WebGPU兼容的浏览器。

截至 2023 年 113 月,Chrome v<> 支持 WebGPU。另一种方法是安装 Chrome Canary 或 Edge Canary 以确保兼容性。

在浏览器中运行 WebGPT

您可以直接在其演示网站上试用 WebGPT,网址为 https://www.kmeans.org。远程加载模型权重可能比在本地加载模型权重慢,因此为了获得响应速度更快的体验,建议尽可能在本地运行 WebGPT。

在本地运行 WebGPT

若要在本地运行 WebGPT,请执行以下步骤:

  1. 克隆 WebGPT 存储库:您可以通过在终端中运行以下命令来克隆存储库:git clone https://github.com/0hq/WebGPT.git
  2. 安装 Git LFS:克隆存储库后,需要使用 Git LFS 下载模型文件,Git LFS 是一个 Git 扩展,允许您在 Git 存储库中存储大文件。在本地计算机上安装 Git LFS,然后导航到终端中的 WebGPT 目录并运行:git lfs install
  3. 下载模型文件:之后,运行以下命令下载模型文件:git lfs pull
  4. 在本地服务器上启动 WebGPT 文件:您可以使用简单的 HTTP 服务器或像 Live Server for Visual Studio Code 这样的工具。
  5. 在浏览器中打开 WebGPT 页面:导航到运行 WebGPT 的本地服务器的 URL。您应该会看到如下所示的页面:

我们的网络GPT页面

我们的网络GPT页面

单击任意“加载模型”按钮以加载模型权重。之后,您可以在输入框中输入文本,然后单击 生成 根据输入生成文本。

我们的 WebGPT 演示在实际应用

我们的 WebGPT 演示在实际应用

使用自定义 WebGPT 模型

WebGPT 有两个内置模型:一个小型 GPT-莎士比亚模型和具有 2.117 亿个参数的 GPT-<>。如果要使用自定义模型,请检查存储库中的脚本目录,以将 PyTorch 模型转换为 WebGPT 可以使用的格式。other/conversion_scripts

以下是我们的目录:

我们的转换脚本目录

我们的转换脚本目录

WebGPU 的挑战和局限性

由于 WebGPT 建立在 WebGPU 之上,因此了解 WebGPU 的挑战和局限性非常重要。虽然WebGPU是一项有前途的技术,但它仍然是一个相对较新的API,因此它有一些挑战需要克服。其中一些包括:

  • 缺乏浏览器支持:并非所有浏览器目前都支持 WebGPU,即使是那些支持 WebGPU 的浏览器也可能没有完全支持。这可能会使开发和部署 WebGPU 应用程序变得困难,更不用说部署它们供公众使用了。
  • 复杂性:WebGPU 是一个复杂的 API,可能很难学习和使用。对于不熟悉低级图形 API 的开发人员来说,这可能是一个进入障碍
  • 性能:在某些情况下,WebGPU可能比WebGL慢,尤其是在较旧的硬件上。这是因为 WebGPU 是一个更低级别的 API,可能需要更多时间来编译着色器和设置图形管道

随着API的成熟和越来越多的浏览器支持它,我们可以期待看到这些挑战得到解决。与此同时,像WebGPT这样的工具可以帮助实验和采用WebGPU。

GPT 和其他变压器模型的未来

GPT 和类似模型由于其高计算需求而主要在服务器上运行;但是,WebGPT 表明这些模型可以直接在浏览器中运行,提供的性能可能与基于服务器的设置相媲美。

借助 WebGPU 等技术和 WebGPT 等项目提供的功能,我们可以将 GPT 等转换器模型的使用扩展相当多。随着技术的成熟和优化的改进,我们可以看到更大的模型在浏览器中流畅运行。


超过 200 万开发人员使用 LogRocket 创造更好的数字体验

了解更多→


这可以提高Web应用程序中高级AI功能的可用性,从更复杂的聊天机器人到强大的实时文本分析和生成工具,甚至加速变压器模型的研究和开发。通过使部署这些模型更容易、更便宜,更多的开发人员和研究人员将有机会试验和改进它们。

结论

通过 WebGPU 将高级机器学习模型引入浏览器为开发人员提供了许多机会,它提出了一个未来的愿景,即 Web 应用程序更强大、响应更快、更注重隐私。

原文链接:WebGPT VS WebGPU (mvrlink.com)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/60201.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】用户管理

之前我们一直都使用root身份来对mysql进行操作&#xff0c;但这样存在安全隐患。这时&#xff0c;就需要使用MySQL的用户管理 目录 一、用户 1.1 用户信息 1.2 添加用户 1.3 删除用户 1.4 修改用户密码 二、用户权限 2.1 赋予授权 2.2 回收权限 一、用户 1.1 用户信息…

【Axure高保真原型】中继器网格图片拖动摆放

今天和大家分享中继器网格图片拖动摆放的原型模板&#xff0c;我们可以通过鼠标拖动来移动图片&#xff0c;拖动过程其他图标会根据图片拖动自动排列&#xff0c;松开鼠标是图片停放在指定位置&#xff0c;其他图标自动排列。那这个模板是用中继器制作的&#xff0c;所以使用也…

[机器学习]分类算法系列①:初识概念

目录 1、概念 2、数据集介绍与划分 2.1、数据集的划分 2.2、sklearn数据集介绍 2.2.1、API 2.2.2、分类和回归数据集 分类数据集 回归数据集 返回类型 3、sklearn转换器和估计器 3.1、转换器 三种方法的区别 3.2、估计器 3.2.1、简介 3.2.2、API 3.3、工作流程 …

【软考】系统集成项目管理工程师(一)信息化基础知识【6分】

一、信息与信息系统 1、信息技术 为解决信息的采集、加工、存储、传输、处理、计算、转换、表现等问题而不断繁荣发展 核心-传输技术&#xff08;通常指通信、网络等&#xff09; 2、信息的质量属性 特点&#xff1a;客观性、普遍性 属性描述精确性对事物状态描述的精准程度…

图书馆项目Java阅览室管理系统jsp源代码MySQL

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 图书馆项目 系统有1权限&#xff1a;管理员 用所技术…

LeetCode 面试题 02.01. 移除重复节点

文章目录 一、题目二、C# 题解 一、题目 编写代码&#xff0c;移除未排序链表中的重复节点。保留最开始出现的节点。 点击此处跳转题目。 示例1: 输入&#xff1a;[1, 2, 3, 3, 2, 1] 输出&#xff1a;[1, 2, 3] 示例2: 输入&#xff1a;[1, 1, 1, 1, 2] 输出&#xff1a;[1, …

Centos7 安装 docker

1、前提条件 目前&#xff0c;CentOS 仅发行版本中的内核支持 Docker。Docker 运行在CentOS7 (64)上&#xff0c; 要求系统为64位、Linux系统内核版本为 3.8以上 查看自己系统的内核 cat /etc/redhat-release 或 uname -r 2、卸载旧版本 旧版本的 Docker 的名称为docker或doc…

【注册岩土】Python土力学与基础工程计算.PDF-摩尔-库伦强度理论

8.3 Python求解 Python求解代码如下&#xff1a; 1.import math 2. 3.sigma1 300 # 最大主应力&#xff0c;单位 kPa 4.sigma3 100 # 最小主应力&#xff0c;单位 kPa 5.alpha 30 # m-n面与最小主应力方向夹角&#xff0c;单位度 6. 7.rad_alph…

【MYSQL学习笔记】管理MYSQL和使用MYSQL语句

一、前言 MySQL提供了大量的SQL语句用于管理。很多时候&#xff0c;通过SSH远程连接时&#xff0c;只能使用SQL命令&#xff0c;所以&#xff0c;了解并掌握常用的SQL管理操作是必须的。 二、管理MYSQL 输入SQL后&#xff0c;记得加一个;&#xff0c;再回车执行该语句。虽然…

Matlab图像处理-图像旋转

基本概念 图像的旋转变换属于图像的位置变换&#xff0c;通常是以图像的中心为原点&#xff0c;将图像上的所有像素都旋转一个相同的角度。旋转后&#xff0c;图像的大小一般会改变。图像的旋转变换是指以图像的中心为原点&#xff0c;将图像上的所有像素都旋转同一个角度的变…

MFA 与 ADSelfService Plus 的身份验证!

随着信息技术的不断进步&#xff0c;网络威胁也在不断演化。为了保护敏感数据和网络资源&#xff0c;企业和组织需要采取更多的安全措施。多重因素认证&#xff08;MFA&#xff09;已经成为了现代安全战略的核心组成部分之一。在这篇文章中&#xff0c;我们将深入探讨MFA&#…

AUTOSAR规范与ECU软件开发(实践篇)7.4 MCAL模块配置方法及常用接口函数介绍之Port的配置

目录 1、前言 2 、Port模块 (1) Port General配置 (2) PortConfigSet配置

Java-API简析_java.io.FilePermission类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/132594530 出自【进步*于辰的博客】 因为我发现目前&#xff0c;我对Java-API的学习意识比较薄弱…

ubuntu系统安装tensorRT-8.6.1版本(2023-8月最新版)

目录 前言pip安装可能出现的报错&#xff1a; tar.gz安装 前言 看了无数教程和b站视频&#xff0c;啊啊啊啊啊啊啊啊啊啊啊tensorRT要我狗命啊。我要写全网tensorRT最全的博客!!! 总体来说成功安装方式有两种&#xff0c;pip安装和tar.gz安装&#xff08;其实官网安装方式居多…

腾讯云服务器镜像TencentOS Server有用过的吗?

腾讯云服务器镜像TencentOS Server操作系统有用过的吗&#xff1f;踩过坑吗&#xff1f;TencentOS性能和稳定性如何&#xff1f;TencentOS Server与CentOS保持兼容&#xff0c;在稳定性、性能、容器基础设施等核心能力方面做了全面的增强和优化&#xff0c;能为企业提供稳定高可…

Python基础算法——反转链表

视频详解&#xff1a;https://www.bilibili.com/video/BV1sd4y1x7KN/?spm_id_from333.788&vd_source11069f01f7471094186b646e3a184ca3 一、反转链表 LeetCode 206题&#xff1a;https://leetcode.cn/problems/reverse-linked-list/description/ 给你单链表的头节点 h…

NTP时钟同步服务器

目录 一、什么是NTP&#xff1f; 二、计算机时间分类 三、NTP如何工作&#xff1f; 四、NTP时钟同步方式&#xff08;linux&#xff09; 五、时间同步实现软件&#xff08;既是客户端软件也是服务端软件&#xff09; 六、chrony时钟同步软件介绍 七、/etc/chrony.conf配置文件介…

JAVA中,继承父类和重写父类方法有什么区别?

在Java中&#xff0c;继承和重写都是面向对象编程的重要概念&#xff0c;但它们有着完全不同的作用&#xff1a; 继承&#xff1a;继承是对象之间的一种关系&#xff0c;子类&#xff08;派生类&#xff09;会继承父类&#xff08;基类&#xff09;的属性&#xff08;成员变量&…

C++11 std::transform函数使用说明

std::transform是C标准库中的一个算法&#xff0c;它用于对输入范围内的元素进行操作&#xff0c;并将结果存储在输出范围内。这个算法特别适合于将一种数据类型转换为另一种数据类型。 函数定义在头文件algorithm中 std::transform的基本语法如下&#xff1a; std::transfor…

26.仪表板侧边栏菜单

效果 源码 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Sidebar Menu</title> <link rel="stylesheet" type="text/css"…