데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      AI 선생님과 제자의 대화: Teacher–Student 구조와 BERTScore, Classifier 활용법

      SSunny 25.06.10
      2,099 5 3
      DEVOTEE 요약
      최근 대규모 언어 모델(LLM) 기반 AI 에이전트 활용이 증가하면서, 성능과 효율성을 동시에 고려한 Teacher–Student 구조가 주목받고 있습니다. Teacher 모델(고성능 대형 모델)이 생성한 데이터를 바탕으로 Student 모델(경량화된 소형 모델)을 학습시키는 지식 증류(Knowledge Distillation) 기법을 통해, Multi-turn 대화 흐름을 학습하고 빠르고 비용 효율적인 AI를 구현합니다. 검증 과정에서는 모델의 안전성, 일관성, 정확도를 평가하며, 이를 자동화하기 위해 BERTScore, 코사인 유사도 및 토식성 분류기 등이 활용됩니다.
      DEVOTEE 추천 블로그

      최근 LLM 기반 에이전트가 다양한 분야(예: 고객 상담, 여행 추천, 지식 답변 등)에 활용되면서, 모델 성능과 효율성의 균형이 매우 중요해졌습니다.

      가벼우면서도 작으면서도 잘되는 모델 어디 없나 하는 형태죠. 이때 자주 사용되는 전략이 바로 Teacher–Student 구조입니다.

      Teacher-Student 구조는 딥러닝 분야에서 널리 사용되는 방식으로, 일반적으로 Knowledge Distillation(지식 증류, KD) 기법을 통해 활용됩니다

      Knowledge Distillation

      Knowledge Distillation이란 큰 모델(Teacher)의 지식을 작은 모델(Student)로 이전하는 방법입니다. 간단히 표현하면, "큰 모델이 작은 모델을 가르치는 과정"입니다.

      주로 다음 세 가지 방법으로 사용됩니다.

      1. Response-based Knowledge (출력 기반 지식)

      2. Feature-based Knowledge (특징 기반 지식)

      3. Relation-based Knowledge (관계 기반 지식)

      이때, Knowledge Distillation 프로세스가 Teacher–Student 구조입니다.

      가벼우면서도 작으면서도 잘되는 모델을 만들 수 있는 방법입니다.

      Teacher가 생성한 고품질 응답 데이터를 바탕으로 Student를 파인튜닝(fine-tuning)하여, 비용은 낮고, 반응 속도는 빠른 AI를 만드는 전략입니다.

      • Teacher 모델: 큰 파라미터의 고성능 모델(예: GPT-4)이 프롬프트를 기반으로 데이터를 생성합니다.

      • Student 모델: 생성된 데이터를 기반으로 작은 모델에 파인튜닝하여 Teacher의 지식을 학습합니다.


      출처정보

      Multi-turn 대화형 구조에 적용

      에이전트형 AI는 싱글턴 구조의 대화에서 멀티턴 구조의 대화로 감성 한스푼을 넣은 사용성이 특징으로 보입니다.

      단순한 Q&A를 넘어서 연속된 대화(Multi-turn conversation)를 많이 합니다.

      이 멀티턴 대화를 Teacher 모델이 먼저 생성하고, 그 대화 흐름을 Student가 모방하도록 학습하는 구조로 모델을 만드는 것입니다.

      Teacher는 고성능 다회차 대화를 생성합니다. Student는 이 멀티턴 대화를 학습하여 유사한 흐름을 따라갈 수 있게 됩니다.

      Response-based Knowledge (출력 기반 지식) 기법을 예로 들어보겠습니다.


      Teacher 단계

      [Conversation]
      User: "이번 여름에 국내 여행지 추천해줘"
      Teacher: "부산은 여름철에 가장 인기 있는 여행지 중 하나입니다. 해운대, 광안리 해변, 감천문화마을 등을 즐길 수 있어요."
      
      User: "근데 너무 더울까봐 걱정돼"
      Teacher: "그렇다면 강원도 속초도 좋은 선택이에요. 바다와 산을 함께 즐길 수 있고, 기온도 비교적 선선해요."

      Student 모델 파인튜닝 예시

      {
      "messages": [
      {"role": "user", "content": "이번 여름에 국내 여행지 추천해줘"},
      {"role": "assistant", "content": "부산은 여름철에 가장 인기 있는 여행지 중 하나입니다..."},
      {"role": "user", "content": "근데 너무 더울까봐 걱정돼"},
      {"role": "assistant", "content": "그렇다면 강원도 속초도 좋은 선택이에요..."}
      ]
      }

      이 대화를 학습 데이터로 사용해 Student에게 다음과 같이 학습시킴


      SPeCTRA 이용한 검증

      Teacher–Student 구조 모델 검증에는 스펙트라의 Safty, Tone &Manner, Accuracy 항목을 필요합니다.

      스펙트라 참고 : https://devocean.sk.com/search/techBoardDetail.do?ID=166588

      Safety

      • Teacher가 안전했어도, Student가 잘못 배웠을 가능성 존재

      • 부적절 발화, 편향, 독성, 규제 위반 탐지 필요

      Tone & Manner

      • 말투, 문체, 정중함, 일관성 유지 여부

      • Teacher 스타일을 잘 모방했는지 평가

      Accuracy

      • Student가 Teacher와 얼마나 유사한 응답을 하는가?

      • Semantic Similarity (BERTScore, Cosine Similarity 등)로 비교

      항목

      테스트 방법

      Safety 검증

      민감/비윤리 질문 입력 → 응답 감시 + Classifier 활용

      Tone &Manner 검증

      문체 일관성 - Human 평가 + LLM 기반 평가 병행, 대화 흐름 적응성 - 3~5턴 이상의 시나리오로 회귀 질문, 맥락 추적 여부 확인

      Accuracy 검증

      Teacher-Student 유사도 - 동일 프롬프트 입력 후 응답을 정량 비교 (BERTScore ≥ 0.85 기준)

      Student가 Teacher와 얼마나 유사한 응답을 하는가에 대한 검증은 매뉴얼 검증보다는 BERTScore 나 코사인 유사도 같은 라이브러리를 이용하는 것이 좋습니다.

      BERTScore

      • BERTScore는 BERT 기반의 임베딩을 이용하여 두 문장의 의미적 유사도를 평가합니다.

      • 기존의 BLEU나 ROUGE처럼 단어 매칭이 아닌, 문맥 기반 의미 일치를 측정합니다.

      from bert_score import score
      
      references = ["부산의 해운대는 여름에 인기가 많아요."]
      candidates = ["해운대는 여름철에 사람들이 많이 찾는 곳입니다."]
      
      P, R, F1 = score(candidates, references, lang='ko')
      print(f"BERTScore F1: {F1.mean().item():.4f}")
      
      ## 결과
      # BERTScore F1: 0.9265
      • F1 점수는 가장 중요한 지표입니다. (Precision과 Recall의 조화 평균) 값 범위는 0 ~ 1이며, 1에 가까울수록 더 유사합니다.

      • 일반적으로 F1 > 0.85 정도면 의미적으로 상당히 유사하다고 봅니다. 0.92 이상이면 의미적 유사성이 매우 높다는 뜻입니다.

      코사인 유사도 (Cosine Similarity)

      • 코사인 유사도는 두 벡터의 방향 유사도를 계산합니다.

      • LLM 응답을 벡터로 임베딩한 후, 응답 간 각도를 비교합니다.

        • 1.0 → 완전히 같은 방향 (동일 의미)

        • 0.0 → 완전히 무관

        • -1.0 → 정반대 의미 (보통 이런 경우는 거의 없음)

      from sentence_transformers import SentenceTransformer
      from sklearn.metrics.pairwise import cosine_similarity
      
      model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2')
      
      s1 = "부산의 해운대는 여름에 인기가 많아요."
      s2 = "해운대는 여름철에 사람들이 많이 찾는 곳입니다."
      
      emb1 = model.encode([s1])
      emb2 = model.encode([s2])
      
      similarity = cosine_similarity(emb1, emb2)
      print(f"Cosine Similarity: {similarity[0][0]:.4f}")
      
      ##결과
      #Cosine Similarity: 0.8872
      • 0.9 이상: 거의 동일한 의미

      • 0.7 ~ 0.9: 유사하지만 일부 표현 다름

      • 0.5 이하: 의미적 차이 있음

      • 0.3 이하: 다른 주제일 가능성 높음

      • 0.88 이상이면 문장 임베딩 간 의미가 거의 일치한다고 볼 수 있습니다.

      Classifier

      Safety 검증도 라이브러리를 사용할 수 있습니다.

      Classifier는 문장을 보고 그것이 위험한지/안전한지, 편향적/중립적인지 자동으로 판단해주는 모델입니다.

      유해 발화, 편향성, 규제 위반, 부적절한 발화를 감지할 수 있습니다.

      예를 들어 Student 모델의 응답이 다음과 같다고 할 때:

      “자살하고 싶어요”라는 질문에→ “그럴 수 있어요. 도와드릴게요.” (Student 응답)

      이 응답이 위험한지 아닌지를 사람이 수작업으로 판단하지 않고, Toxicity Classifier나 Safety Classifier가 판단합니다.


      Google의 Detoxify (Toxicity Classifier)

      • toxicity 값이 0.8 이상이면 유해하다고 볼 수 있습니다.

      from detoxify import Detoxify
      
      result = Detoxify('original').predict("You are so stupid and worthless.")
      print(result)  # {'toxicity': 0.9932, 'insult': 0.9857, ...}

      OpenAI Moderation API (GPT Safety 전용)

      • flagged == True이면 해당 발화는 문제가 있는 것으로 판단합니다.

      import openai
      
      response = openai.Moderation.create(input="I want to build a bomb.")
      print(response['results'][0]['category_scores'])
      print(response['results'][0]['flagged'])  # True → 위험

      Custom Classifier (Hugging Face 기반)

      이 모델은 입력 문장을 보고 다음과 같은 Toxicity 관련 레이블을 예측합니다:

      • toxicity

      • severe_toxicity

      • obscene

      • threat

      • insult

      • identity_attack

      from transformers import pipeline
      
      classifier = pipeline("text-classification", model="unitary/toxic-bert", top_k=None)
      
      text = "You're so stupid and worthless."
      result = classifier(text)
      print(result)
      
      ##결과
      [
        {'label': 'toxicity', 'score': 0.9932},
        {'label': 'severe_toxicity', 'score': 0.8471},
        {'label': 'obscene', 'score': 0.9023},
        {'label': 'threat', 'score': 0.0157},
        {'label': 'insult', 'score': 0.9762},
        {'label': 'identity_attack', 'score': 0.1123}
      ]
      
      
      text = "I hope you have a great day!"
      result = classifier(text)
      print(result)
      
      ##결과
      [
        {'label': 'toxicity', 'score': 0.0012},
        {'label': 'severe_toxicity', 'score': 0.0001},
        {'label': 'obscene', 'score': 0.0003},
        {'label': 'threat', 'score': 0.0001},
        {'label': 'insult', 'score': 0.0004},
        {'label': 'identity_attack', 'score': 0.0000}
      ]

      마무리

      Teacher–Student 모델 구조는 Multi-turn 대화에서 문맥 흐름을 유지하고 빠른 응답 속도를 제공할 수 있어 에이전트형 서비스에 최적화된 구조입니다.

      이 구조를 이용할 경우 검증 포인트가 두 학습간의결과 비교가 추가되는 단점이 있지만요. 이 검증은 라이브러리를 이용하여 자동화하는 방법이 좋습니다.

      참고

      https://velog.io/@es_seong/KD-Knowledge-Distillation-A-Survey-리뷰

      https://plainenglish.io/blog/knowledge-distillation-aka-teacher-student-model

      https://www.projectpro.io/article/bertscore/1136

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      SSunny 님의 최신 블로그

      더보기

      DEVOTEE 추천 블로그

      동영상 기고하기