8월 3~4주차

하영영·2023년 8월 17일

🎯 졸작 준비자료

목록 보기
3/10
post-thumbnail

챗봇에서의 성능 확인 지표

1. Cost (Loss) 값:
학습 중에는 cost 값이 감소하는 것이 좋습니다. 이는 모델이 학습 데이터에 대해 잘 학습하고 있다는 것을 의미합니다.
그러나 cost 값만으로 모델의 성능을 완전히 판단하는 것은 적절하지 않습니다. 특히, 과적합(overfitting)이 발생할 수 있기 때문입니다. 과적합은 모델이 학습 데이터에만 너무 잘 맞춰져 있어, 실제 사용 시나리오나 테스트 데이터에서는 성능이 떨어지는 현상을 말합니다.
-> loss 값 확인

2. 평가 데이터셋 (Validation or Test Set):
모델의 일반화 성능을 평가하기 위해 평가 데이터셋을 사용하는 것이 중요합니다. 학습 데이터셋 외의 데이터로 모델의 성능을 평가하여, 실제 성능을 추정할 수 있습니다.
-> test 데이터 셋으로 확인!

3. 질적 평가 (Qualitative Evaluation):
"질문에 대한 응답을 잘 하는가?"라는 문제에서는 모델이 생성하는 응답의 질을 직접 확인하는 것도 중요합니다. 예를 들어, 여러 질문을 모델에게 제시하고 그 응답을 확인하여, 응답이 자연스럽고, 관련성이 있는지 등을 평가할 수 있습니다.
-> 직접 질문하기

4. 퍼플렉서티(perplexity)
: 모델 내에서 자신의 성능을 수치화하여 결과를 내놓는 방법




=> train cost값과 test cost 값만 낮아도
잘 학습하고 있는 모델이라고 볼 수 있음!!!!!!!!!!!!!!!!!!!!!!

그에 대한 주의사항

과적합 (Overfitting): 학습 데이터에 대한 cost가 계속해서 감소하는 반면, 테스트 데이터에 대한 cost가 증가하기 시작하면 모델이 과적합되고 있다는 신호일 수 있습니다. 이 경우, 모델은 학습 데이터에만 특화되어 일반화 능력이 떨어질 수 있습니다.

퍼플렉서티 (Perplexity): 언어 모델에서는 퍼플렉서티라는 지표도 자주 사용됩니다. 퍼플렉서티는 모델의 예측 불확실성을 나타내며, 값이 낮을수록 좋습니다. 퍼플렉서티는 cost를 기반으로 계산됩니다.

실제 성능 평가: cost나 퍼플렉서티만으로 모델의 성능을 완전히 평가하기는 어렵습니다. 실제 대화 시나리오에서 모델이 어떻게 동작하는지 확인하는 것이 중요합니다. 또한, 다양한 평가 지표 (예: BLEU 점수)를 사용하여 모델의 응답 품질을 평가할 수 있습니다.

학습 곡선: 각 에포크마다의 학습 및 테스트 cost를 그래프로 그려 학습 곡선을 관찰하는 것이 좋습니다. 이를 통해 모델의 학습 진행 상황을 더 잘 이해할 수 있습니다.

Accuracy 지표가 필요없는 이유

다양한 응답: 채팅봇은 주로 다양한 응답을 생성하는 데 중점을 둡니다. 정확도가 높은 하나의 정답을 찾는 것보다 다양한 응답을 생성하고 대화를 자연스럽게 이어나가는 능력이 더 중요합니다. 따라서 정확도와 같은 단일 지표보다는 다양성과 유창성을 평가하는 지표가 더 적절합니다.

의도와 다양한 입력: 채팅봇은 다양한 의도와 다양한 유형의 입력에 대해 대화를 처리해야 합니다. 정확도만 고려하면 특정 유형의 입력에 치우친 결과가 나올 수 있으며, 이는 다양성과 대화의 품질을 저하시킬 수 있습니다.








KoGPT-2 모델 로드

적극참조.. -->
https://github.com/ukairia777/tensorflow-nlp-tutorial/blob/main/22.%20Fine-tuning%20GPT-2%20(Cls%2C%20Chatbot%2C%20NLI)/22-3.%20kogpt2_chatbot_gpu.ipynb




Hugging Face의 Transformers 라이브러리를 사용해서
SKT에서 제공하는 KoGPT-2 모델을 로드하고
이를 사용하여 질문과 응답을 생성하는 챗봇 작업을 진행함

KoGPT-2 : GPT-2 모델을 Fine-Tuning한 한국어 언어모델


Hugging Face의 Transformers 라이브러리

다양한 사전 훈련된 언어 모델을 제공하며,
이를 기반으로 특정 작업에 대한 fine-tuning을 쉽게 수행할 수 있게 도와줌

Hugging Face의 Transformers 라이브러리를 이용해
사전 훈련된 언어 모델들을 로드하고 활용할 수 있게 해주는 python 패키지

라이브러리 내부에서 모델과 토크나이저를 다운로드하는 API 호출을 수행한다.



Hugging Face란?
: 자연어 처리(NLP) 분야에서 매우 인기 있는 회사 및 오픈 소스 커뮤니티
(대표기능)

  • Transformers 라이브러리
    : BERT, GPT-2...
  • Model Hub
    :연구자들이 훈련시킨 다양한 언어 모델들이 공유되어 있음
  • Datasets 라이브러리
    : 데이터셋 라이브러리로 NLP 데이터셋을 쉽게 다운로드하고 활용할 수 있음

    https://huggingface.co/docs/transformers/model_doc/gpt2













profile
NLP 공부중

0개의 댓글