0%

在 CSIE Workstation 跑 notebook

身為台大資訊系學生的一大好處,就是可以存取強大的 GPU Workstation。而大家都喜歡用 Jupyter Notebook 做 ML 作業,因此這篇文章為資訊系學生介紹怎麼利用這個工作站。

以下指令若包含角括號,請替換成自己喜歡的名字。例如:
/tmp2/<你的學號>,就應該被換成 /tmp2/b13902001

連線到工作站

在 vscode 下載 Remote - SSH 套件。

接著打開你的終端機,用以下指令連線到工作站

1
ssh <你的學號>@meow1.csie.ntu.edu.tw

其中可以把 meow1 換成另一台伺服器 meow2

準備目錄

因為家目錄空間有限,所以在 /tmp2 下創建自己的目錄

1
2
3
4
5
b13902080@meow2 [~] cd /tmp2
b13902080@meow2 [/tmp2] mkdir -p <你的學號>
b13902080@meow2 [/tmp2/b13902080] mkdir -p .cache
b13902080@meow2 [/tmp2/b13902080/.cache] mkdir -p uv
b13902080@meow2 [/tmp2/b13902080/.cache] mkdir -p huggingface

虛擬環境

為了隔離套件,這邊用 uv 這個套件進行虛擬環境管理。

1
curl -LsSf https://astral.sh/uv/install.sh | sh  # 下載並安裝 uv

然後在 /tmp2/<你的學號> 底下創建虛擬環境

1
2
uv venv <venv_name>                # 建立虛擬環境
source ./<venv_name>/bin/activate # 啟用虛擬環境

要退出虛擬環境請用 deactivate 指令

準備套件

每次會用到的

進入虛擬環境後,要下載 torch以及相關套件

1
2
3
(venv_name) export UV_CACHE_DIR=/tmp2/<你的學號>/.cache  # 設定 cache 的路徑,不然家目錄又要被塞爆
(venv_name) uv pip install notebook papermill # 下載用來跑 notebook 的套件
(venv_name) uv pip install torch # 基本上每次都會用到

ML HW6 會用到的

1
2
(venv_name) uv pip install -U datasets trl bitsandbytes
(venv_name) uv pip install peft

編輯 notebook

打開你的 .ipynb 檔案,可以用 vscode 或是其他方法傳到工作站上。
然後就可以在 vscode 裡面輕鬆編輯了。

環境變數

為了不要讓 LLM 塞爆家目錄,請在 notebook 的最開始加上一格:

1
2
%env HF_HOME=/tmp2/<你的學號>/.cache/huggingface
%env UV_CACHE_DIR=/tmp2/<你的學號>/.cache/uv

環境變數設定

tmux

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

開啟 tmux

1
tmux

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
tmux ls

若要連到 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 去喝下午茶了