LLM & RAG Engineering
수조 개의 파라미터를 통해 인류의 지식을 수리적으로 압축하고, 자연어와 멀티모달 데이터를 물리적으로 생성하며 추론하는 현대 AI의 정점을 다룹니다.
Article
M
Me
hyunyoun's Blog
machine-learning-aimachine-learningaillmrag-engineeringretrieval-augmented-generationvector-searchlearning9 min read
1. Overview
거대 언어 모델 및 RAG 엔지니어링(LLM & RAG Engineering, LRE)은 인류가 생산한 모든 지식을 집어삼킨 초거대 인공지능을 통제하여, 단순한 잡담 기계(Chatbot)를 넘어 기업의 데이터를 정확히 검색하고 추론해 내는 '범용적 지능 파이프라인'을 설계하는 현대 AI의 최전선을 다룹니다.
과거에는 분야마다 다른 모델(번역용, 요약용)을 수백 개 만들었다면, 이제는 거대한 파운데이션 모델(Foundation Model) 하나를 프롬프트로 달래거나(Prompting) 미세 조정(Fine-tuning)하여 만능으로 씁니다. 학습자는 문장을 숫자로 바꾸는 토큰화(Tokenization)와 다음 단어를 예측하는 자기 회귀(Autoregressive) 생성의 본질을 깨닫습니다. 나아가 AI의 치명적인 단점인 '환각(Hallucination)'을 막기 위해 외부의 사내 문서를 주입하는 RAG(검색 증강 생성) 아키텍처를 물리적으로 구축하고, 모델을 윤리적 가치관에 맞추는 RLHF 정렬 역학을 배웁니다.
2. Scope & Boundaries
In-Scope
- 언어 모델 기초 (LLM Foundations): 트랜스포머 디코더 기반의 자기 회귀(Autoregressive) 생성 물리, 스케일링 법칙(Scaling Laws), 토큰 역학.
- 프롬프트 및 검색 증강 (Prompt & RAG): 프롬프트 엔지니어링(Few-shot, CoT), 벡터 데이터베이스(Vector DB), RAG 아키텍처 및 임베딩 공간 매핑.
- 미세 조정과 정렬 (Fine-tuning & Alignment): PEFT(LoRA), Instruction Tuning, RLHF(인간 피드백 기반 강화 학습).
- 멀티모달 및 에이전트 (Multimodal & Agents): 이미지/음성 통합 토큰화, 자율형 AI 에이전트(Autonomous Agents), 도구 호출(Tool Calling).
Out-of-Scope
- RNN 및 기초 신경망의 순전파 수학: 퍼셉트론과 LSTM의 수학적 기초 전개 11-02. Deep Learning & Transformer 영역으로 위임.
- LLM 추론 클러스터 및 k8s 서빙 인프라: vLLM을 쿠버네티스에서 오토스케일링하는 하드웨어 설정 11-04. MLOps 영역으로 위임.
Boundaries
- LRE vs. DLN (11-02): DLN(11-02)이 "어텐션 연산이 행렬로 어떻게 이루어지는지" 바닥부터 뼈대를 만든다면, LRE(11-03)는 "이미 훈련된 1,000억 개짜리 뼈대(LLM)를 어떻게 개조하고 외부 DB(RAG)와 붙여서 돈이 되는 서비스로 만들 것인가?"에 집중하는 하이레벨 응용 공학입니다.
3. Counterexample
- 프롬프트 만능주의 (Prompt-only Fallacy): 사내 규정을 물어보는 챗봇을 만들겠다며, LLM의 프롬프트 창에 1만 장짜리 사규를 매번 다 때려 넣고 질문하는 행위. 한 번 질문할 때마다 입력 토큰(Token) 비용으로 수십 달러가 깨지고, 입력 길이 제한(Context Window)에 걸려 모델이 뻗어버립니다. 방대한 문서는 프롬프트로 넣는 것이 아니라, 텍스트를 벡터(Vector)로 쪼개어 저장한 뒤 관련 있는 문단 딱 3개만 검색해 와서 주입하는 RAG(Retrieval-Augmented Generation) 아키텍처를 세워야 합니다.
- 무턱대고 파인튜닝 (Reckless Fine-Tuning Fallacy): "우리 회사만의 모델을 만들자!"라며 최신 LLM의 가중치(Weight)를 사내 데이터로 덮어쓰기(Full Fine-Tuning) 하는 데 수천만 원의 GPU 비용을 태우는 현상. 파인튜닝은 모델에게 지식(Knowledge)을 주입하는 데는 효율이 극도로 떨어지며(환각 발생), 모델의 '말투나 형식(Tone & Manner)'을 가르치는 데만 써야 합니다. 사내 지식을 가르치고 싶다면 RAG를 도입하는 것이 수백 배 싸고 정확합니다.
4. Prerequisites
- 딥러닝과 어텐션 구조 (Recommended): 트랜스포머의 'Self-Attention' 메커니즘을 알아야 프롬프트의 토큰 제한이 왜 발생하고 연산량이 어떻게 폭증하는지 이해할 수 있습니다. (11-02. DLN)
- 비정형 데이터베이스 (Basic): RAG 파이프라인 구축을 위해 벡터 유사도(Cosine Similarity)를 계산하는 벡터 DB 구조를 알아야 합니다. (06-03. Data Systems)
5. Learning Map
6. Learning Topics
Basic
Core Topic 01: 토큰 물리학과 프롬프트 엔지니어링 (Tokens & Prompting)
- Why to Learn: LLM은 인간의 언어를 이해하는 것이 아니라 숫자의 확률을 계산하는 기계임을 깨닫고, 기계가 가장 계산하기 쉬운 형태로 명령을 내리기 위함입니다.
- What to Learn:
- Concepts: 토큰화(Tokenization: BPE, WordPiece), 자기 회귀(Autoregressive Generation), 컨텍스트 윈도우(Context Window).
- Skills: 프롬프트 엔지니어링 뼈대 (Few-shot Prompting, 생각의 사슬 Chain-of-Thought), 환각(Hallucination).
- Tools: OpenAI Playground, Tiktoken.
- Trade-offs: "답만 말해!"라고 짧게 명령할 때의 오류 폭발 vs "단계별로 천천히 생각해 봐(CoT)"라고 명령하여 출력 토큰이 길어지지만 추론 정확도가 3배 수직 상승하는 토큰 경제학.
- How to Learn:
- 1단계: 한글 문장과 영어 문장을 토크나이저(Tiktoken)에 넣어보고, 왜 한글이 영어보다 토큰을 3배나 더 잡아먹어 과금이 3배로 나오는지 인코딩의 물리적 낭비를 확인합니다.
- 2단계: 복잡한 수학 문제를 그냥 풀라고 하면 틀리는 모델에게, "1단계: ..., 2단계: ..." 식으로 중간 추론 과정을 텍스트로 적어 내도록(CoT) 프롬프트를 바꾸면 정답률이 확연히 올라가는 생성 메커니즘을 캡처합니다.
- Implement: 특정 도메인(예: 법률 상담)에서 LLM이 거짓말(환각)을 절대 하지 않고, 모르면 "모른다"고만 대답하도록 페르소나와 제약 조건을 강제하는 System Prompt 엔지니어링 프레임워크 작성.
Recommended
Core Topic 02: 벡터 임베딩과 RAG 아키텍처 (Embeddings & RAG)
- Why to Learn: 2021년까지만 학습된 LLM에게 2024년의 최신 사내 기밀 문서를 안전하게 가르쳐서 실시간 챗봇을 만들기 위해서입니다.
- What to Learn:
- Concepts: 검색 증강 생성(RAG: Retrieval-Augmented Generation), 임베딩(Embedding), 코사인 유사도(Cosine Similarity).
- Skills: 텍스트 청킹(Chunking), 벡터 데이터베이스(Vector DB), 시맨틱 검색(Semantic Search).
- Tools: LangChain, LlamaIndex, ChromaDB / Pinecone.
- Trade-offs: 문서를 아주 잘게 쪼개서(Chunking) 벡터 DB에 넣으면 정확한 문장을 잘 찾아오는 장점 vs 문맥이 다 잘려나가 모델이 답변을 엉뚱하게 요약해 버리는 분할(Fragmentation)의 함정.
- How to Learn:
- 1단계: "사과"와 "바나나"라는 단어를 임베딩 모델에 넣어 1536차원의 숫자로 바꾸고, 두 숫자의 거리가 "사과"와 "자동차"의 거리보다 훨씬 가깝다는 것을 코사인 유사도 계산으로 증명합니다.
- 2단계: 1,000페이지짜리 사내 규정집을 500자 단위로 쪼개어(Chunking) 벡터 DB에 저장합니다. 사용자가 질문하면 벡터 검색으로 딱 맞는 3개의 조각만 뽑아낸 뒤, 그걸 프롬프트에 붙여서 LLM에게 "이 3개만 보고 대답해"라고 시키는 RAG의 전체 파이프라인을 조립합니다.
- Implement: LangChain을 활용하여 특정 PDF 파일 여러 개를 업로드하고 벡터 DB(Chroma)에 적재한 뒤, 이를 기반으로 답변 출처(Source)까지 함께 출력해 주는 사내 문서 Q&A 봇 파이프라인.
Practical
Core Topic 03: 파라미터 효율적 미세 조정과 정렬 (PEFT & Alignment)
- Why to Learn: 남들이 다 쓰는 범용 LLM의 말투가 마음에 들지 않거나 특정 전문 도메인 어휘를 못 알아들을 때, 거대 모델의 뇌수술을 '가장 싼값에' 진행하기 위함입니다.
- What to Learn:
- Concepts: 미세 조정(Fine-tuning), 파운데이션 모델(Foundation Model).
- Skills: PEFT(Parameter-Efficient Fine-Tuning), LoRA(Low-Rank Adaptation), RLHF(인간 피드백 기반 강화 학습).
- Tools: HuggingFace (Transformers, PEFT), vLLM.
- Trade-offs: 1,000억 개 파라미터를 다 학습시키는 Full Fine-Tuning의 완벽함과 수천만 원의 GPU 파산 비용 vs 가중치 행렬을 잘게 쪼갠 어댑터(LoRA)만 붙여서 학습하여 노트북 GPU 1장으로도 끝내는 극한의 엔지니어링 가성비.
- How to Learn:
- 1단계: 거대한 모델 가중치 행렬 W를 직접 수정하는 대신, 아주 얇은 행렬 두 개를 옆에 덧붙여서 학습시키는 LoRA의 수학적/물리적 트릭을 그려봅니다.
- 2단계: "해킹하는 법 알려줘"라는 질문에 모델이 절대 대답하지 못하도록 훈련된 이유가, 인간이 나쁜 대답에 낮은 점수를 주고 좋은 대답에 높은 점수를 주어 보상 함수를 훈련시킨 RLHF(Alignment)의 결과임을 뜯어봅니다.
- Implement: HuggingFace의 오픈소스 소형 LLM(Llama-3-8B 등)을 가져와, 사투리로만 대답하게 만드는 데이터셋(JSONL) 수천 개를 넣고 QLoRA 기법으로 미세 조정하여 나만의 사투리 어댑터(Adapter) 가중치 추출.
Advanced
Core Topic 04: 에이전트 아키텍처와 멀티모달 (Agents & Multimodal)
- Why to Learn: 키보드로 타자를 쳐야만 대답하는 수동적인 LLM을 넘어, 모델 스스로 툴을 사용하고 그림을 보며 자율적으로 움직이는 미래의 AI 로봇을 설계하기 위해서입니다.
- What to Learn:
- Concepts: 자율형 에이전트(Autonomous Agent), 도구 호출(Tool Calling / Function Calling), 멀티모달(Multimodal).
- Skills: ReAct(Reasoning and Acting) 프레임워크, 멀티모달 토큰 임베딩 물리.
- Tools: LangGraph, AutoGPT.
- Trade-offs: 에이전트에게 파이썬 코드 실행 권한과 인터넷 브라우징 권한을 주어 모든 것을 자율적으로 끝내는 환상적인 자동화 vs 에이전트가 환각(Hallucination)에 빠져서 회사 데이터베이스를 통째로 지우는 스크립트를 스스로 실행해 버리는 통제 불능의 재앙.
- How to Learn:
- 1단계: "오늘 서울 날씨와 뉴욕 날씨의 온도 차이를 알려줘"라고 물었을 때, 모델이 "나는 실시간 정보가 없다"고 하는 대신 스스로
get_weather(city="Seoul")라는 함수(Tool)를 호출하는 포맷으로 응답을 뱉어내고, 서버가 그 함수를 대신 실행해 결과값을 다시 모델에게 던져주는 핑퐁 로직을 짭니다. - 2단계: 텍스트뿐만 아니라 강아지 사진(Image)이나 음성 파형(Audio)을 어떻게 잘게 쪼개어 숫자로(Token) 바꾼 뒤 LLM이라는 단일 신경망 용광로에 한꺼번에 쏟아붓는지 멀티모달 아키텍처의 혁신을 스케치합니다.
- 1단계: "오늘 서울 날씨와 뉴욕 날씨의 온도 차이를 알려줘"라고 물었을 때, 모델이 "나는 실시간 정보가 없다"고 하는 대신 스스로
- Implement: LangGraph를 이용하여, "1. 사용자의 요청 분석 2. 웹 검색 함수 실행 3. 결과를 엑셀 파일로 저장 4. 이메일 전송"의 시퀀스를 LLM 스스로 판단하여 순차적으로 수행하는 상태 기반(Stateful) 자율 에이전트 봇 기획 및 구현.
7. Terminology
8. References
Primary References
- [CS2023: AL/Machine Learning] — 언어 모델의 자기 회귀적 생성 원리 및 토큰 물리 역학.
- [SWEBOK v3: Software Engineering Models] — AI 파이프라인과 LLM 통합을 위한 소프트웨어 엔지니어링 생명주기.
Secondary References
- [LangChain Documentation] — RAG 아키텍처, 벡터 스토어 통합 및 에이전트 라우팅 패턴 표준.
- [HuggingFace PEFT/LoRA] — 파라미터 효율적 미세 조정(PEFT) 기술 스펙 및 구현 가이드.
Industry References
- [OpenAI API Best Practices] — 프롬프트 엔지니어링, Few-shot 학습 및 컨텍스트 윈도우 한계 극복 패턴.
- [Pinecone / Milvus] — 시맨틱 검색을 위한 고성능 벡터 데이터베이스 시스템 백서.
9. Final Checklist
Primary Checklist
- 비즈니스 도메인의 텍스트 데이터를 임베딩하여 벡터 데이터베이스에 올바르게 청킹(Chunking) 및 적재했는가?
- LLM의 생성 답변이 할루시네이션(환각) 없이 RAG 파이프라인에서 검색된 컨텍스트 내에서만 출력되도록 프롬프트를 제한했는가?
Secondary Checklist
- 모델의 말투나 특정 출력 포맷(JSON 등) 강제가 필요한 경우에만 LoRA 등 파라미터 효율적 미세 조정을 제한적으로 적용했는가?
- 프롬프트 인젝션(Prompt Injection) 공격을 방어하기 위해 입력값 샌드박싱이나 제약 조건 룰을 시스템 프롬프트 레벨에 명시했는가?
Industry Checklist
- LLM을 서빙할 때 토큰당 과금(Cost)과 추론 지연 시간(Latency)을 측정하여 경제성 있는 모델 사이즈(예: 8B vs 70B)를 선택했는가?
- 자율형 에이전트(ReAct) 구성 시, 외부 API(예: DB 삭제 쿼리) 호출 권한을 최소 권한의 원칙에 따라 철저히 제한(Hard Stop)했는가?