본문 바로가기

[AI] RAG과 임베딩의 개념 : AI 챗봇 만들기 -1

@hyeon.s2025. 7. 14. 17:05

사진 출처 : 요즘 IT https://yozm.wishket.com/magazine/detail/2828/

프로젝트 내 챗봇 기능을 만들기 위해 공부한 내용을 정리하였습니다. 

임베딩과 벡터

문장 → 숫자열로 바꾸는 이유

  • 컴퓨터는 숫자만 이해할 수 있기 때문에, 글자나 단어, 문장 하나하나를 벡터라는 숫자 배열로 바꾸어 저장한다.

임베딩 벡터란?

  • 임베딩 : 단어, 문장 의미를 숫자로 표현하는 기법
  • 벡터 : [0.12, -0,34 …] 처럼 생긴 일종의 좌표로
    • 차원이 높을 수록 더 섬세한 의미 표현 가능
    • 사과와 배의 벡터는 가깝고, 사과와 자동차의 벡터는 멀다

왜 사용할까?

  • 문장 간 의미 유사도를 벡터 사이의 거리로 계산할 수 있다.
  • 가까운 (의미가 비슷한)문장을 찾거나
  • 사용자의 질문과 가장 비슷한 공시, 뉴스 문서를 빠르게 고를때 활용한다.

RAG (Retrieval-Augmented Generation)

RAG의 전체 그림

1. Retrieval (검색)

  • 사용자의 질문을 임베딩 →
  • 벡터 DB에 물어서, 가장 비슷한 문서 3개를 꺼냄

2. Augmented(보강)

  • 꺼낸 문서 내용을(발췌) ‘추가정보’로 LLM (ex. Chat cpt)에 전달
    • 이 대회에서는 이 부분이 하이퍼x가 될려나??

3. Generation(생성)

  • LLM이 이 문서들을 참고해서 질문에 답해줘.라고 지시 →
  • 자연어(한국어) 답병늘 만들어냄)

단계별 비유

  • 문장 임베딩 → 지도 위에 고객의 질문을 좌표로 찍기
  • 검색 → 지도에서 가장 가까운 레스토랑 3개 찾기
  • 문서보강 → 그 식당의 메뉴판을 출력해서 주방장에게 보여주기
  • 생성 → 주방장이 메뉴를 참고해서, 이게 오늘의 특선 설명

개발중인 서비스 내 사용 예시 흐름

사용자

  • 이번달 예상 배당금액은?

보강

  • 추출된 문서 (공시요약, ETF보고서, 채권 전망)등을 발췌문으로 LLM에게 전달

생성

  • LLM이 이번달 예상 배당은 약 210만원입니다. 근거 … 형태로 자연어 문장 작성
hyeon.s
@hyeon.s :: 개발로그
목차