Hyeok의 웹 개발 블로그

<2025.06.02> RAG (검색-증강 생성) 본문

TIL/AI

<2025.06.02> RAG (검색-증강 생성)

Yhyeok 2025. 6. 2. 23:46

✅ RAG (검색-증강 생성)

  • RAG 란?
    • RAG (Retrieval-Augmented Generation)는 대규모 언어 모델의 출력을 최적화하여 응답을 생성하기 전에 학습 데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 프로세스
    • 대규모 언어 모델 LLM 은 방대한 양의 데이터를 기반으로 학습되며 수십억 개의 매개 변수를 사용하여 질문에 대한 답변, 언어 번역, 문장 완성과 같은 작업에 대한 독창적인 결과를 생성
    • RAG는 이미 강력한 LLM의 기능을 특정 도메인이나 조직의 내부 지식 기반으로 확장하므로, 모델을 다시 교육할 필요 X
    • LLM 결과를 개선하여 다양한 상황에서 관련성, 정확성 및 유용성을 유지하기 위한 비용 효율적인 접근 방식
  • RAG 가 중요한 이유?
    • LMM → 챗봇 / 자연어 처리 (NLP) 기능을 지원하는 AI 기술
    • LMM 기술의 특성상 LLM 응답에 대한 예측 불가능
    • LLM 훈련 데이터는 정적이며 보유한 지식에 대한 마감일을 도입한다.
    → LMM의 문제점
    1. 답변이 없을 때 허위 정보를 제공
    2. 사용자가 구체적이고 최신의 응답을 기대할 때 오래되었거나 일반적인 정보를 제공
    3. 신뢰할 수 없는 출처로부터 응답을 생성
    4. 용어 혼동으로 인해 응답이 정확하지 않다.
    5. 다양한 훈련 소스가 동일한 용어를 사용하여 서로 다른 내용을 설명
    -  RAG는 이러한 문제 중 일부를 해결 하기 위한 한 가지 접근 방식이다.
    -  LLM을 리디렉션하여 신뢰할 수 있는 사전 결정된 지식 출처에서 관련 정보를 검색
    -  조직은 생성된 텍스트 출력을 더 잘 제어 할 수 있으며, 사용자는 LLM이 응답을 생성하는 방식에 대한 통찰력을 얻을 수 있다.
  • RAG의 이점?
    • 비용 효율적인 구현
      • 챗봇 개발 → 파운데이션 모델 사용하여 시작
      • RAG는 LMM에 새 데이터를 도입하기 위한 보다 비용 효율적인 접근 방식
      * 파운데이션 모델 → 광범위한 일반화 데이터와 레이블이 지정되지 않은 데이터에 대해 훈련된   API 엑세스 가능 LLM
      
    • 최신 정보
      • RAG를 사용하여 LLM을 라이브 소셜 미디어 피드, 뉴스 사이트 또는 기타 자주 업데이트되는 정보 소스에 직접 연결할 수 있습니다. 그러면 LLM은 사용자에게 최신 정보를 제공할 수 있다.
    • 사용자 신뢰강화
      • RAG 는 LLM 소스의 저작자 표시를 통해 정확한 정보 제공 가능
      • 사용자는 추가 설명이나 세부 정보가 필요한 경우 소스 문서를 직접 찾아볼 수 있다.
      • 이를 통해 생성형 AI 솔루션에 대한 신뢰와 확신을 올릴 수 있다.
    • 개발자 제어 강화
      • RAG를 사용하여 채팅 어플을 보다 효율적으로 테스트하고 개선 가능
      • LLM의 정보 소스를 제어하고 변경하여 변화하는 요구 사항 또는 부서 간 사용에 적응 가능
      • 개발자는 민감한 정보 검색을 다양한 인증 수준으로 제한 하고, LLM이 적절한 응답을 생성하도록 가능
      • 광범위한 어플리케이션을위해 생성형 AI 기술을 보다 자신 있게 구현 가능
  • RAG 작동 방식
    • 외부데이터 생성
      • LLM의 원래 학습 데이터 세트 외부에 있는 새 데이터를 ‘외부 데이터’ 라고 한다.
      • API, 데이터베이스 또는 문서 Repository와 같은 여러 데이터 소스에서 가져올 수 있다.
      • 데이터 → 파일, 데이터베이스 레코드 or 긴형식의 텍스트와 같은 여러 형태로 존재 가능
      • 임베딩 언어 모델이라고 하는 또 다른 AI 기법은 데이터 수치로 변환 하고 벡터 DB에 저장
      • 프로세스는 생성형 AI 모델이 이해할 수 있는 지식 라이브러리를 생성
    • 관련 정보 검색
      • 사용자 쿼리는 벡터 표현으로 변환 → 벡터 DB와 매칭
      • 관련성은 수학적 벡터 계산 및 표현에 사용
    • LLM 프롬프트 확장
      • RAG 모델은 검색된 관련 데이터를 컨텍스트에 추가하여 사용자 입력(or 프롬프트)을 보강
      • 신속한 엔지니어링 기술을 사용 → LLM 과 효과적으로 통신
      • 확장된 프롬프트를 사용하면 대규모 언어 모델이 사용자 쿼리에 대한 정확한 답변 생성 가능
    • 외부 데이터 업데이트
      • 최신 정보를 유지하기 위해 문서를 비동기적으로 업데이트 및 문서의 임베딩 표현 업데이트
      • 자동화된 실시간 프로세스 또는 주기적 배치 처리를 통해 수행