
LLM은 똑똑하지만 학습 시점 이후의 지식과 우리 회사의 내부 문서는 모릅니다. 이 한계를 메우는 대표적인 방법이 RAG(Retrieval-Augmented Generation, 검색 증강 생성)입니다. 이 글은 OpenAI Agent SDK 기반 RAG 구축 강의를 들으며 정리한 노트로, 밑바탕 개념(모델·가중치·임베딩)부터 RAG 파이프라인, 에이전트와의 결합까지 순서대로 정리합니다.
1. 바탕 개념 — 모델이란 무엇인가
신경망(NN)을 학습시키면 모델이 됩니다. 모델의 실체는 레이어라는 틀 + 가중치 값입니다. 아주 단순화하면 y = ax + b에서 a(가중치)를 데이터로 찾아가는 과정이 학습입니다.
목표: 입력에 2를 곱하는 규칙 학습
3 × 2 = 6, 3 × 3 = 9 ← 정답 데이터
가중치가 1이면: 1×2=2, 1×3=3 → 오차 발생
→ 오차가 줄어드는 방향으로 가중치를 반복 조정
이미지 분류라면 "그림 × 가중치 → 강아지"처럼, 학습된 가중치가 입력을 정답으로 매핑합니다. LLM(트랜스포머)도 원리는 같습니다 — "나는 학교에 ___ 간다"에서 빈칸에 올 확률이 높은 단어를 맞히도록 가중치를 학습한, 거대한 다음 단어 예측기입니다. 중요한 것은 이 가중치가 특정 시점까지의 학습 결과로 고정된다는 점입니다.
2. 새 지식을 넣는 두 가지 방법
학습 시점 이후의 데이터, 사내 문서 같은 "나의 새 데이터"를 모델이 다루게 하려면 두 갈래가 있습니다.
| 방법 | 비유 | 특징 |
| 파인튜닝(Fine-tuning) | 공부시키기 — 가중치 자체를 추가 학습 | 비용·시간 큼, 데이터 갱신마다 재학습 |
| RAG | 오픈북 시험 — 참고자료를 옆에 제공 | 가중치 그대로, 문서만 바꾸면 즉시 최신화 |
강의의 핵심 비유: 파인튜닝은 학생을 다시 공부시키는 것, RAG는 시험장에 오픈북을 들려 보내는 것입니다. 지식이 자주 바뀌는 업무 문서에는 RAG가 압도적으로 실용적입니다.
3. 임베딩 — 자연어를 인공어로
RAG를 이해하려면 토큰과 임베딩을 구분해야 합니다.
- 토큰(token): 문장을 잘게 쪼갠 조각. LLM 처리의 기본 단위.
- 인코딩(Encoding): 각 토큰에 번호를 부여하는 것.
- 임베딩(Embedding): 번호가 아니라 의미를 부여 — 토큰/문장을 고차원 벡터(숫자 배열)로 변환해, 의미가 비슷한 것끼리 벡터 공간에서 가깝게 놓이게 합니다. 자연어 → 인공어 번역인 셈입니다.
두 벡터가 얼마나 비슷한지는 코사인 유사도(cosine similarity)로 잽니다. 값이 1에 가까울수록 의미가 유사합니다. RAG 검색의 수학적 심장입니다.
4. RAG 파이프라인
준비 단계 (Indexing)
- Chunk: 문서를 적당한 크기의 조각으로 나눈다.
- 임베딩: 각 조각을 벡터로 변환한다.
- 벡터 스토어 저장: 벡터 DB에 넣어 검색 가능한 "준비 상태"로 만든다.
질의 단계 (Retrieval + Generation)
- 사용자 질문을 같은 임베딩 모델로 벡터화한다.
- 벡터 스토어의 기존 chunk들과 코사인 유사도로 비교해 가장 관련 있는 조각들을 찾는다.
- 찾은 조각을 질문과 함께 LLM에 넣어(오픈북) 답을 생성한다.
5. Agent SDK와의 결합 — LLM이 스스로 판단하는 RAG
OpenAI Agent SDK를 쓰면 RAG가 "항상 실행되는 고정 절차"가 아니라 에이전트가 필요할 때 꺼내 쓰는 도구가 됩니다.
- 지침(instructions)이나
agent.md같은 규칙 파일로 에이전트의 행동 방침을 정의하고, - 사용자 질문이 들어오면 LLM이 스스로 판단해 — 내부 지식으로 답할지, RAG(벡터 검색 도구)에 질의할지 결정합니다.
- 검색이 필요하면 질문을 임베딩해 벡터 스토어에서 유사 chunk를 찾아오고, 그 근거로 답을 생성합니다.
정리하면: RAG는 검색(Retrieval)으로 근거를 가져와 생성(Generation)을 보강하는 구조이고, Agent SDK는 그 검색을 "언제 할지"까지 LLM에게 맡기는 오케스트레이션 층입니다. 문서가 바뀌면 벡터 스토어만 갱신하면 되므로, 파인튜닝 없이도 항상 최신 지식으로 답하는 시스템을 만들 수 있습니다.
아래는 강의 중 캡처한 자료 화면입니다.



'푸닥거리' 카테고리의 다른 글
| AI-Native 소프트웨어 개발: GitHub Spec Kit을 활용한 Spec-Driven Development (0) | 2026.05.03 |
|---|---|
| 피지컬AI시대를 위한 산업용로봇 어플리케이션 이해 및 활용 (0) | 2026.04.26 |
| LLM 기반 자율 에이전트(Agent) 개발 및 워크플로우 자동화 (0) | 2026.04.19 |
| 온디바이스 기반 인공지능 비전인식 모델 학습 (0) | 2026.04.12 |
| Google ADK 기반 AI Agent 개발 (0) | 2026.03.29 |
댓글