AI/AI 서비스 개발

[AI 서비스 개발] 프로프트 엔지니어링, RAG

brave_sol 2025. 4. 22. 10:55

1. 프롬프트 엔지니어링이란?

- 생성형 AI 모델이 원하는 결과를 생성하도록 유도하는 명령어(프롬프트)를 설계하고, 최적화 하는 과정

- 인간의 의도를 AI가 정확히 이해하고, 그에 맞는 출력을 생성할 수 있도록 돕는 역할

 

2. 주요 프롬프트 엔지니어링 기법

- chain of Thought (CoT) 프롬프팅: 모델이 문제를 단계별로 해결하도록 유도하여, 복잡한 추론을 수행하게 하는 방식

- ReAct:  모델이 추론과 행동을 번갈아 수행하며 복잡한 작업을 해결하도록 하는 방식

- Self-Consistency Prompting(자기일관성 프롬프트 기법):  동일한 프롬프트를 여러 번 실행하여 다양한 응답을 생성하고, 그 중 가장 일관된 응답을 선택하는 방식

 

3. RAG

- 외부 지식 소스에서 정보를 검색해, 응답을 생성하는 방식

- 최신 정보나 도메인 특화 지식을 반영할 수 있어, LLM의 한계를 보완

 

1) 주요 구성 요소

- 인덱싱 및 검색: 외부 데이터를 임베딩하여 벡터 데이터베이스에 저장하고, 사용자 쿼리에 따라 관련 정보를 검색

- 생성: 검색된 정보를 LLM에 입력하여, 사용자 쿼리에 대한 응답을 생성

 

2) RAG와 파인튜닝의 차이점

- 파인튜닝은 모델 자체를 특정 데이터로 재학습시키는 반면, RAG는 외부 정보를 검색하여 응답에 활용

- RAG는 최신 정보 반영이 용이, 파인튜닝은 특정 작업에 최적화된 성능을 제공

 

3) RAG 시스템에서 검색기의 역할

- 사용자 쿼리에 맞는 관련 정보를 외부 데이터에서 찾아내는 역할

- 검색기의 성능은 전체 RAG 시스템의 응답 품질에 큰 영향을 미침

 

4) RAG 성능 평가 방법

- 정확도(Accuray): 응답이 실제 정답과 얼마나 일치하는지 평가

- 정밀도(Precision)와 재현율(Recall): 검색된 정보의 관련성, 포괄성 평가

- BLEU: ROUGE 점수: 생성된 텍스트의 품질 평가

 

5) 검색기의 성능을 향상 시키는 방법

- 하이브리드 검색: 키워드 기반 검색과 의미 기반의 검색을 결합해 정확도를 높임

- 재정렬: 검색된 결과를 추가 모델을 사용하여 재정렬하여 관련성이 높은 정보를 상ㅅ위에 배치

- 쿼리확장: 사용자 쿼리에 관련된 용어나 동의어를 추가해 검색 범위를 넓힘

 

6) 주요 과제

- 검색 정확도: 검색기가 관련 없는 정보를 가져올 경우, 응답의 품질이 저하

- 응답 일관성: 검색된 정보가 상충할 겨우, 응답의 일관성이 떨어질 수 있음

- 실시간 처리: 대용량 데이터에서의 실시간 검색과, 응답 생성은 시스템 자원을 많이 소모

 

7) 고려 요소

- 데이터 소스의 신뢰성: 정확하고 신뢰할 수 있는 외부 데이터를 사용

- 검색기와 생성기의 통합: 검색된 정보를 효과적으로 생성기에 전달하여 응답에 활용할 수 있어야 함

- 시스템 확장성: 데이터 양이 증가해도 시스템이 안정적으로 작동할 수 있도록 설계

 

4. 벡터 기반 검색에서 정확도를 높이기 위한 기법

1) 임베딩 품질 향상

- 도메인 특화 모델 사용: 의료/법률 문서ㅏ면 일반 모델보다 특화 모델로 개선

- 전처리 강화: 불용어 제거, 정규화, 줄바꿈/특수문자 정리로 noise 감소

- 정확한 문서 쪼개기 : 문맥이 자연스럽게 유지되도록 chunk_size와 overlap 조정

 

2) 검색구조 개선(Retrieval  개선)

- Hybrid Search : 키워드 기반 BM25 + 벡터 기반 검색 결합 → Recall 향상

- 쿼리 확장: 사용자 쿼리에 동의어, 관련어 추가로 검색 범위 확장

- Reranking: 1차로 검색된 문서들 중에서 질문과 가장 관련 있는 문서를 더 정밀한 모델로 다시 정렬하는 기법

- Metadata Filtering : 벡터 검색 전에 태그/카테고리로 필터링해 정밀도 높이는 방법

 

3) LLM과 연결 구조 튜닝

- context 압축 : 검색 결과가 너무 많을 때 핵심만 요약 후 전달해 토큰을 절약하고, 집중도를 높임

- chunck 선택 기준: top-k가 아니라, 점수 기준 필터 또는 다중 샘플링 활용

- 프롬프트 개선으로 지시 명확화

 

 

반응형