身為台大資訊系學生的一大好處,就是可以存取強大的 GPU Workstation。而大家都喜歡用 Jupyter Notebook 做 ML 作業,因此這篇文章為資訊系學生介紹怎麼利用這個工作站。
以下指令若包含角括號,請替換成自己喜歡的名字。例如:/tmp2/<你的學號>,就應該被換成 /tmp2/b13902001
連線到工作站
在 vscode 下載 Remote - SSH 套件。
接著打開你的終端機,用以下指令連線到工作站
1  | ssh <你的學號>@meow1.csie.ntu.edu.tw  | 
其中可以把 meow1 換成另一台伺服器 meow2。
準備目錄
因為家目錄空間有限,所以在 /tmp2 下創建自己的目錄
1  | b13902080@meow2 [~] cd /tmp2  | 
虛擬環境
為了隔離套件,這邊用 uv 這個套件進行虛擬環境管理。
1  | curl -LsSf https://astral.sh/uv/install.sh | sh # 下載並安裝 uv  | 
然後在 /tmp2/<你的學號> 底下創建虛擬環境
1  | uv venv <venv_name> # 建立虛擬環境  | 
要退出虛擬環境請用 deactivate 指令
準備套件
每次會用到的
進入虛擬環境後,要下載 torch以及相關套件
1  | (venv_name) export UV_CACHE_DIR=/tmp2/<你的學號>/.cache # 設定 cache 的路徑,不然家目錄又要被塞爆  | 
ML HW6 會用到的
1  | (venv_name) uv pip install -U datasets trl bitsandbytes  | 
編輯 notebook
打開你的 .ipynb 檔案,可以用 vscode 或是其他方法傳到工作站上。
然後就可以在 vscode 裡面輕鬆編輯了。
環境變數
為了不要讓 LLM 塞爆家目錄,請在 notebook 的最開始加上一格:
1  | env HF_HOME=/tmp2/<你的學號>/.cache/huggingface  | 

tmux
tmux 是可以 manage 視窗的軟體,它讓你可以就算斷線了,程序也繼續執行。
開啟 tmux
1  | tmux  | 

到你想要去的目錄
像我是在 /tmp2/b13902080/MLhw6 底下做事,所以就 cd 到那邊。(如果目錄不存在記得 mkdir)
開啟虛擬環境
tmux 基本上就是新開的視窗,所以就算外面已經在虛擬環境,tmux 內還是要 activate
1  | b13902080@meow2 [/tmp2/b13902080] source ./<venv_name>/bin/activate # 啟用虛擬環境  | 
退出 tmux 的方法
tmux 的命令,是用「前綴」+「命令」組成。預設的前綴是 Ctrl+b。
如果想退出 tmux,按下 Ctrl+b d。意思是先按 Ctrl+b,放開後再按 d。
連回 tmux 的方法
下 tmux ls 可以看自己當前有什麼 session
若要連到 0 號 session,請下
1  | tmux a -t 0  | 
把 -t 後面的數字換掉就可以連不同 session
執行 notebook
環境
請確保你正在 tmux 內,且已經啟動虛擬環境。
執行
papermill 可以將輸入的 .ipynb 檔執行完,輸出到指定的另一個檔案。如:
1  | papermill ML_hw6.ipynb ML_hw6_2nd.ipynb  | 
這樣就會執行 ML_hw6.ipynb,並將執行完的結果生成一個新的 notebook,檔名為 ML_hw6_2nd.ipynb
離開
然後你就可以退出 tmux 去喝下午茶了