이런 사람들에게
- bert model 이 똑같은 인코딩 값만 뱉어요.
- loss 는 줄어드는데, 정확도는 늘지 않아요.
3줄 요약
- BERT 와 같은 pretrained language model 이 똑같은 값만 출력하는 경우
- learning rate 가 높아서 그렇다.
- lr 을 낮추자.
관련 글 모음
해당 글에서도 learning rate 를 적절하게 사용하라고 권한다. 논문에서 사용한 값들을 활용해보자.
→ recommended learning rates from the official paper: 5e-5, 3e-5, 2e-5
이 글에서도 코드상의 문제인지 확인해달라고 하지만, 마지막에 해결하는 글들은 죄다 learning rate 를 낮추면서 해결한다. 특히 마지막에 0.01 에서 5e-5 로 바꾸면서 해결했다고 한다.
(혹시나 해서 하는 말인데, 5e-5 는 0.00005 다. e 앞에 적힌 숫자에 10 의 -5 제곱을 곱한 것과 같다. 나는 이 표현을 처음 봤을 때, 검색하는 방법도 감이 오질 않아서 헤맸던 기억이 있어서 남겨둔다.)
나 같은 경우는 lr = 0.01 로 사용했었는데, 1 epoch 만에 input에 관계없이 모두 똑같은 hidden state vectors 가 나왔다.
부디 learning rate 를 무시하지 말자. 믿었던 pretrained model 에서 변덕스러운 짓을 한다. 나는 주변 사람의 도움이 아니었다면, 절대 알아채지 못했을 실수였다....
'NLP > error' 카테고리의 다른 글
[error] conda 에서 local 에 설치된 라이브러리에 접근해요 (0) | 2024.02.23 |
---|---|
[error] GPU가 충분한데 CUDA OUT OF MEMORY가 발생합니다 (0) | 2023.12.13 |
[error] PeftModelForCausalLM.generate() takes 1 positional argument and 2 were given (0) | 2023.09.19 |
[error] 파이썬 엑셀 인코딩 문제 해결 (0) | 2023.09.19 |
[error] RuntimeError: CUDA error: invalid device ordinal (0) | 2022.08.03 |