Snowflake 기능 스토어

참고

Snowflake Feature Store API는 Snowpark ML Python 패키지(snowflake-ml-python) v1.5.0 이상에서 사용할 수 있습니다.

Snowflake 내에서는 데이터 과학자와 ML 엔지니어는 데이터 과학 및 ML 워크로드에서 ML 기능을 생성, 유지 관리 및 사용할 수 있는 Snowflake Feature Store를 사용할 수 있습니다.

일반적으로 기능 은 머신 러닝 모델의 입력으로 사용되는 데이터 요소입니다. 온도나 출석 등 데이터 세트의 여러 열은 그대로 기능으로 사용할 수 있습니다. 다른 경우에는 전처리 및 변환을 통해 열을 훈련에 더 유용하게 만들 수 있습니다. 예를 들어, 타임스탬프에서 요일별 기능을 파생하여 모델이 주별 패턴을 감지할 수 있습니다. 다른 일반적인 특징 변환에는 데이터 집계, 차별화 또는 시간 이동이 포함됩니다. 피처 엔지니어링 은 모델에 필요한 피처를 결정하고 원시 데이터에서 피처를 도출하는 방법을 정의하는 프로세스입니다.

기능 스토어 를 사용하면 중앙 리포지토리에서 자주 사용되는 기능 변환을 표준화하여 재사용할 수 있도록 하고 데이터와 노력의 중복을 줄이며 생산성을 향상시킬 수 있습니다. 또한 새로운 소스 데이터에 따라 기능을 업데이트하여 기능을 유지 관리하고 항상 단일 정보원에서 정확하고 일관되고 최신 기능을 제공하는 데 도움이 됩니다. 기능 스토어는 원시 데이터에서 특징을 추출하는 방법의 일관성을 유지함으로써 프로덕션 ML 파이프라인을 더욱 견고하게 만드는 데도 도움이 될 수 있습니다.

Snowflake Feature Store는 데이터 과학 및 머신 러닝 워크로드를 위한 기능을 더 쉽고 효율적으로 생성, 저장, 관리할 수 있도록 설계되었습니다. Snowflake 내부에 기본적으로 호스팅되는 Snowflake Feature Store는 다음과 같은 이점을 제공합니다.

  • 데이터는 사용자의 통제와 거버넌스 하에 안전하게 유지되며, 절대로 Snowflake를 벗어나지 않습니다.

  • Snowsight 기능 스토어 UI를 사용하면 기능을 쉽게 검색하고 찾을 수 있습니다.

  • 액세스는 세분화된 역할 기반 액세스 제어 로 관리됩니다.

Snowflake Feature Store의 주요 이점은 다음과 같습니다.

  • 새 데이터가 도착하면 효율적인 자동 업데이트가 제공되는 일괄 데이터와 스트리밍 데이터

  • ASOF JOIN 이 포함된 백필 및 시점 수정 기능

  • Python 또는 SQL에서 승인된 기능 변환

  • Snowflake 관리 기능 뷰를 사용하여 소스 데이터에서 기능 값을 자동으로 업데이트하고 새로 고침

  • dbt 같은 외부 도구와 함께 사용자 관리 기능 파이프라인을 사용할 수 있는 기능

Snowflake Feature Store는 엔드투엔드 프로덕션 ML를 위해 Snowflake Model Registry 및 기타 Snowflake ML 기능과 완전히 통합되어 있습니다.

다음 그림은 Snowflake Feature Store가 머신 러닝 파이프라인에 어떻게 적용되는지 보여줍니다.

Snowflake Feature Store의 전체 아키텍처
  • 원시 데이터는 테이블이나 뷰 또는 스트리밍 데이터 소스에서 일괄적으로 얻을 수 있습니다.

  • 그런 다음 원시 데이터는 데이터 엔지니어가 정의한 기능으로 변환되어 기능 테이블이 생성됩니다.

  • 기능 테이블은 Snowpark ML에서 모델을 훈련시키는 데 사용되는 훈련 데이터 세트를 생성하거나 예측을 위해 모델이 사용하는 테스트 데이터를 보강하는 데 사용할 수 있습니다.

어떻게 작동하나요?

참고

Snowflake의 기능 스토어는 단순히 스키마입니다. 기능 스토어로 사용할 새 스키마를 생성하거나 기존 스키마를 사용할 수 있습니다.

기능 스토어에는 기능 뷰 가 포함되어 있습니다. 기능 뷰는 원시 데이터를 하나 이상의 관련 기능으로 변환하기 위한 Python 또는 SQL 파이프라인을 캡슐화합니다. 기능 뷰에 정의된 모든 기능는 동시에 소스 데이터에서 새로 고쳐집니다.

두 개 이상의 기능 스토어에 액세스할 수 있는 사용자는 여러 기능 스토어의 기능 뷰를 결합하여 훈련 및 추론 데이터 세트를 만들 수 있습니다.

Snowflake Feature Store는 다음 두 가지 종류의 기능 뷰를 지원합니다.

  • Snowflake 관리: Snowflake Feature Store는 사용자가 지정한 일정에 따라 기능 뷰의 기능을 점진적이고 효율적으로 새로 고칩니다.

  • 외부: 기능 스토어 외부의 다른 프로세스가 기능 뷰의 기능을 유지관리합니다. 이 유형의 기능 뷰는 dbt 같은 도구와 함께 사용하기 위한 것입니다.

기능 뷰는 적용되는 엔터티 에 따라 기능 스토어에 구성됩니다. 엔터티는 기능의 항목을 나타내는 상위 수준의 추상화입니다. 예를 들어, 영화 스트리밍 서비스의 기능 스토어에서 주요 엔터티는 사용자와 영화일 수 있습니다. 원시 영화 데이터와 사용자 활동 데이터는 영화별 시청 시간, 사용자 세션 길이와 같은 유용한 기능으로 변환할 수 있으며, 이러한 기능이 포함된 기능 뷰에 관련 엔터티를 태그할 수 있습니다.

백엔드 데이터 모델

기능 스토어 오브젝트는 Snowflake 오브젝트로 구현됩니다. 따라서 모든 기능 스토어 오브젝트는 Snowflake 액세스 제어 규칙을 따릅니다.

기능 스토어 오브젝트

Snowflake 오브젝트

기능 스토어

스키마

피처 뷰

동적 테이블 또는

엔터티

태그

기능

동적 테이블 또는 뷰의 열

피처 뷰의 속성(이름, 엔터티 등)은 동적 테이블이나 뷰의 태그로 구현됩니다.

SQL을 사용하여 Snowflake 오브젝트를 쿼리하거나 조작할 수 있습니다. SQL을 통해 변경한 내용은 Python API에 반영되며 그 반대의 경우도 마찬가지입니다.

Snowflake Feature Store의 모든 오브젝트는 기능 스토어의 스키마에 저장됩니다. 기능 스토어를 완전히 삭제하려면 스키마에 다른 리소스가 포함되어 있지 않은지 확인한 다음 스키마를 삭제 합니다.

시작하기

참고

Snowflake Feature Store Python API는 Snowpark ML Python 패키지, snowflake-ml-python 의 일부입니다. 이는 로컬 시스템에서 선호하는 Python IDE 또는 Snowsight 워크시트나 노트북에서 사용할 수 있습니다. 자세한 내용은 Snowflake ML용 Python APIs 섹션을 참조하십시오.

Snowflake Feature Store의 개념에 대해 소개하는 Snowflake Feature Store 소개 를 통해 여정을 시작하십시오. 그런 다음 추가 Snowflake 빠른 시작 을 활용하여 다음 등의 작업을 수행합니다.

구체적인 기능 변환 유형에 대한 예제는 공통적인 특징 및 쿼리 패턴 를 참조하십시오.

참고

이러한 데모는 예제로만 보여주는 것이며, 예제를 따라 실습하려면 Snowflake가 소유하거나 제공하지 않는 서드 파티 데이터, 제품 또는 서비스에 대한 권한이 추가로 필요할 수 있습니다. Snowflake는 이러한 예제의 정확성을 보장하지 않습니다.