인공지능 공부/NLP 연구

(NLP연구) 서버 사용법

 

docker pull repo/image_name:tag
docker run -itd -v local_path:docker_path --ipc=host --network=host \\
--gpus='"device=0,1"' --name=container_name repo/image_name:tag

Run Flags

  • -i: 표준 입력(stdin)을 활성화하며 컨테이너와 연결(attach)되어 있지 않더라도 표준 입력을 유지
  • -t: TTY 모드를 사용, Bash를 사용하려면 이 옵션을 설정 필수
  • -it : -i와 -t를 동시에 사용한 것으로 터미널 입력을 위한 옵션 (컨테이너의 표준 입력과 로컬 컴퓨터의 키보드 입력을 연결)
  • -d: 백그라운드로 실행 (container에서 detach되더라도, container가 멈추지 않음)
  • -v: volume attachment - local path와 docker container 내의 path 연결 (일종의 network file system이라 보면됨)
  • -p: 포트 붙이기
  • —gpus: gpu device를 specify하려면 '"devices=0,1"'과 같이 지정하고 개수만 지정하기 위해서는 개수를 넣어주면 됨 (e.g., —gpus=3)
  • —ipc: shared memory 문제 해결
  • —network: network 문제 해결, 더 안정적으로 사용하려면 -p 플래그를 사용하는 것이 안전함

tmux 사용법

tmux 사용법

열려있는 세션 확인 tmux ls

세션 만들 때 : tmux new -s [세션이름] 세션 접속 : tmux attach -t [세션이름]

세션 내 윈도우 만들기 : Ctrl + b + c

세션 내 윈도우 이동 : Ctrl + b + [세션 번호]

세션 나가기 (detach) : Ctrl + b + d 

 

https://ddochea.tistory.com/172

 

[code-server] 서버기반 개발환경으로 vscode를 실행하는 code-server 소개

지난시간엔 MS의 vscode.dev를 소개하는 글을 올렸었다. 브라우저에서 vscode를 사용할 수 있어 어떤 디바이스를 사용해도 소스코드를 수정하거나 확인할 수 있지만, 터미널이나 실제 코드를 디버깅

ddochea.tistory.com

 

예시
1. 도커 이미지 설치 
docker pull repo/image_name:tag (원하는 이미지) => docker ([<https://hub.docker.com/>](<https://hub.docker.com/>))

2. 도커 실행 * port=50000 이상으로 설정
docker run -it -d --name=yj_prompt -v ~/raid/yj_prompt -p 1004:1004(입력) --ipc=host pytorch/pytorch:latest --gpus='"device=3,4"'
docker run -itd -v /yj_prompt --ipc=host --network=host --gpus='"device=4,5"' --name=yj_prompt pytorch/pytorch:latest
3. 도커 접속 
docker attach (name) 또는 docker exec -it (name) bash

4. 주피터 열기
jupyter notebook --ip=0.0.0.0 --port=1004(입력) --allow-root

5. 주피터 외부접속 (토큰필요)
서버주소 : 포트 ()

tmux 사용법
열려있는 세션 확인 tmux ls
세션 만들 때 : tmux new -s [세션이름]
세션 접속 : tmux attach -t [세션이름]
세션 내 윈도우 만들기 : Ctrl + b + c
세션 내 윈도우 이동 : Ctrl + b + [세션 번호]
세션 나가기 (detach) : Ctrl + b + d

실시간 nvidia -smi 보기
watch -n 1 nvidia-smi
scp -P (포트번호) filepath/file.txt ID@서버주소:path/directory
scp -P (포트번호) -r filepath/dir ID@서버주소:path/directory
예) scp -P 37156 /Users/minsk/Downloads/text.txt yourname@210:yourname/workspace
docker cp filepath/file.txt container_name:/filepath
docker cp -r filepath/dir container_name:/filepath
1. 준비물
vscode
Remote Development(vscdoe extension)
Remote - SSH(vscdoe extension)
Remote - WSL(vscode extension) (선택)

Docker Container 연결용

Remote - Containers(vscode extension)
docker

2. SSH 관리 파일 수정
	 1) vscode에서 아래 방법(명령어 팔레트/원격창열기) 중 한개를 통해 SSH 관리 파일을 열기를 한다.
Open SSH Configuration File...

	2) 내 PC의 config 파일을 선택합니다. (C:\\Users\\사용자명\\.ssh\\config)

	3) 처음이면 아무것도 없다
		 아래와 같이 설정을 작성 후 저장
		 들여쓰기도 꼭 해주어야 한다.
		
			Host [계정명]@[IP 주소]:[포트번호]
			    HostName [IP 주소]
			    User [계정명]
			    Port [포트 번호]
			    
			Host test@192.
			    HostName 192.
			    Port 22
			    User test
	
3. ssh 접속
명령어 팔레트에서 Remote-SSH: Connect to Host... 을 찾아서
등록한 host 선택
액세스 허용
원격지 host의 OS를 선택
컨티뉴 선택
비밀번호 입력