整理從Apple MacBook Pro(2020)到丐版Apple MAC Mini M4上,使用docker版Kuwa GenAI OS的安裝經驗及如何結合mlx-whisper榨出Apple silicon的效能。
打開終端機輸入以下指令:
於compose目錄下加入或調整要使用的模型設定檔,例如參考ollama.yaml
複製,重新命名成ollama-taide.yaml
後,改裡面的內容如下:
之後就可以與直接安裝在MAC上的ollama進行介接(關於Ollama可參考另一篇Kuwa GenAI OS Windows可攜式版本調校筆記-Ollama)。
將docker目錄下的run.sh.sample
複製,重新命名成rum.sh
,改confs=()
裡面的內容如下,如果沒有要用的,可以使用#
進行註解。
編輯multi-chat目錄下的app.env
設定檔
改成
避免在建置過程中因讀不到DEFAULT_LOCALE
,而multi-chat
建置失敗。
可參考另一篇的說明進行調整Kuwa GenAI OS Windows可攜式版本調校筆記-Timeout秒數調整(120變成1200)。
可參考Github上Docker 版安裝教學-更改設定檔
打開終端機輸入以下指令:
再來就是等候一段時間(可能幾小時)。
看到類似下圖,就可以打開遊覽器輸入127.0.0.1
或區域網路下該台MAC的IP位址,進行登入。
若要停止,則回到終端機按下鍵盤control
+c
進行中斷。
下次從終端機啟動,則輸入以下指令:
Kuwa GenAI OS使用的是faster-whisper,在MAC OS上的docker只能用CPU執行,接著面臨的是Timeout。
在不斷地追問ChatGPT和perplexity,如何讓whisper能夠使用MAC上的GPU資源,最後直接Google找到了Apple Silicon專用的AI框架MLX(ml-explore)。
利用ChatGPT產生mlx-whisper API程式碼並進行微調(些微調整…),最後版本(中間的坑就不多說了,但這些都是經驗)為利用Kuwa GenAI OS的聊天室上傳錄音檔,取得錄音檔URL後交給mlx-whisper API進行語音轉文字,在吐逐字稿給Kuwa GenAI OS的聊天室進行輸出。
在終端機切換在Anaconda中建立的虛擬環境mlx。
安裝執行mlx-whisper時,必要的套件(只需執行一次)。
安裝執行API時,必要的套件(只需執行一次)。
將以下mlx-whisper API的原始碼存成Python執行檔(mlx-whisper-url.py)。
於終端機輸入以下指令啟動API。
利用ChatGPT產生Client端程式碼,並在Kuwa GenAI OS上的Python進行驗證,若得到預期結果產生出逐字稿,代表在Kuwa GenAI OS上可行,可以進行下一步。
利用Upload Tool上傳Python執行檔(.py),即可建立Tool及對應的Bot。
Kuwa OS Client的Python程式碼如下:
將模型設定檔變更如下(這裡的py檔名與剛剛用Upload Tool上傳的一致):
可以拿出手機或筆電連接有線或無線區域網路,輸入Apple MAC Mini M4(未接螢幕輸出時,服務掛著耗電只有1W;接上Hdmi,服務掛著耗電也只有3W;執行生成式AI時,大約耗電30W左右)的IP位址。
手機上傳錄音檔,讓Apple MAC Mini M4上的mlx-whisper進行語音轉文字。
mlx-whisper運行時,所耗資源如下:
mlx-whisper產生的逐字稿,在Kuwa GenAI OS上輸出結果。