핀테크 회사의 개발자인데 사용자 중 한 명이 $1,000에 대한 국제 거래를 승인했는지 묻는 알림을 받는다고 가정해 보겠습니다. 사용자는 놀라지 않고 회사가 나머지를 처리할 것이라는 확신을 가지고 '아니요' 옵션을 클릭합니다.
사기 방지 AI 애플리케이션은 응답 전에 구매를 차단하고 사용자가 '예'를 선택하는 경우에만 구매를 진행하도록 허용합니다. 사기 탐지 시스템은 매우 빠르게 움직입니다. 거래를 검토하고 50밀리초 이내에 합리적인 정확도로 사기 여부를 예측합니다.
빠르고 정확한 예측을 위해서는 ML 기능, 프로필, 운영 데이터 및 기타 컨텍스트 정보와 같은 데이터를 저장, 검색 및 제공하는 Couchbase와 같은 고성능 인메모리 데이터베이스가 시스템에서 필요합니다. 이러한 속도와 유연성 때문에 선도적인 핀테크 기업들이 Couchbase를 선택했습니다.
예를 들어, Revolut은 사기 방지 애플리케이션을 구축했습니다. 를 통해 1,200만 명 이상의 사용자에게 서비스를 제공하고 있습니다. 실시간 사기 탐지는 Couchbase 고객들 사이에서 인기 있는 사용 사례이지만, 고객들은 운전자 도착 예정 시간, 이상 징후 탐지, 동적 가격 책정, 예측, 개인화된 프로모션 등과 같은 다른 고속 사용 사례에 Couchbase를 활용하고 있습니다. Couchbase Capella는 AI 애플리케이션 개발을 간소화하고 데이터 관리와 관련된 운영 오버헤드를 줄여주는 서비스형 데이터베이스(DBaaS) 플랫폼입니다.
기능 저장소의 역할
ML 알고리즘은 원시 데이터를 이해하지 못하므로 반드시 전처리( 기능 엔지니어링)를 추출하여 피처로 변환합니다. ML 피처는 사기 탐지와 같은 예측 문제를 해결하기 위해 데이터 세트에서 가장 관련성이 높은 필드입니다. 온라인과 오프라인 모두에 있는 피처 저장소를 통해 피처를 저장하고, 재사용하고, 안전하게 액세스할 수 있습니다(자세한 내용은 잠시 후에 설명).
ML 개발자는 피처 엔지니어링에 대략 75-80%의 시간을 소비합니다. 모델 학습을 위해 매번 반복되는 이러한 노력을 줄이기 위해 개발자는 피처 스토어를 사용하여 ML 작업을 간소화합니다. 온라인 피처 스토어는 예측 분석 또는 추론 중에 ML 모델에 ML 피처를 짧은 지연 시간으로 제공하기 위해 사용됩니다. 이를 위해서는 먼저 ML 모델을 학습시켜야 하는데, 이는 오프라인 피처 스토어를 통해 이루어집니다. 피처 스토어는 피처 엔지니어링 단계에서 생성되는 피처를 저장하고 관리하는 데 사용됩니다.
여러 Couchbase 고객이 기능 엔지니어링 작업에 Apache Spark를 사용하는 이유는 변환을 위한 Python ML 라이브러리의 방대한 에코시스템과 MPP(대규모 병렬 처리) 기능 덕분입니다.
ML 애플리케이션 개발을 가속화하기 위해 최근 유니티는 하나의 통합 플랫폼 내에서 Capella를 온라인 및 오프라인 피처 스토어로 활용할 수 있는 몇 가지 빌딩 블록을 발표했습니다:
-
- ML 애플리케이션에서 Couchbase를 활용하기 위한 Feast 플러그인. Feast( 기능 스토어)는 사용이 간편하고 클라우드에 구애받지 않는 오픈 소스 피처 스토어입니다. Revolut과 같은 많은 고객이 이미 온라인 피처 스토어로 Capella를 신뢰하고 있습니다. 카펠라 칼럼 는 오프라인 기능 스토어에 필요한 분석 기능을 제공합니다.
- Capella용 PySpark 커넥터는 Spark의 대규모 병렬 처리 기능과 Capella Columnar의 분석 기능을 결합하여 피처 엔지니어링을 가속화합니다. 피처 엔지니어링 작업에는 전체 행이 아닌 관련 열을 처리하는 작업이 포함되므로 Capella Columnar와 같은 컬럼형 데이터베이스를 사용하여 가속화할 수 있습니다.
카우치베이스용 페스트 플러그인
잔치 에 의해 채택되었습니다. 다양한 조직 소매, 미디어, 여행, 금융 서비스 등 다양한 업계에서 사용되고 있습니다. Couchbase용 Feast 플러그인은 Feast 프로젝트에서 사용할 수 있습니다. Capella가 지원하는 Feast 온라인 및 오프라인 피처 스토어는 다음과 같은 이점을 제공합니다:
-
- 교육 및 서빙을 위해 카펠라의 기능을 사용할 수 있도록 하여 교육/서빙 왜곡을 최소화합니다.
- 데이터 과학자가 오류가 발생하기 쉬운 데이터 세트 조인 로직을 디버깅하는 대신 기능 엔지니어링에 집중할 수 있도록 특정 시점의 정확한 기능 집합을 생성하여 데이터 누출을 방지합니다. 이를 통해 향후 특징값이 학습 중에 모델에 유출되지 않도록 보장합니다.
- 기능 검색에서 기능 스토리지를 추상화하는 단일 데이터 액세스 계층을 제공하여 ML과 데이터 인프라를 분리합니다. 따라서 학습 모델에서 서비스 모델로, 배치 모델에서 실시간 모델로, 한 데이터 인프라 시스템에서 다른 데이터 인프라 시스템으로 이동할 때 모델의 이식성을 유지할 수 있습니다.
- 스트리밍 기능을 기능 스토어에 등록합니다.
- 기능 관련 메타데이터를 저장하여 기능 레지스트리에서 쉽게 기능을 검색할 수 있습니다.
- 데이터 품질을 보장하기 위해 데이터 유효성 검사
- 변환 지원
- 기능 값을 모델 버전에 연결하는 버전 기능
- 오프라인 및 온라인 스토어 수집 및 동기화를 위한 Spark 지원
카우치베이스용 PySpark 커넥터
방대한 Python ML 라이브러리 에코시스템과 대규모 병렬 처리 기능을 갖춘 Apache Spark는 기능 엔지니어링에 있어 타의 추종을 불허합니다. 컬럼형용 PySpark 커넥터를 사용하면 데이터 쿼리에 컬럼형 형식을 활용하여 학습 작업을 가속화할 수 있습니다.
반면, Operational용 PySpark 커넥터를 사용하면 ML 모델에 지연 시간이 짧은 기능을 제공하여 실시간 사기 탐지와 같은 애플리케이션에 필요한 추론을 가속화할 수 있습니다.
다음은 Capella를 사용하여 ML 애플리케이션을 개발하는 방법에 대한 개념적인 보기입니다:

그림 1 - 사기 탐지 애플리케이션을 구동하는 ML 파이프라인의 개념도
교육 파이프라인
1단계: 각 커넥터를 사용하여 Capella의 원시 데이터(예: 결제 내역) 및 기타 데이터 소스를 기능 엔지니어링을 위한 Spark로 수집합니다. PySpark 커넥터를 사용하면 술어 푸시다운 등과 같은 최적화를 지원하면서 Capella에서 데이터를 쿼리할 수 있습니다.
2단계: Feast API를 통해 오프라인 스토어(Capella Columnar)에 생성한 기능을 저장하고 필요에 따라 PySpark 커넥터를 통해 업데이트하세요. 컬럼 형식은 행 기반 형식에 비해 기능 엔지니어링 작업을 가속화하는 데 도움이 됩니다.
3단계: 스테이징을 위해 S3를 사용하여 Capella Columnar에서 AWS SageMaker와 같은 ML 플랫폼으로 데이터를 이동합니다. SQL++ COPY TO 문을 사용하여 데이터를 S3로 쉽게 옮길 수 있습니다.
4단계: 사기 탐지 애플리케이션이 호출할 수 있는 추론을 위한 모델 엔드포인트를 만듭니다.
추론 파이프라인
1단계: 다음을 사용하여 오프라인에서 온라인 기능 스토어로 데이터를 동기화합니다. 카우치베이스용 에어플로우 공급자 를 사용하여 들어오는 트랜잭션이 사기 탐지를 위해 처리될 수 있도록 합니다.
2단계: 애플리케이션에서 트랜잭션 소스에서 들어오는 트랜잭션을 온라인 데이터 저장소의 정보로 보강하고 예측을 위해 추론 엔드포인트로 보냅니다.
3단계: 예측 후, 감사 또는 교육 목적으로 사용할 수 있도록 관련 레코드와 함께 라벨을 Capella 운영 스토어에 저장하세요.
카펠라 시작하기
아래의 빌딩 블록을 사용하여 Capella로 ML 애플리케이션 개발을 시작하세요: