## 土炮版「AI in a Box」 (Homemade version of "AI in a Box") ### 「AI in a Box」是什麼? 以下摘錄自「[Edge AI Taiwan邊緣智能交流區](https://www.facebook.com/groups/edgeaitw/posts/3536172506670090/)」,圖片來自[AI in a Box](https://www.crowdsupply.com/useful-sensors/ai-in-a-box/): >TinyML大老Pete Warden開的公司「Useful Sensors」這次竟看上離線式LLM應用,開啟網路募資專案,名為「AI in Box」,其主板使用RockChip 3588S (SoC with NPU, 8 GB DRAM),預計可以用在即時字幕機、語音對談、即時翻譯及語音鍵盤等功能。 ![Imgur](https://i.imgur.com/qyTnZpg.png) ### 什麼是土炮版(Homemade version)的「AI in a Box」? 「AI in a Box」的軟體在人工智慧方面使用到的是Whisper與Llama2這兩個開放原始碼模型,因此只要考慮在本地端(local)/邊緣端(edge)運作這兩個模型(Whisper與Llama2)應該就可以達到與之相同的功能。因此找一台中古電腦(Intel Core i5微型主機)與周邊設備來嘗試著達成這件事,並且仿照「AI in a Box」的原型來做規劃: ![Imgur](https://i.imgur.com/iLW1EDk.png) 目前架設起來的情況如下: ![Imgur](https://i.imgur.com/Mr0xa8o.png) 兩者之間的規格比較: | **大老正版** | **土炮版** | | -------- | -------- | | RockChip 3588S SoC with NPU | Inel Core i5-8500 | | 8 GB DRAM | 16GB DDR4 SDRAM | | Built-in display, speakers, and microphone | External display, microphone and headphone | | Custom enclosure | Homemade Composition | | Ubuntu 22.04 OS | Windows 10 Pro OS | 這真的是在家中的一個角落:老化的電腦螢幕有斑塊、麥克風用的是SONY隨身聽附贈的以及鍵盤滑鼠是之前做樹莓派開發時所留下的。另外2019年出產的微型主機當然不會自帶NPU,之後若有運算需要則插上一根Deep Learning on a USB Stick(這樣看起來更像「土炮」);只是目前還沒找到合適的裝置,再請各位先進不吝指教。 接下來軟體才是開發的重點。兩個模型(Whisper與Llama2)要在本地端(local)/邊緣端(edge)運行在不依賴GPU的情況下一定需要進行最佳化(優化),其中一種手段是將模型量化而另一種手段是撰寫特定且優化的推論程式庫。這部分還好有[先賢先烈](https://github.com/ggerganov)已經完成這方面的工作: * Whisper : [whisper.cpp](https://github.com/ggerganov/whisper.cpp) * Llama2 : [llama.cpp](https://github.com/ggerganov/llama.cpp) 有了軟體框架,但對於說中文這件事還需要相對應的模型;以下引用「Edge AI Taiwan邊緣智能交流區」的[內容](https://www.facebook.com/groups/edgeaitw/posts/3581983365422337/): > 台版ChatGPT (TAIDE) 7B即將上線,如報導所言「以開源LLM為基礎,利用自行建置的繁中語料,來對LLM進行連續預訓練(Continual pretraining)、微調和人類回饋強化學習(RLHF)等3階段優化,完成品即是TAIDE模型。」,相信此次應該不會有上次為了求快產生的翻車事件。目前各種7B模型大概是最有機會在邊緣裝置上運行,希望不久後能有大神分享使用心得。 https://www.ithome.com.tw/news/160092 等看看何時會有開放模型提供? ### 為什麼會有這個想法? 這個專案的想法起源是來自於「Edge AI Taiwan邊緣智能交流區」中關於[「AI in Box」](https://www.facebook.com/groups/edgeaitw/posts/3536172506670090/)的討論,最後我說到: > 後來看了一下用whisper.cpp加上llama.cpp這兩個專案(作者的GitHub: https://github.com/ggerganov ),應該就可以做到相同的功能。有空會找台沒在用的電腦試著製作自己的AI-In-A-Box 😆。 坐而言不如起而行,因此開始著手規劃【土炮版「AI in a Box」】專案! ### 現在才開始! 之後會在HackMD的[AI in a Box](https://hackmd.io/@ai-in-a-box/index)團隊內發佈接下來有關軟體實作的內容。