簡(jiǎn)述WebGPT,你學(xué)會(huì)了嗎?
原文作者:Ebenezer Don
原文地址:https://blog.logrocket.com/introduction-webgpt/
翻譯:一川
隨著WebGPU的引入,Web開發(fā)發(fā)生了有趣的轉(zhuǎn)變,WebGPU是一種新的API,允許Web應(yīng)用程序直接訪問設(shè)備的圖形處理單元(GPU)。這種發(fā)展意義重大,因?yàn)?GPU 擅長(zhǎng)復(fù)雜的計(jì)算。
一個(gè)說(shuō)明WebGPU潛力的項(xiàng)目是WebGPT。這是一個(gè)用JavaScript和HTML編寫的簡(jiǎn)單應(yīng)用程序,旨在展示W(wǎng)ebGPU API的功能。
在這篇文章中,我們將討論為什么 WebGPT 很重要以及如何在本地和瀏覽器中實(shí)現(xiàn)它。
什么是 WebGPT 和 WebGPU?
在我們深入研究 WebGPT 的實(shí)際實(shí)現(xiàn)之前,讓我們簡(jiǎn)要介紹一下它在幕后是如何工作的。
WebGPT[https://github.com/0hq/WebGPT]是Transformer模型的 JavaScript 和 HTML 實(shí)現(xiàn),Transformer模型是一種特定的機(jī)器學(xué)習(xí)模型,旨在有效地處理序列數(shù)據(jù)。在自然語(yǔ)言處理 (NLP) 中,序列數(shù)據(jù)通常是指文本,其中單詞和字符的順序?qū)ζ浜x至關(guān)重要;序列的各個(gè)部分與整體一樣重要。
Transformer模型是擅長(zhǎng)處理 NLP 序列數(shù)據(jù)的機(jī)器學(xué)習(xí)模型。這些模型構(gòu)成了許多最先進(jìn)的自然語(yǔ)言處理模型的基礎(chǔ),包括GPT(生成預(yù)訓(xùn)練Transformer)。
WebGPT 的Transformer模型旨在與 WebGPU 配合使用,WebGPU 是一個(gè)允許 Web 應(yīng)用程序訪問和使用設(shè)備GPU 的 API。GPU 特別擅長(zhǎng)執(zhí)行機(jī)器學(xué)習(xí)模型所需的并行計(jì)算類型,使其成為 WebGPT 的強(qiáng)大資源。
在WebGPU之前,應(yīng)用程序必須主要依賴于設(shè)備的中央處理器(CPU)或較舊的、效率較低的API,如WebGL。相比之下,WebGPT 使用明確設(shè)計(jì)的Transformer模型,以使用 WebGPU API 在瀏覽器中運(yùn)行。
當(dāng) WebGPT 接收到輸入時(shí),它使用其Transformer模型來(lái)處理數(shù)據(jù)。借助WebGPU API,它可以在用戶設(shè)備上本地執(zhí)行計(jì)算。然后,結(jié)果直接在瀏覽器中返回,從而實(shí)現(xiàn)快速高效的執(zhí)行。
將如此強(qiáng)大的機(jī)器學(xué)習(xí)模型引入瀏覽器對(duì) Web 開發(fā)具有深遠(yuǎn)的影響,包括:
- 實(shí)時(shí)數(shù)據(jù)處理:當(dāng)可以在客戶端完成計(jì)算時(shí),有可能以最小的延遲進(jìn)行實(shí)時(shí)數(shù)據(jù)處理。這可以改變一系列應(yīng)用程序的用戶體驗(yàn),從交互式工具和游戲到實(shí)時(shí)分析。
- 增強(qiáng)的隱私:由于數(shù)據(jù)處理在用戶設(shè)備上本地進(jìn)行,因此無(wú)需將潛在的敏感數(shù)據(jù)發(fā)送到服務(wù)器。對(duì)于處理個(gè)人或敏感數(shù)據(jù)的應(yīng)用程序來(lái)說(shuō),這可能會(huì)改變游戲規(guī)則,從而增強(qiáng)用戶的信任和隱私。
- 成本效益:公司可以通過將計(jì)算負(fù)載從服務(wù)器轉(zhuǎn)移到客戶端來(lái)節(jié)省服務(wù)器成本。這可以使小型公司或個(gè)人開發(fā)人員可以使用高級(jí)機(jī)器學(xué)習(xí)功能。
實(shí)現(xiàn) WebGPT
WebGPT被設(shè)計(jì)為易于使用:它只需要一組HTML和JavaScript文件即可運(yùn)行。但是,由于WebGPU是一項(xiàng)相當(dāng)新的技術(shù),因此您需要與WebGPU兼容的瀏覽器[https://caniuse.com/webgpu]。
截至 2023 年 7 月,Chrome v113 支持 WebGPU。另一種方法是安裝 Chrome Canary 或 Edge Canary 以確保兼容性。
在瀏覽器中運(yùn)行 WebGPT
您可以直接在其演示網(wǎng)站上試用 WebGPT,網(wǎng)址為 https://www.kmeans.org。遠(yuǎn)程加載模型權(quán)重可能比在本地加載模型權(quán)重慢,因此為了獲得響應(yīng)速度更快的體驗(yàn),建議盡可能在本地運(yùn)行 WebGPT。
在本地運(yùn)行 WebGPT
若要在本地運(yùn)行 WebGPT,請(qǐng)執(zhí)行以下步驟:
- 克隆 WebGPT 存儲(chǔ)庫(kù):您可以通過在終端中運(yùn)行以下命令來(lái)克隆存儲(chǔ)庫(kù):
git clone https://github.com/0hq/WebGPT.git
- 安裝 Git LFS:克隆存儲(chǔ)庫(kù)[https://blog.logrocket.com/efficiently-manage-large-files-git-with-git-lfs/]后,您需要使用 Git LFS 下載模型文件,Git LFS 是一個(gè) Git 擴(kuò)展,允許您在 Git 存儲(chǔ)庫(kù)中存儲(chǔ)大文件。在本地計(jì)算機(jī)上安裝 Git LFS,然后導(dǎo)航到終端中的 WebGPT 目錄并運(yùn)行:
git lfs install
- 下載模型文件:之后,運(yùn)行以下命令下載模型文件:
git lfs pull
- 在本地服務(wù)器上啟動(dòng) WebGPT 文件:您可以使用簡(jiǎn)單的 HTTP 服務(wù)器或像 Live Server for Visual Studio Code 這樣的工具。
- 在瀏覽器中打開 WebGPT 頁(yè)面:導(dǎo)航到運(yùn)行 WebGPT 的本地服務(wù)器的 URL。您應(yīng)該會(huì)看到如下所示的頁(yè)面:
圖片
單擊任意“加載模型”按鈕以加載模型權(quán)重。之后,您可以在輸入框中輸入文本,然后單擊 生成 根據(jù)輸入生成文本。
圖片
使用自定義 WebGPT 模型
WebGPT 有兩個(gè)內(nèi)置模型:一個(gè)小型 GPT-Shakespeare模型和具有 1.17 億個(gè)參數(shù)的 GPT-2。如果要使用自定義模型,請(qǐng)檢查存儲(chǔ)庫(kù)[https://github.com/0hq/WebGPT]中的 other/conversion_scripts 腳本目錄,以將 PyTorch 模型轉(zhuǎn)換為 WebGPT 可以使用的格式。
以下是我們的目錄:
圖片
WebGPU 的挑戰(zhàn)和局限性
由于 WebGPT 建立在 WebGPU 之上,因此了解 WebGPU 的挑戰(zhàn)和局限性非常重要。雖然WebGPU是一項(xiàng)有前途的技術(shù),但它仍然是一個(gè)相對(duì)較新的API,因此它有一些挑戰(zhàn)需要克服。其中一些包括:
- 缺乏瀏覽器支持:并非所有瀏覽器目前都支持 WebGPU,即使是那些支持 WebGPU 的瀏覽器也可能沒有完全支持。這可能會(huì)使開發(fā)和部署 WebGPU 應(yīng)用程序變得困難,更不用說(shuō)部署它們供公眾使用了。
- 復(fù)雜性:WebGPU 是一個(gè)復(fù)雜的 API,可能很難學(xué)習(xí)和使用。對(duì)于不熟悉低級(jí)圖形 API 的開發(fā)人員來(lái)說(shuō),這可能是一個(gè)進(jìn)入障礙
- 性能:在某些情況下,WebGPU可能比WebGL慢,尤其是在較舊的硬件上。這是因?yàn)?WebGPU 是一個(gè)更低級(jí)別的 API,可能需要更多時(shí)間來(lái)編譯著色器和設(shè)置圖形管道
GPT 和其他變壓器模型的未來(lái)
GPT 和類似模型由于其高計(jì)算需求而主要在服務(wù)器上運(yùn)行;但是,WebGPT 表明這些模型可以直接在瀏覽器中運(yùn)行,提供的性能可能與基于服務(wù)器的設(shè)置相媲美。
借助 WebGPU 等技術(shù)和 WebGPT 等項(xiàng)目提供的功能,我們可以將 GPT 等轉(zhuǎn)換器模型的使用擴(kuò)展相當(dāng)多。隨著技術(shù)的成熟和優(yōu)化的改進(jìn),我們可以看到更大的模型在瀏覽器中流暢運(yùn)行。
這可以提高Web應(yīng)用程序中高級(jí)AI功能的可用性,從更復(fù)雜的聊天機(jī)器人到強(qiáng)大的實(shí)時(shí)文本分析和生成工具,甚至加速變壓器模型的研究和開發(fā)。通過使部署這些模型更容易、更便宜,更多的開發(fā)人員和研究人員將有機(jī)會(huì)試驗(yàn)和改進(jìn)它們。
總結(jié)
通過 WebGPU 將高級(jí)機(jī)器學(xué)習(xí)模型引入瀏覽器為開發(fā)人員提供了許多機(jī)會(huì),它提出了一個(gè)未來(lái)的愿景,即 Web 應(yīng)用程序更強(qiáng)大、響應(yīng)更快、更注重隱私。
雖然該技術(shù)仍然相對(duì)較新,并且需要克服挑戰(zhàn),例如優(yōu)化性能和確保大模型的穩(wěn)定性,但潛在的好處是顯著的。隨著開發(fā)人員開始接受和試驗(yàn)這些工具,我們可以期待看到更多令人印象深刻的實(shí)現(xiàn),如 WebGPT 和利用瀏覽器內(nèi)機(jī)器學(xué)習(xí)的新 Web 應(yīng)用程序。