本篇介紹使用SeamlessM4T前的環境建置,分為Colab及本機端兩種方式,其中Colab環境建置已經很完善,所以不需要太多的步驟。而本機端則需要比較繁瑣的步驟,其中SeamlessM4T引用的程式庫fairseq2不支援Windows作業系統,筆者以Windows系統透過WSL(Windows Subsystem for Linux)來使用SeamlessM4T。
首先下載官方github提供的所需檔案,進到目錄”seamless_communication”,執行路徑底下的安裝檔setup.py。如此即可安裝完成,備妥SlealessM4T的使用環境。
!git clone https://github.com/facebookresearch/seamless_communication.git
%cd seamless_communication
!pip install .
如果在本機端直接執行以下程式碼*,會出現錯誤訊息:
git clone https://github.com/facebookresearch/seamless_communication.git
cd seamless_communication
pip install .
出現的錯誤訊息是關於安裝其中一個程式庫fairseq2時,無法找到對應的版本:
INFO: pip is looking at multiple versions of fairseq2 to determine which version is compatible with other requirements. This could take a while.
ERROR: Could not find a version that satisfies the requirement fairseq2n==0.1.0 (from fairseq2) (from versions: none)
ERROR: No matching distribution found for fairseq2n==0.1.0
這源自於fairseq2不支援windows系統,Windows系統的使用者建議需安裝WSL2,官方建議說明如下:
We do not support Windows and have no plans to support it (mostly due to lack of bandwidth and lack of experience in Windows development). I will make sure that I have some installation instructions for WSL2 though. Considering that WSL2 now has pretty stable CUDA support, I
hope that this will be a sufficient middle ground for Windows users.
For Mac users, I am also working on pre-built ARM64 binaries. We use GitHub Actions for our CI and unfortunately GHA still has no support
for M1/M2 runners, so this requires some manual work on my end.
接下來我們在本機端安裝WSL2 (安裝WSL(Microsoft)):
wsl --install
安裝完成顯示其預設系統Ubuntu版本
Ubuntu 22.04.2 LTS (GNU/Linux 5.15.90.1-microsoft-standard-WSL2 x86_64)
至此完成在Windows系統安裝WSL,往後即可在Windows系統使用Ubuntu(Linux系統)。
進入Ubuntu環境:
wsl --distribution Ubuntu --user <username>
進Linux環境中安裝python:
sudo apt install python3
python3 --version
使用shell指令sudo apt install安裝python,安裝完成使用python3 --version檢查安裝版本。
(選擇性安裝)安裝PyPI:
sudo apt update
sudo apt install python3-pip
pip3 --version
先更新軟體庫sudo apt update,使用shell指令sudo apt install安裝pip,確認版本pip3 --version。做完這一步之後重新執行程式碼*,即可成功安裝 SeamlessM4t。
SeamlessM4T釋出兩個版本,SeamlessM4T_large(儲存容量10.7GB,參數量2.3B)及SeamlessM4T_medium(儲存容量6.4GB,參數量1.2B),視本機硬體規格選擇。其實還有small模型,適用終端裝置AI,不過只支援少量語言。然而在導入SeamlessM4T模型前還需要先設定環境變數:
export LD_LIBRARY_PATH=/usr/lib/wsl/lib:$LD_LIBRARY_PATH
不然會有以下錯誤訊息:
Could not load library libcudnn_cnn_infer.so.8. Error: libcuda.so: cannot open shared object file: No such file or directory
Aborted
在設定環境變數前可以先確認libcudnn_cnn_infer.so.8檔案是否在/usr/lib/wsl/lib路徑底下:
ldconfig -p | grep cuda
此篇針對使用SeamlessM4t介紹兩種建置環境,在Colab上建置相對容易非常快速,由於Col對於使用時間及使用容量有限制,如果不考慮此兩者因素,建議直接在Colab上使用即可。然而若要長時間使用SeamlessM4T,而Colab限制使用時間,在本機端使用就沒這個問題,安裝上主面對的問題是程式庫fairseq2只支援Linux及Mac系統,所以Windows使用者必須安裝WSL才可以使用。