바로 가기

검색 증강 생성이란?

URL 복사

검색 증강 생성(Retrieval-Augmented Generation, RAG)은 대규모 언어 모델(LLM)을 외부 리소스에 연결하여 생성형 AI 애플리케이션으로부터 더 나은 답변을 얻는 방법입니다. 

Red Hat의 AI 살펴보기

RAG는 데이터 리포지토리, 텍스트 모음, 기존 도큐멘테이션과 같은 선택한 외부 지식 소스를 통해 LLM 내에 존재하는 데이터를 보완하는 수단을 제공합니다. 이러한 리소스는 벡터 데이터베이스로 세분화되고 인덱싱되며, 참조 자료로 사용되어 더 정확한 답변을 제공합니다.

RAG는 선택한 정보 소스에서 특정한 실시간 정보를 검색하도록 LLM에 지시하므로 유용합니다. RAG는 모델 학습 및 미세 조정(fine-tuning) 비용을 들이지 않고도 사용자 정의 경험을 제공하여 비용을 절약할 수 있습니다. 또한 LLM에 쿼리 시 긴 문서보다는 가장 관련 있는 정보만 전송하여 리소스도 절약할 수 있습니다.

생성형 AI에 대해 자세히 알아보기 

LLM은 머신 러닝과 자연어 처리(NLP) 기술을 사용해 인간의 언어를 이해하고 생성합니다. LLM은 커뮤니케이션과 데이터 처리에 매우 유용할 수 있지만, 다음과 같은 단점도 있습니다.

  • LLM은 상용화된 데이터로 학습하지만 조직의 내부 데이터 세트와 같이 참조하고자 하는 특정 정보가 포함되어 있지 않을 수 있습니다.
  • LLM에는 지식 단절(knowledge cut-off) 날짜가 있어, 학습한 정보가 지속적으로 업데이트되지 않습니다. 그 결과, 해당 소스 자료는 오래되어 더 이상 관련성이 없어질 수 있습니다.
  • LLM은 때때로 "환각"이라고도 알려진 허위 또는 오래된 정보를 제공하기도 합니다.

RAG 아키텍처를 LLM 기반 질문-답변 시스템에 구현하면 LLM과 선택한 추가 지식 소스 간의 커뮤니케이션 라인이 제공됩니다. LLM은 상호 참조하고 외부 지식을 보완할 수 있어 사용자 쿼리에 더 신뢰할 수 있고 정확한 출력을 제공합니다.

대규모 언어 모델에 대해 자세히 알아보기 

RAG 아키텍처에 내장된 검색 메커니즘을 활용하면 LLM의 일반적인 학습 이상의 추가 데이터 소스를 활용할 수 있습니다. RAG를 통한 외부의 검증 가능한 일련의 사실에 기반한 LLM은 다음과 같은 여러 유익한 목표를 지원합니다.

정확성
RAG는 사용자가 이러한 주장을 검증할 수 있도록 인용할 수 있는 소스를 LLM에 제공합니다. 또한 질문이 지식 범위를 벗어나면 "모르겠습니다"라고 답하도록 RAG 아키텍처를 설계할 수 있습니다. 전반적으로, RAG는 LLM이 부정확하거나 오해의 소지가 있는 정보를 출력으로 공유할 가능성을 줄이고 사용자 신뢰를 높일 수 있습니다.

비용 효율성
LLM을 재교육하고 미세 조정하는 것은 비용과 시간이 많이 소요되며, 도메인별 정보로 처음부터 챗봇과 같은 것을 구축하기 위한 기반 모델을 생성하는 것도 마찬가지입니다. 사용자는 RAG를 활용해 문서나 파일을 쉽게 업로드하여 정보의 소스를 교체하거나 업데이트할 수 있을 뿐만 아니라 새로운 데이터를 LLM에 도입할 수 있습니다.

RAG는 추론 비용도 절감합니다. 로컬 모델을 실행하는 경우 자체 하드웨어에 요구 사항을 적용하거나 애플리케이션 프로그래밍 인터페이스(API)를 통해 외부 서비스를 사용하는 경우 종량제 요금 청구로 인해 LLM 쿼리는 비용이 많이 듭니다. RAG는 전체 참조 문서를 LLM에 한 번에 전송하는 대신 참조 자료에서 가장 관련성 높은 청크만 전송할 수 있으므로 쿼리 크기가 줄어들고 효율성이 개선됩니다.

개발자 제어
기존의 미세 조정 방식에 비해, RAG는 더욱 액세스 가능하고 간단한 방식으로 피드백을 받고, 트러블슈팅을 수행하고, 애플리케이션을 수정하도록 지원합니다. 개발자의 경우, RAG 아키텍처로 누릴 수 있는 가장 큰 장점은 도메인별 및 최신 정보 스트림을 개발자들이 활용할 수 있다는 것입니다.

데이터 주권과 프라이버시
LLM은 학습 데이터의 정보를 노출할 수 있기 때문에 LLM 툴을 미세 조정하기 위해 기밀 정보를 사용하는 것은 과거에는 위험했습니다. RAG는 민감한 데이터를 온프레미스에 유지하면서 로컬 LLM이나 신뢰할 수 있는 외부 LLM에 정보를 제공함으로써 이러한 프라이버시 우려 사항에 대한 솔루션을 제공합니다. RAG 아키텍처는 다양한 인증 수준으로 민감한 정보 검색을 제한하도록 설정할 수도 있습니다. 즉, 특정 사용자는 보안 취급 인가 수준에 따라 특정 정보에 액세스할 수 있습니다. 

RAG 아키텍처는 외부 소스에서 데이터를 검색하여 해당 데이터를 LLM의 컨텍스트로 처리하고 혼합된 소스에 따라 답변을 생성합니다. 이 프로세스에는 세 가지 주요 단계인 데이터 준비, 검색, 생성이 포함됩니다.

1단계: 데이터 준비(검색용)

  • 도큐멘테이션 소싱 및 로드: LLM과 공유하려는 소스 문서를 식별 및 획득하고, 텍스트 파일, 데이터베이스 테이블, PDF 등 LLM이 이해할 수 있는 형식인지 확인합니다. 소스 형식과 관계없이 각 문서를 벡터 데이터베이스에 포함하기 전에 텍스트 파일로 변환해야 합니다. 이 프로세스는 추출(Extract), 변환(Transform), 로드(Load), 즉 ETL 단계라고도 합니다. ETL은 저장, 분석 및 머신 러닝을 위해 준비하는 방식으로 원시 데이터를 정리하고 구성합니다.
     
  • 변환: 검색을 위해 "텍스트 분할" 또는 "청킹"으로 문서를 준비합니다. 즉, 업데이트된 문서를 구문 분석하고 뚜렷한 특징에 따라 관련 "청크"로 카탈로그화합니다. 예를 들어, 문단으로 형식이 지정된 문서는 표와 그림으로 구조화된 문서보다 모델이 찾고 검색하기가 더 쉽습니다.

    청킹은 의미, 문장, 토큰, 형식, HTML 문자 또는 코드 유형과 같은 요인을 근거로 할 수 있습니다. 많은 오픈소스 프레임워크는 LlamaIndexLangChain 등 문서 수집 프로세스를 지원할 수 있습니다.
     

  • 임베딩: 임베딩은 전문화된 머신 러닝 모델(벡터 임베딩 모델)을 사용하여 데이터를 숫자 벡터로 변환하고 수학적 연산을 적용하여 데이터 조각 간의 유사성과 차이점을 평가할 수 있습니다. 임베딩을 사용하면 관련 없는 세부 사항을 폐기하면서 텍스트(또는 이미지)를 콘텐츠의 핵심 의미를 캡처하는 벡터로 변환할 수 있습니다. 임베딩 프로세스는 청크 데이터를 숫자 값(예: [1.2, -0.9, 0.3])으로 할당하여 벡터 데이터베이스라는 더 큰 시스템 내에 인덱싱할 수 있습니다.

    이 숫자 값은 벡터 데이터베이스에서 RAG 아키텍처가 콘텐츠 청크 간의 연관성을 표시하고 해당 데이터를 정리해 검색을 최적화할 수 있도록 지원합니다. 이 인덱싱은 벡터를 구조화하여 유사한 개념이 인접한 좌표에 저장되도록 하는 것이 목표입니다. 예를 들어 "커피"와 "차"는 서로 가깝게 배치됩니다. "뜨거운 음료"도 가깝게 배치됩니다. "휴대폰" 및 "텔레비전"과 같은 관련 없는 개념은 멀리 배치됩니다. 두 개의 벡터 점 사이의 거리 또는 근접성은 모델이 검색하여 사용자 쿼리 출력에 포함할 정보를 결정하는 데 도움이 됩니다.
     

  • 저장: 여러 소스(선택한 외부 문서 및 LLM)의 조합된 데이터는 중앙 리포지토리에 저장됩니다.
     

2단계: 검색

  • 데이터가 벡터 데이터베이스로 카탈로그화되면, 알고리즘은 사용자의 프롬프트 및 쿼리와 관련 있는 정보의 스니펫을 찾고 검색합니다. LangChain과 같은 프레임워크는 의미, 메타데이터, 상위 문서와 같은 데이터 내 유사성에 기반한 검색을 포함해 여러 다양한 검색 알고리즘을 지원합니다.

    개방형 도메인 소비자 설정에서 정보 검색은 정보 소스의 API를 통해 액세스되는 인터넷의 인덱싱된 문서에서 이루어집니다. 정보를 비공개로 유지하고 외부 소스로부터 보호해야 하는 폐쇄형 도메인 엔터프라이즈 설정에서 RAG 아키텍처를 통한 검색은 로컬로 유지되고 보안을 강화할 수 있습니다.

    마지막으로, 검색 데이터는 프롬프트에 주입되고 처리를 위해 LLM으로 전송됩니다.
     

3단계: 생성

  • 출력: 응답이 사용자에게 표시됩니다. RAG 방식이 의도한 대로 작동하는 경우, 사용자는 제공된 소스 지식에 기반한 정확한 답변을 얻게 됩니다.

Red Hat Consulting을 통해 AI 프레임워크 사용하기 

머신 러닝 모델을 구축하는 경우 입력한 데이터 품질이 결과의 품질에 직결되므로 고품질 소스 문서를 찾는 것이 중요합니다. 왜곡되거나 편향된 결과를 생성하는 시스템은 AI를 사용하는 모든 조직에 심각한 우려 사항입니다. 따라서 소스 문서에 편향된 정보가 포함되지 않도록 주의해야 합니다. 즉, 권한 있는 그룹을 체계적으로 유리하게 하고 권한이 없는 그룹을 체계적으로 불리하게 하는 편향을 포함하지 않는 것이 출력의 편향을 완화하는 데 필수적입니다.

RAG 아키텍처에 사용하기 위해 데이터를 소싱하는 경우, 소스 문서에 포함하는 데이터가 정확히 인용되고 최신 정보인지 확인해야 합니다. 또한 인간 전문가는 모델을 더 광범위한 대상에 배포하기 전에 출력을 평가해야 하며, 모델이 프로덕션 사용을 위해 배포된 후에도 결과의 품질을 계속 평가해야 합니다.

데이터 학습 방식과 RAG 아키텍처 간의 차이점을 이해하면 필요에 따라 어떤 AI 리소스를 배포해야 하는지 전략적 결정을 내리는 데 도움이 됩니다. 또한 동시에 두 가지 이상의 방식을 사용할 수도 있습니다. 데이터 작업을 위한 몇 가지 일반적인 방식과 프로세스를 살펴보고 이를 RAG와 비교해 보겠습니다.

RAG와 프롬프트 엔지니어링 비교
프롬프트 엔지니어링은 LLM과 상호 작용하는 가장 기본적이며 가장 기술적이지 않은 방식입니다. 프롬프트 엔지니어링에는 사용자가 쿼리할 때 원하는 출력을 생성할 수 있도록 모델이 따라야 하는 일련의 지침을 작성하는 것이 포함됩니다. RAG에 비해, 프롬프트 엔지니어링은 더 적은 데이터(모델이 사전 학습된 것만 사용)를 필요로 하며 비용이 더 적게 들지만(기존 툴과 모델만 사용), 최신 또는 변화하는 정보에 기반한 출력을 생성할 수 없습니다. 또한 출력 품질은 프롬프트의 구문 분석에 따라 다르며, 따라서 응답이 일관되지 않을 수 있습니다.

많은 세부 정보를 필요로 하지 않고 일반적인 주제에 대한 정보를 추출하는 사용자 친화적이고 비용 효율적인 방식을 찾고 있는 경우, RAG가 아닌 프롬프트 엔지니어링을 선택할 수 있습니다.

RAG와 의미 검색 비교
의미론(semantics)은 단어의 의미에 대한 연구를 뜻합니다. 의미 검색은 검색 쿼리 이면의 의도와 맥락을 고려하는 방식으로 데이터를 구문 분석하는 기술입니다.

의미 검색은 NLP와 머신 러닝을 사용하여 쿼리를 해독하고 간단한 키워드 매칭보다 더욱 의미 있고 정확한 응답을 제공하는 데 사용할 수 있는 데이터를 찾습니다. 다시 말하면, 의미 검색은 사용자가 쿼리로 입력한 것과 결과를 생성하기 위해 사용되는 데이터 간의 격차를 해소하는 데 도움이 됩니다.

예를 들어, "꿈의 휴가"에 대한 쿼리를 입력하면, 의미 검색은 사용자가 "이상적인" 휴가에 대한 정보를 원할 가능성이 높다는 것을 모델이 이해하도록 돕습니다. 꿈에 대한 응답을 제공하는 대신 의도와 더 관련 있는 응답(예: 해변 휴가를 위한 홀리데이 패키지)을 제공합니다.

의미 검색은 RAG의 요소이며, RAG는 벡터 데이터베이스 검색 단계 중 의미 검색을 사용해 맥락에 정확하고 최신 상태인 결과를 생성합니다.

RAG와 사전 학습 비교
사전 학습은 대규모 데이터 세트를 학습하여 언어에 대한 폭넓은 이해를 얻기 위한 LLM 교육의 첫 단계입니다. 인간의 뇌가 학습하면서 신경 경로를 구축하는 방식과 유사하게, 사전 학습은 데이터로 학습하면서 LLM 내에 신경망을 구축합니다.

RAG와 비교하여, LLM의 사전 학습은 비용이 더 많이 들고 시간이 더 오래 걸릴 수 있으며, 수천 개의 GPU와 같이 더 많은 컴퓨팅 리소스가 필요할 수 있습니다. 학습된 모델에 상당한 영향을 줄 수 있을 만큼 광범위한 데이터 세트에 액세스할 수 있고 특정 주제나 개념에 대한 기초적인 이해를 LLM에 내장하려는 경우, RAG가 아닌 사전 학습을 선택할 수 있습니다.

RAG와 미세 조정(fine-tuning) 비교
RAG 아키텍처가 LLM이 알아야 할 사항을 정의하는 경우, 미세 조정은 모델이 작동해야 하는 방식을 정의합니다. 미세 조정은 사전 학습된 LLM을 가져와 더 작고 더욱 구체적인 데이터 세트를 사용하여 추가로 학습하는 프로세스입니다. 이렇게 하면 모델은 시간이 지나도 변하지 않는 공통 패턴을 학습할 수 있습니다.

RAG와 미세 조정은 표면상 유사해 보일 수 있지만, 차이점이 있습니다. 예를 들어 미세 조정에는 모델 생성에 수많은 데이터와 상당한 컴퓨팅 리소스가 필요하지만, RAG는 단일 문서에서 정보를 검색할 수 있으며 훨씬 적은 컴퓨팅 리소스가 필요합니다. 또한 RAG는 환각을 효과적으로 줄이는 것으로 입증되었지만, 환각을 줄이기 위해 LLM을 미세 조정하는 것은 훨씬 더 시간이 많이 걸리고 어려운 프로세스입니다.

모델은 종종 미세 조정과 RAG 아키텍처를 모두 사용하여 장점을 얻을 수 있습니다. 하지만 이미 방대한 양의 데이터와 리소스에 액세스할 수 있거나 데이터가 상대적으로 변하지 않는 경우, 또는 RAG가 전문으로 하는 질문-답변 형식보다 더 사용자 정의된 분석이 필요한 전문화된 태스크를 수행 중인 경우에는 RAG가 아닌 미세 조정을 선택할 수 있습니다. 

RAG 아키텍처에는 잠재적인 활용 사례가 많습니다. 다음은 가장 인기 있는 활용 사례 중 일부입니다.

  • 고객 서비스: 특정 문서에서 인사이트를 통해 고객 쿼리에 응답할 수 있는 챗봇을 프로그래밍하면 문제 해결 시간을 줄이고 더욱 효과적인 고객 지원 시스템을 구축할 수 있습니다.

  • 인사이트 생성: RAG는 이미 보유한 문서에서 학습하는 데 도움이 됩니다. RAG 아키텍처를 사용해 LLM을 연간 보고서, 마케팅 문서, 소셜 미디어 댓글, 고객 리뷰, 설문조사 결과, 연구 문서 또는 기타 자료에 연결하고 리소스를 더 잘 이해하는 데 도움이 되는 답변을 찾을 수 있습니다. RAG를 사용하면 소셜 미디어 피드, 웹 사이트 또는 자주 업데이트되는 기타 소스 등의 라이브 소스 데이터에 직접 연결하여 실시간으로 유용한 답변을 생성할 수 있다는 점을 기억하세요.

  • 의료 정보 시스템: RAG 아키텍처는 의료 정보 또는 조언을 제공하는 시스템을 개선할 수 있습니다. RAG는 개인 병력, 진료 예약 서비스, 최신 의학 연구 및 지침과 같은 요소를 검토할 수 있는 잠재력을 통해 환자에게 필요한 지원 및 서비스를 연결하는 데 도움을 줄 수 있습니다.

Red Hat® OpenShift AI는 유연하고 확장 가능한 머신 러닝 운영(MLOps) 플랫폼으로, AI 지원 애플리케이션을 빌드, 배포, 관리할 수 있는 툴을 제공합니다. 오픈소스 기술을 사용하여 구축한 이 플랫폼은 팀이 실험하고, 모델을 서빙하고, 혁신적인 애플리케이션을 제공할 수 있도록 일관된 운영을 지원하는 신뢰할 수 있는 기능을 제공합니다.

OpenShift AI를 사용하면 벡터 데이터베이스에 대한 액세스, 임베딩을 생성하는 LLM, 출력 생성에 필요한 검색 메커니즘과 같은 기반 워크로드 인프라를 제공하여 조직에서 RAG 아키텍처를 대규모 언어 모델 운영(Large Language Model Operations, LLMOps) 프로세스에 구현할 수 있습니다.

Red Hat Consulting은 고객이 Red Hat OpenShift AI 여정을 시작하고 기존 엔터프라이즈 서비스에 통합할 수 있도록 Red Hat OpenShift AI Pilot을 개발했습니다. 중앙 플랫폼이 구축되면 사용자들은 표준화된 라이브러리와 툴에 액세스할 수 있으며, 모든 사용자들에게 향상된 컴퓨팅 가용성이 제공되고, 데이터 사이언티스트와 기타 사용자의 온보딩 경험이 개선됩니다. 이러한 서비스를 통해 Red Hat 전문가는 사용자의 팀과 함께 현재 환경과 접근 방식을 평가하고 향후 요구 사항을 파악합니다. 그리고 Red Hat OpenShift AI를 배포 및 관리하고 고객 환경의 다른 데이터 사이언스 툴과 통합하여 기술을 최대한 활용하도록 지원합니다. 이 파일럿을 사용하면 컨설팅 서비스를 위해 ML 작동 모델을 갖출 필요가 없으며, Red Hat은 팀이 데이터 사이언스 여정의 어느 단계에 있든지 적극 협력하고 지원해드립니다.

모델 실험을 넘어 모델을 프로덕션으로 배포하기 위한 전략을 개발하고자 하는 조직을 위해 Red Hat Consulting은 다음 단계를 지원합니다. MLOps Foundation 인게이지먼트를 통해 조직은 데이터 사이언스 역량과 작업 방식을 개선하여 ML 전략을 발전시키고, 프로덕션 레디 추론 서비스를 위한 재사용 가능한 패턴을 생성하며, 클라우드 네이티브 툴링 및 아키텍처를 사용해 전체 ML 모델 라이프사이클을 자동화할 수 있습니다.

MLOps Foundation에 대해 자세히 알아보기 

새 릴리스

InstructLab

InstructLab은 대규모 언어 모델(LLM)을 개선하기 위한 오픈소스 프로젝트입니다.

추가 자료

문서

생성형 AI란?

생성형 AI는 대규모 데이터 세트로 학습한 딥러닝 모델을 사용하여 새 콘텐츠를 생성합니다.

문서

머신 러닝이란?

머신 러닝이란 명확한 프로그래밍 없이 패턴을 찾고, 예측하고, 경험을 통해 학습하도록 컴퓨터를 훈련하는 기술입니다.

문서

기반 모델이란?

기반 모델이란 다양한 태스크를 수행할 수 있도록 사전에 훈련된 ML(머신 러닝) 모델의 한 유형을 말합니다. 

AI/ML에 대해 자세히 알아보기

제품

새 제품

기업 애플리케이션을 위한 Granite 대규모 언어 모델(Large Language Model, LLM) 제품군을 원활하게 개발, 테스트, 실행에 사용되는 기반 모델 플랫폼입니다.

Red Hat OpenShift에서 AI/ML 실험 및 모델을 학습시키고, 튜닝, 서비스, 모니터링 및 관리할 수 있는 툴을 제공하는 AI 중심 포트폴리오입니다.

선택한 인프라에서 애플리케이션 출시 테스트를 마친 통합 서비스 세트가 포함된 엔터프라이즈 애플리케이션 플랫폼입니다. 

Red Hat Ansible Lightspeed with IBM watsonx Code Assistant는 Ansible 오토메이터, 오퍼레이터 및 개발자가 자신의 작업을 위해 설계한 생성형 AI 서비스입니다. 

리소스

e-book

프로덕션 레디 AI/ML 환경을 구축하기 위해 고려해야 할 중요 사항

애널리스트 문서

MLOps용 Red Hat 하이브리드 클라우드 플랫폼의 Total Economic Impact™

웨비나

오픈소스 및 쿠버네티스로 AI 최대한 활용하기