자유게시판
일반

AI 용어 및 검색방법 절차

중년개발자
중년개발자

@loxo

3개월 전

65

📚 AI는 어떻게 기억을 찾을까?

- 도서관 탐정으로 배우는 RAG, 임베딩, 벡터, 리트리버 이야기

한 줄 요약

LLM(ChatGPT)은 모든 것을 외우고 있는 것이 아니라,
도서관에서 자료를 찾아와 답하는 똑똑한 사서라고 생각하면 이해가 쉽다.


어느 날...

당신은 엄청나게 큰 도서관의 관장이 되었다.

이 도서관에는

  • 회사 문서
  • PDF
  • 이메일
  • 소스코드
  • 위키
  • 회의록
  • 매뉴얼

수백만 권이 있다.

그러던 어느 날 누군가 물어본다.

"2025년에 우리 회사에서 PostgreSQL 업그레이드 정책이 뭐였죠?"

문제는...

사서가 모든 책을 읽을 시간은 없다.

그렇다면 어떻게 몇 초 안에 답을 줄 수 있을까?

바로 여기서 RAG가 등장한다.


RAG(Retrieval-Augmented Generation)란?

RAG는

검색(Retrieval) 후 생성(Generation)

이라는 뜻이다.

즉,

text
질문 ↓ 관련 문서 검색 ↓ LLM에게 전달 ↓ 답변 생성

ChatGPT가 모르는 회사 문서를
먼저 찾아서 읽고 대답하는 방식이다.


사람이라면 어떻게 찾을까?

만약 당신이

"고양이 키우는 방법"

을 찾는다고 해보자.

사람은

text
고양이 사료 화장실 예방접종

같은 의미를 떠올린다.

하지만 컴퓨터는...

text
고양이 == "고양이" 끝.

이다.

"냥이"

"집사"

"캣"

모두 다른 단어라고 생각한다.

그래서 AI는

단어를 숫자로 바꾸는 기술을 사용한다.


이것이 임베딩(Embedding)

임베딩은

문장의 의미를 숫자로 표현하는 기술

이다.

예를 들어

text
고양이는 귀엽다.

↓

text
[0.21, -0.88, 0.56, 0.31, ...]

이런 긴 숫자가 된다.

사람은 의미를 이해하고

AI는 숫자를 이해한다.


그런데 왜 숫자로 바꿀까?

왜냐하면

숫자는

거리 계산이 가능하기 때문이다.

예를 들어

text
고양이

↓

text
(10,5)
text
냥이

↓

text
(11,4)

거리가 아주 가깝다.

반면

text
자동차

↓

text
(90,120)

멀리 있다.

즉

의미가 비슷하면

숫자 위치도 가까워진다.


이것이 벡터(Vector)

벡터는

숫자로 표현된 의미의 위치

라고 생각하면 된다.

예를 들어

text
고양이 ● / / / 원점

자동차는

text
고양이 ● 자동차 ●

멀리 있다.

AI는

이 거리를 계산해서

의미가 비슷한 문서를 찾는다.


벡터 DB(Vector Database)는 무엇일까?

문서가

100만 개 있다고 해보자.

모든 문서를 매번 비교하면

엄청 오래 걸린다.

그래서

벡터 전용 데이터베이스가 등장한다.

대표적으로

  • Pinecone
  • Weaviate
  • Milvus
  • Qdrant
  • pgvector(PostgreSQL)

이들은

text
질문 벡터 ↓ 가장 가까운 벡터 ↓ 몇 ms 안에 검색

을 해준다.


Retriever는 누구일까?

Retriever는

도서관 사서이다.

질문이 들어오면

text
질문 ↓ 임베딩 ↓ 벡터 검색 ↓ 관련 문서 TOP5 반환

을 수행한다.

즉

LLM보다 먼저 일하는 직원이다.


Chunk는 왜 필요할까?

책 한 권이

1000페이지라고 하자.

LLM에게

1000페이지를 모두 주면

비싸고 느리다.

그래서

잘게 자른다.

text
책 ↓ 1장 ↓ 2장 ↓ 3장 ↓ ...

이 조각을

Chunk라고 한다.

보통

  • 500자
  • 1000 토큰

정도로 자른다.


Chunking

Chunking은

문서를 잘게 자르는 작업이다.

예를 들어

text
회사규정.pdf ↓ Chunk1 Chunk2 Chunk3 Chunk4

검색은

Chunk 단위로 이루어진다.


왜 Chunk 단위가 좋을까?

예를 들어

500페이지 책에서

한 줄만 필요하다.

책 전체보다

관련된

한 페이지만 전달하는 것이

훨씬 정확하다.


Top-K

검색 결과가

100개 나왔다.

그중

가장 비슷한

5개만 가져온다.

text
Top-5 Top-10 Top-20

이것을

Top-K라고 한다.


Similarity

Similarity는

얼마나 비슷한지를 나타낸다.

예를 들어

text
고양이 냥이 98%
text
고양이 강아지 62%
text
고양이 자동차 3%

이렇게 계산한다.


Cosine Similarity

가장 유명한 거리 계산법이다.

쉽게 말하면

두 화살표가 얼마나 같은 방향을 보는가?

이다.

text
↗ ↗ 거의 같다
text
↗ ↓ 전혀 다르다

Re-ranking

검색 결과를

한 번 더 똑똑하게 정렬한다.

text
검색 ↓ Top20 ↓ AI가 다시 평가 ↓ Top5

이 과정을

Re-ranking이라고 한다.


Prompt

Retriever가 가져온 문서를

LLM에게 이렇게 전달한다.

text
질문 === 회사 규정 ... 회의록 ... 매뉴얼 ...

이렇게 만들어진 입력이

Prompt이다.


Context

LLM에게 제공되는

추가 정보이다.

예를 들어

text
질문 + 검색 문서 + 규칙

전체를

Context라고 한다.


LLM은 언제 등장할까?

놀랍게도

가장 마지막이다.

text
질문 ↓ Retriever ↓ 검색 ↓ 관련 문서 ↓ LLM ↓ 답변

LLM은

검색을 하지 않는다.

검색된 문서를 읽고

답을 만들어준다.


전체 흐름

text
사용자의 질문 │ ▼ ┌──────────────────┐ │ Embedding Model │ │ 질문 → 벡터 변환 │ └──────────────────┘ │ ▼ Vector Database (문서 벡터 수백만 개 저장) │ 가장 가까운 벡터 검색 │ ▼ Retriever 관련 Chunk Top-K 선택 │ ▼ ┌───────────────────────────┐ │ Prompt 생성 │ │ 질문 + 검색된 문서 │ └───────────────────────────┘ │ ▼ Large Language Model (GPT, Claude, Gemini) │ ▼ 최종 답변 생성

실제 비유

text
사용자 │ │ "은행 API 가이드 알려줘" ▼ ────────────────────────────────── 도서관 사서 (Retriever) ↓ 도서 색인 검색 (Embedding) ↓ 도서 위치 찾기 (Vector Search) ↓ 관련 페이지 복사 (Chunk) ↓ 질문과 함께 전달 ↓ 박사님 (LLM) ↓ 설명해서 답변 ──────────────────────────────────

핵심 용어 한눈에 보기

용어가장 쉬운 비유
RAG도서관에서 책을 찾아 설명하는 시스템
Embedding문장을 숫자 좌표로 바꾸는 번역기
Vector의미를 표현한 숫자 위치
Vector DB의미 기반 도서 색인
Retriever책을 찾아주는 사서
Chunk책을 잘게 자른 한 페이지
Chunking책을 페이지 단위로 자르기
Similarity얼마나 비슷한가
Cosine Similarity의미의 방향이 얼마나 같은가
Top-K가장 비슷한 문서 몇 개 선택
Re-ranking검색 결과를 다시 똑똑하게 정렬
PromptLLM에게 전달하는 질문 꾸러미
Context답변에 사용할 모든 참고 자료
LLM자료를 읽고 자연스럽게 설명하는 전문가

기억하면 되는 한 문장

RAG는 '도서관에서 가장 관련 있는 자료를 찾아(Look up), AI가 그 자료를 읽고 답을 만들어주는 시스템'이다.

즉,

  • Embedding은 문장의 의미를 숫자로 바꾸고,
  • Vector DB는 의미가 비슷한 문서를 빠르게 찾으며,
  • Retriever는 가장 관련 있는 문서를 골라오고,
  • LLM은 그 문서를 바탕으로 사람처럼 자연스러운 답변을 만들어 준다.
#RAG#LLM#Embedding#Vector Database#AI

댓글 0

Ctrl + Enter를 눌러 등록할 수 있습니다
※ AI 다듬기는 내용을 정제하는 보조 기능이며, 최종 내용은 사용자가 확인해야 합니다.