Amazon Web Services 한국 블로그

Amazon SageMaker Feature Store – 기계 학습 피처 저장, 검색 및 공유 기능 제공

오늘 Amazon SageMaker의 새로운 기능인 Amazon SageMaker Feature Store를 소개하게 되어 정말 기쁩니다. 이 기능을 사용하면 데이터 사이언티스트와 기계 학습 엔지니어는 훈련 및 예측 워크플로에서 사용되는 준비된 데이터를 쉽고 안전하게 저장, 검색 및 공유할 수 있습니다.

기계 학습(ML) 모델을 훈련하는 올바른 알고리즘 선택의 중요성 때문에 숙련된 실무자는 고품질 데이터 제공의 중요성을 잘 알고 있습니다. 데이터 정리가 바람직한 첫 단계입니다. ML 워크플로는 누락된 값을 채우고 이상치를 제거하는 등의 단계를 주기적으로 포함합니다. 그런 다음, 종종 일반 기술과 난해한 기술을 함께 사용하여 데이터 변환으로 이전합니다(이를 “피처 엔지니어링”이라고 함).

즉, 피처 엔지니어링의 목적은 데이터를 변환하고 표현력을 높여 알고리즘의 훈련 효율성을 향상시키는 것입니다. 예를 들어, 많은 열 형식의 데이터 세트가 상세 주소와 같은 문자열을 포함합니다. 대부분의 ML 알고리즘에서 문자열은 의미가 없으므로 숫자 표현으로 인코딩해야 합니다. 그래서 상세 주소를 GPS 좌표로 바꿀 수 있습니다. GPS 좌표는 위치 개념을 학습할 때 표현력이 더 뛰어납니다. 즉, 데이터가 새로운 오일이라면, 피처 엔지니어링은 모델이 성층권이라는 정확도에 도달할 수 있도록 옥탄가가 높은 제트 연료를 만드는 정제 과정에 해당합니다.

실제로 ML 실무자는 피처 엔지니어링 코드를 작성하고 이를 초기 데이터 세트에 적용하며 엔지니어링된 데이터 세트에서 모델을 훈련하고 모델 정확도를 평가하는 데 많은 시간을 소비합니다. 이 작업의 실험적 특성을 감안할 때 가장 작은 프로젝트도 여러 번 반복할 수 있습니다. 동일한 피처 엔지니어링 코드를 자주 반복 실행하게 되므로 동일한 작업을 반복하면서 시간과 컴퓨팅 리소스가 낭비됩니다. 대규모 조직에서는 다른 팀이 자주 동일한 작업을 실행하거나 이전 작업에 대한 지식이 없기 때문에 중복 피처 엔지니어링 코드를 작성하기도 하므로 생산성이 더 크게 떨어질 수 있습니다.

ML 팀이 해결해야 하는 또 다른 어려운 문제가 있습니다. 모델은 엔지니어링된 데이터 세트에서 훈련되므로 예측을 위해 전송된 데이터에서도 동일한 변환을 적용해야 합니다. 이는 종종 피처 엔지니어링 코드를 다른 언어로 다시 작성하고 이를 예측 워크플로에 통합하여 예측 시간에 실행해야 함을 의미합니다. 데이터 변환의 가장 작은 변동도 예측에 큰 영향을 미칠 수 있으므로 이러한 전체 프로세스는 시간이 많이 걸릴 뿐만 아니라 불일치를 초래할 수도 있습니다.

이러한 문제를 해결하기 위해 ML 팀은 훈련 및 예측 작업에 사용된 엔지니어링 데이터를 유지하고 검색할 수 있는 중앙 리포지토리에 해당하는 피처 스토어를 구축하기도 합니다. 피처 스토어는 유용하지만, 직접 구축하고 관리하려면 많은 엔지니어링, 인프라 및 운영 노력이 필요하고, 이 때문에 실제 ML 작업에서 소중한 시간을 낭비됩니다. 고객이 더 나은 솔루션을 요청했고 이러한 고객의 요구 사항을 충족시킬 수 있는 방안을 고안했습니다.

Amazon SageMaker Feature Store 소개
Amazon SageMaker Feature Store는 ML 피처를 위해 중앙화된 완전관리형 중앙 리포지토리로, 인프라를 관리하지 않고도 피처를 안전하게 저장하고 검색할 수 있습니다. ML을 위한 완전관리형 서비스인 Amazon SageMaker의 일부로 제공되며, 모든 알고리즘을 지원합니다. 또한 ML을 위한 AWS의 웹 기반 개발 환경인 Amazon SageMaker Studio에도 통합되어 있습니다.

SageMaker Feature Store에 저장된 피처는 그룹으로 구성되며, 메타데이터로 태그가 지정됩니다. 이를 통해 사용 가능한 피처와 모델에 적합한지를 신속하게 확인할 수 있습니다. 또한 여러 팀이 피처를 쉽게 공유하고 재사용할 수 있으므로 개발 비용을 절감하고 혁신을 가속화할 수 있습니다.

피처를 저장하면, SageMaker 워크플로(모델 훈련, 배치 변환, 지연 시간이 짧은 실시간 예측)에서 피처를 검색하고 사용할 수 있습니다. 작업 중복을 피할 수 있을 뿐만 아니라, 오프라인 및 온라인 스토어에 저장된 동일한 일관된 피처를 사용하는 일관된 워크플로를 구축할 수도 있습니다.

The Climate Corporation(Climate)은 Bayer의 자회사로, 농업 부문에서 디지털 혁신을 주도하는 업계 리더입니다. Climate의 데이터 및 분석 부문의 부사장인 Daniel McCaffrey는 이렇게 말합니다. “Climate는 데이터 중심의 의사결정을 지원하고 토지에서 얻는 수익을 극대화하기 위해 정확한 정보를 전 세계 농업 종사자에게 제공하는 것이 목표입니다. 이를 위해 저희는 기계 학습 도구와 같은 기술에 투자하여 경작자 토지에서의 산출량과 같은 측정 가능한 엔터티(피처라고 함)를 사용하여 모델을 구축합니다. Amazon SageMaker Feature Store를 사용하면 중앙 피처 스토어에서 ML 모델 개발을 가속화하여 여러 팀에서 피처에 쉽게 액세스하고 피처를 재사용할 수 있습니다. SageMaker Feature Store를 사용하면 온라인 스토어를 통해 실시간으로 피처에 쉽게 액세스하거나 다양한 사용 사례에 맞게 오프라인 스토어에서 일정에 따라 피처를 실행할 수 있으므로, ML 모델을 더 빠르게 개발할 수 있습니다.”

고품질 패밀리 케어 서비스를 검색하고 관리하는 세계적으로 뛰어난 플랫폼을 지원하는 Care.com에서도 Amazon SageMaker Feature Store를 사용합니다. Care.com의 데이터 사이언스 관리자인 Clemens Tummeltshammer는 이렇게 말합니다. “개별 가정의 경제력이 국가 GDP 수준까지 성장하려면 공급이 수요와 일치하는 강력한 케어 서비스 산업이 필요합니다. 그래서 Amazon SageMaker Feature Store와 Amazon SageMaker Pipelines를 알게 되어 정말 기뻤습니다. 이를 바탕으로 데이터 준비에서 배포에 이르기까지 확장 가능한 전체 기계 학습 모델 파이프라인을 구축하는 데 사용할 수 있는 준비된 데이터의 일관된 세트를 활용하여 데이터 사이언스 및 개발 팀에서 규모를 보다 효율적으로 조정할 수 있을 것이기 때문입니다. 새로 발표된 Amazon SageMaker의 기능을 통해 다양한 애플리케이션에 대한 ML 모델의 개발과 배포를 가속화할 수 있으므로, 고객도 더 빠른 실시간 추천을 통해 정보에 기반한 의사결정을 보다 효율적으로 내릴 수 있습니다.

이제 이 기능을 시작할 수 있는지 알아보겠습니다.

Amazon SageMaker Feature Store에서 피처 저장 및 검색
데이터에 대해 피처 엔지니어링 코드를 실행한 후에는 SageMaker Feature Store에서 엔지니어링된 피처를 피처 그룹으로 그룹화하여 구성하고 저장할 수 있습니다. 피처 그룹은 레코드 모음으로, 테이블의 행과 비슷합니다. 각 레코드에는 고유 식별자가 있으며, 원래 데이터 원본의 데이터 인스턴스 중 하나에 대해 엔지니어링된 피처 값을 보유합니다. 선택적으로 각 피처 그룹에 고유한 AWS Key Management Service(KMS) 키를 사용하여 유휴 데이터를 암호화할 수 있습니다.

피처 그룹을 정의하는 방법은 사용자가 정합니다. 예를 들어, 데이터 원본(CSV 파일, 데이터베이스 테이블 등)당 하나를 생성하고 레코드 식별자(기본 키, 고객 ID, 트랜잭션 ID 등)로 편리한 고유 열을 사용할 수 있습니다.

그룹을 파악한 후에는 각 그룹에 대해 다음 단계를 반복해야 합니다.

  1. 레코드에 있는 각 피처의 이름과 유형(Fractional, Integral 또는 String)을 사용하여 피처 정의를 생성합니다.
  2. create_feature_group() API를 사용하여 각 피처 그룹을 생성합니다.
    sm_feature_store.create_feature_group(
         # The name of the feature group
         FeatureGroupName=my_feature_group_name,
         # The name of the column acting as the record identifier
         RecordIdentifierName=record_identifier_name,
         # The name of the column action as the feature timestamp
         EventTimeFeatureName = event_time_feature_name,
         # A list of feature names and types
         FeatureDefinitions=my_feature_definitions,
         # The S3 location for the offline feature store
         OnlineStoreConfig=online_store_config,
         # Optionally, enable the online feature store
         OfflineStoreConfig=offline_store_config,
         # An IAM role
         RoleArn=role
    )
  3. 각 피처 그룹에서 put_record() API를 사용하여 피처 이름/피처 값 페어 모음을 포함하는 레코드를 저장합니다.
    sm_feature_store.put_record(
       FeatureGroupName=feature_group_name,
       Record=record,
       EventTime=event_time
    )

    빠른 수집을 위해 여러 스레드를 생성하고 이 작업을 병렬화할 수 있습니다.

이제 Amazon SageMaker Feature Store에서 피처를 사용할 수 있습니다. 오프라인 스토어 덕분에 Amazon Athena, AWS Glue 또는 Amazon EMR과 같은 서비스를 사용하여 훈련을 위한 데이터 세트를 구축할 수 있습니다(S3에서 대응하는 JSON 객체를 가져오고 필요한 피처를 선택한 후 ML 알고리즘에서 예상하는 형식으로 S3에 저장함). 여기서부터 SageMaker를 평상시대로 사용하면 됩니다!

또한 get_record() API를 통해 다음과 같이 액세스하려는 레코드의 고유 식별자와 그룹 이름을 전달하여 온라인 스토어에 저장된 개별 레코드에 액세스할 수 있습니다.

record = sm_feature_store.get_record(
    FeatureGroupName=my_feature_group_name,
    RecordIdentifierValue={"IntegralValue": 5962}
)

Amazon SageMaker Feature Store는 15KB 페이로드에 대해 10밀리초 미만의 P95 지연 시간을 지원하며 실시간 추론을 위한 빠르고 효율적인 액세스를 위해 설계되었습니다. 이 기능을 사용하면 예측 시간에 엔지니어링된 피처를 쿼리하고 업스트림 애플리케이션에서 전송한 원시 피처를 모델 훈련에 사용된 것과 동일한 피처로 대체할 수 있습니다. 설계에서 피처 불일치가 사라지므로, 버그를 찾는 대신, 최상의 모델을 만드는 데 집중할 수 있습니다.

마지막으로, SageMaker Feature Store는 피처 생성 타임스탬프를 포함하므로, 특정 시점의 피처 상태를 검색할 수 있습니다.

Amazon SageMaker Feature StoreSageMaker Studio에 통합되어 있으므로, 이 서비스에서도 이 두 기능을 볼 수 있습니다.

SageMaker 스크린샷

[피처 그룹 세부 정보 열기(Open feature group detail)]를 오른쪽 클릭하면 자격 증명 피처 그룹이 열립니다.

SageMaker 스크린샷

피처 정의를 볼 수 있습니다.

SageMaker 스크린샷

마지막으로 오프라인 스토어에 대한 쿼리를 생성할 수 있습니다. 이를 Amazon SageMaker Data Wrangler 워크플로에 추가하면 훈련 전에 피처를 로드할 수 있습니다.

SageMaker 스크린샷

Amazon SageMaker Feature Store를 시작하는 방법
보다시피, SageMaker Feature Store를 사용하면 훈련 및 예측 워크플로에 필요한 피처를 쉽게 저장, 검색 및 공유할 수 있습니다.

SageMaker Feature Store는 SageMaker를 지원하는 모든 리전에서 사용할 수 있습니다. 요금은 피처 읽기 및 쓰기와 저장된 총 데이터 양을 기준으로 청구합니다.

다음은 지금 바로 시작하는 데 도움이 되는 샘플 노트북입니다. 사용해보시고 의견을 알려주세요. 언제든지 AWS 지원 담당자나 SageMaker에 대한 AWS 포럼을 통해 피드백을 보내 주시기 바랍니다.

– Julien