在討論區看到網友推薦SakuraLLM可以離線跑翻譯時
就興起了要在工作用的筆電上弄個離線翻譯系統的念頭
然後找著找著就看到Mtranserver這個應用
https://github.com/xxnuo/MTranServer
看來非常的輕量化,決定要來試試
上面要搭配Docker Desktop使用,就抓Docker Desktop下來安裝
裝完要啟用時,出現使用條款提示,其中一個條款:
員工超過250人以上或年營業額千萬以上公司要付費
商用要付費的話,那...換其它的替代軟體吧
趕快移除掉Docker desktop後,替代品很快就找到了,就是Podman desktop
可是這兩個是不同的軟體,雖說應用與指令的同質性很高
但還是有點不同,加上根本沒碰過這種「容器管理」的應用
花了一兩天才搞懂,但只搞懂應用,設定上還是似懂非懂
最後靠著新的AI「Grok」問到了正確的設定與解說,才正式完成
以下就詳述一下遇到的問題與該如何設定吧
先講一下Podman與Docker在幹什麼用的
從網路上爬文吸功後的認知是這樣
簡言之,podman與docker是一種管理容器(Container)技術的軟體
容器是一種虛擬化的新應用
虛擬化是指,在電腦裡模擬另一台獨立電腦的技術(方法)
容器則是一種依靠虛疑化執行軟體的新方法
這方法的好處是保留了虛擬化原本的環境獨立,單純,而且與其它應用隔開的特性
同時又擁有新的優點:輕量化與多工化
以往開虛擬化就等於要開一台新的電腦
但容器化之後,則是靠的建好的映像檔(Image),只載入必須的項目後執行
並不用額外再重新設定一台新的虛擬化環境,或稱虛擬機
甚至可以多個容器在同一個虛擬機裡跑(多工化)
至於映像檔怎麼開發,怎麼弄。那就是開發者的事了,我沒心力再研究下去
現階段我只要能應用就好。
回到podman這軟體上面
安裝podman沒什麼難度
因為安裝時有繁體中文可選,親切非常多
只是進一執行介面就還是英文的,總有被騙的感覺 XD
一開始就會提醒要建個基本的虛擬機器
建這個虛擬機器有兩件事要注意
第一件事,要打開Windows裡面Hyper-v的套件
這邊要開"開啟或關閉Windows功能"的這頁來打開Hyper-V
[圖]
然後強烈建議,還要進有管理者權限的命令列執行下面命令
bcdedit /set hypervisorlaunchtype auto
再重新開機,確保Hyper-V設定是打開的
第二件事,要安裝或昇級到最新的WSL 2.0
這簡單,windows11之後只要下
WSL --update
系統應該就會開始下載並更新了
應該就這麼簡單,但我被第一件事卡住了好一陣子
簡單地說,我這台工作電腦有裝VMware Player 15版
然而這版與Windows裡的Hyper-V相衝,要關掉才能用
所以當我裝好Podman時,主虛擬機是怎麼樣都裝不了
上網查了一堆資訊都沒用,直到看到有用bcdedit這指令的資料時
才想起我那時為了vmware問題有下指令關閉
所以前面才會強烈建議要重新下指令
如果是用指令關閉的,看那個"開啟或關閉Windows功能"其實沒有用..............
那個只是套件安裝而已
真的是被vmware搞了
虛擬機好了後,也不是很順利(不然就不會有這篇了)
卡了非常非常久的容器啟動,都執行不了
範例的容器啟動很簡單,讀取映像檔後就建立容器,然後就可以執行出成果
可是Mtranserver的部分就一直啟動不了
看著Log就是缺模型檔,那看來就是要把模型路徑引入到容器內
問題是,要怎麼做?
因為那時還不懂整個機制,像個無頭蒼蠅一樣亂找
加上Mtranserver說明文件也不是寫個初學者看的,完全不知道卡在哪裡
所以使用文件這東西,最好還是給略懂的人看過一次,或是剛搞懂時寫
會比較清楚可能的問題點在哪
當然這也跟我用的是podman而不是docker有關
最後突破這難題的,是問Grok這個新興的AI
Grok的說明給了我指令上的設定與說明,在看完解說後才豁然開朗
其實設定都寫在YAML檔裡面啦,我在耍什麼蠢
回顧正題
Mtranserver的容器啟動其實很簡單,在讀取映像檔時,把下載的模型路徑指定給容器就行啦
Mtranserver作者是使用Docker desktop,然後用dokcer composer讀取yml檔後,執行設定
podman也有對應的指令podman compose,但是要另外安裝
而且Windows沒找到方法裝,所以讀不了yaml設定去跑
那另兩個辦法就是用指令,或是在圖形化介面裡設定
但不論哪個方法,請先下載那個模型檔,然後解壓縮放在想放的地方
兩個方法的步驟我都寫一下
指令的部分是這樣
先用pull下載Mtranserver的映像檔下來
podman pull xxnuo/mtranserver:latest
然後再指定模型下載的位置,並啟動
podman run -d --name MRT -p 8989:8989 -v ./models:/app/models xxnuo/mtranserver:latest
其中./models是下載模型的相對位置
要執行這個指令,必須是進到下載一鍵包後解壓縮mtranserver的資料夾中
這樣,模型就會指定給容器內的/app/models,就不會顯示開機找不到東西了
嗯,兩行就完成了,搞了一整天 Orz
============分隔線===============
圖形化介面的步驟則是這樣
一樣先下載映像檔,進映像檔選單後,點選PULL
然後把xxnuo/mtranserver:latest輸入後,點選Pull image
回到映像檔選單後,點選Run Image
設定要怎麼Run,包含容器名稱,模型的位置(這邊改用絕對路徑示範),還有要通信的port
點選Start Container後就可以看到在跑啦
翻譯伺服器的服務開起來後,接下來就是要使用服務了
話說,突然覺得說這東西是離線服務也怪怪的
明明還是一種伺服器的應用 XD
再次回歸正題
網頁丟資料這邊因為我懂,所以也就看得懂了 XD
總之就是用POST的方法,對伺服器進行JSON格式資料的傳遞
然後伺服器會回傳JSON格式回來,再對內容進解碼就行
作者有準備多種的使用方法,看要用哪種就連哪個網址與餵對應的格式就行。
只是沉侵式翻譯跟簡約翻譯套件似乎還要另外下載其它專案後再設定,懶了。
就直接請Grok幫我寫個離線式網頁
以作者寫的批量翻譯介面(http://localhost/translate/batch)處理
網頁就長這樣
左邊輸入後,按下中間按鈕,右邊生答案出來,簡單粗爆
翻譯品質上真的沒有說頂好,但很夠用了,算通順
缺點是某些特定名詞會照最常用的意思翻,無法校正
重點是速度真的神速,一大串文字下去,不用三秒就出成果了
試用當天,兩份小文件,一下子就解決了
翻出來成果,稍微對一些是否翻錯的地方,修一些幾個名詞,轉繁體就很好讀了
是的,因為是中國開發的模型,所以中文就是簡中,一些常用的名詞也都是中國式用法
但堪用就好,還要更準就要靠其它模型來處理了。
這也是接下來要研究的部分了
真的是愈來愈便利了呢,AI的應用
沒有留言:
張貼留言