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