hanoi0126/LLM-SFT

This repository demonstrates how to leverage the TRL (Text Reinforcement Learning) library’s SFTTrainer and the PEFT (Parameter-Efficient Fine-Tuning) approach to fine-tune (SFT: Supervised Fine-Tuning) large language models such as LLaMA or LLM-JP using LoRA (Low-Rank Adapters).

Python

1

6 commits

updated Dec 8, 2024

See the code

README

Wisteria

※ work ディレクトリであることを確認!

Usage

  • バッチジョブスクリプトの作成
#!/bin/sh

#PJM -L rscgrp=debug-a
#PJM -L node=1
#PJM -L elapse=0:15:00
#PJM -g group1
#PJM -j

module load cuda/11.1
module load pytorch/1.8.1

source $PYTORCH_DIR/bin/activate
python3 train.py
  • ジョブを投入する
$ pjsub run.sh  # ジョブを投入
[INFO] PJM 0000 pjsub Job 12345 submitted.
オプション内容
pjsubジョブの投入
pjdelジョブの削除
pjstatジョブの状態
項目内容
JOB_IDジョブの一意の識別子
ジョブ状態の確認や削除時に使用
JOB_NAME投入されたジョブスクリプトの名前
STATUS現在のジョブの状態
RUNNING(実行中)、PENDING(待機中)など
PROJECTジョブが紐づいているプロジェクト名
RSCGROUP使用しているリソースグループ
例: share-debug(デバッグ用共有リソース)
START_DATEジョブが開始された日時
ELAPSEジョブの経過時間(開始から現在まで)
TOKEN割り当てられた計算リソースの一部を示す値
NODE使用している計算ノードの詳細
GPUジョブで使用している GPU の数

module

  • module load の設定はセルセッションに限定されるため、ssh 接続が切れると再設定が必要になる。
    サブコマンド説明
    list設定中のアプリケーション、ライブラリの一覧を表示
    avail設定可能なアプリケーション、ライブラリの一覧を表示
    load <module>アプリケーション、ライブラリ向けの環境変数を設定
    unload <module>アプリケーション、ライブラリ向けの環境変数を解除
    switch <moduleA> <moduleB>アプリケーション、ライブラリ向けの環境変数を moduleA から moduleB へ入れ替える
    purge設定中のすべてのアプリケーション、ライブラリを解除
    help <module>アプリケーション、ライブラリの使用方法を表示
    また、構築に使用したコンパイラのバージョンを表示します。
$ module list
$ module avail

ディスク使用状況と上限の表示

$ show_quota
項目説明
Directory割り当てディレクトリ
/homeログインノード用共有ファイルシステム
/work/groupname共有ファイルシステム
/data/scratch/groupname高速ファイルシステム(一時領域)
/data/perm/groupname高速ファイルシステム(恒久領域)
used(MB)ディスク使用量
limit(MB)ディスク使用上限
nfilesファイル数
nlimitファイル数上限

venv

  • これはうまくいかない
$ module load python/3.10.13
$ python -mvenv venv
$ source venv/bin/activate
$ python -V
> Python 3.6.8
  • これはうまくいく
$ module load python/3.10.13
$ python3 -mvenv venv
$ source venv/bin/activate
$ python -V
> Python 3.10.13

Reference

スーパーコンピュータでサンプルプログラムを動かす(PyTorch)

hanoi0126/LLM-SFT

This repository demonstrates how to leverage the TRL (Text Reinforcement Learning) library’s SFTTrainer and the PEFT (Parameter-Efficient Fine-Tuning) approach to fine-tune (SFT: Supervised Fine-Tuning) large language models such as LLaMA or LLM-JP using LoRA (Low-Rank Adapters).

Python

1

6 commits

updated Dec 8, 2024

See the code

README

Wisteria

※ work ディレクトリであることを確認!

Usage

  • バッチジョブスクリプトの作成
#!/bin/sh

#PJM -L rscgrp=debug-a
#PJM -L node=1
#PJM -L elapse=0:15:00
#PJM -g group1
#PJM -j

module load cuda/11.1
module load pytorch/1.8.1

source $PYTORCH_DIR/bin/activate
python3 train.py
  • ジョブを投入する
$ pjsub run.sh  # ジョブを投入
[INFO] PJM 0000 pjsub Job 12345 submitted.
オプション内容
pjsubジョブの投入
pjdelジョブの削除
pjstatジョブの状態
項目内容
JOB_IDジョブの一意の識別子
ジョブ状態の確認や削除時に使用
JOB_NAME投入されたジョブスクリプトの名前
STATUS現在のジョブの状態
RUNNING(実行中)、PENDING(待機中)など
PROJECTジョブが紐づいているプロジェクト名
RSCGROUP使用しているリソースグループ
例: share-debug(デバッグ用共有リソース)
START_DATEジョブが開始された日時
ELAPSEジョブの経過時間(開始から現在まで)
TOKEN割り当てられた計算リソースの一部を示す値
NODE使用している計算ノードの詳細
GPUジョブで使用している GPU の数

module

  • module load の設定はセルセッションに限定されるため、ssh 接続が切れると再設定が必要になる。
    サブコマンド説明
    list設定中のアプリケーション、ライブラリの一覧を表示
    avail設定可能なアプリケーション、ライブラリの一覧を表示
    load <module>アプリケーション、ライブラリ向けの環境変数を設定
    unload <module>アプリケーション、ライブラリ向けの環境変数を解除
    switch <moduleA> <moduleB>アプリケーション、ライブラリ向けの環境変数を moduleA から moduleB へ入れ替える
    purge設定中のすべてのアプリケーション、ライブラリを解除
    help <module>アプリケーション、ライブラリの使用方法を表示
    また、構築に使用したコンパイラのバージョンを表示します。
$ module list
$ module avail

ディスク使用状況と上限の表示

$ show_quota
項目説明
Directory割り当てディレクトリ
/homeログインノード用共有ファイルシステム
/work/groupname共有ファイルシステム
/data/scratch/groupname高速ファイルシステム(一時領域)
/data/perm/groupname高速ファイルシステム(恒久領域)
used(MB)ディスク使用量
limit(MB)ディスク使用上限
nfilesファイル数
nlimitファイル数上限

venv

  • これはうまくいかない
$ module load python/3.10.13
$ python -mvenv venv
$ source venv/bin/activate
$ python -V
> Python 3.6.8
  • これはうまくいく
$ module load python/3.10.13
$ python3 -mvenv venv
$ source venv/bin/activate
$ python -V
> Python 3.10.13

Reference

スーパーコンピュータでサンプルプログラムを動かす(PyTorch)