본문 바로가기

NLP/error

(8)
도커 컨테이너 유지한 채 마운트 경로 추가하기 이 글이 도움이 될 사람기존 컨테이너를 생성했는데 지우지 않고 마운트를 하고 싶은 사람이미 마운트 했는데 또 추가하고 싶은 사람아직 컨테이너 만들기 전이다? 그러면 이 글 말고 '도커 컨테이너 볼륨 마운트 설정' 검색해서 편하게 하세요이 방법 말고는 '컨테이너'를 '도커 이미지'로 만들어서 새로운 컨테이너 생성할 때 마운트해주는 수 밖에...(다만 이 글은 구글링해서 찾은 방법을 따라한 게 아니라 친구들이 도커 고수들이라 이 방법이 되지 않을까해서 해봤는데, 저는 잘되길래 남겨놓은 것임을 밝힙니다.) 과정 요약도커 재시작 및 컨테이너 종료hostconfig.json 수정config.v2.json 수정도커 서비스 재시작컨테이너 실행 후 마운트 확인1. 일단 컨테이너와 도커 서비스를 멈춘다: config 를..
[error] 파라미터 제대로 frozen 하세요 저처럼 미친 짓하시면 안 됩니다....  잘못된 예시model.requires_grad = False 문제는 위 코드를 넣고 돌려도 에러가 발생하지 않아 GPU 사용량이 달라지거나 파라미터를 따로 확인하지 않는 한,   제대로 된 예시for param in model.parameters(): param.requires_grad = False  어떤 블로그에서 보고 그대로 긁어서 했었는데 그 블로그가 잘못된 것 같아요. 물론 지금 검색해보니 좋은 자료가 많이 나오네요. 제 불찰입니다. 여하튼 반복하지 않기를 바라며 강조해봅니다.
[error] conda 에서 local 에 설치된 라이브러리에 접근해요 해결책 임시 방편: PYTHONNOUSERSITE=1 을 추가해서 실행해라 # BEFORE python main.py # AFTER PYTHONNOUSERSITE=1 python main.py 이 글에 단기적, 장기적, 실험적 해결방법이 상세히 정리되어 있으니 참고할 것 내가 처했던 상황 1) Deepspeed 환경을 위해 CONDA 환경을 새로 생성했다 2) 다음과 같은 에러가 발생했다 NVIDIA GeForce RTX 3090 with CUDA capability sm_86 is not compatible with the current PyTorch installation. The current PyTorch install supports CUDA capabilities sm_37 sm_50 sm_6..
[error] GPU가 충분한데 CUDA OUT OF MEMORY가 발생합니다 tensorflow 만 쓰면 문제가 없는데, tensflow 와 pytorch 를 혼합해서 쓰는 경우 발생한다고 한다. tensorflow 는 GPU를 미리 다 할당받은 다음, 사용하는 구조라서 그걸 코드로 방지해야 한다. import tensorflow as tf gpus = tf.config.experimental.list_physical_devices('GPU') if gpus: try: # Currently, memory growth needs to be the same across GPUs for gpu in gpus: tf.config.experimental.set_memory_growth(gpu, True) logical_gpus = tf.config.experimental.list_logi..
[error] PeftModelForCausalLM.generate() takes 1 positional argument and 2 were given 해결책 beam_output = model.generate( input_ids=input_ids, # 정확히 input_ids 인자라고 알려줘야 한다 do_sample=True, top_k=10, max_new_tokens=32, min_new_tokens=16, output_scores=True, num_beams=BEAM_SIZE, repetition_penalty=10.0, return_dict_in_generate=True, num_return_sequences=BEAM_SIZE, ) input_ids=input_ids 라고 정확히 이야기해야 한다 문제점 beam_output = model.generate( input_ids, # 기존 모델은 이렇게 명시하지 않아도 암묵적으로 수행했다 do_sam..
[error] 파이썬 엑셀 인코딩 문제 해결 해결 df.to_csv(FILE_NAME, encoding='utf-8-sig') encoding 을 'utf-8-sig' 를 사용할 것 문제 python 에서 csv 파일을 읽고 쓸 때는 'utf-8' 인코딩 방식을 사용함. 그 파일을 excel 로 열면, 인코딩을 ANSI 등 으로 변경해야 함. 그런데 그 과정이 귀찮고, 양쪽에서 다 열렸으면 좋겠음. 검색하면 죄다, 메모장으로 열어서 인코딩 양식을 변경하라는 귀찮은 방법을 알려줘서 남겨놓고자 한다.
[error] RuntimeError: CUDA error: invalid device ordinal 원인GPU devices 번호를 잘못 지정했을 때 발생한다.예컨대, GPU 가 2개 밖에 없는데 3번이나 4번에 지정하면 위와 같은 에러가 발생한다.혹은 GPU device 가 0, 1, 2, 3 과 같은 순서로 놓여 있지 않아서 발생할 수 있다. 해결책 1. CUDA_DEVICE_ORDER 먼저 GPU 순서를 명확히 한다.다음 코드를 실행하면, GPU 번호가 PCI BUS ID 에 따라 0, 1, .. 이렇게 배정된다.os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID" 물론 bash/Terminal 에서 실행하는 경우엔 다음과 같이 하면 된다.CUDA_DEVICE_ORDER=PCI_BUS_ID python script.py  2.  C..
[error] pretraind language model 이 같은 값만 뱉는 경우 이런 사람들에게 bert model 이 똑같은 인코딩 값만 뱉어요. loss 는 줄어드는데, 정확도는 늘지 않아요. 3줄 요약 BERT 와 같은 pretrained language model 이 똑같은 값만 출력하는 경우 learning rate 가 높아서 그렇다. lr 을 낮추자. 관련 글 모음 https://stackoverflow.com/questions/61855486/bert-encoding-layer-produces-same-output-for-all-inputs-during-evaluation-pytor BERT encoding layer produces same output for all inputs during evaluation (PyTorch) I don't understand why..