본문 바로가기

Issues & Troubleshooting/[Python]

[Python] KoBERT 사용 시 에러 처리

1. KoBERT 모델 선언

>> get_pytorch_kobert_model 사용 할 경우 HTTPS 에러 발생 ? --> KoBERT 개발자 깃허브/issue 참고

      다른 모델 불러온다(get_kobert_model())

** 추후 모델 저장 후 eval() 할 경우 모델 클래스는 항상 선언되어 있어야 함

#kobert
from KoBERT.kobert.utils import get_tokenizer
from KoBERT.kobert.pytorch_kobert import get_kobert_model

tokenizer = KoBERTTokenizer.from_pretrained('skt/kobert-base-v1')

bertmodel, vocab = get_kobert_model('skt/kobert-base-v1', tokenizer.vocab_file)

 

2. input tensor 관련 에러?

ex) dropout 인자로 float을 받아야하는데 str이 들어갔다

>> 1. input data중에 Nonetype이 있는 지 확인

>> 2. transformers의 버전이 4.x 라면 bert모델 return_dict=False 처리

def forward(self, token_ids, valid_length, segment_ids):
	attention_mask = self.gen_attention_mask(token_ids, valid_length)

	_, pooler = self.bert(input_ids=token_ids, token_type_ids=segment_ids.long(),
	attention_mask=attention_mask.float().to(token_ids.device), return_dict=False)
	if self.dr_rate:
	out = self.dropout(pooler)
  return self.classifier(out)

3. 기타 에러

>>  paramsetting numclass 개수 수정 (output classes 개수와 같아야 함)

 

**

여러 issue가 더 있었는데 .. 생각나는대로 추가할 예정