KoBERTScore icon indicating copy to clipboard operation
KoBERTScore copied to clipboard

transformers 버전 관련

Open cyunjin opened this issue 4 years ago • 2 comments

예시에 나와있는 코드를 그대로 실행하였습니다.

''' from KoBERTScore import BERTScore

model_name = "beomi/kcbert-base" bertscore = BERTScore(model_name, best_layer=4)

references = [ '날씨는 좋고 할일은 많고 어우 연휴 끝났다', '이 영화 정말 재밌었어요', '영화 이야기 하는 문장인데요', '이 문장은 점수가 낮아야만 합니다' ] candidates = [ '날씨가 좋다 하지만 할일이 많다 일해라 인간', '영화 잘 고른거 같아', '브라질 열대우림이 장기간 화재로 면적이 줄어들고 있습니다', '테넷봤나요? 역의역의역은역인가요?' ]

bertscore(references, candidates, batch_size=128) ''

오류메시지: '''

AttributeError Traceback (most recent call last) in () 17 ] 18 ---> 19 bertscore(references, candidates, batch_size=128)

3 frames /usr/local/lib/python3.7/dist-packages/KoBERTScore-1.0.0-py3.7.egg/KoBERTScore/score.py in bert_forwarding(bert_model, input_ids, attention_mask, output_layer_index) 130 if output_layer_index == 'all': 131 return [h.cpu() for h in hidden_states] --> 132 return hidden_states[output_layer_index].cpu() 133 134

AttributeError: 'str' object has no attribute 'cpu' '''

transformers 버전 때문에 임베딩을 가져오는 bert_model() 코드에서 튜플로 반환이 안되어서 발생하는 문제로 보입니다. 일단은 requirements..txt에 transformer 버전을 낮춰서 이용하였지만, 보다 장기적인 관점에서 bert_model()에 return_dict = False 를 추가가 필요할 것 같습니다. nlp 공부는 처음인데 코드 참고하면서 공부를 많이 하였습니다. 감사합니다.

*참고: https://beomi.github.io/2020/12/04/Transformers4/

cyunjin avatar Dec 12 '21 10:12 cyunjin

transformers 버전을 몇으로 낮추셨는지 혹시 말씀해주실 수 있을까요?

jiwokang avatar Jan 23 '24 05:01 jiwokang

pip install transformers==3.0.2 --force-reinstall 로 버전 변경하여 해결하였습니다.

chancewaveCM avatar May 29 '24 00:05 chancewaveCM