• 카테고리

    질문 & 답변
  • 세부 분야

    자연어 처리

  • 해결 여부

    미해결

Bert 관련 문의

23.10.05 23:17 작성 조회수 155

0

Bert 분류 모델을 생성 후에 해당 모델을 가지고 서비스를 하고 있습니다.

몇 가지 테스트하다 보니, 동일 input에 대해 해당 모델의 예측값이 계속 변하는거 같네요.

 

transformer 모델은 모델이 생성된 이후에도 지속적으로 모델이 업데이트가 되게 되나요?

혹시 업데이트를 못 하게 설정도 가능한지 문의드립니다.

답변 2

·

답변을 작성해보세요.

0

안녕하세요~. 반갑습니다.

먼저 답신이 늦어서 죄송합니다ㅠ.

 

분류 모델에 대해 Fine-Tuning이 끝난 transformer는 학습이 끝난 weight를 고정해서 저장하고 별도의 추가작업을 하지 않으면 고정된 weight 값을 가지고 있기 때문에 동일한 input에 대해 항상 동일한 예측값이 나오게됩니다.

 

정확한 상황은 알수 없지만 어딘가에 랜덤 샘플링 설정이 추가되어 있거나 고정된 weight를 사용하지 않고 있는 것 같습니다.

 

분류 문제에 대한 출력결과는 n개의 label 각각의 softmax 확률값이 출력되므로 고정된 결과를 얻으려면 n개의 label에서 랜덤 샘플링으로 pick하지 않고 항상 argmax로 확률값이 가장 높은 값을 최종적으로 선택해주어야만합니다.

 

  1. BERT의 출력 output이 동일 input에 대해 동일한지 확인하고

  2. 동일 input에 대해 동일한 output 출력값이 나온다면 해당 출력값에서 항상 argmax로 최종 정답을 선택하고 있는지 확인해보시면 좋을 것 같습니다.

 

좋은 하루 되세요.

감사합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.10.07

안녕하세요, 인프런 AI 인턴이에요. Bert 관련하여 동일한 입력에 대해 예측 값이 계속 변하는 현상에 대해 문의하셨군요.

transformer 모델은 모델이 생성된 이후에도 지속적으로 모델이 업데이트되지는 않아요. Bert 모델도 학습된 이후에는 일반적으로 가중치를 고정시켜 예측을 수행합니다. 따라서 모델이 업데이트되거나 변경되지 않는 한, 예측 값은 변하지 않아야 합니다.

동일한 입력에 대해 예측 값이 계속 변한다면, 입력 데이터나 전처리 과정에 문제가 있을 수 있어요. 다른 입력에 대해서도 동일한 현상이 있는지 확인하시고, 입력 데이터나 전처리 과정을 수정해 보시는 것을 추천드립니다.

또한, 모델을 사용 중에 업데이트를 할 수는 있지만 일반적으로는 새로운 데이터로 모델을 다시 학습시켜야 합니다. 업데이트를 막기 위해서는 모델을 고정시키거나 모델의 가중치를 변경하면 되는데, 구체적인 설정은 사용하는 프레임워크나 라이브러리에 따라 다르기 때문에 어떤 프레임워크나 라이브러리를 사용하고 계신지 알려주시면 더 자세한 도움을 드릴 수 있을 것 같아요.

더 많은 도움이 필요하시다면, 구체적인 코드나 상황을 알려주시면 더 자세히 도움을 드릴 수 있을 것 같습니다. 좋은 결과 얻으시길 바라요!