48일차 자연어처리2

차지예·2025년 8월 2일

생성AI

목록 보기
43/56
post-thumbnail

KoBERT, SBERT, FAISS, 문서 임베딩


KoBERT를 이용한 기계 독해 (MRC: Machine Reading Comprehension)

✅ 목적

  • 문서(본문)와 질문을 입력으로 받아 정답이 포함된 문장 내 시작/종료 위치를 예측하는 작업
  • 대표적인 자연어 이해 태스크인 질의응답 (Question Answering, QA) 문제

✅ KorQuAD 데이터셋

  • 한국어 기반 QA 데이터셋 (context, question, answer 구성)
  • 정답의 위치는 본문 내 answer_start, answer_end로 표시됨

✅ MRC 모델 개념

  • 입력 포맷:
    [CLS] context [SEP] question [SEP]
  • 출력층:
    • 시작 위치 예측 (512 클래스 Softmax)
    • 종료 위치 예측 (512 클래스 Softmax)
  • 즉, 두 개의 다중 클래스 분류 문제로 구성됨

✅ 한계점

  • BERT 입력 최대 길이: 512 토큰
  • 본문이 길면 정답이 포함되지 않을 수 있음 → 해당 샘플 제거 필요

SBERT를 이용한 한국어 챗봇

✅ SBERT란?

  • BERT 기반 문장 임베딩 모델
  • 문장을 고정된 벡터로 변환하여 문장 간 의미 유사도 계산 가능

✅ 구조적 특징

  • 기존 BERT는 문장 간 비교 불편 → SBERT는 Siamese 구조로 학습
  • 학습 데이터: NLI (자연어 추론), STS-B (문장 유사도)

✅ 활용: 의미 기반 챗봇

  • 사용자 입력 문장을 SBERT 임베딩
  • 기존 질문 데이터와의 코사인 유사도 계산
  • 가장 유사한 질문의 답변을 응답으로 제공

✅ 시맨틱 검색이란?

  • 단순 키워드 기반이 아닌 의미 기반의 유사도로 문서를 검색
  • 쿼리와 문서를 SBERT로 임베딩 후, 벡터 공간에서 비교

✅ FAISS란?

  • Facebook AI에서 개발한 고속 벡터 검색 라이브러리
  • 수십만~수백만 벡터에 대해 내적(Inner Product) 또는 L2 거리 기반 검색 지원
  • 대규모 검색 시에도 1초 이내로 응답 가능

문서 임베딩 모델 (BGE-M3) 파인튜닝

✅ 문서 임베딩 모델

  • 문서 전체를 하나의 벡터로 변환
  • 검색, 분류, 유사 문서 찾기 등에 활용

✅ BGE-M3란?

  • BAAI에서 공개한 고성능 한국어 문서 임베딩 모델
  • SBERT 기반 + STS/NLI 기반 파인튜닝

✅ 파인튜닝 개념

  • 사용자의 검색 요구에 맞게 모델을 추가 학습
  • 필요한 데이터 포맷 (jsonl):
{
  "query": "검색어",
  "pos": ["관련 문서"],
  "neg": ["무관한 문서", "다른 문서"]
}

✅ 네거티브 샘플링

  • 쿼리에 관련 없는 문서를 자동으로 샘플링
  • 검색 모델의 구분 능력을 향상시킴

📝 전체 요약표

항목개념활용 목적
MRC (기계독해)질문과 본문을 입력받아 정답 범위 예측질의응답 시스템
SBERT문장을 벡터로 표현유사도 계산, 챗봇
FAISS고속 벡터 검색시맨틱 검색
문서 임베딩 파인튜닝사용자 데이터 기반 임베딩 개선검색 성능 향상

0개의 댓글