기능 저장소 구성


Red Hat OpenShift AI Cloud Service 1

Red Hat OpenShift AI Operator 구성에서 기능 저장소를 구성 요소로 설치 및 관리

초록

클러스터 관리자는 Red Hat OpenShift AI Operator 구성에서 기능 저장소를 구성 요소로 설치하고 관리할 수 있습니다. 기능 저장소는 머신러닝 모델과 데이터 간의 인터페이스를 제공합니다.

1장. 머신 러닝 기능 및 기능 저장소 개요

중요

기능 저장소는 현재 Red Hat OpenShift AI에서 기술 프리뷰 기능으로 제공됩니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. Red Hat은 프로덕션 환경에서 사용하는 것을 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.

Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.

머신러닝(ML) 기능은 머신러닝 모델이 패턴을 학습하고 결정을 내릴 수 있도록 분석할 수 있는 데이터 세트 내의 측정 가능한 속성 또는 속성입니다. 기능의 예로는 고객의 구매 내역, 나이 및 위치, 환경 조건 및 금융 시장 데이터와 같은 예의 데이터 등이 있습니다. 이러한 기능을 사용하여 개인화된 제품 권장 사항, 사기 탐지 및 예측 유지 관리와 같은 작업에 대한 모델을 학습할 수 있습니다.

기능 저장소는 교육 및 추론 목적으로 시스템 학습 기능을 저장, 관리 및 제공하는 중앙 집중식 리포지토리를 제공하는 Red Hat OpenShift AI 구성 요소입니다.

1.1. 머신러닝 기능 개요

머신러닝에서 필드라고도 하는 기능은 개별 측정 가능한 속성입니다. 기능은 예측 모델에 대한 입력 신호로 사용됩니다. 예를 들어, 은행의 융자국이 융합에 대한 승인을 받아야 하는지 여부를 예측하려고 하는 경우, 이전에 융합을 요청했는지 또는 현재 얼마나 많은 신용카드 부채를 보유하고 있는지에 대한 유용한 기능이 될 수 있습니다.

Expand
표 1.1. 기능은 데이터 테이블의 열을 나타냅니다.

customer_id

avg_cc_balance

credit_score

bankruptcy

1005

500.00

730

0

982

20000.00

570

2

1001

1400.00

600

0

기능은 머신러닝 모델이 세계의 패턴을 이해하는 데 도움이 되는 데이터입니다. 기능 엔지니어링은 원시 데이터를 선택하여 조작하고, 학습에 사용할 수 있는 기능으로 변환하는 프로세스입니다. 표 1에 표시된 것처럼 기능은 데이터 집합의 전체 열을 나타냅니다(예: credit_score ) 및 기능 값은 기능 열의 단일 값을 나타냅니다(예: 730 ).

1.2. 기능 저장소 개요

기능 저장소는 모델과 데이터 간의 인터페이스를 제공하는 OpenShift AI 구성 요소입니다. Feast 오픈 소스 프로젝트를 기반으로 합니다. 기능 저장소는 기존 인프라 및 데이터 저장소를 사용하여 머신러닝 모델에 기능을 저장, 관리 및 제공하기 위한 프레임워크를 제공합니다. 통합된 기능 관리 기능을 제공하여 다양한 데이터 소스에서 기능 데이터를 검색하고 기능을 생성하고 관리할 수 있습니다.

다음 그림은 Feature Store가 ML 워크플로에 적합한 위치를 보여줍니다. ML 워크플로에서 기능은 ML 모델에 대한 입력입니다. ML 워크플로는 트랜잭션 데이터, 고객 참조 및 제품 데이터와 같은 다양한 유형의 관련 데이터로 시작됩니다. 데이터는 다양한 데이터베이스 및 데이터 소스에서 가져옵니다. 이 데이터에서 ML 엔지니어는 기능 저장소를 사용하여 기능을 큐레이트합니다. 기능은 모델에 입력되며 모델은 기능의 데이터를 사용하여 예측을 만들 수 있습니다.

그림 1.1. ML 워크플로의 기능 저장소

기능 저장소는 다음과 같은 기능을 제공하는 머신 러닝 데이터 시스템입니다.

  • 원시 데이터를 기능 값으로 변환하는 데이터 파이프라인 실행
  • 기능 데이터 저장 및 관리
  • 교육 및 추론을 위해 지속적으로 기능 데이터를 제공
  • 오프라인 및 온라인 환경에서 지속적으로 기능 관리
  • 필요에 따라 한 모델 또는 수천 개의 새로운 기능을 통해 동시에 전원을 공급합니다.

기능 저장소는 ML 조직의 사용자가 협업할 수 있는 일반적으로 사용되는 기능을 저장, 처리 및 액세스하는 데 필요한 중앙 집중식 허브입니다. 기능 저장소에 기능을 등록하면 조직의 다른 모델에서 즉시 재사용할 수 있게 됩니다. Feature Store 레지스트리는 데이터 엔지니어링 작업의 중복을 줄이고 새로운 ML 프로젝트를 통해 큐레이션된 프로덕션 지원 기능 라이브러리를 사용하여 부트스트랩할 수 있습니다.

기능 저장소는 모델 교육 및 추론의 일관성을 제공하고, 여러 프로젝트에서 협업 및 사용성을 승격하고, 데이터 드리프, 누출 및 교육 스큐를 위한 모델의 경계 및 버전 관리를 모니터링하고 다른 MLOps 툴과 원활하게 통합됩니다. 기능 저장소는 BigQuery, Snowflake, Cryostat 및 Redis와 같은 다른 시스템에 저장된 데이터를 원격으로 관리하여 교육/서비스 시 기능을 일관되게 사용할 수 있도록 합니다.

기능 저장소는 다음 작업을 수행합니다.

  • 오프라인 및 온라인 저장소에 기능 저장
  • 공유를 위해 레지스트리에 기능 등록
  • ML 모델에 기능 제공

ML 플랫폼 팀은 기능 저장소를 사용하여 일괄 처리 및 온라인 실시간 모델 추론과 같은 오프라인 교육에 지속적으로 기능을 저장하고 제공합니다.

기능 저장소는 다음 주요 구성 요소로 구성됩니다.

레지스트리
모든 기능 정의의 중앙 카탈로그 및 관련 메타데이터입니다. 데이터 과학자는 새로운 기능을 검색, 검색 및 공동 작업할 수 있습니다. 레지스트리는 기능을 적용, 나열, 검색 및 삭제할 방법을 노출합니다.
오프라인 스토어
스케일 아웃 배치 점수 또는 모델 교육을 위한 기록 데이터가 포함된 데이터 저장소입니다. 오프라인 저장소는 기능 저장소에 수집된 배치 데이터를 유지합니다. 이 데이터는 데이터 세트를 교육하는 데 사용됩니다. 오프라인 저장소의 예로는 Dask, Snowflake, BigQuery, Redshift 및 DuckDB가 있습니다.
온라인 스토어
대기 시간이 짧은 기능 검색에 사용되는 데이터 저장소입니다. 온라인 스토어는 실시간 추론에 사용됩니다. 온라인 스토어의 예로는 Redis, GCP Datastore 및 Cryostat가 있습니다.
서버

온라인으로 미리 계산된 기능을 제공하는 기능 서버입니다. 세 가지 기능 저장소 서버가 있습니다.

  • 온라인 기능 서버 - JSON I/O와 함께 기능을 제공하는 HTTP 끝점인 Python 기능 서버입니다. HTTP 요청을 수행할 수 있는 프로그래밍 언어를 사용하여 온라인 저장소에서 기능을 작성하고 읽을 수 있습니다.
  • 오프라인 기능 서버 - gRPC 통신 프로토콜을 사용하여 데이터를 교환하는 Apache Arrow Flight Server입니다. 이 서버는 기존 오프라인 저장소 구현에 대한 호출을 래핑하고 인터페이스를 Arrow Flight 엔드포인트로 노출합니다.
  • 레지스트리 서버 - gRPC 통신 프로토콜을 사용하여 데이터를 교환하는 서버입니다. gRPC 요청을 수행할 수 있는 모든 프로그래밍 언어를 사용하여 서버와 통신할 수 있습니다.
UI
모든 기능 저장소 오브젝트 및 서로 간의 관계를 보기 위한 웹 기반 UI(그래픽 사용자 인터페이스)입니다.

기능 저장소는 다음과 같은 소프트웨어 기능을 제공합니다.

  • 기능 및 데이터 소스를 프로그래밍 방식으로 정의하는 Python SDK
  • 오프라인 및 온라인 데이터 저장소에 기능을 읽고 쓰는 Python SDK
  • API를 사용하여 기능을 읽고 쓰는 선택적 기능 서버(python 이외의 언어 사용)
  • 프로젝트에 정의된 기능에 대한 정보를 보고 탐색하는 웹 기반 UI
  • 기능 정보를 보고 업데이트하는 CLI(명령줄 인터페이스)

1.3. Feature Store 대상

Feature Store의 대상 대상은 ML 플랫폼 및 MLOps 팀과 함께 DevOps 환경에서 실시간 모델을 프로덕션에 배포할 수 있습니다. 또한 기능 저장소를 사용하면 이러한 팀이 데이터 엔지니어, 소프트웨어 엔지니어, 머신러닝 엔지니어 및 데이터 과학자 간의 협업을 개선하는 기능 플랫폼을 구축할 수 있습니다.

Data Scientists의 경우
기능 저장소는 모델 개발 및 모델 배포 모두에 대한 기능을 정의, 저장 및 검색할 수 있는 도구입니다.Feature Store is a tool where you can define, store, and retrieve your features for both model development and model deployment. 기능 저장소를 사용하면 가장 잘하는 작업에 중점을 둘 수 있습니다. AI/ML 모델을 구동하고 데이터 가치를 극대화하는 기능을 구축할 수 있습니다.
MLOps 엔지니어의 경우
기능 저장소는 온라인 데이터베이스, 애플리케이션 서버, 마이크로 서비스, 분석 데이터베이스 및 오케스트레이션 툴링과 같은 기존 인프라를 연결하는 라이브러리입니다. 기능 저장소를 사용하면 데이터 과학자의 기능을 구현하는 대신 탄력적 시스템을 유지 관리하는 데 집중할 수 있습니다.
데이터 엔지니어의 경우
기능 저장소는 기능 정의를 저장하기 위한 중앙 집중식 카탈로그를 제공하므로 기능 데이터에 대한 단일 정보 소스를 유지할 수 있습니다. 다양한 유형의 오프라인 및 온라인 데이터 저장소를 읽고 쓰기 위한 추상화를 제공합니다. 제공된 Python SDK 또는 기능 서버 서비스를 사용하여 온라인 및 오프라인 저장소에 데이터를 작성한 다음 모델 추론을 위해 모델 교육 또는 대기 시간이 짧은 온라인 시나리오에서 데이터를 다시 읽을 수 있습니다.
AI 엔지니어의 경우
기능 저장소는 다양한 데이터를 원활하게 통합하고 미세 조정을 통해 AI 애플리케이션을 확장하도록 설계된 플랫폼을 제공합니다. 기능 저장소를 사용하면 확장 가능하고 효율적인 데이터 파이프라인을 보장하면서 AI 모델의 성능을 최적화할 수 있습니다.

2장. 사전 준비 사항

머신러닝 워크플로에 Feature Store를 구현하기 전에 다음과 같은 정보가 있어야 합니다.

데이터 및 사용 사례에 대한 지식

기능으로 정의하려는 속성 또는 특성을 식별할 수 있도록 사용 사례와 원시 기본 데이터를 알아야 합니다. 예를 들어 가능한 신용 카드 사기 트랜잭션을 감지하는 머신러닝(ML) 모델을 개발하는 경우 구매 내역, 거래 위치, 거래 빈도 또는 신용 제한과 같은 데이터를 식별할 수 있습니다.

Feature Store를 사용하면 각 속성을 기능으로 정의합니다. 개념적 링크 또는 관계를 함께 공유하여 엔터티를 정의하는 기능을 그룹화합니다. 사용 사례의 도메인에 매핑할 엔터티를 정의합니다. 모든 기능이 엔터티에 있어야 하는 것은 아닙니다.

데이터 소스에 대한 지식

ML 워크플로에서 사용하려는 원시 데이터 소스를 알고 있어야 합니다. 기능 저장소 및 오프라인 저장소 및 기능 레지스트리를 구성할 때는 데이터 소스와 호환되는 환경을 지정해야 합니다. 또한 기능을 정의할 때 기능에 대한 데이터 소스를 지정해야 합니다.

기능 저장소는 시계열 데이터 모델을 사용하여 데이터를 나타냅니다. 이 데이터 모델은 학습 데이터 집합을 빌드하거나 기능을 온라인 저장소에 구체화하기 위해 데이터 소스의 기능 데이터를 해석하는 데 사용됩니다.

다음 유형의 데이터 소스에 연결할 수 있습니다.

배치 데이터 소스
지속적으로 스트리밍하는 대신 개별 청크 또는 일괄 처리로 데이터를 수집하고 처리하는 방법입니다. 이 방법은 일반적으로 대규모 데이터 집합 또는 실시간 처리가 필수적이지 않은 경우에 사용됩니다. 데이터 처리 컨텍스트에서 배치 데이터 소스는 data-at-rest 소스에 대한 연결을 정의하여 일괄 처리로 데이터에 액세스하고 처리할 수 있습니다. 일괄 데이터 소스의 예로는 데이터 웨어하우스(예: BigQuery, Snowflake 및 Redshift) 또는 데이터 Lakes(예: S3 및 GCS)가 있습니다. 일반적으로 기능 저장소 오프라인 저장소를 구성할 때 배치 데이터 소스를 정의합니다.
스트림 데이터 소스
온라인 실시간 처리를 위해 지속적으로 이동 또는 배출되는 데이터의 출처입니다. 기능 저장소에는 기본 스트리밍 통합이 없지만 기능 저장소로 기능을 푸시할 수 있는 푸시 소스를 용이하게 합니다. 기능 저장소를 사용하여 학습 또는 일괄 처리 점수(오프라인), 실시간 기능 제공(온라인) 또는 둘 다에 사용할 수 있습니다. 일반적으로 기능 저장소 온라인 저장소를 구성할 때 스트림 데이터 소스를 정의합니다.

기능 저장소에서 다음 데이터 소스를 사용할 수 있습니다.

온라인 저장소를 위한 데이터 소스

  • SQLite
  • Snowflake
  • Redis
  • Dragonfly
  • IKV
  • 데이터 저장소
  • DynamoDB
  • Bigtable
  • PostgreSQL
  • Cryostat + Astra DB
  • Couchbase
  • MySQL
  • Hazelcast
  • ScyllaDB
  • 원격
  • SingleStore

이러한 온라인 저장소를 구성하는 방법에 대한 자세한 내용은 온라인 저장소에 대한 최소 참조 설명서를 참조하십시오.

오프라인 저장소를 위한 데이터 소스

  • Dask
  • Snowflake
  • BigQuery
  • Redshift
  • DuckDB

오프라인 저장소는 데이터 소스에 저장된 기록 시계열 기능 값을 사용하기 위한 인터페이스입니다. 각 오프라인 저장소 구현은 해당 데이터 소스에서만 작동하도록 설계되었습니다.

오프라인 저장소는 다음 목적에 유용합니다.

  • 시계열 기능을 사용하여 교육 데이터 집합을 빌드하려면 다음을 수행합니다.
  • 프로덕션 환경에서 대기 시간이 짧은 상태로 이러한 기능을 제공하기 위해 온라인 스토어로 기능을 구체화(로드)합니다.

한 번에 하나의 오프라인 저장소만 사용할 수 있습니다. 오프라인 저장소는 모든 데이터 소스와 호환되지 않습니다. 예를 들어 BigQuery 오프라인 저장소를 사용하여 파일 기반 데이터 소스를 쿼리할 수 없습니다.

이러한 오프라인 저장소를 구성하는 방법에 대한 자세한 내용은 오프라인 저장소에 대한 Feast 참조 설명서를 참조하십시오.

기능 레지스트리의 데이터 소스

  • 로컬
  • S3
  • GCS
  • SQL
  • Snowflake

이러한 레지스트리 옵션을 구성하는 방법에 대한 자세한 내용은 레지스트리에 대한 Feast 참조 설명서를 참조하십시오.

3장. Feature Store 구성 요소 활성화

조직의 데이터 과학자가 머신러닝 기능을 사용할 수 있도록 하려면 Red Hat OpenShift AI에서 Feature Store 구성 요소를 활성화해야 합니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • OpenShift AI를 설치했습니다.

프로세스

  1. OpenShift 콘솔에서 Operator → 설치된 Operator 를 클릭합니다.
  2. Red Hat OpenShift AI Operator를 클릭합니다.
  3. Data Science Cluster 탭을 클릭합니다.
  4. 기본 인스턴스 이름(예: default-dsc)을 클릭하여 인스턴스 세부 정보 페이지를 엽니다.
  5. YAML 탭을 클릭합니다.
  6. spec:components 섹션을 편집합니다. feastoperator 구성 요소의 경우 managementState 필드를 Managed 로 설정합니다.

    spec:
      components:
        feastoperator:
          managementState: Managed
    Copy to Clipboard Toggle word wrap
  7. 저장을 클릭합니다.

검증

feast-operator-controller-manager-<pod-id& gt; Pod의 상태를 확인합니다.

  1. 워크로드배포를 클릭합니다.
  2. 프로젝트 목록에서 redhat-ods-applications 를 선택합니다.
  3. feast-operator-controller-manager 배포를 검색합니다.
  4. feast-operator-controller-manager 배포 이름을 클릭하여 배포 세부 정보 페이지를 엽니다.
  5. 포드 탭을 클릭합니다.
  6. Pod 상태를 확인합니다.

feast-operator-controller-manager-<pod-id > Pod의 상태가 Running 이면 기능 저장소가 활성화됩니다.

다음 단계

  • 데이터 사이언스 프로젝트에 기능 저장소 인스턴스를 배포합니다.

4장. 데이터 과학 프로젝트에 기능 저장소 인스턴스 배포

OpenShift 콘솔에서 CRD(사용자 정의 리소스 정의)를 생성하여 기능 저장소 인스턴스를 데이터 사이언스 프로젝트에 추가할 수 있습니다.

다음 예제에서는 Feature Store CRD YAML 파일의 최소 요구 사항을 보여줍니다.

apiVersion: feast.dev/v1alpha1
kind: FeatureStore
metadata:
  name: sample
spec:
  feastProject: my_feast_project
Copy to Clipboard Toggle word wrap

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • Feature Store 구성 요소 활성화에 설명된 대로 Feature Store 구성 요소를 활성화했습니다.
  • 데이터 사이언스 프로젝트 생성에 설명된 대로 데이터 사이언스 프로젝트를 생성 했습니다. 다음 절차에서 my-ds-project 는 데이터 사이언스 프로젝트의 이름입니다.

프로세스

  1. OpenShift 콘솔에서 빠른 생성 ( quick create icon ) 아이콘을 클릭한 다음 YAML 가져오기 옵션을 클릭합니다.
  2. 데이터 사이언스 프로젝트가 선택된 프로젝트인지 확인합니다.
  3. 다음 코드를 복사하여 YAML 편집기에 붙여넣습니다.

    apiVersion: feast.dev/v1alpha1
    kind: FeatureStore
    metadata:
      name: sample
    spec:
      feastProject: my_feast_project
    Copy to Clipboard Toggle word wrap
  4. 선택적으로 기능 저장소 인스턴스의 metadata.name 을 변경합니다.
  5. 필요한 경우 Feature Store 코드 구성에 사용할 기능 프로젝트의 이름을 편집합니다.
  6. 생성을 클릭합니다.

OpenShift에서 Feature Store CRD 파일을 생성할 때 기능 저장소는 원격 온라인 기능 서버를 시작하고 로컬 공급자를 사용하여 기본 레지스트리 및 오프라인 저장소를 구성합니다.

공급자는 레지스트리, 오프라인 저장소 및 온라인 저장소와 같은 기본 기능 저장소 구성 요소(예: 특정 환경을 대상으로 함)를 제공하여 이러한 구성 요소가 원활하게 작동할 수 있도록 하는 사용자 지정 가능한 인터페이스입니다. 로컬 공급자는 다음 기본 설정을 사용합니다.

  • 레지스트리: SQL 레지스트리 또는 로컬 파일
  • 오프라인 저장소: Parquet 파일
  • 온라인 저장소: SQLite

검증

  1. OpenShift 콘솔에서 워크로드Pod 를 선택합니다.
  2. 데이터 사이언스 프로젝트(예: my-ds-project)가 선택되어 있는지 확인합니다.
  3. feast Pod를 클릭한 다음 Pod 세부 정보를 선택합니다.
  4. 아래로 스크롤하여 온라인 컨테이너를 확인합니다. 이 컨테이너는 온라인 서버에 대한 배포입니다. OpenShift 클러스터에서 기능 서버 REST API를 사용할 수 있습니다.
  5. 위로 스크롤한 다음 터미널을 클릭합니다.
  6. 기능 저장소 프로젝트의 파일을 보려면 다음 명령을 입력합니다.

    $ ls -la
    Copy to Clipboard Toggle word wrap

    출력은 다음과 유사합니다.

    .
    ..
    data
    example_repo.py
    feature_store.yaml
    __init__.py
    __pycache__
    test_workflow.py
    Copy to Clipboard Toggle word wrap
  7. feature_store.yaml 구성 파일을 보려면 다음 명령을 입력합니다.

    $ cat feature_store.yaml
    Copy to Clipboard Toggle word wrap

    출력은 다음과 유사합니다.

    project: my_feast_project
    provider: local
    online_store:
    	path: /feast-data/online_store.db
    	type: sqlite
    registry:
    	path: /feast-data/registry.db
    	registry_type: file
    auth:
    	type: no_auth
    entity_key_serialization_version: 3
    Copy to Clipboard Toggle word wrap

    참고: offline_store 서비스는 feature_store.yaml 파일에 표시되지 않지만 기능 저장소 인스턴스는 DASK 파일 기반 오프라인 저장소를 사용합니다. feature_store.yaml 파일에서 레지스트리 유형은 file 이지만 간단한 SQLite 데이터베이스를 사용합니다.

다음 단계

선택적으로 기능 저장소 구성 사용자 지정에 설명된 대로 기능 저장소 CRD의 YAML 구성을 편집하여 오프라인 저장소, 온라인 저장소 또는 레지스트리에 대한 기본 구성을 사용자 지정할 수 있습니다.

5장. 기능 저장소 구성 사용자 정의

선택적으로 기능 저장소 인스턴스에 다음 구성을 적용할 수 있습니다.

  • Git 리포지토리에서 기존 기능 프로젝트를 사용하도록 지정
  • 오프라인 저장소 구성
  • 온라인 저장소 구성
  • 기능 레지스트리 구성
  • PVC 구성
  • 역할 기반 액세스 제어 구성

다음 섹션의 예제에서는 새 CRD(사용자 정의 리소스 정의)를 생성하여 기능 저장소 인스턴스를 사용자 지정하는 방법을 설명합니다. 또는 기존 기능 저장소 인스턴스 편집에 설명된 대로 기존 기능 인스턴스를 사용자 지정할 수 있습니다.

기능 저장소 구성을 사용자 지정하는 방법에 대한 자세한 내용은 Feast API 설명서 를 참조하십시오.

5.1. Git 리포지토리에서 기능 프로젝트를 사용하도록 지정

Git 리포지토리에 존재하는 기존 기능 프로젝트로 시작하려면 Git 리포지토리의 기능 프로젝트 위치에 대한 참조가 포함된 기능 저장소 인스턴스를 생성합니다.

참고

다음 절차의 예제 코드를 사용하려면 사용 사례와 관련된 값으로 편집해야 합니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • Feature Store 구성 요소 활성화에 설명된 대로 Feature Store 구성 요소를 활성화했습니다.
  • 데이터 사이언스 프로젝트 생성에 설명된 대로 데이터 사이언스 프로젝트를 생성 했습니다. 다음 절차에서 my-ds-project 는 데이터 사이언스 프로젝트의 이름입니다.
  • 기존 Git 리포지토리에 기존 기능 저장소 프로젝트가 있습니다.

프로세스

  1. OpenShift 콘솔에서 빠른 생성 ( quick create icon ) 아이콘을 클릭한 다음 YAML 가져오기 옵션을 클릭합니다.
  2. 데이터 사이언스 프로젝트가 선택된 프로젝트인지 확인합니다.
  3. 다음 예제 코드를 복사하여 YAML 편집기에 붙여넣습니다.

    apiVersion: feast.dev/v1alpha1
    kind: FeatureStore
    metadata:
      name: sample-git-repopath
    spec:
      feastProject: feast_demo_odfv
      feastProjectDir:
        git:
          url: https://github.com/feast-dev/feast-workshop 
    1
    
          ref: e959053    
    2
    
          featureRepoPath: module_2/feature_repo  
    3
    Copy to Clipboard Toggle word wrap
    1
    Git 리포지토리의 URL입니다.
    2
    Git 커밋 ID 또는 분기입니다.
    3
    사용하려는 기능 저장소 리포지토리의 경로입니다.
  4. Git 리포지토리 URL, 참조(커밋 ID 또는 분기) 및 경로를 편집하여 사용 사례와 관련된 값을 지정합니다.
  5. 생성을 클릭합니다.

검증

  1. OpenShift 콘솔에서 워크로드Pod 를 선택합니다.
  2. 프로젝트(예: my-ds-project)가 선택되어 있는지 확인합니다.
  3. feast- 접두사가 있는 Pod를 찾아 CRD 구성에 지정한 메타데이터 이름(예: feast-sample-git-repopath )을 찾습니다.
  4. 상태가 Running 인지 확인합니다.

5.2. 오프라인 저장소 구성

최소 구성을 사용하는 기능 저장소 인스턴스를 생성할 때 기본적으로 기능 저장소는 오프라인 저장소에 SQLite 파일 기반 저장소를 사용합니다.

다음 절차의 예제에서는 오프라인 저장소에 대해 DuckDB를 구성하는 방법을 보여줍니다.

오프라인 저장소에 대한 Feast 참조 문서에 자세히 설명된 대로 Snowflake, BigQuery, Redshift와 같은 다른 오프라인 저장소를 구성할 수 있습니다.

참고

다음 절차의 예제 코드를 사용하려면 사용 사례와 관련된 값으로 편집해야 합니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • Feature Store 구성 요소 활성화에 설명된 대로 Feature Store 구성 요소를 활성화했습니다.
  • 데이터 사이언스 프로젝트 생성에 설명된 대로 데이터 사이언스 프로젝트를 생성 했습니다. 다음 절차에서 my-ds-project 는 데이터 사이언스 프로젝트의 이름입니다.
  • 데이터 사이언스 프로젝트에는 오프라인 저장소에 사용하려는 데이터베이스에 액세스하기 위한 자격 증명을 제공하는 기존 시크릿이 포함되어 있습니다. 다음 절차의 예제에서는 DuckDB를 구성해야 합니다.

프로세스

  1. OpenShift 콘솔에서 빠른 생성 ( quick create icon ) 아이콘을 클릭한 다음 YAML 가져오기 옵션을 클릭합니다.
  2. 데이터 사이언스 프로젝트가 선택된 프로젝트인지 확인합니다.
  3. 다음 코드를 복사하여 YAML 편집기에 붙여넣습니다.

    apiVersion: feast.dev/v1alpha1
    kind: FeatureStore
    metadata:
      name: sample-db-persistence
    spec:
      feastProject: my_project
      services:
        offlineStore:
          persistence:
            file:
              type: duckdb
    Copy to Clipboard Toggle word wrap
  4. services.offlineStore 섹션을 편집하여 사용 사례와 관련된 값을 지정합니다.
  5. 생성을 클릭합니다.

검증

  1. OpenShift 콘솔에서 워크로드Pod 를 선택합니다.
  2. 프로젝트(예: my-ds-project)가 선택되어 있는지 확인합니다.
  3. feast- 접두사가 있는 Pod를 찾아 CRD 구성에 지정한 메타데이터 이름(예: feast-sample-db-persistence )을 찾습니다.
  4. 상태가 Running 인지 확인합니다.

5.3. 온라인 저장소 구성

최소 구성을 사용하여 기능 저장소 인스턴스를 생성할 때 기본적으로 온라인 저장소는 SQLite 데이터베이스입니다.

다음 절차의 예제에서는 온라인 저장소에 대해 PostgreSQL 데이터베이스를 구성하는 방법을 보여줍니다.

온라인 스토어에 대한 Feast 참조 문서에 자세히 설명된 대로 Snowflake, Redis 및 Cryostat와 같은 다른 온라인 저장소를 구성할 수 있습니다.

참고

다음 절차의 예제 코드를 사용하려면 사용 사례와 관련된 값으로 편집해야 합니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • Feature Store 구성 요소 활성화에 설명된 대로 Feature Store 구성 요소를 활성화했습니다.
  • 데이터 사이언스 프로젝트 생성에 설명된 대로 데이터 사이언스 프로젝트를 생성 했습니다. 다음 절차에서 my-ds-project 는 데이터 사이언스 프로젝트의 이름입니다.
  • 데이터 사이언스 프로젝트에는 온라인 저장소에 사용하려는 데이터베이스에 액세스하기 위한 자격 증명을 제공하는 기존 시크릿이 포함되어 있습니다. 다음 절차의 예제에서는 PostgreSQL 데이터베이스를 구성해야 합니다.

프로세스

  1. OpenShift 콘솔에서 빠른 생성 ( quick create icon ) 아이콘을 클릭한 다음 YAML 가져오기 옵션을 클릭합니다.
  2. 데이터 사이언스 프로젝트가 선택된 프로젝트인지 확인합니다.
  3. 다음 코드를 복사하여 YAML 편집기에 붙여넣습니다.

    apiVersion: feast.dev/v1alpha1
    kind: FeatureStore
    metadata:
      name: sample-db-persistence
    spec:
      feastProject: my_project
      services:
        onlineStore:
          persistence:
            store:
              type: postgres
              secretRef:
                name: feast-data-stores
    Copy to Clipboard Toggle word wrap
  4. services.onlineStore 섹션을 편집하여 사용 사례와 관련된 값을 지정합니다.
  5. 생성을 클릭합니다.

검증

  1. OpenShift 콘솔에서 워크로드Pod 를 선택합니다.
  2. 프로젝트(예: my-ds-project)가 선택되어 있는지 확인합니다.
  3. feast- 접두사가 있는 Pod를 찾아 CRD 구성에 지정한 메타데이터 이름(예: feast-sample-db-persistence )을 찾습니다.
  4. 상태가 Running 인지 확인합니다.

5.4. 기능 레지스트리 구성

기본적으로 최소 구성을 사용하여 기능 인스턴스를 생성할 때 레지스트리는 간단한 SQLite 데이터베이스입니다.

다음 절차의 예제에서는 S3 레지스트리를 구성하는 방법을 보여줍니다.

GCS, SQL, Snowflake와 같은 다른 유형의 레지스트리는 레지스트리의 Feast 참조 문서에 자세히 설명되어 있습니다.

참고

다음 절차의 예제 코드를 사용하려면 사용 사례와 관련된 값으로 편집해야 합니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • Feature Store 구성 요소 활성화에 설명된 대로 Feature Store 구성 요소를 활성화했습니다.
  • 데이터 사이언스 프로젝트 생성에 설명된 대로 데이터 사이언스 프로젝트를 생성 했습니다. 다음 절차에서 my-ds-project 는 데이터 사이언스 프로젝트의 이름입니다.
  • 데이터 사이언스 프로젝트에는 레지스트리에 사용하려는 데이터베이스에 액세스하기 위한 자격 증명을 제공하는 기존 시크릿이 포함되어 있습니다. 다음 절차의 예제에서는 S3을 구성해야 합니다.

프로세스

  1. OpenShift 콘솔에서 빠른 생성 ( quick create icon ) 아이콘을 클릭한 다음 YAML 가져오기 옵션을 클릭합니다.
  2. 데이터 사이언스 프로젝트가 선택된 프로젝트인지 확인합니다.
  3. 다음 코드를 복사하여 YAML 편집기에 붙여넣습니다.

    apiVersion: feast.dev/v1alpha1
    kind: FeatureStore
    metadata:
     name: sample-s3-registry
    spec:
     feastProject: my_project
     services:
       registry:
         local:
           persistence:
             file:
               path: s3://bucket/registry.db
               s3_additional_kwargs:
                 ServerSideEncryption: AES256
                 ACL: bucket-owner-full-control
                 CacheControl: max-age=3600
    Copy to Clipboard Toggle word wrap
  4. services.registry 섹션을 편집하여 사용 사례와 관련된 값을 지정합니다.
  5. 생성을 클릭합니다.

검증

  1. OpenShift 콘솔에서 워크로드Pod 를 선택합니다.
  2. 프로젝트(예: my-ds-project)가 선택되어 있는지 확인합니다.
  3. feast- 접두사가 있는 Pod를 찾아 CRD 구성에 지정한 메타데이터 이름(예: sample-s3-registry )을 찾습니다.
  4. feast Pod를 클릭한 다음 Pod 세부 정보를 선택합니다.
  5. 터미널을 클릭합니다.
  6. 터미널 창에서 다음 명령을 입력하여 S3 레지스트리를 포함하여 구성을 확인합니다.

    $ cat feature_store.yaml
    Copy to Clipboard Toggle word wrap

5.5. PVC 구성 예

온라인 저장소, 오프라인 저장소 또는 레지스트리를 구성할 때 다음 기능 저장소 CRD(사용자 정의 리소스 정의) 예에 표시된 대로 PVC(영구 볼륨 클레임)를 구성할 수도 있습니다.

참고

다음 예제 코드에서는 사용 사례와 관련된 값으로 편집해야 합니다.

apiVersion: feast.dev/v1alpha1
kind: FeatureStore
metadata:
  name: sample-pvc-persistence
spec:
  feastProject: my_project
  services:
    onlineStore:   
1

      persistence:
        file:
          path: online_store.db
          pvc:
            ref:
              name: online-pvc
            mountPath: /data/online
    offlineStore:   
2

      persistence:
        file:
          type: duckdb
          pvc:
            create:
              storageClassName: standard
              resources:
                requests:
                  storage: 5Gi
            mountPath: /data/offline
    registry:   
3

      local:
        persistence:
          file:
            path: registry.db
            pvc:
              create: {}
              mountPath: /data/registry
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: online-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
Copy to Clipboard Toggle word wrap
1
온라인 저장소는 이미 존재해야 하는 PVC를 지정합니다.
2
오프라인 저장소는 스토리지 클래스 이름과 스토리지 크기를 지정합니다.
3
레지스트리 구성은 Feature Store Operator가 기본 설정으로 PVC를 생성하도록 지정합니다.

5.6. 역할 기반 액세스 제어 구성

RBAC(역할 기반 액세스 제어)는 조직 내의 개별 사용자의 역할에 따라 리소스에 대한 액세스를 제한하는 보안 메커니즘입니다. 기능 저장소 RBAC는 권한이 부여된 사용자 또는 그룹만 특정 리소스에 액세스하거나 수정하여 데이터 보안 및 운영 무결성을 유지할 수 있도록 합니다.

기능 저장소의 RBAC 구현은 다음과 같은 기능을 제공하도록 설계되었습니다.

  • 권한을 할당 - 관리자가 역할을 기반으로 사용자 또는 그룹에 다양한 작업 및 리소스에 대한 권한을 할당할 수 있습니다.
  • 원활한 통합 - 상당한 수정없이 기존 비즈니스 코드와 원활하게 통합됩니다.
  • 이전 버전과의 호환성 - 이전 버전과의 호환성을 보장하기 위해 인증되지 않은 모델을 기본값으로 지원합니다.

Feature Store RBAC는 다음과 같은 이점을 제공합니다.

  • 기능 공유 - 여러 팀이 액세스 제어를 보장하면서 기능 저장소를 공유할 수 있습니다. 이 기능을 사용하면 데이터 보안을 손상시키지 않고 협업 작업을 수행할 수 있습니다.
  • 액세스 제어 관리 - 팀별 리소스 및 공간에 대한 무단 액세스를 방지하여 각 사용자 또는 그룹이 수행할 수 있는 작업을 제어합니다.

기능 저장소 권한 모델을 사용하면 기능 저장소에 정의된 모든 리소스에 대한 세분화된 권한 정책을 구성할 수 있습니다.

권한 부여 적용은 요청이 Python( Feature Store) 서버 중 하나를 통해 실행될 때 수행됩니다.

  • 온라인 기능 서버(REST)
  • 오프라인 기능 서버(Apache Arrow Flight)는 gRPC 통신 프로토콜을 사용하여 데이터를 교환합니다. 이 서버는 기존 오프라인 저장소 구현에 대한 호출을 래핑하고 인터페이스를 Arrow Flight 엔드포인트로 노출합니다.
  • 레지스트리 서버(gRPC)
참고

로컬 공급자(기본값)를 사용하여 기능 저장소를 구성하는 경우 Feature Store API에 액세스할 때 권한 적용이 없습니다.

5.6.1. 기본 권한 부여 구성

기본 구성에서는 권한 적용이 적용되지 않습니다. 다음 예제 Feature Store에는 권한이 없음을 나타내는 spec.authz 섹션이 포함되어 있지 않습니다.

apiVersion: feast.dev/v1alpha1
kind: FeatureStore
metadata:
  name: sample-no-auth
spec:
  feastProject: my_project
Copy to Clipboard Toggle word wrap

선택적으로 OIDC 및 Kubernetes RBAC 권한 부여 프로토콜을 구성할 수 있습니다.

5.6.2. OIDC 권한 부여 구성의 예

다음 예제에서는 Feature Store CRD(사용자 정의 리소스 정의)의 OIDC 권한 부여 구성을 보여줍니다.

apiVersion: feast.dev/v1alpha1
kind: FeatureStore
metadata:
  name: sample-oidc-auth
spec:
  feastProject: my_project
  authz:
    oidc:
      secretRef:
        name: oidc-secret

---
kind: Secret
apiVersion: v1
metadata:
  name: oidc-secret
stringData:
  client_id: client_id
  auth_discovery_url: auth_discovery_url
  client_secret: client_secret
  username: username
  password: password
Copy to Clipboard Toggle word wrap
참고

이 예제 코드를 사용하려면 사용 사례와 관련된 값으로 편집해야 합니다.

자세한 내용은 Feast 문서의 OIDC 구성 을 참조하십시오.

5.6.3. Kubernetes 권한 부여 구성의 예

다음 예제에서는 Feature Store CRD(사용자 정의 리소스 정의)의 Kubernetes 권한 부여 구성을 보여줍니다.

apiVersion: feast.dev/v1alpha1
kind: FeatureStore
metadata:
  name: sample-kubernetes-auth
spec:
  feastProject: feast_rbac
  authz:
    kubernetes:
      roles:
      - feast-writer
      - feast-reader
Copy to Clipboard Toggle word wrap
참고

예제 코드를 사용하려면 사용 사례와 관련된 값으로 편집해야 합니다.

자세한 내용은 Feast 설명서의 Kubernetes RBAC 구성 을 참조하십시오.

Kubernetes RBAC 권한 부여를 구현하는 방법의 예는 Feast Operator를 사용하여 Kubernetes에서 Feast RBAC 예제 실행을 참조하십시오.

5.7. 기존 기능 저장소 인스턴스 편집

이 문서의 예제에서는 새 CRD(사용자 정의 리소스 정의)를 생성하여 기능 저장소 인스턴스를 사용자 지정하는 방법을 설명합니다. 또는 기존 기능 인스턴스를 사용자 지정할 수 있습니다.

사전 요구 사항

  • OpenShift 클러스터에 대한 클러스터 관리자 권한이 있습니다.
  • 데이터 사이언스 프로젝트에 기능 저장소 인스턴스 배포에 설명된 대로 기능 저장소 인스턴스를 생성했습니다.

프로세스

  1. OpenShift 콘솔에서 AdministrationCustomResourceDefinitions 를 선택합니다.
  2. 목록을 필터링하려면 이름으로 검색 필드에 기능을 입력합니다.
  3. FeatureStore CRD를 클릭한 다음 인스턴스를 클릭합니다.
  4. 편집할 인스턴스를 선택한 다음 YAML 을 클릭합니다.
  5. YAML 편집기에서 구성을 편집합니다.
  6. 저장을 클릭한 다음 다시 로드 를 클릭합니다.

검증

기능 저장소 인스턴스 CRD가 성공적으로 배포됩니다.

6장. 웹 기반 UI에서 기능 저장소 오브젝트 보기

기능 저장소 웹 UI를 사용하여 등록된 모든 기능, 데이터 소스, 엔터티 및 기능 서비스를 볼 수 있습니다.

사전 요구 사항

  • OpenShift 콘솔에 액세스할 수 있습니다.
  • OpenShift CLI(명령줄 인터페이스)를 설치했습니다. OpenShift CLI 설치를 참조하십시오.
  • Feature Store 구성 요소 활성화에 설명된 대로 Feature Store 구성 요소를 활성화했습니다.

프로세스

  1. OpenShift 콘솔에서 빠른 생성 ( quick create icon ) 아이콘을 클릭한 다음 YAML 가져오기 옵션을 클릭합니다.
  2. 데이터 사이언스 프로젝트가 선택된 프로젝트인지 확인합니다.
  3. 다음 코드를 복사하여 YAML 편집기에 붙여넣습니다.

    apiVersion: feast.dev/v1alpha1
    kind: FeatureStore
    metadata:
      name: sample
    spec:
      feastProject: my_project
      services:
    	  ui: {}  
    1
    Copy to Clipboard Toggle word wrap
    1
    기능 저장소 인스턴스에 대한 웹 UI를 생성하도록 지정합니다.
  4. 생성을 클릭합니다.

    Feature Store Operator는 웹 기반 기능 저장소 UI에 대한 컨테이너를 시작하고 액세스할 수 있도록 URL을 제공하는 OpenShift 경로를 생성합니다.

  5. OpenShift 콘솔에서 워크로드Pod 를 선택합니다.
  6. 프로젝트(예: my-ds-project)가 선택되어 있는지 확인합니다.

    웹 기반 UI에 대한 배포가 표시되어야 합니다. OpenShift는 런타임 시 기본적으로 TLS를 활성화합니다.

  7. 웹 기반 UI를 기능 저장소의 오브젝트로 채우려면 OpenShift cron 작업을 생성합니다.

    1. 터미널 창을 엽니다.
    2. 클러스터 관리자로 OpenShift 클러스터에 로그인하지 않은 경우 다음 예와 같이 로그인합니다.

      $ oc login __<openshift_cluster_url>__ -u __<admin_username>__ -p __<password>__
      Copy to Clipboard Toggle word wrap
    3. Feature Store를 활성화한 데이터 사이언스 프로젝트를 사용하고 있는지 확인합니다(예: my-ds-project ).

      $ oc project my-ds-project
      Copy to Clipboard Toggle word wrap
    4. 다음 구문으로 명령을 실행하여 cron 작업을 생성합니다.

      $ oc create job --from=cronjob/feast-<FeatureStore CR name> feast-apply
      Copy to Clipboard Toggle word wrap

      예를 들어 Feature Store CRD의 metadata.name이 샘플인 경우 다음 명령을 실행합니다.

      $ oc create job --from=cronjob/feast-sample feast-apply
      Copy to Clipboard Toggle word wrap
    5. 다음 명령을 실행합니다.

      $ oc wait --for=condition=complete job/feast-apply
      
      $ oc logs job/feast-apply --all-containers=true
      Copy to Clipboard Toggle word wrap
  8. Feature Store UI의 URL을 찾으려면 OpenShift 콘솔에서 네트워킹 → 경로를 클릭합니다.

    Feature Store UI(예: feast-sample-ui ) 행의 URL은 Location 열에 있습니다.

  9. URL 링크를 클릭하여 기본 웹 브라우저에서 엽니다.

검증

Feature Store 웹 UI가 표시되고 다음 그림과 같이 프로젝트의 기능 오브젝트를 표시합니다.

그림 6.1. 기능 저장소 웹 UI

7장. 추가 리소스

법적 공지

Copyright © 2025 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2026 Red Hat
맨 위로 이동