AI 용어 및 검색방법 절차
중년개발자
@loxo
8일 전
📚 AI는 어떻게 기억을 찾을까?
- 도서관 탐정으로 배우는 RAG, 임베딩, 벡터, 리트리버 이야기
한 줄 요약
LLM(ChatGPT)은 모든 것을 외우고 있는 것이 아니라,
도서관에서 자료를 찾아와 답하는 똑똑한 사서라고 생각하면 이해가 쉽다.
어느 날...
당신은 엄청나게 큰 도서관의 관장이 되었다.
이 도서관에는
- 회사 문서
- 이메일
- 소스코드
- 위키
- 회의록
- 매뉴얼
수백만 권이 있다.
그러던 어느 날 누군가 물어본다.
"2025년에 우리 회사에서 PostgreSQL 업그레이드 정책이 뭐였죠?"
문제는...
사서가 모든 책을 읽을 시간은 없다.
그렇다면 어떻게 몇 초 안에 답을 줄 수 있을까?
바로 여기서 RAG가 등장한다.
RAG(Retrieval-Augmented Generation)란?
RAG는
검색(Retrieval) 후 생성(Generation)
이라는 뜻이다.
즉,
질문
↓
관련 문서 검색
↓
LLM에게 전달
↓
답변 생성ChatGPT가 모르는 회사 문서를
먼저 찾아서 읽고 대답하는 방식이다.
사람이라면 어떻게 찾을까?
만약 당신이
"고양이 키우는 방법"
을 찾는다고 해보자.
사람은
고양이
사료
화장실
예방접종같은 의미를 떠올린다.
하지만 컴퓨터는...
고양이 == "고양이"
끝.이다.
"냥이"
"집사"
"캣"
모두 다른 단어라고 생각한다.
그래서 AI는
단어를 숫자로 바꾸는 기술을 사용한다.
이것이 임베딩(Embedding)
임베딩은
문장의 의미를 숫자로 표현하는 기술
이다.
예를 들어
고양이는 귀엽다.↓
[0.21, -0.88, 0.56, 0.31, ...]이런 긴 숫자가 된다.
사람은 의미를 이해하고
AI는 숫자를 이해한다.
그런데 왜 숫자로 바꿀까?
왜냐하면
숫자는
거리 계산이 가능하기 때문이다.
예를 들어
고양이↓
(10,5)냥이↓
(11,4)거리가 아주 가깝다.
반면
자동차↓
(90,120)멀리 있다.
즉
의미가 비슷하면
숫자 위치도 가까워진다.
이것이 벡터(Vector)
벡터는
숫자로 표현된 의미의 위치
라고 생각하면 된다.
예를 들어
고양이
●
/
/
/
원점자동차는
고양이 ●
자동차 ●멀리 있다.
AI는
이 거리를 계산해서
의미가 비슷한 문서를 찾는다.
벡터 DB(Vector Database)는 무엇일까?
문서가
100만 개 있다고 해보자.
모든 문서를 매번 비교하면
엄청 오래 걸린다.
그래서
벡터 전용 데이터베이스가 등장한다.
대표적으로
- Pinecone
- Weaviate
- Milvus
- Qdrant
- pgvector(PostgreSQL)
이들은
질문 벡터
↓
가장 가까운 벡터
↓
몇 ms 안에 검색을 해준다.
Retriever는 누구일까?
Retriever는
도서관 사서이다.
질문이 들어오면
질문
↓
임베딩
↓
벡터 검색
↓
관련 문서 TOP5 반환을 수행한다.
즉
LLM보다 먼저 일하는 직원이다.
Chunk는 왜 필요할까?
책 한 권이
1000페이지라고 하자.
LLM에게
1000페이지를 모두 주면
비싸고 느리다.
그래서
잘게 자른다.
책
↓
1장
↓
2장
↓
3장
↓
...이 조각을
Chunk라고 한다.
보통
- 500자
- 1000 토큰
정도로 자른다.
Chunking
Chunking은
문서를 잘게 자르는 작업이다.
예를 들어
회사규정.pdf
↓
Chunk1
Chunk2
Chunk3
Chunk4검색은
Chunk 단위로 이루어진다.
왜 Chunk 단위가 좋을까?
예를 들어
500페이지 책에서
한 줄만 필요하다.
책 전체보다
관련된
한 페이지만 전달하는 것이
훨씬 정확하다.
Top-K
검색 결과가
100개 나왔다.
그중
가장 비슷한
5개만 가져온다.
Top-5
Top-10
Top-20이것을
Top-K라고 한다.
Similarity
Similarity는
얼마나 비슷한지를 나타낸다.
예를 들어
고양이
냥이
98%고양이
강아지
62%고양이
자동차
3%이렇게 계산한다.
Cosine Similarity
가장 유명한 거리 계산법이다.
쉽게 말하면
두 화살표가 얼마나 같은 방향을 보는가?
이다.
↗
↗
거의 같다↗
↓
전혀 다르다Re-ranking
검색 결과를
한 번 더 똑똑하게 정렬한다.
검색
↓
Top20
↓
AI가 다시 평가
↓
Top5이 과정을
Re-ranking이라고 한다.
Prompt
Retriever가 가져온 문서를
LLM에게 이렇게 전달한다.
질문
===
회사 규정
...
회의록
...
매뉴얼
...이렇게 만들어진 입력이
Prompt이다.
Context
LLM에게 제공되는
추가 정보이다.
예를 들어
질문
+
검색 문서
+
규칙전체를
Context라고 한다.
LLM은 언제 등장할까?
놀랍게도
가장 마지막이다.
질문
↓
Retriever
↓
검색
↓
관련 문서
↓
LLM
↓
답변LLM은
검색을 하지 않는다.
검색된 문서를 읽고
답을 만들어준다.
전체 흐름
사용자의 질문
│
▼
┌──────────────────┐
│ Embedding Model │
│ 질문 → 벡터 변환 │
└──────────────────┘
│
▼
Vector Database
(문서 벡터 수백만 개 저장)
│
가장 가까운 벡터 검색
│
▼
Retriever
관련 Chunk Top-K 선택
│
▼
┌───────────────────────────┐
│ Prompt 생성 │
│ 질문 + 검색된 문서 │
└───────────────────────────┘
│
▼
Large Language Model
(GPT, Claude, Gemini)
│
▼
최종 답변 생성실제 비유
사용자
│
│ "은행 API 가이드 알려줘"
▼
──────────────────────────────────
도서관 사서 (Retriever)
↓
도서 색인 검색 (Embedding)
↓
도서 위치 찾기 (Vector Search)
↓
관련 페이지 복사 (Chunk)
↓
질문과 함께 전달
↓
박사님 (LLM)
↓
설명해서 답변
──────────────────────────────────핵심 용어 한눈에 보기
| 용어 | 가장 쉬운 비유 |
|---|---|
| RAG | 도서관에서 책을 찾아 설명하는 시스템 |
| Embedding | 문장을 숫자 좌표로 바꾸는 번역기 |
| Vector | 의미를 표현한 숫자 위치 |
| Vector DB | 의미 기반 도서 색인 |
| Retriever | 책을 찾아주는 사서 |
| Chunk | 책을 잘게 자른 한 페이지 |
| Chunking | 책을 페이지 단위로 자르기 |
| Similarity | 얼마나 비슷한가 |
| Cosine Similarity | 의미의 방향이 얼마나 같은가 |
| Top-K | 가장 비슷한 문서 몇 개 선택 |
| Re-ranking | 검색 결과를 다시 똑똑하게 정렬 |
| Prompt | LLM에게 전달하는 질문 꾸러미 |
| Context | 답변에 사용할 모든 참고 자료 |
| LLM | 자료를 읽고 자연스럽게 설명하는 전문가 |
기억하면 되는 한 문장
RAG는 '도서관에서 가장 관련 있는 자료를 찾아(Look up), AI가 그 자료를 읽고 답을 만들어주는 시스템'이다.
즉,
- Embedding은 문장의 의미를 숫자로 바꾸고,
- Vector DB는 의미가 비슷한 문서를 빠르게 찾으며,
- Retriever는 가장 관련 있는 문서를 골라오고,
- LLM은 그 문서를 바탕으로 사람처럼 자연스러운 답변을 만들어 준다.