AI에서 검색 증강 생성(RAG)이란?

검색 증강 생성(RAG)은 새로운 데이터 소스를 재학습시키지 않고 대규모 언어 모델(LLM)에 추가하는 방법입니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • AI에서의 검색 증강 생성(RAG) 이해하기
  • RAG로 LLM을 개선하는 방법 설명
  • RAG 챗봇 및 AutoRAG 이해하기

글 링크 복사

AI에서 검색 증강 생성(RAG)이란?

검색 증강 생성(RAG)은 대규모 언어 모델(LLM)을 완전히 재학습시키지 않고 특정 컨텍스트에서 사용할 수 있도록 해당 컨텍스트와 관련된 지식 베이스에 대한 액세스 권한을 부여하여 최적화하는 프로세스입니다. RAG는 특수 사용 사례에 맞게 LLM을 빠르게 조정할 수 있는 비용 효율적인 방법입니다. 이는 개발자가 인공 지능(AI) 모델을 미세 조정하는 데 사용할 수 있는 방법 중 하나입니다.

LLM은 방대한 양의 데이터로 학습되지만, 일부 환경에서는 필요한 특정 정보를 생성하지 못할 수 있습니다. LLM은 인간의 언어가 작동하는 방식에 대해 일반적으로 이해하고 있지만, 특정 주제 영역에 대해 항상 특정 전문 지식을 가지고 있는 것은 아닙니다. RAG는 이를 바로잡는 한 가지 방법입니다.

자동차 정비사가 1964년형 쉐보레를 정비하러 간다고 상상해보세요. 이 정비사는 수천 시간의 실무 경험으로 자동차 유지 관리에 대한 일반적인 전문 지식을 많이 보유하게 될 수 있지만, 효과적으로 자동차를 정비하려면 여전히 자동차 사용 설명서가 필요합니다. 하지만 이 정비사는 정비사로 다시 인증받을 필요는 없습니다. 설명서를 읽은 다음 이미 보유하고 있는 자동차에 대한 일반적인 지식을 적용하기만 하면 됩니다.

RAG도 비슷합니다. LLM은 LLM이 특정 사용 사례에 맞게 일반적인 지식을 조정할 수 있도록 '설명서' 또는 지식 기반을 제공합니다. 예를 들어, 일반 LLM은 API 쿼리가 작동하는 방식에 대한 콘텐츠를 생성할 수는 있지만, 사용자에게 특정 애플리케이션의 API를 쿼리하는 방법을 반드시 알려주지는 못할 수 있습니다. 하지만 RAG를 사용하면 해당 LLM을 애플리케이션의 기술 문서에 연결하여 해당 애플리케이션과 함께 사용하도록 조정할 수 있습니다.

RAG는 어떻게 작동할까요?

일반적으로 LLM은 쿼리를 수신하면 기존 매개변수와 학습에 따라 해당 쿼리를 처리합니다.

RAG를 통해 LLM은 LLM의 학습 데이터 세트에 포함되지 않은 데이터베이스인 '외부 데이터'를 참조할 수 있습니다. 따라서 LLM이 작동하는 일반적인 방식과 달리 RAG를 사용하는 LLM은 외부 데이터를 사용하여 응답을 개선하므로 이름이 retrieval(검색) (외부 데이터를 먼저 검색) augmented(강화)(이 데이터로 응답 개선) generation(생성)(응답 생성)의 두문자를 사용하여 붙여졌습니다.

위 예시의 자동차 정비사가 소유자 설명서를 직접 참조하는 대신 LLM을 사용하기를 원한다고 가정해 보겠습니다. LLM은 RAG를 사용하여 소유자 설명서 참조를 프로세스에 직접 통합할 수 있습니다. LLM이 기존 자동차 설명서를 학습하지 않았을 가능성이 높다는 사실에도 불구하고(또는 그러한 정보가 학습 데이터에 포함되었더라도 아주 작은 비율에 불과했을 가능성이 있음에도 불구하고) LLM은 RAG를 사용하여 관련성이 있고 정확한 쿼리를 생성할 수 있습니다.

LLM이 외부 데이터 소스(예: 자동차 설명서)를 사용하고 쿼리하려면 먼저 데이터를 벡터로 변환한 다음 벡터 데이터베이스에 저장합니다. 이 프로세스에서는 머신 러닝 모델을 사용하여 데이터 세트 항목의 수학적 표현을 생성합니다. (각 '벡터'는 [-0.41522345,0.97685323...]과 같은 숫자의 배열입니다.)

사용자가 프롬프트를 보내면 LLM은 해당 프롬프트를 벡터로 변환한 다음 외부 데이터 소스에서 생성된 벡터 데이터베이스를 검색하여 관련 정보를 찾습니다. 이 정보를 프롬프트에 대한 추가 컨텍스트로 추가한 다음 일반적인 모델을 통해 증강된 프롬프트를 실행하여 응답을 생성합니다.

AI에서 RAG의 장단점은?

LLM 미세 조정에 RAG를 사용할 때의 장점은 다음과 같습니다.

  • 사용 사례 내 정확도 향상: 정비사가 설명서가 있으면 자동차를 제대로 수리할 가능성이 더 높은 것처럼 LLM은 프롬프트와 관련된 지식 베이스에 액세스할 수 있으면 올바른 응답을 제공할 가능성이 더 높습니다.
  • 모델을 조정하는 저비용 방법: 재학습이 필요하지 않으므로 새로운 컨텍스트에서 LLM을 사용하기 시작하는 것이 계산 비용과 시간 소모가 적습니다.
  • 유연성: 모델의 매개변수가 조정되지 않으므로 동일한 모델을 다양한 사용 사례에서 빠르게 이동시킬 수 있습니다.

잠재적인 단점은 다음과 같습니다.

  • 더 느린 응답 시간: RAG는 재학습이 필요하지 않지만, 추론(추론하고 프롬프트에 응답하는 과정)은 이제 답을 생성하기 위해 여러 데이터 세트를 쿼리해야 하므로 시간이 더 오래 걸릴 수 있습니다.
  • 데이터 세트 전반의 불일치: 백과사전 두 세트에서 과거 사건을 약간 다르게 설명할 수 있는 것처럼 외부 기술 자료는 모델의 학습 데이터 세트와 원활하게 통합되지 않을 수 있습니다. 이로 인해 쿼리에 대한 응답이 일관되지 않을 수 있습니다.
  • 수동 유지 관리: 새로운 자동차 모델이 출시될 때와 같이 외부 기술 자료가 업데이트될 때마다 개발자는 새로운 데이터를 벡터로 변환하고 벡터 데이터베이스를 업데이트하는 프로세스를 수동으로 시작해야 합니다. (Cloudflare에서는 개발자가 이러한 수동 프로세스를 피할 수 있도록 AutoRAG를 개발했습니다. 자세한 내용은 아래를 참조하세요.)

RAG 챗봇이란?

RAG 챗봇은 LLM 기반 챗봇으로, RAG를 통해 특정 사용 사례에 특화되어 있으며, 챗봇이 작동하는 컨텍스트와 관련된 하나 이상의 외부 데이터 소스에 연결됩니다. 자동차 차고에서 사용하기 위한 RAG 챗봇은 자동차 문서에 액세스할 수 있습니다. 이는 범용 LLM 챗봇에게 질문하는 것보다 차고의 정비사에게 더 유용할 것입니다.

RAG와 low-rank adaptation(LoRA)의 비교

low-rank adaptation(LoRA)은 모델을 완전히 재학습시키지 않고 특정 컨텍스트에 맞게 모델을 미세 조정하는 또 다른 방법입니다. 그러나 LoRA에는 모델의 매개변수 조정이 포함되는 반면, RAG는 모델의 매개변수를 전혀 변경하지 않습니다. 여기에서 LoRA에 대해 자세히 알아보세요.

AutoRAG란?

AutoRAG는 개발자를 위해 RAG 파이프라인을 설정하고 관리합니다. 인덱싱, 검색, 생성에 필요한 도구를 연결하고 데이터를 인덱스와 정기적으로 동기화하여 모든 것을 최신 상태로 유지합니다. AutoRAG를 설정하면 백그라운드에서 콘텐츠를 색인화하고 쿼리에 실시간으로 응답합니다. AutoRAG 작동 방식 알아보기.

FAQ

검색 증강 생성(RAG)이란 무엇입니까?

RAG는 전체 재학습 없이 관련 지식 베이스에 대한 접근을 제공하여 특정 컨텍스트에 맞게 대규모 언어 모델(LLM)을 최적화하는 기술입니다. RAG는 특수 작업에 맞게 LLM을 사용자 지정하는 효율적인 방법입니다.

RAG는 LLM의 기능을 어떻게 향상시킵니까?

RAG를 사용하면 LLM이 전용 데이터베이스와 같은 외부 데이터 소스를 참조하여 응답을 풍부하게 할 수 있습니다. 사용자가 쿼리를 제출하면 LLM은 쿼리를 벡터로 변환하고, 벡터화된 외부 데이터 소스에서 관련 정보를 찾아 이 증강된 컨텍스트를 사용하여 더 정확하고 정보에 입각한 응답을 생성합니다.

AI 모델과 함께 RAG를 사용할 때의 주요 이점은 무엇입니까?

RAG는 LLM이 특화된 지식 베이스를 활용할 수 있기 때문에 특정 애플리케이션에 대한 AI 모델의 정확성을 향상시킵니다. RAG는 전체 재학습에 필요한 광범위한 컴퓨팅 리소스와 시간을 피할 수 있으므로 모델을 조정하는 데 비용 효율적인 방법입니다. 또한 RAG는 유연성을 제공하여 핵심 매개변수를 변경하지 않고 동일한 모델을 다양한 특정 시나리오에 쉽게 적용할 수 있습니다.

AI에 RAG를 구현할 때 잠재적인 단점은 무엇입니까?

RAG의 장점에도 불구하고, LLM이 여러 데이터 세트에서 정보를 검색하고 처리해야 하기 때문에 응답 시간이 느려질 수 있습니다. 외부 지식 베이스가 모델의 원래 학습 데이터와 완벽하게 일치하지 않으면 불일치가 발생할 위험도 있습니다. 게다가, RAG를 유지하기 위해서는 외부 지식 베이스가 변경될 때마다 데이터베이스 내에서 새로운 데이터를 벡터로 변환하고 업데이트하는 수작업이 필요합니다.

RAG 챗봇이란?

RAG 챗봇은 LLM 기반 챗봇으로, RAG 프로세스를 통해 특정 사용 사례에 맞게 특화된 것입니다. 이는 특정 운영 컨텍스트와 관련된 외부 데이터 소스에 접근할 수 있음을 의미하며, 이를 통해 범용 챗봇보다 더 표적화되고 정확한 응답을 제공할 수 있습니다.

RAG는 Low-Rank Adaptation(LoRA)과 어떻게 다릅니까?

RAG와 Low-Rank Adaptation(LoRA)은 모두 완전한 재학습 없이 AI 모델을 미세 조정하는 방법입니다. 그러나 접근 방식에서 차이가 있는데, RAG는 모델의 매개변수를 수정하지 않지만, LoRA는 이를 조정합니다.

AutoRAG란?

AutoRAG는 개발자를 위해 RAG 파이프라인의 설정 및 관리를 간소화할 수 있도록 Cloudflare에서 개발한 도구입니다. 인덱싱, 검색, 생성에 필요한 도구의 연결을 자동화하며, 백그라운드에서 콘텐츠를 지속적으로 업데이트하여 데이터 동기화와 실시간 쿼리 응답을 보장합니다.