티스토리 뷰

반응형

intro

그래서 내가 하고 싶은 말은.. 피처스토어가 뭔지, 왜 필요한지, 그리고 이것을 주로 파는종류들을 이야기하려합니다.

코드 1줄도 없이 왜 필요한지가 주 논점이기때문에, 다소 글과 그림으로 이뤄진 글이 될 것같아요

그래서 피처스토어란?

한 마디로, 피처들을 위한 중앙저장소입니다.

피처스토어는 미가공 데이터를 피처값으로 변환하고, 저장하고, 모델학습과 온라인 예측을 위해 제공됩니다.

이 단계를 자동화해, 피처 스토어는 데이터사이언티스트가 피처를 몇 개월단위가 아니라, 몇 시간 단위내로 구축하고, 배포할 수 있게 하는 것이 목표라고 할 수 있습니다.

이것을 이해하기 위해서는 머신러닝 사이클에 대해 이해가 필요한데요, 머신러닝을 위해서는 우리는 흔히, 데이터를 수집하고 → 전처리, 피처를 생산한 다음 → 여러 가지 방식으로 데이터를 분석하고→ 그 중 최적의 모델을 선택합니다. → 그리고, 평가 및 서비스에 적용 합니다.

이 중에, “데이터를 수집하고 → 전처리, 피처를 생산한 다음” 이 과정을 줄여주겠다! 이 이야기에요.

사실 뭔말일까? 라는 생각이 백 번 들 수 있습니다.

예를 들어볼게요,,


 

나는야 병아리 데이터 사이언티스트! 파이토치를 대학교에서 배우고, 이번에 광고를 추천을 전공하는 대학원에 들어갔다! 
막상 대학원이 걱정됐지만, 들어가보니 첫 임무는 유저에게 적합한 광고를 추천해라! 라는 임무를 받았다!

어떡하지  ㅠㅠ

라는 생각이 들기도 잠시, 나에겐 방대한 광고리스트, 유저리스트, 유저에 해당하는 방문 히스토리 리스트 를 받았다.

“아니 이 로그들은 뭐고 난 여기 어디 나는 누구,,..” 라는 생각을 생각을 하면서 눈물로, 유저와 히스토리를 매칭시켜서 , 유저들이 2번 방문한 히스토리를 기준으로, “비슷한 방문자 히스토리 가진 같은 연령대 친구들에게 유사한 콘텐츠를 서로 보여준다는 로직”을 짠다고 생각해보자.

그럼 이 불쌍한 병아리 대학원생이 해야하는 일은 정해진다.

  1. 유저들의 히스토리를 2번 방문한것들로만 필터링 한다.
  2. 연령대를 유저 정보에 찾아서, 히스토리에 조인시켜준다.
  3. 쿵 짝 쿵 짝!

그래서 병아리 대학원생은 열심히 밤새서 1,2 번을 일주일동안 하고, 3번에 들어가려고 한다. 이 때, 천사같다고 생각했던 선배가 들어와

“아이코 내가 피처스토어 준다는걸 안알려줬네"

라고 하면서 갑자기 데이터 카탈로그를 좍 보여주는 것이다.

무슨 족보가 이렇게 휘황찬란해,, 라고 하면서도, 여태까지 연구실에서 연구하면서 생성된, 성별+연령별 뿐만 아니라, 생각하지도 못했던, 방문한 사이트에서 추출한 키워드 뭉치, 40대 아저씨들에 대한 골프사랑 분석(?) 이런 카탈로그를 받는다면 무슨 생각을 하겠는가?

우선, 해야할 일을 절반으로 줄일 수 있고, 인사이트 또한 얻을 수 있으니, 또 이득이다.

뿐만 아니라, 모델링 코드를 이관하는 데이터 엔지니어 입장에서도

외계어가 알고보니 다 똑같은 피처 추출이었어?!!? 이거 보다는 순수하게, 같은 로직들의 중복을 피함으로써, 데엔과 데이터 사이언티스트의 커뮤니케이션 비용도 줄일 수 있는 최선의 선택인 것이다.

https://ettrends.etri.re.kr/ettrends/189/0905189007/065-074_허성진.pdf


이것의 가치는?

  1. 피처를 구축해 프로덕션으로 내보내는 과정은 머신러닝 프로덕션 준비 과정 중 가장 어렵습니다.
  2. 피처스토어는 데이터 사이언티스트가 피처를 빠르고 쉽게 구축, 배포, 공유할 수 있게 돕습니다.
  3. 피처스토어는 기존의 머신러닝 인프라를 보완해 피처 라이프사이클에 데브옵스와 같은 역량을 갖추게 돕습니다.

무엇보다, 킹왕 족보를 쓴다는 것인데, 수십개의 피처를 생산해내고 있는 팀이라면, 당연히 생각해봐야하는 과제이지 않나 싶습니다.

누가 시작했지?

  • Feature Store는 2017년 Uber가 AI 응용 서비스 개발 편의성과 AI 모델 성능 및 신뢰성 향상을 위해 자체적으로 구축하여 운영하는 Michelangelo AI 개발 플랫폼을 통해 그 개념이 처음으로 소개되었습니다. (해당 우버 블로그 글이 삭제되었는지 안보이네요, 다른 플랫폼글이라도 링크를 걸어놓을게요)
  • Michelangelo 플랫폼에서 데이터 플랫폼이 다양한 데이터 소스로부터 Feature 엔지니어링 과정을 통해 생성하는 모든 Feature 데이터를 Feature 저장소에 저장·등록하고, AI 플랫폼은 AI 모델 개발에 필요한 Feature 데이터를 Feature 저장소로부터 검색하여 해당 Feature 데이터를 AI 모델 개발에 활용하는 방식으로 Feature 저장소를 도입했다고 합니다.
  • https://www.infoq.com/presentations/michelangelo-palette-uber/

종류는?

여러 회사와 여러 기술에서 제공하고 있습니다. 사실, 피처 스토어는 일종의 피처 데이터 레이크입니다. 사실 이것 또한, 데이터로 봐도 무방하다는 뜻입니다.

우선 갖춰야 하는 것은 1) 어디에 적재하는가(hdfs?) 2) 어떤 방식으로 제공하는가 (온라인, 오프라인 api) 3) 어떤식으로 내가 원하는 피처를 찾을 수 있는가?(피처 카탈로그) 등을 제공해야한다는 사실은 변함이 없습니다.

https://www.featurestore.org/에 가보면, < EXISTING FEATURE STORES > 란에 열심히 종류들을 나열해놓고 있습니다.

  1. Hopsworks
    1. https://github.com/logicalclocks/hopsworks
    2. 최초의 오픈 소스 기능 저장소이자 DataFrame API가 있는 최초의 기능 저장입니다. 대부분의 데이터 소스(일괄/스트리밍)가 지원됩니다. SQL, Spark, Python, Flink를 사용하여 기능을 수집합니다. 또한, 쓰기에 대한 스트림 처리를 지원하는 유일한 기능 저장소입니다. 관리형 플랫폼 및 온프레미스로 사용 가능합니다.
  2. Feast
    1. https://docs.feast.dev/
    2. 원래 Go-JEK에서 오픈 소스 기능 저장소로 개발되었습니다.
    3. Tecton에서 최소한의 구성 가능한 기능 저장소로 채택되었습니다.(구성이 단순하다는 뜻.) 다양한 온라인/오프라인 데이터 저장소에 연결할 수 있으며, 모든 플랫폼에서 실행할 수 있습니다.
    4. feature engineering은 Feast 외부에서 수행됩니다.
  3. SageMaker
    1. aws 기반 피처 스토어입니다.
    2. https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store.html
    3. Redshift, 데이터 원본으로 S3 및 Sagemaker 제공과 같은 다른 AWS 서비스와 통합됩니다. Sagemaker의 기능 레지스트리 UI와 Python/SQL API가 있고, 온라인 피처스토어는 Dynamo, 오프라인 parquet/S3을 이용합니다.

참고 문헌

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함