• zero-shot-classification fine-turning
    DEV 2023. 12. 20. 00:43

    three-point shot

    '유저 질의 의도(도메인)를 파악할 수 있는 모델을 파인튜닝 해 볼 수 있을까?' 🫤

    zero-shot-classification

    • 모델이 레이블이 지정된 예제 세트에 대해 훈련된 다음 이전에 볼 수 없었던 클래스의 새로운 예제를 분류할 수 있는 자연어처리 작업
      - 훈련 중에 모델에서 볼 수 없는 클래스를 예측하는 작업
    • 하지만 다양한 라벨링 데이터를 확보하는 것은 어려운 일
    • GPT-3와 같은 거대 규모로 학습된 언어 모델은 라벨링을 거의 사용하지 않고도 태스크를 수행할 수 있음을 보여줌

     

    chatGPT zero-shot classification

    • 하지만 GPT-3와 같은 모델을 활용해야만 가능한 작업이 나고 묻는다면 꼭 그렇지는 않다.

    거대모델을 사용하지 않고 문장의 도메인을 분류해 보자.

    1. Sentence Similarity task, sentence-transformers model

    2. Zero-shot classification task, transformers model 

    미리 정리한 질의와 class 예제

    text class
    코스닥 지수 알려줘 금융
    오펜하이머 등장인물 알려줘 영화
    서귀포 맛집 알려줘 장소
    ... ...

    sentence-transformers

    • 위 질의 리스트의 text열을 임베딩 → 유저 쿼리를 임베딩 → 유사한 의미를 가진 text를 찾아서 class를 리턴
    • 벡터 디비에 문서를 저장하고, 질의를 벡터디비에 검색해 검색된 결과로 질의에 대한 답을 주는 방식과 같지만, 질의에 대한 답을 주는 것이 아니라 비슷한 질의에 레이블 된 값을 리턴하여 활용
    • colab code

    prototype

    금융 class 질의 결과

    • 비슷한 질의에 대해 빠르고 정확하게 동작하지만, 비슷한 종류의 문장이나 레이블이 없을 경우 대응이 어렵다.

     

    영화 class 질의 결과, 정답을 주지 못함

    • 정답을 주진 못했지만 왜 저 문장이 뽑히게 되었는진 알겠다.

    Zero-shot classification, NLI

    • Natural Language Inference는 두 문장이 논리적 관계를 판단
    • entailment(수반), contradict(모순), neutral(중립적)
    premise(전제) hypothesis(가설) label
    "날 위해 네가 뭔가 해줘야 해." "나는 어떠한 도움도 필요 없어요." 2 (contradict:모순)
    "날 위해 네가 뭔가 해줘야 해." "내가 해야 하는 일은 아주 큰 일이다." 1 (neutral:중립)
    "날 위해 네가 뭔가 해줘야 해." "무언가 내가 해야 하는 일이 있다." 0 (entailment:수반)

    아래 논문에서 위 방법을 사용해 zero-shot classification을 수행하도록 제안

    text class
    영화 드라이브마이카의 감독은 누구인가요? 영화
    • 만약 위와 같은 데이터가 있을 경우, text에 대한 class결과를 알고 있기 때문에 아래와 같은 데이터를 간단한 배치를 통해 생성이 가능
    premise(전제) hypothesis(가설) label
    영화 드라이브마이카의 감독은 누구인가요? 이 문장은 (장소)에 관한 것입니다. 2 (contradict:모순)
    영화 드라이브마이카의 감독은 누구인가요? 이 문장은 (금융)에 관한 것입니다. 2 (contradict:모순)
    영화 드라이브마이카의 감독은 누구인가요? 이 문장은 (영화)에 관한 것입니다. 0 (entailment:수반)

    prototype

    base model 결과

    👇🏼

    finetuning model 결과

     

    • base model에서는 영화 관련된 질의를 '장소'라는 class로 분류했지만, 파인튜닝한 모델에서는 '영화'를 1순위로 분류

     

    base model

    👇🏼

    finetuning model

    • 금융, 장소 모두 해당 가능한 질의이지만, 파인튜닝 결과 의도대로 분류됨

     

    오분류

    • 학습 데이터가 부족한 경우도 발생

    Ref.

    728x90
go.