ChatGPT的人性口語化回復(fù)相信許多人已體驗過,也因此掀起一波大型語言模型(Large Language Model, LLM)熱潮,LLM即ChatGPT背后的主運作技術(shù),但LLM運作需要龐大運算力,因此目前多是在云端(Cloud)上執(zhí)行。
然而在云端執(zhí)行也有若干缺點,一是Internet斷線時無法使用;二是或多或少會泄漏個資隱私;三是上傳的話語內(nèi)容會被審查,但審查標準難以捉摸,且已有諸多矯枉過正的案例;四是因為模型已放在云端與人共享,也可能已被他人誤導(dǎo),俗稱模型被教壞了。
所以有些人也希望LLM能在本地端(Local)、本機端執(zhí)行,如此就不怕斷線、泄漏隱私、內(nèi)容審查、誤導(dǎo)等缺點。但要能在本地端執(zhí)行,其LLM就不能太大,目前已經(jīng)有諸多信息技術(shù)專家提出各種嘗試,期望能將云端的LLM輕量化、減肥減肥,以便能在運算力有限的本機端執(zhí)行。
全世界最簡單的類GPT語音助理
對此已有創(chuàng)客發(fā)起項目,項目名就叫World’s Easiest GPT-like Voice Assistant,即世界上最簡單的類GPT語音助理,以此實現(xiàn)完全在本機端執(zhí)行的GPT語音服務(wù),不需要任何Internet聯(lián)機。
至于具體技術(shù)作法,首先是找一片樹莓派單板計算機,例如RPi 4,然后裝上麥克風(fēng)與喇叭,成為語音互動對話的輸入輸出,而后安裝Whisper這套軟件,可以將麥克風(fēng)接收到的語音轉(zhuǎn)成文字,文字喂給LLM。
LLM接收輸入后進行推論處理,處理后的結(jié)果以文字輸出,輸出的文字則透過另一個安裝軟件進行轉(zhuǎn)化,即eSpeak,把文字轉(zhuǎn)成語音后,再透過喇叭發(fā)聲回復(fù)。
用TinyLlama-1.1B模型來實現(xiàn)類GPT語音助理項目
麥克風(fēng)與喇叭只是末梢,重點是在LLM,哪來的輕量型、本機端執(zhí)行的LLM?答案是llamafile項目,這個項目將LLM打包成單一個檔案,如此可方便地分發(fā)(分發(fā)distribute,通俗而言指可以輕易地下載文件、傳遞分享檔案)與執(zhí)行,項目發(fā)起者運用llamafile項目中的TinyLlama-1.1B模型來實現(xiàn)類GPT語音助理。
圖3 llamafile項目官網(wǎng)畫面(圖片來源:GitHub)
TinyLlama-1.1B確實是一個嬌小的LLM,以GPT-3而言就有175B,B即Billion指的是10億,LLM的大小通常以參數(shù)數(shù)目為準,1,750億個參數(shù)的LLM已相當龐大,需要對應(yīng)強大的運算力才能順暢執(zhí)行。
其他龐大的LLM還有MT-NLG,有5,300億個參數(shù),或5,400億個的PaLM等,都難以下放到本機端執(zhí)行,本機端很難有對應(yīng)強大的運算力來跑模型。而TinyLlama-1.1B顧名思義只有11億個參數(shù),參數(shù)大大減少下,本機端是有足夠運算力執(zhí)行該模型。
圖4 llamafile項目提供多種預(yù)訓(xùn)練模型,目前以TinyLlama-1.1B最小,僅760MB(圖片來源:GitHub)
當然,上述所言均是預(yù)訓(xùn)練模型(Pre-Train Model),或近期常稱為基礎(chǔ)模型(Foundation Model, FM),后續(xù)還是可以依據(jù)個人需要再行訓(xùn)練與調(diào)整,以便有更精準、更切合需求的推論結(jié)果。
這個類GPT語音助理項目完成上述后,實際測試的結(jié)果是,多數(shù)的發(fā)話詢問后需要15秒左右的時間才能回復(fù),復(fù)雜的詢問則要更久的時間。有人可以等或覺得這時間還可以,若覺得太慢或許可以改用運算力更強的RPi 5單板計算機,可能可以快一點。
值得注意的是,這個項目不是用語音關(guān)鍵詞(如Hey! Siri或OK! Google)來喚醒助理,而是設(shè)置一個按鈕,按下去后才讓樹莓派開始接收語音詢問。
另外,這整個項目用的都是開放源代碼及免授權(quán)費的軟件與模型,所以實現(xiàn)成本大概只有單板計算機、喇叭、麥克風(fēng)、按鈕等硬件而已。
其他技術(shù)細節(jié)包含llamafile與Raspberry Pi OS不兼容,所以在樹莓派上是改安裝Ubuntu Linux,更具體而言是64位的Ubuntu Server 22.04.3 LTS。另外,當然也要安裝Python才能操控樹莓派的GPIO接腳,從而能讀取按鈕狀態(tài)(是否被按下)。
小結(jié)
最后,這肯定不是第一個也不是最后一個LLM本地端化的嘗試,各種嘗試正前仆后繼地進行著,有的是提供壓縮工具將原本肥大的LLM加以縮小,有的干脆是原生訓(xùn)練出輕量的LLM,現(xiàn)階段可謂是百家爭鳴。
而筆者個人的看法,1.1B的LLM已經(jīng)很小,或許未來可以更小,但現(xiàn)階段可能改用更強的硬件會更務(wù)實,例如使用有GPU的桌面計算機,或給樹莓派加裝AI硬件加速器等,以便讓類GPT語音助理更快速響應(yīng)。
審核編輯:劉清
-
GPIO
+關(guān)注
關(guān)注
16文章
1204瀏覽量
52051 -
硬件加速器
+關(guān)注
關(guān)注
0文章
42瀏覽量
12763 -
樹莓派
+關(guān)注
關(guān)注
116文章
1706瀏覽量
105606 -
LLM
+關(guān)注
關(guān)注
0文章
286瀏覽量
327
原文標題:不怕脫機!100%在樹莓派上執(zhí)行的LLM項目
文章出處:【微信號:易心Microbit編程,微信公眾號:易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論