일반 대화 감정 분류 모델 (General Chat Emotion Classifier)

이 모델은 일반적인 대화에서 사용자의 감정 반응을 예측하는 분류 모델입니다.
대화에서 사용자의 반응이 긍정적(썸 성공), 중립적(썸 유지), 부정적(썸 실패)인지 예측할 수 있습니다.

✅ 모델 정보

  • Base Model: KLUE-BERT
  • 입력 형식: "Q: 질문 A: 답변"
  • 출력 라벨:
    • 0: 부정적 반응 (썸 실패)
    • 1: 중립적 반응 (썸 유지)
    • 2: 긍정적 반응 (썸 성공)

🛠 사용 방법

from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch

model_name = "kelly9457/general-chat-classifier-v1"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSequenceClassification.from_pretrained(model_name)

def predict_label(question, user_answer):
    input_text = f"Q: {question} A: {user_answer}"
    inputs = tokenizer(input_text, return_tensors="pt", padding=True, truncation=True, max_length=128)

    with torch.no_grad():
        outputs = model(**inputs)
        probs = torch.nn.functional.softmax(outputs.logits, dim=-1)
    
    pred_label = torch.argmax(probs, dim=-1).item()
    return pred_label


# 예제 테스트
question = "주말에 영화 보러 갈래?"
answer = "응, 좋아!"
print("예측된 라벨:", predict_label(question, answer))

🖥 주피터 노트북에서 모델 사용하기

모델을 주피터 노트북에서 사용하려면 아래 단계를 따라주세요:

  1. 환경 준비:
    주피터 노트북이나 Google Colab 환경에서 아래 명령어로 필요한 라이브러리를 설치합니다.

    !pip install transformers torch
    
  2. 모델 불러오기 및 테스트:
    아래 코드를 주피터 노트북 셀에 복사해 실행하여, 모델과 토크나이저를 불러오고 예제 입력을 통해 예측을 확인할 수 있습니다.

    from transformers import AutoModelForSequenceClassification, AutoTokenizer
    import torch
    
    model_name = "kelly9457/bindly-simul-v2"
    tokenizer = AutoTokenizer.from_pretrained(model_name)
    model = AutoModelForSequenceClassification.from_pretrained(model_name)
    
    def predict_label(question, user_answer):
        input_text = f"Q: {question} A: {user_answer}"
        inputs = tokenizer(input_text, return_tensors="pt", padding=True, truncation=True, max_length=128)
    
        with torch.no_grad():
            outputs = model(**inputs)
            probs = torch.nn.functional.softmax(outputs.logits, dim=-1)
    
        pred_label = torch.argmax(probs, dim=-1).item()
        return pred_label
    
    # 예제 실행
    question = "주말에 영화 보러 갈래?"
    answer = "응, 좋아!"
    print("예측된 라벨:", predict_label(question, answer))
    
  3. 인터랙티브 테스트 (선택 사항):
    반복적으로 사용자 입력을 받아 모델을 테스트하고 싶다면 아래와 같이 인터랙티브 셀을 구성할 수 있습니다.

    while True:
        user_question = input("📝 질문 입력: ")
        if user_question.lower() == "exit":
            break
        user_answer = input("💬 답변 입력: ")
        if user_answer.lower() == "exit":
            break
        pred_label = predict_label(user_question, user_answer)
        print("🔥 예측된 라벨:", pred_label)
        print("-" * 50)
    

📊 평가 결과 (Validation Set)

Metric Score
Accuracy 0.9754
Macro F1 Score 0.9767

🚀 Hugging Face 업로드

모델을 Hugging Face에서 사용하려면 아래 명령어를 실행하세요.

from transformers import AutoModelForSequenceClassification, AutoTokenizer

model.push_to_hub("kelly9457/bindly-simul-v2")
tokenizer.push_to_hub("kelly9457/bindly-simul-v2")
Downloads last month
-
Safetensors
Model size
0.1B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for kelly9457/bindly-simul-v2

Base model

klue/bert-base
Finetuned
(161)
this model