반응형
2. 컨텍스트 엔지니어링(Context Engineering)
AI에게 필요한 정보를 적절하게 제공하는 기술 — 정보의 기술
- AI에게 '무엇을(What)' 해야 할지 알려주는 것을 넘어, 그 일을 수행하는 데 필요한 **'지식과 상황 정보(Context)'**를 가장 효과적으로 주입하는 기술
- 모델이 '모르는 것'을 알게 하거나, '특정 정보'에 기반해 답변하게 만드는 환경 조성
- **RAG(검색 증강 생성)**가 대표적. 벡터 데이터베이스 구축, 데이터 전처리, 사용자 히스토리 관리 등을 통해 AI에게 ”지식의 맥락”을 제공
- 프롬프트가 '두뇌'라면, 컨텍스트는 그 두뇌가 참고할 '교과서'
- 단순히 텍스트를 많이 집어넣는 것이 아니라, 모델의 제한된 기억력(Context Window) 내에 가장 가치 있는 정보를 정교하게 배치하는 것이 핵심
주요 기법들 (Techniques)
1. 검색 증강 생성 (RAG, Retrieval-Augmented Generation)
가장 대표적인 기법으로, 모델의 파라미터 외부에 있는 지식을 실시간으로 찾아내어 전달
- Semantic Search (의미론적 검색): 질문의 단어가 정확히 일치하지 않아도, 의미적으로 유사한 문서를 벡터(Vector) 공간에서 찾아낸다.
- "뜨겁다"라는 단어가 없어도 의미가 유사한 "발열 현상", "온도 상승", "냉각 팬 오작동" 관련 매뉴얼 데이터를 찾아 제공
- Hybrid Search: 키워드 기반의 정확도(BM25)와 의미 기반의 유사도(Dense Vector)를 결합하여 검색 품질을 높인다.
- 'M3'라는 정확한 키워드(Keyword Search)와 '노트북 성능'이라는 의미(Semantic Search)를 동시에 검색하여 가장 정확한 제품 정보를 추출
- Re-ranking (재정렬): 검색된 수십 개의 문서 중, 질문과 가장 연관성이 높은 순서대로 다시 정렬하여 최상단 정보만 AI에게 전달.
- AI가 읽기 전, 다시 한번 고성능 알고리즘으로 계산하여 사용자의 질문과 가장 밀접한 상위 3개의 문서만 골라 프롬프트에 넣어줌
2. 데이터 전처리 및 청킹 (Chunking)
방대한 데이터를 AI가 읽기 좋은 크기로 쪼개는 기술
- Fixed-size Chunking: 고정된 길자로 자르는 기초적인 방식
- Recursive Character Chunking: 문단, 문장 마침표 등을 인식하여 의미가 끊기지 않게 유동적으로 자름
- 500자 단위로 자르되, 문장의 마침표(.)나 줄바꿈(\\n)을 기준으로 잘라서 "사과는 맛있다. 그래서 나는" 처럼 의미가 중간에 끊기지 않게 조절
- Semantic Chunking: 텍스트의 주제가 바뀌는 지점을 감지하여 의미 단위로 데이터를 분절
- "회사 소개" 섹션이 끝나고 "연봉 복지" 섹션으로 넘어가는 지점을 AI가 감지하여 주제별로 데이터를 분절
- Overlapping: 앞뒤 청크의 내용을 일부 겹치게 하여 맥락이 단절되는 것을 방지
- "A는 B의 원인이다."라는 문장이 잘려도 앞뒤 맥락을 통해 인과관계를 유지함
3. 컨텍스트 윈도우 관리 (Window Management)
모델이 한 번에 처리할 수 있는 정보량은 제한되어 있으므로, 이를 효율적으로 압축하고 선별
- Context Truncation & Sliding: 대화가 길어질 때 오래된 내용을 삭제하거나, 최근 맥락만 유지하며 이동하는 방식
- Summarization (요약): 이전 대화 내용이나 긴 문서를 요약본으로 변환하여 컨텍스트 용량을 확보
- 상황: 고객과 50번의 대화를 나눈 상태
- 작동: 이전의 40번 대화를 "고객은 환불 규정에 대해 문의 중임"이라는 한 줄 요약으로 압축하여 입력창 공간을 확보하고 최신 대화에 집중
- Information Compression: 불필요한 수식어나 조사를 제거하여 정보 밀도를 높이는 기법
- "안녕하세용 고객님! 무엇을 도와드릴까용?^^" → "문의 사항 확인 필요"와 같이 핵심 정보 위주로 토큰(Token)을 절약
4. GraphRAG (지식 그래프 결합)
단순한 텍스트 파편화를 넘어, 정보 간의 **'관계'**를 구조화하여 제공하는 고도화된 방식
- Entity Extraction: 문서 내 핵심 개체(인물, 장소, 개념 등)를 추출
- Relationship Mapping: 개체 간의 연결 고리를 그래프 형태로 저장하여, 단순 검색으로는 찾기 힘든 복합적인 추론(예: "A와 B의 공통점은?")을 가능하게 한다.
- 데이터: [스티브 잡스] - (설립) - [애플], [애플] - (제조) - [아이폰]
- 효과: 사용자가 "잡스가 만든 휴대폰의 특징은?"이라고 물으면, 여러 문서를 뒤지지 않고도 그래프를 따라 '잡스 → 애플 → 아이폰'의 관계를 즉시 파악해 답변
5. Few-shot & In-context Learning
프롬프트 안에 예시 데이터(Example)를 직접 포함시켜 모델의 적응력을 증가시킨다.
- Dynamic Few-shot: 모든 예시를 다 넣는 대신, 현재 질문과 가장 유사한 성공 사례(Golden Set)만 골라 컨텍스트에 삽입
- Instruction-Context Separation: 지시사항과 참고 데이터를 명확히 구분(예: ### Context ### 태그 활용)하여 모델이 혼동하지 않게 한다.실제 서비스를 만들 때, 이 기법들은 모델의 입력창(Context Window)을 어떻게 구성하느냐의 문제로 직결되기 때문
Few-shot은 프롬프트 엔지니어링일텐데?
실제 서비스를 만들 때, 이 기법들은 모델의 입력창(Context Window)을 어떻게 구성하느냐의 문제로 직결되기 때문
- 프롬프트 측면 (How): "예시를 이런 형식으로 보여줄게"라는 지시 방식에 집중
- 컨텍스트 측면 (What): "수만 개의 과거 상담 사례 중, 지금 질문과 가장 유사한 사례 3개를 데이터베이스에서 찾아와서 넣어주자"는 데이터 선별에 집중
| 기법 | 프롬프트 엔지니어링 측면 (How) | 컨텍스트 엔지니어링 측면 (What) |
| Zero-shot | 명확하고 간결한 지시문 작성 | 추가 정보 없이 모델의 내부 지식만 활용 |
| Few-shot | 예시를 보여주는 포맷 설계 | 질문에 최적화된 참조 데이터 선별 및 주입 |
| CoT | "단계별로 생각하라"는 트리거 | 모델의 추론 로그를 컨텍스트에 누적 |
[비교]
| 구분 | 프롬프트 엔지니어링 (기술) | 컨텍스트 엔지니어링 (정보) |
| 비유 | 요리사의 칼질과 레시피 설명 | 요리사 앞에 놓인 신선한 재료들 |
| 핵심 | "어떻게 말하게 할 것인가?" | "무엇을 보고 말하게 할 것인가?" |
| 예시 | "전문가처럼 답해줘(페르소나)" | "이 PDF 파일을 참고해서 답해줘(RAG)" |
반응형
'AI > 엔지니어링' 카테고리의 다른 글
| 3. Harness Engineering(하네스 엔지니어링) — AI가 실수를 못하게 하기위해 규칙과 울타리를 설계하는 기술 (0) | 2026.04.08 |
|---|---|
| 1. Prompt Engineering(프롬프트 엔지니어링) — AI에게 일(말)을 잘 거는 기술 (1) | 2026.04.08 |