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