모든 머신 러닝 사용 사례에는 다음과 같은 특징이 있습니다. 다양한 성능 요구 사항을 충족해야 하며, ML 기반 엔터프라이즈 예측 서비스 시스템의 경우에도 마찬가지입니다.

머신 러닝(ML) 모델은 입력(예: 이미지)을 받아 이에 대한 예측(예: 이미지에 어떤 물체가 있는지)을 합니다. ML 모델이 과거 데이터(예: 오래된 이미지 세트)로 학습되면 예측 서비스 시스템 내에 배포되어 새로운 데이터에 대한 예측을 수행합니다.

기업에서는 자체 예측 서비스 시스템을 구축하거나 클라우드 제공업체의 시스템을 사용할 수 있습니다. 어떤 경우든 예측 서비스 시스템에는 예측, 모델 메타데이터, 모델에 전달되는 입력 또는 기능을 위한 스토리지가 필요합니다.

이 문서에서는 프로덕션 환경에서 실시간 예측 머신 러닝을 제공하기 위한 다양한 아키텍처와 카우치베이스 데이터 플랫폼 엔터프라이즈 예측 서비스 시스템의 다양한 스토리지 요구 사항을 충족합니다.

용어

자세한 내용을 살펴보기 전에 이 글에서 사용된 몇 가지 용어를 살펴보겠습니다.

    • 예측 서비스 시스템: 학습된 머신러닝 모델과 새로운 데이터를 입력으로 받아 예측을 출력으로 반환하는 시스템입니다.
    • 훈련된 모델: 학습 과정에서 얻은 가중치와 편향성을 포함하는 통계 데이터 구조입니다.
    • 기능: 예측 프로세스와 관련된 데이터의 속성입니다.

예를 들어 실시간 예측을 할 때 다음과 같은 간단한 선형 회귀 문제를 생각해 보세요: y = b1 x1 + b2 x2 ... + bn xn ...

    • 기능은 다음과 같습니다. x1, x2, ...
    • 학습된 모델은 다음 값을 포함하는 데이터 구조입니다. b1, b2, .... 이러한 값은 학습 과정을 통해 학습한 것입니다.
    • 예측 서비스 시스템은 특징과 모델을 입력으로 받아 예측을 반환합니다. y 를 출력으로 사용합니다.

실시간 예측 서비스 시스템의 성능 요구 사항

실시간 예측 머신 러닝 사용 사례마다 요구되는 성능이 다릅니다.

예를 들어 실시간 예측의 경우 대화형 웹 애플리케이션은 수십 밀리초 이내에 예측을 제공해야 하는 반면, 게임 애플리케이션은 밀리초 미만의 예측 지연 시간이 필요할 수 있습니다. 예측 시스템은 대량의 요청을 처리하고 동적 워크로드를 처리하기 위해 확장해야 할 수도 있습니다.

다양한 유형의 데이터베이스가 이러한 다양한 성능 요구 사항을 처리합니다. 한 선도적인 클라우드 제공업체는 예측 시스템과 함께 사용할 수 있는 세 가지 다른 NoSQL 데이터베이스를 권장합니다. 이러한 여러 데이터베이스 제품을 결합하여 단일 사용 사례를 처리합니다. 그 결과 예측 서비스 시스템의 아키텍처가 복잡해집니다.

이 문서에서는 Couchbase가 다음을 대체하는 방법을 살펴봅니다. 여러 예측 서비스 시스템에 사용되는 데이터 저장소. 따라서 복잡성, 운영 오버헤드, 총 소유 비용(TCO)이 줄어듭니다. Couchbase를 사용하면 운영, 분석, AI/ML 워크로드가 모두 동일한 데이터 플랫폼에 공존할 수 있습니다.

카우치베이스 서버의 메모리 우선 아키텍처와 통합 문서 캐시는 지속적으로 높은 처리량과 밀리초 미만의 일관된 지연 시간을 제공하여 MongoDB 및 DataStax Cassandra와 같은 다른 NoSQL 제품보다 뛰어난 성능을 제공합니다. (참조 카우치베이스 벤치마크 그리고 카우치베이스 고성능 캐시 를 참조하세요.)

예측 서비스 시스템의 성능은 아키텍처와 구성 요소의 성능에 따라 달라집니다. 다시 말해, 특정 시스템의 아키텍처는 사용 사례에 따라 달라집니다. 가장 일반적인 예측 서비스 사용 사례 몇 가지를 자세히 살펴보겠습니다.

사용 사례 #1: Couchbase에 저장된 원시 데이터를 사용한 실시간 예측

고객 이탈 점수 실시간 예측을 예로 들어 보겠습니다.

ACME라는 가상의 회사는 자사 제품 사용을 중단할 가능성이 높은 고객을 식별하고자 합니다. 이 회사는 과거 고객 데이터로 이탈 예측 모델을 학습하고 예측 머신 러닝을 사용하여 신규 고객의 이탈 점수를 실시간으로 예측하기 위해 프로덕션에 배포합니다.

ACME가 예측 서비스 시스템을 설정하는 간단한 방법 중 하나는 아래 사용 사례 다이어그램 그림 1에 나와 있습니다.

Using raw data for real-time predictions with Couchbase

고객의 이탈 점수를 찾기 위해 ACME 애플리케이션은 고객 ID를 예측 서비스 시스템으로 전송합니다. 그러면 예측 시스템이

  1. 데이터 스토어에서 고객 로데이터를 읽습니다.
  2. 데이터를 모델에서 예상하는 기능으로 변환합니다(예: 참 또는 거짓 값을 0 또는 1로 변환).
  3. 학습된 모델을 기능에 적용하여 예측을 계산하고 애플리케이션에 반환합니다.

학습된 모델이 데이터를 피처로 변환하는 파이프라인인 경우 2단계와 3단계가 결합됩니다. 가장 시의적절한 예측을 제공하려면 시스템은 위의 모든 단계를 가능한 한 짧은 시간 내에 완료해야 합니다.

그림 1과 같이 ACME가 읽기 지연 시간이 짧은 Couchbase 데이터 플랫폼에 입력 데이터를 저장하면 1단계를 완료하는 데 걸리는 시간을 단축할 수 있습니다. 물론 카우치베이스는 ACME의 다른 애플리케이션을 동시에 지원하는 운영 데이터베이스가 될 수도 있습니다.

예측 서비스 시스템에 전체 문서가 필요한 경우, Couchbase의 하위 문서 API는 필요한 부분만 액세스하도록 도와줍니다. 하위 문서 API를 사용하면 특히 대용량 문서로 작업할 때 성능과 네트워크 I/O 효율성이 향상됩니다.

사용 사례 #2: Couchbase에 저장된 기능을 통한 실시간 예측

성능을 개선하기 위해 ACME는 아래 그림 2와 같이 입력 데이터를 사전 처리하여 기능 저장소에 저장할 수 있습니다.

이 접근 방식의 장점은 다음과 같습니다:

    • 이 기능은 예측을 하는 동안 빠르게 조회할 수 있도록 쉽게 사용할 수 있습니다.
    • 모델이 업데이트될 때마다 데이터를 기능으로 변환할 필요가 없습니다. 이는 모델 파이프라인에 비해 유리한 점입니다.
    • 이 기능은 여러 모델에서 재사용할 수 있습니다.

Using Couchbase as a feature store for a real-time prediction serving system

이 아키텍처에서는 예측 서비스 시스템입니다:

  1. 기능 스토어에서 기능을 읽습니다.
  2. 학습된 모델을 기능에 적용하여 예측을 생성하고 예측을 애플리케이션에 반환합니다.

ACME가 빠른 데이터 수집이 가능한 Couchbase 데이터 플랫폼에 기능을 저장하면 기능이 빠르게 기록됩니다. 이전과 마찬가지로, 카우치베이스가 제공하는 짧은 읽기 지연 시간은 1단계 실행에 걸리는 시간을 줄여 예측 지연 시간을 줄여줍니다.

2단계를 실행하는 데 걸리는 시간은 모델 성능에 따라 다릅니다. 간단한 선형 모델은 빠르지만 심층 신경망과 같은 정교한 모델은 계산 집약적이며 예측을 생성하는 데 더 오래 걸릴 수 있습니다. 사용자는 2단계에 걸리는 시간을 줄이기 위해 복잡한 모델을 단순화하거나 하드웨어 가속기를 사용해야 할 수도 있습니다.

사용 사례 #3: 미리 계산된 예측이 Couchbase에 캐시됨

ACME 고객 지원팀에는 문제가 있습니다. 고객이 불만 사항으로 전화하면 고객의 이탈 점수를 알아야 합니다. 빠르게.

예측 서비스가 실시간으로 이탈 점수를 계산할 때까지 기다릴 수는 없습니다. 이 문제를 해결하기 위해 ACME는 아래 그림 3과 같이 일괄 작업을 사용하여 예측을 미리 계산할 수 있습니다.

Batch processing of cached predictions using the Couchbase Data Platform

이 아키텍처에서는 모델 실행 단계가 예측을 제공하는 중요한 경로에 있지 않으므로 모델의 복잡성(단순 신경망 대 심층 신경망)이 중요하지 않을 수 있습니다.

여기서 Couchbase 데이터 플랫폼은 두 가지 용도로 사용됩니다:

  1. 일괄 작업에서 예측을 수행하는 데 필요한 원시 데이터(또는 기능)를 저장합니다.
  2. 사전 계산된 예측을 캐싱하여 높은 처리량과 밀리초 미만의 읽기 지연 시간으로 제공합니다. 고객 ID는 미리 계산된 예측의 키로 사용됩니다.

기본적으로 Couchbase는 캐시된 예측을 디스크에 유지합니다. 그러나 예측이 주기적으로 재생성되고 그 지속성이 필요하지 않은 경우, ACME는 예측을 Couchbase 임시 버킷에 캐시할 수 있습니다. 이렇게 하면 백그라운드 디스크 오버헤드를 줄여 성능을 더욱 향상시키고 디스크 스토리지 비용을 절감할 수 있습니다. (카우치베이스 버킷과 함께 임시 버킷을 사용하는 방법에 대해 자세히 알아보기.)

Couchbase에서 예측을 캐싱함으로써 얻을 수 있는 성능 향상 외에도 Couchbase 데이터 플랫폼을 사용하면 다른 이점이 있습니다. 캐시된 예측은 Couchbase의 인덱스 서비스를 사용하여 색인화할 수 있으며, Couchbase의 쿼리 서비스를 사용하여 쿼리를 실행하는 데 사용할 수 있습니다. 예를 들어, 사용자는 카우치베이스 N1QL 쿼리 를 사용하여 이탈 점수가 특정 임계값 이상으로 예측되는 고위험 고객을 식별할 수 있습니다. ACME 마케팅에서 이러한 고객을 타겟팅하여 프로모션 오퍼를 제공하는 데 사용할 수 있습니다.

Couchbase는 데이터, 인덱스, 쿼리, 이벤트, 분석 등 각 서비스를 독립적으로 확장할 수 있는 다차원 확장을 지원합니다. 또한 쿼리 서비스의 워크로드가 데이터 서비스의 워크로드를 방해하지 않도록 워크로드 격리 기능을 제공합니다.

사용 사례 #4: Couchbase에 저장된 데이터를 사용한 이벤트 기반 예측

ACME 고객 지원팀에 새로운 요구 사항이 생겼습니다: 고객의 기록이 변경될 때마다 고객의 이탈 점수를 다시 계산해 달라는 것입니다.

이러한 사용 사례를 처리하기 위해 아래 그림 4와 같이 ACME는 이벤트에 대한 응답으로 거의 실시간으로 예측을 생성한 다음 나중에 사용할 수 있도록 캐시하도록 결정할 수 있습니다.

Event-driven prediction serving system using Couchbase

이 사용 사례는 예측 프로세스에서 모델 메타데이터가 어떤 역할을 하는지 보여줍니다.
모델 메타데이터는 모델 이름, 버전 번호, 학습된 시기 등 모델에 대한 정보입니다. 또한 평균 예측 지연 시간 및 정확도와 같은 모델의 성능 메트릭도 포함될 수 있습니다.

이 예에서는 모델 메타데이터를 사용하여 학습된 모델에서 예상되는 기능을 식별합니다. 이 단계는 예측 프로세스 중에 수행되므로 모델 메타데이터도 빠른 조회 저장소에 저장해야 합니다.

그림 4에서 볼 수 있듯이, 단일 Couchbase 클러스터는 모델 메타데이터와 기능 및 예측을 저장할 수 있습니다. 이러한 각 유형의 데이터는 별도의 Couchbase 버킷에 저장할 수 있습니다. Couchbase는 멀티 테넌시, 즉 둘 이상의 애플리케이션이 Couchbase 내에서 정보를 저장하고 검색할 수 있는 기능을 지원합니다. 버킷은 멀티테넌시를 지원하는 데 사용되는 논리적 요소입니다.

사용 사례 #5: Couchbase를 사용한 데이터 센터 간 예측

ACME는 이제 기업으로 확장하고 있습니다. 데이터 센터 장애로부터 보호하고 여러 지역에서 지연 시간이 짧은 예측을 제공하기 위해 아래 그림 5와 같이 여러 데이터 센터에 예측 서비스 시스템을 배포하고 있습니다.

A prediction serving system that uses cross data center replication

ACME는 고객이 모든 환경(온프레미스, 퍼블릭 및 프라이빗 클라우드 또는 하이브리드 클라우드)에서 고가용성을 갖춘 지리적 분산 애플리케이션을 배포할 수 있도록 지원하는 Couchbase의 데이터 센터 간 복제(XDCR) 기술을 사용합니다. Couchbase XDCR 문서를 참조하세요. 에서 이 기술에 대한 자세한 내용을 확인하세요.

위의 그림 5에서 볼 수 있듯이 ACME는 Couchbase 서버에 기능을 저장하고 Couchbase의 XDCR 기능을 사용하여 데이터 센터 A에서 데이터 센터 B로 기능을 복제합니다.

아래 그림 6은 ACME가 데이터 센터 전반에서 예측을 제공하는 또 다른 방법을 보여줍니다.

Cached machine learning predictions across multiple data centers in Couchbase

이 경우 예측 서비스 시스템은 하나의 데이터 센터에만 배포됩니다. 예측은 데이터 센터 A에서 생성된 다음 Couchbase에 캐시되고 Couchbase XDCR을 사용하여 다른 데이터 센터로 복제됩니다.

데이터센터 간 복제는 인프라에 구애받지 않습니다. 위의 예에서 데이터 센터 A와 데이터 센터 B는 동일하거나 다른 클라우드 환경 또는 온프레미스와 클라우드와 같은 서로 다른 인프라에서 실행될 수 있습니다.

예측 서비스 시스템의 다른 요구 사항을 충족하는 카우치베이스

카우치베이스는 기능 메타데이터를 저장하는 데에도 사용할 수 있습니다. 이것은 기능 저장소에 있는 각 기능에 대한 설명입니다. 메타데이터에는 피처의 이름, 피처가 생성된 방법, 스키마 등이 포함될 수 있습니다. 기능은 여러 머신 러닝 모델에서 공유될 수 있습니다. 기능 메타데이터는 사용자가 자신의 모델과 관련된 기능을 찾는 데 도움이 됩니다.

Couchbase를 사용하면 일관되게 짧은 지연 시간과 높은 처리량으로 데이터에 액세스할 수 있습니다. 성능 요구 사항을 충족하는 것 외에도 Couchbase는 프로덕션급 예측 서비스 시스템의 다음과 같은 데이터베이스 요구 사항도 충족합니다.

확장성

예측 워크로드가 증가함에 따라 데이터 저장소는 계속해서 동일한 정상 상태 성능을 제공해야 합니다. 예측 서비스 시스템의 성능에 부정적인 영향을 미치지 않으면서 선형적으로 쉽게 확장할 수 있어야 합니다.

카우치베이스 서버는 추가 라우팅 및 프록시 없이 지능적인 애플리케이션 간 직접 데이터 액세스를 사용하여 선형적이고 탄력적인 확장성을 제공하도록 설계되었습니다. 노드를 추가하거나 제거할 때 다운타임이나 코드 변경 없이 푸시 버튼으로 간편하게 몇 분 안에 완료할 수 있습니다.

가용성

예측 세분화 시스템을 계속 사용할 수 있도록 하려면 계획된 중단과 계획되지 않은 중단 모두에서 데이터베이스를 항상 사용할 수 있어야 합니다.

카우치베이스 서버는 모든 규모와 플랫폼(물리적 또는 가상)에서 내결함성과 복원력이 뛰어나도록 설계되어 하드웨어 장애 또는 계획된 유지보수 기간 동안에도 상시 가용성을 제공합니다.

관리 용이성

데이터 저장소는 예측 시스템에 대한 배포 및 운영 팀에 과도한 부담을 주지 않아야 합니다. 합리적으로 빠르게 배포할 수 있고 모니터링 및 관리가 쉬워야 합니다.

Couchbase는 Couchbase Autonomous Operator를 통해 하이브리드 클라우드 및 Docker 컨테이너를 포함한 다양한 배포 방법을 지원합니다. 그리고 카우치베이스 자율 운영자 는 Couchbase Server와 오픈 소스 Kubernetes 및 Red Hat OpenShift의 기본 통합을 제공합니다. 이를 통해 사용자는 Couchbase 클러스터의 구성, 생성, 확장 및 복구와 같은 일반적인 Couchbase 작업의 관리를 자동화할 수 있습니다.

보안

보안 데이터베이스는 엔터프라이즈 예측 서비스 시스템의 전반적인 보안과 무결성을 위해 매우 중요합니다.

카우치베이스는 유선과 미사용 데이터 모두에 대한 엔드투엔드 암호화를 제공합니다. 역할 기반 인증과 임베디드 데이터로 유연한 보안 옵션이 가능하며, 관리 감사 도구를 통해 기업 데이터를 강력하게 제어할 수 있습니다.

결론

지금까지 Couchbase를 사용해 원시 입력 데이터, 기능, 예측 및 모델 메타데이터를 저장하는 방법에 대한 5가지 실제 사례를 살펴보았습니다. 엔터프라이즈 예측 서비스 시스템을 구매하든 직접 구축하든, Couchbase 데이터 플랫폼은 최고의 성능과 실시간 결과를 제공하므로 머신 러닝 예측의 가치를 극대화할 수 있습니다.

다음은 Couchbase를 시작하고 직접 사용해 볼 수 있는 몇 가지 방법입니다:

 

작성자

게시자 푸남 다베일, 수석 소프트웨어 엔지니어

푸남 다베일은 카우치베이스의 수석 소프트웨어 엔지니어입니다. 그녀는 분산 시스템, NoSQL, 고가용성, 스토리지 기술 설계 및 개발 분야에서 20년 이상의 경력을 쌓았습니다. 그녀는 분산 스토리지 시스템 관련 특허를 다수 보유하고 있으며 머신 러닝 및 데이터 과학 관련 자격증을 보유하고 있습니다.

댓글 남기기