Table of Contents

728x90

원격 서버에서 trainer.train()을 실행 중인 상태에서 컴퓨터를 꺼도 작업이 중단되지 않게 하기 위해서는, 다음과 같은 방법을 사용할 수 있습니다:

1. tmux 또는 screen 사용

  • tmux: tmux는 터미널 세션을 분할하고 백그라운드에서 작업을 실행할 수 있게 해주는 터미널 멀티플렉서입니다. 작업을 실행 중인 세션을 유지한 채로 컴퓨터를 종료하거나 네트워크 연결이 끊겨도, 다시 연결하여 작업을 확인할 수 있습니다.
  • screen: screen도 tmux와 유사한 기능을 제공합니다. 백그라운드에서 터미널 세션을 유지할 수 있습니다.

1-1. tmux 설치

  1. Ubuntu/Debian 기반 시스템:
  2. bash
    코드 복사
    sudo apt-get update sudo apt-get install tmux
  3. CentOS/RHEL 기반 시스템:
  4. bash
    코드 복사
    sudo yum install tmux
  5. Fedora 기반 시스템:
  6. bash
    코드 복사
    sudo dnf install tmux

tmux가 설치되면, 다시 tmux new -s mysession 명령어를 사용하여 세션을 생성하고 사용할 수 있습니다.

1-2. tmux 사용 방법:

  1. 서버에 접속한 후, tmux 세션을 시작합니다.
tmux new -s mysession

 

2. trainer.train()을 실행합니다.

 

 3. Ctrl+b를 누르고, 그 상태에서 손을 떼고 d를 눌러 tmux 세션을 분리(detach)합니다. 이렇게 하면 세션은 백그라운드에서 계속 실행됩니다.

 

4. 나중에 다시 접속해서 작업을 확인하려면:

tmux attach -t mysession

 

 

1-3. screen 사용 방법:

  1. 서버에 접속한 후, screen 세션을 시작합니다: 
  2. bash
    코드 복사
    screen -S mysession
  3. trainer.train()을 실행합니다.
  4. Ctrl+a를 누르고, d를 눌러 screen 세션을 분리합니다.
  5. 나중에 다시 접속해서 작업을 확인하려면:
    bash
    코드 복사
    screen -r mysession

2. nohup 명령어 사용

  • nohup 명령어는 터미널 세션이 끊어져도 작업을 계속 실행하게 해줍니다. 명령어 실행 후 로그를 파일로 기록할 수 있습니다.
bash
코드 복사
nohup python -c 'from transformers import Trainer; trainer.train()' > output.log &

이렇게 하면 터미널이 종료되어도 작업이 계속 실행되며, 출력은 output.log 파일에 기록됩니다.

3. Jupyter Notebook에서 실행 중이라면

  • Jupyter Notebook에서는 tmux 또는 screen을 사용하는 것이 권장됩니다. Jupyter를 tmux 세션 내에서 실행하면, 컴퓨터를 꺼도 세션이 유지되어 나중에 재접속할 수 있습니다.

이 중에서 tmux 또는 screen을 사용하는 방법이 가장 많이 사용되며, 다양한 상황에서 유용하게 사용할 수 있습니다.