Watson for Customer Care 리드스페이스를 기본으로 사용하여 색상을 변경한 리드스페이스.
개요

대규모 언어 모델(LLM)은 종종 광범위한 주제에 대해 놀라울 정도로 지식이 풍부하지만, 범위가 학습한 데이터로만 제한됩니다. 즉, 비공개 또는 독점 비즈니스 정보가 포함된 LLM을 사용하려는 고객은 질문에 답하거나 서신을 생성하는 등의 작업에 LLM을 '즉시' 사용할 수 없습니다.

검색 증강 생성(RAG)은 파운데이션 모델이 모델의 학습 데이터에 포함되지 않은 전문적이거나 독점적인 주제에 대해 사실적으로 올바른 아웃풋을 생성할 수 있도록 하는 아키텍처 패턴입니다. RAG는 외부 데이터 소스에서 검색된 관련 데이터로 사용자의 질문과 프롬프트를 보강함으로써 모델에 '새로운'(모델에 대해 새로운) 사실과 세부 정보를 제공합니다.

 

 

개념적 아키텍처

사용자 쿼리에 응답하기 위한 주요 구성 요소와 이들 간의 상호 작용 흐름을 보여주는 RAG 솔루션의 개념적 아키텍처.
사용자 쿼리에 응답하기 위한 주요 구성 요소와 이들 간의 상호 작용 흐름을 보여주는 RAG 솔루션의 개념적 아키텍처.

아래 다이어그램에 표시된 RAG 패턴은 빌드 시간 동안의 데이터 임베딩과 런타임 중 사용자 프롬프트(또는 검색 결과 반환)의 두 부분으로 구성됩니다.

  1. AI 엔지니어는 데이터 전처리 중에 클라이언트 데이터(예: 절차 매뉴얼, 제품 문서 또는 헬프 데스크 티켓 등)를 준비합니다. 클라이언트 데이터는 모델 증강에 적합하도록 변환 및/또는 보강됩니다. 변환에는 PDF 문서를 텍스트로 변환하는 것과 같은 간단한 형식 변환 또는 복잡한 테이블 구조를 if-then 형식 문으로 변환하는 것과 같은 더 복잡한 변환이 포함될 수 있습니다. 보강에는 일반적인 약어 확장, 메타 데이터(예: 통화 정보) 추가, 그리고 검색 결과의 관련성을 개선하기 위한 기타 추가 작업이 포함될 수 있습니다.

     

  2. 임베딩 모델은 원본 데이터를 클라이언트 데이터의 단어를 나타내는 일련의 벡터로 변환하는 데 사용됩니다. 임베딩을 사용하면 단어를 나타내는 희소 벡터와 같은 큰 입력에 대해 기계 학습을 더 쉽게 수행할 수 있습니다. 임베딩은 정보를 더 쉽게 찾을 수 있도록 클라이언트 데이터의 구절(청크라고 함)로 저장됩니다. 구절은 하위 섹션 또는 단락이라고 생각하면 이해가 쉽습니다.

     

  3. 생성된 임베딩은 벡터 데이터베이스에 저장됩니다. 예를 들어, watsonx Discovery와 같이 관련성이 높은 결과를 반환하는 '퍼지' 쿼리를 지원하는 모든 데이터 소스를 RAG 아키텍처에서 사용할 수 있지만, 가장 일반적인 구현에서는 Milvus, FAISS 또는 Chroma와 같은 벡터 데이터베이스를 사용합니다.

    이제 최종 사용자가 시스템을 사용할 수 있습니다.
     

  4. 최종 사용자는 생성형 AI 지원 애플리케이션과 상호 작용하고 쿼리를 입력합니다.

     

  5. 생성형 AI 애플리케이션은 쿼리를 수신하고 벡터 데이터베이스에서 검색을 수행하여 사용자의 쿼리와 가장 일치하는 최상위 정보(이를 상위 K라고 함)를 얻습니다. 예를 들어, 사용자의 쿼리가 "MaxSavers 계정의 일일 인출 한도는 얼마입니까?"인 경우 검색은 "MaxSavers 계정은... ", "일일 출금 한도는... ", "... 계정 한도..." 등의 구절을 반환합니다.

     

  6. 특정 애플리케이션에 맞게 선별된 프롬프트와 함께 상위 구절이 LLM으로 전송됩니다.

     

  7. LLM은 최종 사용자에게 제공되는 사용자의 쿼리, 프롬프트, 컨텍스트 정보를 기반으로 인간과 유사한 응답을 반환합니다.

IBM 제품 아키텍처
IBM watsonx Discovery, IBM watsonx Assistant 및 watsonx.ai SaaS 버전이 RAG 솔루션 아키텍처를 구현하는 방법을 보여주는 일러스트.
IBM watsonx Discovery, IBM watsonx Assistant 및 watsonx.ai SaaS 버전이 RAG 솔루션 아키텍처를 구현하는 방법을 보여주는 일러스트.

watsonx 제품 포트폴리오를 RAG 패턴에 매핑하는 방법은 위 다이어그램에 나와 있습니다. 

watsonx Discovery는 패턴의 전처리, 임베딩 생성, 관련성 스토리지 및 검색 기능을 구현합니다. 특정 유형의 솔루션의 경우 watsonx Discovery를 사용자를 위한 프론트엔드 생성형 AI 애플리케이션으로도 사용할 수 있습니다. watsonx Discovery는 단순히 벡터 데이터베이스를 대체하는 것 외에도 엔티티 추출, 감정 분석, 키워드 추출, 카테고리 분류, 개념 태깅 등을 포함한 기본 제공 NLP 기능을 제공합니다.

채팅 솔루션의 경우 watsonx Assistant는 사용자 인터페이스와 이전 쿼리의 제목 기억과 같은 대화 기능도 제공합니다. 예를 들어, 사용자가 "Toast-o-matic에 대해 알려주세요"라고 물은 다음 "얼마예요?"라고 묻는다면, watsonx Assistant는 마지막 쿼리의 "it"이 첫 번째 쿼리의 토스터를 의미한다는 것을 알고 있습니다.

마지막으로, watsonx.ai는 고객이 클라우드 호스팅 환경에서 선택할 수 있는 대규모 언어 모델을 제공합니다. watsonx.ai를 통해 고객은 생성형 AI, 파운데이션 모델, 머신 러닝 모델을 쉽게 학습, 검증, 조정 및 배포할 수 있으며 적은 데이터로 짧은 시간 내에 AI 애플리케이션을 구축할 수 있습니다.

온프레미스/프라이빗 배포

일부 고객은 해당 지역에서 watsonx.ai를 사용할 수 없거나 보안 문제 또는 규제 요구 사항으로 인해 watsonx.ai SaaS 솔루션을 사용하지 못할 수 있습니다. 이러한 고객을 위해 IBM은 watsonx.ai를 일련의 컨테이너화된 서비스로 제공합니다. 이 서비스는 고객의 데이터 센터 내에서, 클라우드 서비스 제공업체 인프라의 가상 프라이빗 클라우드(VPC) 내에서 실행되는 Red Hat Openshift에 배포할 수 있습니다.

IBM watsonx Discovery, IBM watsonx Assistant, watsonx.ai가 온프레미스에서 배포되어 RAG 솔루션 아키텍처를 구현하는 방법을 보여주는 일러스트.
IBM watsonx Discovery, IBM watsonx Assistant, watsonx.ai가 온프레미스에서 배포되어 RAG 솔루션 아키텍처를 구현하는 방법을 보여주는 일러스트.
다국어 지원

대부분의 LLM은 영어가 우세한 텍스트로 학습하며, 이러한 텍스트에는 다른 언어(주로 서유럽 언어)가 소량만 포함되어 있습니다. 다국어 또는 현지화된 언어 지원이 필요한 애플리케이션의 경우 사전/사후 쿼리 번역 단계를 구현하여 입력을 사전 처리된 문서의 '기본' 언어(예: 영어)로 번역하고 모델 아웃풋을 대상 언어(예: 스페인어)로 번역하는 등의 작업을 수행할 수 있습니다. 이 접근 방식은 아래 다이어그램에 나와 있습니다.

다국어 지원을 위한 컴포넌트 상호 작용 및 흐름을 보여주는 RAG 솔루션 아키텍처 설명.
다국어 지원을 위한 컴포넌트 상호 작용 및 흐름을 보여주는 RAG 솔루션 아키텍처 설명.

이 접근 방식은 기본 RAG 패턴을 다음과 같이 변경합니다(임베딩 생성 단계를 따로 설정).

  1. 사용자가 사전 처리된 문서의 주 언어가 아닌 다른 언어로 쿼리를 입력합니다. 스페인어로 된 쿼리와 영어가 주를 이루는 문서 베이스를 예로 들 수 있습니다.

  2. 생성형 AI 애플리케이션은 대규모 언어 모델을 프롬프트하여 사용자 쿼리를 문서 베이스의 언어로 번역합니다. 이 예에서는 스페인어에서 영어로 번역합니다.

  3. 번역된 쿼리는 사용자의 쿼리와 가장 관련성이 높은 정보의 상위 K 구절을 검색하는 데 사용됩니다.

  4. 변역된 쿼리와 검색된 컨텍스트는 응답을 생성하기 위해 LLM으로 전송됩니다.

  5. 생성형 AI 애플리케이션은 다시 대규모 언어 모델을 사용하여 생성된 응답을 사용자의 대상 언어로 번역합니다. 이 예에서는 영어에서 스페인어로 번역합니다.

  6. 스페인어로 번역된 응답이 최종 사용자에게 제공됩니다.

경험에 따르면 제출되는 쿼리의 컨텍스트와 유형에 따라 이 접근 방식을 사용하여 비기본 언어 결과에서 80% 이상의 정확도를 달성할 수 있습니다. 더 많은 비율의 다른 언어로 학습된 새로운 다국어 모델은 훨씬 더 높은 정확도를 달성할 것으로 예상됩니다.

유스 케이스

RAG는 사용자가 권위 있는 답변을 제공하기 위해 참조해야 하는 대량의 문서와 비즈니스 규칙이 있는 모든 비즈니스 시나리오에 적합한 솔루션입니다. 또한 LLM 기반 챗봇에 독점 또는 도메인별 지식을 주입하고 할루시네이션을 방지하기 위한 강력한 솔루션이기도 합니다.

후보 용도는 다음과 같습니다.

  • 보험 인수 및 청구 심사. RAG는 보험 업계 내에서 많은 잠재적 응용 분야가 있습니다. 보험업자와 중개인은 수백 개의 보험 상품의 이용 약관을 다루는 수천 페이지의 문서에 대한 깊은 지식이 필요합니다. 마찬가지로 청구 심사관은 동일한 문서뿐만 아니라 개별 고객과 관련된 재정의 및 추가 약관이 있는 계약에 대한 깊은 지식이 필요할 수 있습니다. RAG 아키텍처 패턴은 보험업자, 중개인, 조정자가 상품 및 계약 문서를 쿼리하여 고객 문의에 더 잘 대응하고 프로세스 생산성을 개선할 수 있도록 지원하는 솔루션의 아키텍처 '중추' 역할을 할 수 있습니다.

  • 콜센터 상담원 지원. 콜 센터 상담원은 수백 가지에 달할 수 있는 제품 및 서비스뿐만 아니라 일반적으로 발생하는 제품 문제 및 해결 방법에 대한 깊은 지식이 필요합니다. RAG 패턴은 상담원이 클라이언트 요청에 대한 답변을 빠르게 찾을 수 있도록 지원하는 솔루션을 만들 수 있는 강력한 아키텍처 기반입니다.

  • 고객 챗봇. RAG는 질문에 답하는 고객 응대 챗봇을 만들 수 있는 강력한 도구입니다. 대규모 언어 모델의 자연어 처리 능력과 RAG의 기업별 응답을 결합하면 매력적인 대화형 고객 경험을 제공할 수 있습니다. RAG 자체는 질문과 답변 기능만 제공하며, 기업 시스템과 상호 작용하여 정보를 가져오거나 레코드를 업데이트하는 등의 '트랜잭션' 기능은 제공하지 않는다는 점에 유의하세요. 사용자 의도를 감지하고 기업 시스템과 상호 작용하려면 구성 요소를 추가해야 합니다.

  • 지원/헬프데스크. 콜 센터 상담원과 마찬가지로 IT 운영 및 지원 담당자는 복잡한 시스템 배포의 구성에 대한 심층적인 지식과 함께 일반적으로 발견되거나 이전에 발견된 문제 및 해결 방법에 대한 지식이 필요합니다. RAG 패턴은 지원 담당자가 보고된 문제 및 관찰된 문제에 대한 관련 답변을 신속하게 찾을 수 있도록 지원하는 솔루션을 만들 수 있는 강력한 아키텍처 기반입니다.

     

    아키텍처 결정 및 고려 사항

프로젝트에 적합한 모델을 선택하는 데에는 여러 가지 요소가 고려됩니다.

모델의 라이선스에 따라 사용 방법이 제한될 수 있습니다. 예를 들어, 모델의 라이선스로 인해 상업용 애플리케이션의 일부로 사용하지 못할 수도 있습니다.

모델 학습에 사용되는 데이터 세트는 모델이 특정 애플리케이션에서 얼마나 잘 작동하는지에 직접적인 영향을 미치며, 모델이 무의미하거나 공격적이거나 단순히 원치 않는 응답을 생성할 수 있는 위험에 상당한 영향을 미칩니다. 마찬가지로 저작권이 있는 데이터나 개인 데이터를 기반으로 학습한 모델의 사용자는 법적 책임을 물어야 할 수도 있습니다. IBM은 완전한 학습 데이터 투명성을 제공하고 자사 모델에서 발생하는 법적 청구에 대한 면책을 제공합니다.

모델의 크기, 학습된 매개변수의 수, 컨텍스트 윈도우(모델이 수용할 수 있는 텍스트 구절 길이)의 크기는 모델 성능, 리소스 요구 사항, 처리량에 영향을 미칩니다. '더 큰 것이 낫다'다 철학을 고수하고 200억 개의 매개변수 모델을 선택하고 싶지만, 리소스 요구 사항과 정확도 개선(해당하는 경우)만으로는 이를 정당화하지 못할 수 있습니다. 최근 연구에 따르면 일부 솔루션에서는 작은 모델이 큰 모델보다 성능이 훨씬 뛰어날 수 있습니다.

모델에 적용된 모든 미세 조정은 작업에 대한 적합성에 영향을 줄 수 있습니다. 예를 들어, IBM은 Granite 모델의 두 가지 버전을 제공합니다. 하나는 일반 채팅 애플리케이션에 맞게 조정되었고 다른 하나는 명령을 따르도록 조정되었습니다.

모델을 선택할 때 고려해야 할 기타 사항은 다음과 같습니다.

  • 모델 매개변수 선택. 예: 인간 같은 텍스트 생성과 사실적인 응답 간 균형을 맞추기 위한 모델 온도. 모델 온도를 높은 값으로 설정하면 일관되지만 잠재적으로 흥미롭지 않거나 지나치게 간결한 응답이 생성되고, 온도를 낮은 값으로 설정하면 응답에 더 많은 다양성이 도입되지만 응답 길이와 내용에 예측 불가능성이 추가됩니다.

  • 비효율적이거나 모욕적인 결과를 방지하기 위한 모델 가드레일의 선택 및 구현.

모델 선택은 애플리케이션, 데이터 유형 및 언어 지원 요구 사항에 따라 달라집니다. 업계 또는 고객별 용어나 두문자어를 정확하게 인코딩하고 검색하려면 임베딩 모델을 확장해야 할 수 있습니다.

벡터 데이터베이스는 임베딩 데이터 저장소를 구현하기 위한 하나의 옵션일 뿐입니다. Watson Discovery는 RAG 솔루션의 성능과 정확성을 개선할 수 있는 추가 툴과 기능을 제공합니다. 일부 '기존' 데이터베이스는 벡터 스토리지 및 검색 및/또는 유사성 검색을 제공하여 RAG 솔루션을 지원합니다.

또한 벡터 데이터베이스를 위한 다양한 옵션이 있습니다. 생성형 AI 애플리케이션에 직접 내장된 단순한 인메모리 데이터베이스는 뛰어난 런타임 성능을 제공하지만 대규모 데이터 세트에 잘 확장되지 않을 수 있으며, 최신 상태를 유지하거나 다중 서버 구성으로 확장하는 데 상당한 운영상의 문제가 발생할 수 있습니다. 중앙 서버 아키텍처를 사용하는 다른 데이터베이스는 운영 및 확장이 더 쉽지만, 특정 솔루션의 성능 요구 사항을 충족하지 못할 수 있습니다.

검색 및 생성 모델을 통합하는 데에는 여러 가지 방법을 사용할 수 있습니다. 상위 K 구절을 검색하여 이를 사용자 쿼리를 보강하는 데 사용하는 것은 간단하고 편리하지만, 복잡한 질문의 답변에 필요한 뉘앙스가 부족할 수 있습니다. 키워드로 간단히 검색해도 만족스러운 결과를 얻을 수 있습니다.

더 복잡한 솔루션은 LLM을 사용하여 사용자의 원본 쿼리에서 여러 쿼리를 생성하고 이를 사용하여 더 큰 구문 집합을 검색할 수 있습니다. 관련성이 가장 높은 검색된 구절을 추가로 정렬하고 선택하기 위해 논리를 추가할 수 있습니다.

데이터를 RAG 시스템에 공급하기 전에 데이터를 전처리하는 것은 입력 데이터가 모델에 적합한 형식인지 확인하는 중요한 단계입니다. 간단한 방법은 입력 데이터를 겹치는 고정된 크기의 청크로 나누는 것입니다(예: 청크의 마지막 10문자가 다음 청크의 첫 10문자와 같음). 하지만 이 경우 입력 데이터의 뉘앙스를 놓칠 수 있습니다.

고급 전처리를 통해 입력 텍스트를 조작하여 일반적인 단어 어미 등을 제거할 수 있습니다. stopper, stopping, stopped는 모두 stop으로 바꾸고, the, as, is 등과 같이 정보를 제공하지 않는 '정지' 단어를 삭제하는 등의 기법을 사용합니다. 이는 검색된 정보의 관련성을 크게 향상시킬 수 있지만, 데이터 임베딩과 사용자 프롬프트 단계 모두에 복잡성을 더합니다.

훨씬 더 발전된 기술은 텍스트에서 가능한 한 많은 의미를 유지하기 위해 전체 문장에 대해 작동할 수 있습니다.

RAG 시스템의 성능 평가는 작업의 복잡한 특성으로 인해 어려울 수 있습니다. 일반적인 평가 메트릭에는 당혹성, 유창성, 관련성, 일관성이 포함되며 BLU 및 ROUGE 메트릭도 포함됩니다. 작업의 특정 목표와 원하는 결과에 부합하는 메트릭을 선택하는 것이 중요합니다.

RAG에는 일반 텍스트가 필요하며, 변환 방법 선택은 데이터 품질에 큰 영향을 미칩니다. 예를 들어, PDF 파일을 변환할 때 표, 이미지 및 기타 메타데이터 요소는 어떻게 처리될까요?

LLM에서 인간과 유사한 응답을 생성하려면 상당한 컴퓨팅 리소스가 필요하며, 모델의 크기, 사용자 쿼리의 복잡성, 모델에 전달되는 증강 정보의 양에 따라 몇 초가 걸릴 수 있습니다. 대규모 사용자 그룹에 서비스를 제공해야 하거나 빠른 응답 시간이 필요한 솔루션은 자주 발생하는 쿼리에 대한 모델 응답을 캐시하는 메커니즘을 구현해야 할 수 있습니다.

독점적이고, 기밀일 수 있으며, 잠재적으로 개인 식별이 가능한 정보를 LLM 프롬프트에 포함시키는 것은 RAG 패턴의 핵심이며 필수적입니다. 호스팅 모델 플랫폼을 사용하는 조직은 프롬프트 데이터가 다른 사용자 등에게 '유출'되지 않도록 프롬프트 데이터 보존 및 사용 정책( 예: 제공자가 프롬프트 데이터를 캡처하여 모델 재학습에 사용하는가?) 제어와 같은 제공자 정책을 숙지하고 자체 정보 보안 정책 및 제어와 균형을 맞춰야 합니다.

일부 독점 정보의 전송은 불가피하지만, 조직은 처리된 데이터에서 가장 중요한 정보에 대한 문서 또는 URL 참조만 포함하여 노출을 제한할 수 있습니다. 예를 들어, 가격 할인 테이블을 RAG 데이터에 포함시키는 대신 테이블에 대한 설명과 내부 문서 또는 웹사이트에 대한 참조 또는 링크만 콘텐츠에 포함할 수 있습니다.

영역 간 통신의 단순한 전송 수준 보안(TLS)만으로도 데이터 보안 요구 사항을 충족할 수 있지만, 아키텍트는 프롬프트와 응답을 영역 경계를 너머로 전달하기 전에 암호화하고 해독하는 구성 요소를 추가하여 추가 보호 기능을 제공하는 것을 고려해야 할 수 있습니다.

배포 영역 간의 연결 유형은 몇 가지 비기능 요구 사항에 영향을 줍니다. 공용 인터넷을 통한 가상 사설망(VPN) 연결을 사용하는 것은 저렴한 옵션이지만 보안 문제를 완전히 완화하지 못할 수 있으며, 솔루션의 응답 시간 또는 처리량 요구 사항을 충족하지 못할 수 있습니다. 모델 호스팅 환경에 대한 개인 네트워크 연결은 비용이 훨씬 더 많이 들지만 훨씬 더 나은 보안을 제공하고 아키텍트에게 네트워크 대기 시간 및 대역폭을 제어할 수 있는 기능을 제공합니다.

다음 단계

하이브리드 클라우드 배포 패턴 구현에 대해 전문가와 상담하세요.

더 살펴보기 하이브리드 클라우드 아키텍처 센터 다이어그램 툴 및 템플릿 IBM Well-Architected Framework
기고자

David MasseyManav GuptaMihai Criveti, Chris Kirby, Pete Nuwayser

업데이트 날짜: 2023년 11월 28일