하기처럼 docker 이미지를 출력하면 docker repository 와 tag가 <none>으로 출력되는 경우가 있다.

$  docker images
REPOSITORY                                    TAG                                   IMAGE ID       CREATED        SIZE
<none>                                               <none>                              4d78d3e67cb5   1 months ago   30.8GB

sys                                                      v1.4                                   d38be44fe367    1 weeks ago     20.8GB

    ... ...

opt                                                      v1.1                                   a38be45fe457     2 weeks ago     10.1GB

 

<none>으로 표기된 이미지를 삭제하지 않고 이름을 붙일 필요가 있다면, 하기 명령으로 repository와 tag를 부여할 수 있다.

docker image tag [image_id] [repository name:tag]

 

사례)

$ docker image tag 4d78d3e67cb5  test:v1.0

$ docker images

REPOSITORY                                    TAG                                   IMAGE ID       CREATED        SIZE
test                                                      v1.0                                   4d78d3e67cb5   1 months ago   30.8GB

sys                                                      v1.4                                   d38be44fe367    1 weeks ago     20.8GB

 

해당 원인은 여러 개가 있는데 주로 빌드 할 때, 이미 존재하는 레포지토리:태그명과 중복된 상태로 빌드하거나 이미지가 제대로 빌드 되지 않아서 발생하며 Dangling Image라고 부른다.

위처럼 repository와 tag 명을 강제로 붙여줄 수도 있으나 삭제하는 게 좋을 경우가 많다. 이 경우 하기 명령으로 삭제 한다.

아래 세 개 명령은 약간으 ㅣ차이는 있으나 모두 Dangling Image를 삭제하게 된다.

 

1) $ docker iamge prune

2) docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

3) $ docker rmi $(docker images -a|grep "<none>"|awk '$1=="<none>" {print $3}')

 

 

반응형

 

모바텀은 매우 편한 터미널이지만 종종 세션이 끊어지거나 연결이 죽는 현상(freezing)이 발생한다. 모바텀 세션이 끊기거나 죽는 현상은 2개이다.

  - 세션이 죽거나 화면이 멈추는 현상 (freezing) 

  - 사용이 오래되어 세션이 끊기는 현상 (stopped session)

 

1. 세션이 죽거나 화면이 멈추는 현상 (freezing) 

이것은 상당히 쓰기 불편한데, 하단과 같이 처리하면 해결된다.

 

모바텀 메뉴 Settings → Configuration →  SSH (tab) → GSSAPI Kerberos 체크 제거

 

리눅스에서 종종 있는 문제로 GSSAPI kerberos 가 활성화되어 있으면 keberos DNS에 질의를 하는데 DNS 응답이 늦어질 경우 접속지연이 발생한다. 이로 인해 간헐적으로 접속지연이 발생하거나 화면이 멈추는 현상이 발생한다.

 

만약 서버에서 설정하고 싶다면

vi /etc/ssh/sshd_config

GSSAPIAuthentication no

 

을 입력하고 저장한다.

 

2. 사용이 오래되어 세션이 끊기는 현상 (stopped session)

이것은 사실 정상적인 애플리케이션의 처리현상이다. 다만, 역시 불편하다.  하기와 같이 나올 때 세션이 끊긴 것이다.

 Network error: Software caused connection abort
 ─────────────────────────────────────────────────────
 Session stopped
     - Press <Return> to exit tab
     - Press R to restart session
     - Press S to save terminal output to file

 

모바텀 메뉴 Settings → Configuration →  SSH (tab) → SSH keepalive 체크 추가

(버전에 따라 다른데, Fix connection issues 체크 버튼이 보이면 추가로 체크해야 한다.)

 

반응형

cd 가상환경을 설치할 경로

 

python -m venv 가상환경이름

 

source 가상환경이름/Scripts/activate

 

deactivate

 

설치된 패키지 리스트 txt 파일로 변환

pip freeze > requirements.txt

 

변환된 txt 파일로 패키지 설치하기
pip install -r 파일이름.txt

반응형

'programming > Python' 카테고리의 다른 글

파이썬 패턴  (0) 2024.06.12
파일, 디렉토리 관리  (0) 2024.06.12
DataFrame, Column name 변경  (0) 2020.09.06
DataFrame, indexing - loc, iloc  (0) 2020.09.05
visdom server port 변경  (0) 2020.03.15

잘 쓰여진 데이터 분석 관련 글

 

https://brunch.co.kr/@data/10

 

데이터 분석을 위한 5단계 절차

Part1. 공공데이터 분석의 개념 | 이번 글에서는 공공분야 데이터 분석 절차를 설명한다. 필자의 경험상, 공공데이터 분석은 통상 5가지 단계에 의하여 이루어진다. 이 단계는 폭포수 모델 처럼

brunch.co.kr

 

반응형

우분투 Bash 쉘스크립트 작성 시 if 문 내에서 연산자 ( ==, <  등)을 사용할 때 No such file or directory 오류가 나는 경우에 해결방법은 아래와 같다.

 

□ 사례

text.sh

var=100
if [ $var < 200 ]; then
     ... ...

else 
     ... ...
fi

 

실행 결과 

$ bash test.sh
test.sh: line 3: 200: No such file or directory

 

bash 쉘(POSIX 쉘) 가이드에 따르면 하기와 같이 "<" 연산자 대신 "-lt"로 수정해야 제대로 동작한다.

[ "$var" -lt 200 ]

 

각 사용법은 하기와 같다.

 

□ POSIX 쉘 가이드 : 상황별 "<" 연산자 사용 방법

   - ※ [   공백   "$var"   -lt   200   공백   ] 처럼 '공백' 이 있어야 한다.

문법 대상 (상황) 주의 사항
[ "$var" -lt 200 ] 숫자 비교 POSIX shell 전체
[ "$var" \< 200 ] 문자 비교 POSIX shell 전체
[[ $var -lt 200 ]] 문자 비교 bash, ksh 에서만 동작
(( $var -lt 200 )) 숫자 비교 bash, ksh 에서만 동작
(( var < 200 )) 숫자 비교, var를 $ 없이도 변수로 인식함 bash, ksh 에서만 동작

 

 

□ 참고

비교 연산자 사용법 의미
== [ $A == $B ] 같다
!= [ $A != $B ] 같지 않다
> [ $A > $B ] 크다
>= [ $A >= $B ] 크거나 같다
< [ $A < $B ] 작다
<= [ $A <= $B ] 작거나 같다
&& [ $A && $B ] 논리연산 AND, 둘 다 모두 True 이면 True
|| [ $A || $B ] 논리연산 OR, 둘 중 하나가 True 이면 True

 

비교식 사용법 약어 유래 의미 비고
-z [ -z $A ]   공백이면 True $A == ""
-n [ -n $A ]   공백이 아니면  True $A != ""
-eq [ $A -eq $B ] equal to 같다 $A == $B
-ne [ $A -ne $B ] not equal to 같지 않다 $A != $B
-ge [ $A -ge $B ] greater than or equal to 크거나 같다 $A >= $B
-gt [ $A -gt $B ] greater than  크다 $A > $B
-le [ $A -le $B ] less than or equal to 작거나 같다 $A <= $B
-lt [ $A -lt $B ] less than 작다 $A < $B
-a [ $A -a $B ]   논리연산 AND, $A, $B 모두 True이면 True $A && $B
-o [ -o $A ]   논리연산 OR,  $A, $B 중 하나가 True이면 True $A || $B

 

파일 비교 사용법 의미
-f [ -f $A ] 파일  (디렉토리나 다른 형태의 파일은 False)
-d 이하 동일 디렉토리
-L   심볼링 링크 
-r   사용자가 대상에 읽기 권한(read)을 가지고 있으면 True
-w   사용자가 대상에 쓰기 권한(write)을 가지고 있으면 True
-x   사용자가 대상에 쓰기 실행(execution)을 가지고 있으면 True
-s   파일 크기가 0 이 아니면 True
-S   소켓
-nt [ $A -nt $B] $A 파일이 $B 보다 최신이면 True
-ot [ $A -ot $B] $A 파일이 $B 보다 오래되면 True
-ef [ $A -ef $B] 동일 파일이면 True

 

반응형

'Linux' 카테고리의 다른 글

docker repository <none>  (0) 2024.10.04
모바텀(MobaXterm) 세션 죽는 현상 개선  (0) 2024.09.10
tar, tar.gz 압축 및 해제  (2) 2024.07.03
Docker 중단없이 나오기(Detach)  (2) 2024.02.25
Ubuntu 버전 확인  (0) 2024.02.24

□ tar

- tar 압축

$ tar -cvf   "압축 파일명.tar"    "폴더 or 파일"

   e.g. tar -cvf target.tar source.txt

 

- tar 압축해제

$ tar -xvf "파일명.tar"

   e.g. tar -xvf target.tar

 

□ tar.gz

  기존 tar 명령어에 -z 옵션(option) 추가

 

- tar.gz 압축

$ tar -zcvf   "압축 파일명.tar"    "폴더 or 파일"  

   e.g. tar -cvf target.tar.gz source.txt

 

- tar.gz 압축 해제

$ tar -zxvf   "압축 파일명.tar.gz"

   e.g. tar -zxvf target.tar

주요 명령 옵션(command options)

options 설명
 -c  압축
 -x  압축 해제
 -v  작업진행 상태를 화면에 출력
 -f  파일명 지정
 -z  gzip 압축 또는 해제

 

반응형

하기 글들을 읽을 때 도움이 되는 용어 설명

ㆍall-reduce communication : 각 노드에서 서로 다르게 계산 중인 모든 값들을 가져와서 합산한 후 다시 각 노드로 전달하는 전체를 맞추는 통신 방식으로 모델 학습에서는 분산 학습 시 Data parallel하게 진행되는 여러 GPU에서 동일한 모델 파라미터에 각기 다른 입력 데이터로 서로 다른 그래디언트들이 계산 되는데 이를 다 가져와서 더한 후 해당 결과값을 다시 여러 GPU 상에 존재하는 모델 파라미터에 똑같이 업데이트하기 위한 통신 방법을 의미한다.

 

 

 

Megatron LM 논문을 잘 번역하고 해석한 글

https://learn-ai.tistory.com/entry/Paper-Review-Megatron-LM-Training-Multi-Billion-Parameter-Language-Models-Using-Model-Parallelism

 

[Paper Review] Megatron-LM: Training Multi-Billion Parameter Language Models Using Model Parallelism

Summary 최근 연구된 language modeling 논문에서는 학습되는 모델의 크기가 커짐에 따라 NLP tasks에 적용했을 때의 성능이 나아질 것이라고 말한다. 하지만, 큰 모델은 메모리 한계와 같은 문제로 학습

learn-ai.tistory.com

 

Nvidia 블로그, 당연히 참고가 필요한 곳

https://blogs.nvidia.co.kr/blog/scaling-language-model-training-to-a-trillion-parameters-using-megatron/

 

자연어 처리 혁신 모델훈련 프레임워크 NVIDIA Megatron 완전 해부(1) | NVIDIA Blog

자연어 처리(NLP, Natural Language Processing)는 최근 몇 년간 대규모 계산이 쉽게 이뤄지고 데이터세트 용량이 커지면서 빠르게 발전했습니다.

blogs.nvidia.co.kr

 

반응형

 

자주 쓰는 패턴 모음

기능 패턴
숫자 ^[0-9]*$
영문자 ^[a-zA-Z]*$
한글 ^[가-힣]*$
영어 & 숫자 ^[a-zA-Z0-9]*$
E-Mail ^[a-zA-Z0-9]+@[a-zA-Z0-9]+$
휴대폰 ^01(?:0|1|[6-9]) - (?:\d{3}|\d{4}) - \d{4}$
일반전화 ^\d{2,3} - \d{3,4} - \d{4}$
IP 주소 ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3}) \. ([0-9]{1,3})
모든 기호 (공백, 개행 제외) \.|\,|\"|\'|\!|\@|\#|\$|\%|\^|\&|\*|\(|\)|\-|\_|\=|\+|\\|\||\?|\~|\`

 

반응형

'programming > Python' 카테고리의 다른 글

venv 가상환경  (0) 2024.08.21
파일, 디렉토리 관리  (0) 2024.06.12
DataFrame, Column name 변경  (0) 2020.09.06
DataFrame, indexing - loc, iloc  (0) 2020.09.05
visdom server port 변경  (0) 2020.03.15

주요 함수

getcwd() 현재 작업 디렉터리를 반환 os.getcwd()
mkdir() 지정된 경로에 새로운 디렉터리(폴더)를 생성 os.mkdir(path)
exists() 지정된 경로가 존재하는지 확인 (True/False 값 반환) os.path.exists(path)
isdir() 지정된 경로가 디렉터리인지 확인 (True/False 값 반환) os.path.isdir(path)
isfile() 지정된 경로가 파일인지 확인(True/False 값 반환) os.path.isfile(path)
abspath() 지정된 경로의 절대 경로를 반환 os.path.abspath(path)
join() 운영 체제에 맞게 경로를 연결하여 새 경로를 생성 os.path.join(path1, path2)
split() 경로를 디렉터리와 파일로 분리(튜플로 반환) os.path.split()

 

텍스트 파일 오픈

f = open("a.txt", 'r')
lines = f.readlines()
for line in lines:
    print(line)
f.close()

 


 
디렉토리/파일 관리

os.chdir(path) 작업 디렉토리(현재 위치) 변경
os.getcwd() 작업 디렉토리(현재 위치) 정보 확인
os.remove( filename or path ) 파일이나 디렉토리 삭제
os.mkdir( path ) 디렉토리 생성
os.makedirs( path ) 디렉토리 생성 , /root/user/home/local/temp ... 처럼 긴 경로도 한 번에 생성 가능
os.path.abspath(filename) 파일의 상대 경로를 절대 경로로 변경하는 함수
os.path.exists(filename) 파일 존재 여부 확인 함수 (주어진 경로, 이름의 파일이 있는지 조사)
os.curdir() 현재 디렉토리 정보 확인
os.pardir() 부모 디렉토리 정보 확인
os.sep() 디렉토리 분리 문자 확인. windows "\", linux "/" 반환
os.symlink(src, dst) 원본 파일(src)에 대한 심볼릭 링크(dst)를 생성

 

 

파일 목록 관리

glob.glob(wildcard)  패턴을 이용하여 파일 목록 조회
os.listdir(path)  해당 디렉토리(path)의 전체 목록 조회
dircache.listdir(path)  os.listdir(path)와 동일. 단, path가 변경되지 않으면 이미 읽은 정보를 재활용
dircache.annotate(head, list)  일반 파일명과 디렉토리명 구분



 
파일명 관리

os.path.basename(filename) 파일명 추출
os.path.dirname(filename) 디렉토리 정보 추출
os.path.split(filename) 경로와 파일명 분리
os.path.splitdrive(filename) 드라이브명과 나머지 분리 (MS windows)
os.path.splitext(filename) 파일명과 확장자 분리

 

반응형

'programming > Python' 카테고리의 다른 글

venv 가상환경  (0) 2024.08.21
파이썬 패턴  (0) 2024.06.12
DataFrame, Column name 변경  (0) 2020.09.06
DataFrame, indexing - loc, iloc  (0) 2020.09.05
visdom server port 변경  (0) 2020.03.15

아래 리스트에 글들은 100% 신뢰하면 안된다. 읽다 보면 깊은 경험에서 우러난 글 처럼  느껴지며 때때로 강한 신뢰감을 받기도 하지만, 출처를 알 수 없고 과학적으로 논의되거나 정량적으로 재현할 수 있는  글들은... 아니기 때문이다.

다만, 다양한 연구자들, 모델러들의 고민과 경험을 접할 수 있기에 무언가 막혀 있을 때 읽어 보면 좋을 듯 하다고 생각한다.

 

 

  [번역] 오픈소스 모델이 나아갈 길은 양질의 데이터 세트를 정제하는 것이다

 

 

After 500+ LoRAs made, here is the secret  [번역] 500개 이상의 LoRA를 만들어본 후, 터득한 비결

 

반응형

+ Recent posts