다음을 통해 공유


관리되는 기능 저장소란?

관리되는 기능 저장소의 경우 사용자와 같은 기계 학습 전문가가 독립적으로 기능을 개발하고 프로덕션화하기를 원합니다. 기능 집합 사양을 제공합니다. 시스템은 기능의 제공, 보안 및 모니터링을 처리합니다. 이렇게 하면 기본 기능 엔지니어링 파이프라인 설정 및 관리 오버헤드에서 벗어날 수 있습니다.

기계 학습 수명 주기 전반에 걸쳐 기능 저장소가 통합된 덕분에 모델을 더 빠르게 실험하고 출시하고, 모델의 안정성을 높이고, 운영 비용을 절감할 수 있습니다. 기계 학습 환경을 재정의하면 이러한 이점이 제공됩니다.

기능 집합 사양을 포함하여 기능 저장소의 최상위 엔터티에 대한 자세한 내용은 관리되는 기능 저장소의 최상위 엔터티 이해를 참조하세요.

기능이란?

기능은 모델의 입력 데이터 역할을 합니다. 엔터프라이즈 컨텍스트에서 데이터 기반 사용 사례의 경우 기능은 기록 데이터(단순 집계, 창 집계, 행 수준 변환 등)를 변환하는 경우가 많습니다. 예를 들어, 고객 이탈 기계 학습 모델을 생각해 보겠습니다. 모델 입력에는 고객 상호 작용 데이터(예: 7day_transactions_sum(지난 7일 동안의 트랜잭션 수) 또는 7day_complaints_sum(지난 7일 동안의 불만 사항 수))이(가) 포함될 수 있습니다. 이러한 집계 함수는 모두 이전 7일간의 데이터에서 계산됩니다.

기능 저장소로 해결된 문제

관리되는 기능 저장소를 더 잘 이해하려면 먼저 기능 저장소에서 해결할 수 있는 문제를 이해해야 합니다.

  • 기능 저장소를 사용하면 팀이 만드는 기능을 검색하고 재사용하여 중복 작업을 방지하고 일관된 예측을 제공할 수 있습니다.

  • 민첩하고 동적인 방식으로 기능 엔지니어링 요구 사항을 해결하기 위해 변환 기능이 포함된 새 기능을 생성할 수 있습니다.

  • 시스템이 변환 및 구체화에 필요한 기능 엔지니어링 파이프라인을 운영 및 관리하므로 팀의 운영 부담이 해소됩니다.

  • 온라인/오프라인 일관성을 유지하고 학습/제공 기울이기를 방지하기 위해 원래 학습 데이터 생성에 사용된 것과 동일한 기능 파이프라인을 새롭게 추론용으로도 사용할 수 있습니다.

관리 기능 저장소 공유

여러 사용자 및 작업 영역 간에 기능 저장소를 공유하는 방법을 보여 주는 다이어그램입니다.

기능 저장소는 여러 프로젝트 작업 영역에서 사용할 수 있는 새로운 작업 영역 유형입니다. Azure Databricks와 같은 Azure Machine Learning 이외의 Spark 기반 환경의 기능을 사용할 수 있습니다. 기능의 로컬 개발 및 테스트를 수행할 수도 있습니다.

기능 저장소 개요

Azure Machine Learning의 개념적 아키텍처를 설명하는 다이어그램

관리 기능 저장소의 경우 기능 집합 사양을 제공합니다. 그러면 시스템이 기능의 서비스, 보안 및 모니터링을 처리합니다. 기능 집합 사양에는 기능 정의와 선택적 변환 논리가 포함됩니다. 오프라인 저장소(ADLS Gen2)로 구체화하기 위해 구체화 설정을 선언적으로 제공할 수도 있습니다. 시스템은 기본 기능 구체화 파이프라인을 생성하고 관리합니다. 기능 카탈로그를 사용하여 기능을 검색, 공유 및 재사용할 수 있습니다. 제공 API를 통해 사용자는 학습 및 유추를 위한 데이터를 생성하는 기능을 조회할 수 있습니다. 제공 API는 학습/일괄 처리 유추를 위해 원본 또는 오프라인 구체화 저장소에서 직접 데이터를 가져올 수 있습니다. 시스템은 기능 구체화 작업을 모니터링하는 기능도 제공합니다.

Azure Machine Learning 관리 기능 저장소 사용의 이점

  • 모델 출시의 민첩성 향상(프로토타입 제작부터 운영화까지):
    • 처음부터 새로 만드는 대신 기능을 발견하여 재사용
    • 변환 지원 및 MLOps 흐름의 결합 조직으로 기능 검색 사양을 사용하여 새로운 기능의 로컬 개발/테스트를 통해 더 빠른 실험
    • 선언적 구체화 및 백필
    • 미리 빌드된 구문: 기능 검색 구문 요소 및 기능 검색 사양
  • ML 모델의 안정성 개선
    • 사업부/조직 전반에 걸쳐 일관된 기능 정의
    • 기능 집합은 버전이 지정되며 변경할 수 없음: 최신 버전의 모델은 이전 버전의 모델을 중단하지 않고 최신 버전의 기능을 사용할 수 있습니다.
    • 기능 집합 구체화 모니터링
    • 구체화를 통해 학습/제공 기울이기 방지
    • 기능 검색은 데이터 누출을 방지하기 위해 특정 시점 임시 조인(시간 이동이라고도 함)을 지원합니다.
  • 비용 절감
    • 조직 내 다른 사람이 만든 기능을 재사용합니다.
    • 구체화 및 모니터링은 시스템에서 관리되므로 엔지니어링 비용이 절감됩니다.

기능 발견 및 관리

관리 기능 저장소는 기능 검색 및 관리를 위해 다음과 같은 기능을 제공합니다.

  • 기능 검색 및 재사용 - 기능 저장소 전체에서 기능을 검색하고 재사용할 수 있습니다.
  • 버전 관리 지원 - 기능 집합은 버전이 지정되고 변경할 수 없으므로 기능 집합 수명 주기를 독립적으로 관리할 수 있습니다. 다양한 기능 버전을 사용하여 새 모델 버전을 배포하고 이전 모델 버전의 중단을 방지할 수 있습니다.
  • 기능 저장소 수준에서 비용 보기 - 기능 저장소 사용과 관련된 기본 비용은 관리되는 Spark 구체화 작업입니다. 기능 저장소 수준에서 비용을 확인할 수 있습니다.
  • 기능 집합 사용 - 기능 집합을 사용하여 등록된 모델 목록을 볼 수 있습니다.

기능 변환

기능 변환에는 모델 성능 개선을 위해 데이터 세트의 기능을 수정하는 작업이 포함됩니다. 기능 사양에 정의된 변환 코드는 기능 변환을 처리합니다. 더 빠른 실험을 위해 변환 코드는 원본 데이터에 대한 계산을 수행하고 변환의 로컬 개발 및 테스트를 허용합니다.

관리 기능 저장소는 다음과 같은 기능 변환 기능을 제공합니다.

  • 사용자 지정 변환 지원 - Spark 변환기를 작성하여 사용자 지정 변환 기능이 포함된 기능(예: 창 기반 집계)을 개발할 수 있습니다.
  • 미리 계산된 기능 지원 - 미리 계산된 기능이 있는 경우 코드를 작성하지 않고도 해당 기능을 기능 저장소로 가져와 제공할 수 있습니다.
  • 로컬 개발 및 테스트 - Spark 환경을 사용하면 로컬에서 기능 집합을 완전히 개발하고 테스트할 수 있습니다.

기능 구현

구체화에는 특정 기능 창에 대한 기능 값을 계산하고 그런 값을 구체화 저장소에 유지하기 위한 작업이 포함됩니다. 이제 학습 및 유추 목적으로 기능 데이터를 더 빠르고 안정적으로 검색할 수 있습니다.

  • 관리 기능 구체화 파이프라인 - 구체화 일정을 선언적으로 지정하면 시스템에서 구체화 저장소에 대한 값의 일정 예약, 사전 계산 및 구체화를 처리합니다.
  • 백필 지원 - 특정 기능 창에 대한 기능 집합의 주문형 구체화를 수행할 수 있습니다.
  • 구체화에 대한 Managed Spark 지원 - Azure Machine Learning 관리 Spark(서버리스 컴퓨팅 인스턴스)는 구체화 작업을 실행합니다. 이를 통해 Spark 인프라를 설정하고 관리할 수 있습니다.

참고 항목

현재 오프라인 저장소(ADLS Gen2) 및 온라인 저장소(Redis) 구체화가 모두 지원됩니다.

기능 검색

Azure Machine Learning에는 오프라인 기능 검색을 처리하는 기본 제공 구성 요소가 포함되어 있습니다. 이를 통해 Azure Machine Learning 파이프라인 작업의 학습 및 일괄 처리 유추 단계에서 기능을 사용할 수 있습니다.

관리 기능 저장소는 다음과 같은 기능 검색 기능을 제공합니다.

  • 선언적 학습 데이터 생성 - 기본 제공된 기능 검색 구성 요소를 사용하면 코드를 빌드하지 않고도 파이프라인에서 학습 데이터를 생성할 수 있습니다.
  • 선언적 일괄 처리 유추 데이터 생성 - 동일한 기본 제공 기능 검색 구성 요소를 사용하여 일괄 처리 유추 데이터를 생성할 수 있습니다.
  • 프로그래밍 방식 기능 검색 - Python SDK를 사용하여 get_offline_features()학습/유추 데이터를 생성할 수도 있습니다.

모니터링

관리 기능 저장소는 다음과 같은 모니터링 기능을 제공합니다.

  • 구체화 작업 상태 - UI, CLI 또는 SDK를 사용하여 구체화 작업의 상태를 볼 수 있습니다.
  • 구현 작업에 대한 알림 - 구현 작업의 다양한 상태에 대한 이메일 알림을 설정할 수 있습니다.

보안

관리되는 기능 저장소는 다음과 같은 보안 기능을 제공합니다.

  • RBAC - 기능 저장소, 기능 집합 및 엔터티에 대한 역할 기반 액세스 제어입니다.
  • 기능 저장소 전체에 대한 쿼리 - 사용자에 대해 서로 다른 액세스 권한을 가진 여러 기능 저장소를 만들 수 있지만 여러 기능 저장소에서 쿼리(예: 학습 데이터 만들기)를 허용할 수 있습니다.

다음 단계