본문 바로가기

분류 전체보기120

[Error] FileNotFoundError: No usable temporary directory found in ['/tmp', '/var/tmp', '/usr/tmp' 어제까지 잘 실행되었는데 오늘 갑자기 에러가 났다 FileNotFoundError: \[Errno 2\] No usable temporary directory found in \['/tmp', '/var/tmp', '/usr/tmp' ..\] 저장 공간이 부족하다는 의미인것 같아서, 가장 빨리 해볼 수 있는 conda clean --all 을 해줬더니 conda clean --all : 사용하지 않는 packages 나 cache 제거 아래처럼 총 9GB 이상의 파일이 삭제되었다. 그리고 정상적으로 실행됨 확인 2022. 11. 24.
[Torchserve]'NoneType' object is not callable 새로운 서버에서 기존에 생성한 mar파일로 torchsere 실행 시, 다른 서버에서는 정상적으로 작동하였으나 특정 서버에서 Handler가 request마다 초기화 되어 'NoneType Error'가 발생함을 확인함 찾은 원인을 정리하자면 아래 2가지이다. 1. CUDA와 NVIDIA-driver의 설치 여부 및 호환성 문제 [확인 방법] torch.cuda.is_available() = False [해결 방법] CUDA와 NVIDIA driver가 설치되어있는지, 서로 호환이 가능한지 확인 ✔ CUDA 확인 : nvcc -V ✔ NVIDIA driver 확인 : nvidia-smi nvidia driver 에 맞는 CUDA는 10.2 인데(이미지), 실제 설치된 CUDA는 10.0이어서 호환성이 맞.. 2022. 11. 14.
[Torchserve] java.lang.NoSuchMethodError 새로운 서버에서 기존에 생성한 mar파일로 torcsherve 실행시, java.lang.NosuchMethodError 오류 발생함 이는 java version의 문제로 java 1.8 버전을 사용하는 서버에서 모두 문제가 발생했음. java 11이상으로 변경했을때 정상적으로 작동함 확인 ✔️ 아래 명령어를 실행하여 java 버전 변경 update-alternatives --config java ✔️ java11이 설치되어있지 않다면 아래 진행해서 설치 $ sudo apt-get update $ sudo apt-get upgrade $ sudo apt-get install openjdk-11-jdk ✔️ 아래와 같은 오류 메세지가 뜬다면, sudo 추가 update-alternatives: using .. 2022. 11. 14.
[Torchserve] ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found 새로운 서버에서 기존에 생성한 mar 파일로 torchserve start를 했을때 위의 오류 발생 libstdc++.so.6.0.19 → so.6.0.26 이상으로 업그레이드 후 해결됨 1. 버전확인 ll /usr/lib64/libstdc++.so.6 2. 원하는 버전이 있는 위치 찾기 sudo find / -name "libstdc++.so.6" libstdc++.so.6이 존재하는 모든 위치가 출력되지만, 26 이상 으로 업그레이드 하고자 하므로, 26이 있는 위치 선택함 ~/anaconda3/envs/odqa/lib/libstdc++.so.6.0.26 3. /usr/lib64/ 위치에 최신버전 파일 이동 sudo cp [2에서 찾은 경로] /usr/lib64 4. 기존 링크 삭제 rm -rf /u.. 2022. 11. 14.
[NVIDIA] Linux NVIDIA driver 설치 오류 - 'exit X before installing' 리눅스 NVIDIA driver 수동 설치 중 아래 에러 발생 You appear to be running an X server; please exit X before installing. For further details, please see the section INSTALLING THE NVIDIA DRIVER in the README available on the Linux driver download page at www.nvidia.com 1. 아래 명령어로 DisplayManager를 비활성화 시킨후 실행 systemctl isolate multi-user.target 2. 설치 완료 후에는 다시 활성화 시키기! systemctl start graphical.target 아래 글을 참고함 .. 2022. 11. 9.
[Pytorch][BERT] 버트 소스코드 이해_⑫ BertSelfOutput [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput 👀 BertSelfOutput 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑪ BertSelfAttention [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 👀 📑 BERT SelfOtput BertSelfAttention 1. Attetion Process 1) key, query, value 생성 : 전체 hiddens_size를 실제로 attention 연산을 적용할 크기로 축소한다 2) attention score 구한다 3) context vector 구한다 (=output) ✔ num_attention_heads : (i.. 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑩ BERT Layer [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 👀 📑 BERT SelfAttention 📑 BERT SelfOtput BertLayer 1. BertLayer의 init() ✔ transformers.apply_chunking_to_forward : 연산 효율화를 위해 chunk를 나누어서 계산한다. : This function chunks the input_tensors into smaller input tensor parts of size chunk_siz.. 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑨ BERT model 출력값 [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 👀 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BaseModel 출력값 class BertModel(BertPreTrainedModel): def forward(...): ........ return BaseModelOutputWithPoolingAndCrossAttentions( last_hidden_state = **sequence_output**, pooler_output = **po.. 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑧ BERT model 입력값 [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 👀 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertModel 입력값 - BERT 모델을 생성한 후, forward 함수에서 필요한 입력값 class BertModel(BertPreTrainedModel): def forward( self, input_ids, attention_mask, token_type_ids, position_ids, head_mask, inputs_embeds, .. 2022. 10. 28.
[Pytorch][BERT] 버트 소스코드 이해_⑦ Bert Pooler [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 👀 📑 BERT Enocder 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertPooler : 마지막 hidden_state의 첫번째 토큰인 [CLS] 토큰의 embedding을 반환 We "pool" the model by simply taking the hidden state corresponding to the first token. The pooling layer at the end of the BERT m.. 2022. 10. 28.
[논문리뷰] Pre-training Methods Designed for IR 이 글은 "사전학습 언어모델을 이용한 정보 검색" 분야의 최신 이슈 및 연구 동향을 정리한 Suvey Paper인 "Pre-training Methods in Information Retrieval"의 내용 중 Section 6(Pre-training Methods Designed for IR) 을 정리한 글입니다. 제목 Pre-training Methods in Information Retrieval 저자 Yixing Fan, Xiaohui Xie, Yinqiong Cai, Jia Chen, Xinyu Ma, Xiangsheng Li, Ruqing Zhang and Jiafeng Guo 게재 일자 18 Aug 2022 인용 수 10회 인용 (2022.10.26 기준) 원본 https://arxiv.or.. 2022. 10. 26.
[Error] ModuleNotFoundError : No modul named 'torch' [Torch import 에러] import에 문제 없던 torch 라이브러리가 갑자기 실행이 안되었다. ModuleNotFoundError : No modul named 'torch' 다시 conda install torch를 했지만, 이미 설치되어 있다는 메세지.. 구글링을 하던 중, 파일을 python 2.xx버전으로 실행했을때 오류발생 한다는 글을 보고 python main.py가 아닌 python3 main.py로 실행하니 되었다.. https://github.com/pytorch/pytorch/issues/5563 2022. 10. 11.
[Pytorch][BERT] 버트 소스코드 이해_⑥ BertEncoder [Pytorch][BERT] 버트 소스코드 이해 목차 BERT 📑 BERT Config 📑 BERT Tokenizer 📑 BERT Model 📑 BERT Input 📑 BERT Output 📑 BERT Embedding 📑 BERT Pooler 📑 BERT Enocder 👀 📑 BERT Layer 📑 BERT SelfAttention 📑 BERT SelfOtput BertEncoder init 함수를 보니 많은 BertLayer 로 이루어져있다 ⇒ BertEncoder → BertLayer → BertAttention→ BertSelfAttention class BertEncoder(nn.Module): def __init__(self, config): super().__init__() self.conf.. 2022. 9. 30.
[Faiss] index.search() return negative value, KeyError: -1 faiss 라이브러리를 정상적으로 사용하는데, cpu_index.search(embedding, k) 결과 index값에 음수가 발생했다. 이후에 해당 document를 불러오는 과정에서 KeyErorr :-1 index값으로 음수를 반환하는 이유를 찾다가 embedding 값이 k보다 작음을 확인하였다. 즉 검색 가능한 문서는 k 건인데, 원하는 검색건수가 >k여서 일단 index를 -1로 반환한것 POC mode로 작게만들어서 test 하던 embedding을 원래 embedding으로 바꾼 뒤 정상적으로 작동함 확인하였다. 2022. 9. 2.