이 자습서에서는 단계별 Feast for Redis 빠른 시작 을 제공합니다. 머신 러닝을 위한 온라인 기능 저장소로 Feast with Redis를 사용하는 엔드 투 엔드 예제를 안내합니다. Feast Quickstart 튜토리얼을 기반으로 하지만 기본 온라인 스토어 대신 Redis 온라인 스토어를 사용하여 대규모 실시간 예측을 제공합니다. Feast 또는 Redis에 익숙하지 않은 경우 Redis를 사용하여 Feast를 시작하는 가장 빠른 방법은 이 자습서를 사용하는 것입니다. 자세한 소개는 이 기능 저장소 및 Feast using Redis 블로그 기사를 참조하세요. Redis 및 Feast에 대한 자세한 정보와 추가 리소스는 이 튜토리얼의 끝 부분에서 확인할 수 있습니다.
이 자습서에서는 다음을 수행합니다.
- Parquet 파일 오프라인 스토어 및 Redis 온라인 스토어를 사용하여 로컬 기능 스토어를 배포합니다.
- Parquet 파일의 데모 시계열 기능을 사용하여 교육 데이터 세트를 구축합니다.
- 오프라인 스토어에서 Redis 온라인 스토어로 기능 값을 구체화(로드)합니다.
- 추론을 위해 Redis 온라인 스토어의 최신 기능을 읽어보세요.
아래 안내된 단계에 따라 Google Colab 또는 로컬 호스트에서 튜토리얼을 실행할 수 있습니다.
Feast는 Python 라이브러리 + 선택적 CLI입니다. 이 튜토리얼에서 곧 설명하겠지만 pip를 사용하여 Feast를 설치할 수 있습니다.
Feast with Redis는 이 흐름에서 몇 가지 일반적인 문제를 해결합니다.
이 자습서에서는 기능 저장소를 사용하여 교육 데이터를 생성하고 승차 공유 운전자 만족도 예측 모델에 대한 온라인 모델 추론을 강화합니다. 데모 데이터 시나리오에서:
Redis를 설치하려면 아래 대안 중 하나를 따르세요.
우분투:
도커:
Mac(홈브류):
Redis를 설치하는 다른 방법에 대한 추가 정보는 여기에서 찾을 수 있습니다. 추가 구성 정보는 Redis 빠른 시작 가이드에서 찾을 수 있습니다.
pip를 사용하여 Feast SDK 및 CLI를 설치합니다.
기능 저장소는 기능 저장소 및 개별 기능의 구성을 포함하는 디렉토리입니다.
새 기능 리포지토리를 만드는 가장 쉬운 방법은 축제 초기화 명령을 사용하는 것입니다. 이것은 초기 데모 데이터로 스캐폴딩을 생성합니다.
출력:
결과 데모 리포지토리 자체를 살펴보겠습니다. 다음과 같이 나뉩니다.
Redis를 온라인 스토어로 구성하려면 feature_store.yaml에서 online_store의 type 및 connection_string 값을 설정해야 합니다. 다음과 같이:
공급자는 이 데모에서 원시 데이터가 있는 위치(제공을 위한 교육 데이터 및 기능 값 생성용)를 로컬로 정의합니다. online_store 온라인 상점 데이터베이스(서빙용)에서 기능 값을 구체화(로드)할 위치를 정의합니다.
위의 구성은 대신 기본 온라인 스토어를 사용하는 튜토리얼에 제공된 기본 YAML 파일과 다릅니다.
따라서
Feast with Redis 튜토리얼 개요
자습서 단계:
1단계:Redis 설치 및 백그라운드에서 Redis 서버 실행
$ sudo snap install redis
$ docker run --name redis --rm -p 6379:6379 -d redis
$ brew install redis
2단계:Redis로 Feast 설치
$ pip install 'feast[redis]'
3단계:기능 저장소 생성 및 Redis를 온라인 스토어로 구성
3a단계:기능 저장소 생성
$ feast init feature_repo
$ cd feature_repo
Creating a new Feast repository in /Users/nl/dev_fs/feast/feature_repo
example.py
데모 기능 정의 포함3b단계:YAML 구성 파일에서 Redis를 온라인 스토어로 구성
project: my_project
registry: data/registry.db
provider: local
online_store:
type: redis
connection_string: localhost:6379project: my_project
registry: data/registry.db
provider: local
online_store:
path: data/online_store.dbonline_store
에 대해 이 두 줄을 추가하면 (type: redis, connection_string: localhost:6379
) 위의 YAML 파일에서 Feast는 온라인 스토어인 Redis에서 읽고 쓸 수 있습니다. Redis 온라인 스토어는 Feast 핵심 코드의 일부이므로 Feast는 즉시 Redis를 사용하는 방법을 알고 있습니다.
3c단계:example.py에서 데모 기능 정의 검사
example.py에서 데모 기능 정의를 살펴보겠습니다. (터미널에서 보려면
cat를 실행할 수 있습니다.
example.
py).
예제.py
<메타 charset="utf-8">
3d단계:원시 데이터 검사
마지막으로 원시 데이터를 살펴보겠습니다. 이 데모에 있는 원시 데이터는 로컬 쪽모이 세공 파일에 저장됩니다. 데이터 세트는 차량 공유 앱에서 운전자의 시간별 통계를 캡처합니다.
4단계:기능 정의 등록 및 기능 저장소 배포
이제
feast apply를 실행합니다. example.py에 정의된 기능 보기 및 엔터티를 등록하려면 . apply 명령은 기능 보기/엔티티 정의에 대해 현재 디렉터리의 Python 파일을 검색하고, 개체를 등록하고, 인프라를 배포합니다. 이 예에서는 example.py를 읽습니다. (위에 표시됨) Redis 온라인 스토어를 설정합니다.
$ feast apply
출력:
Registered entity driver_id |
5단계:교육 데이터 생성
모델을 훈련하려면 기능과 레이블이 필요합니다. 종종 이 레이블 데이터는 별도로 저장됩니다(예:사용자 설문조사 결과를 저장하는 하나의 테이블과 기능 값이 있는 다른 테이블 세트가 있음).
사용자는 타임스탬프가 있는 해당 레이블 테이블을 쿼리하고 교육 데이터 생성을 위한 엔터티 데이터 프레임으로 Feast에 전달할 수 있습니다. 많은 경우 Feast는 관련 테이블을 지능적으로 결합하여 관련 기능 벡터를 생성합니다.
- 다양한 타임스탬프에서 동일한 드라이버에 대한 기능이 모델에서 사용되기를 원하기 때문에 타임스탬프를 포함합니다.
파이썬
(아래 코드를 gen_train_data.py 파일에 복사하세요. 그런 다음 실행):
출력:
----- Feature schema ----- |
6단계:Redis 온라인 스토어에 기능 로드
이제 기능 데이터를 Redis 온라인 스토어에 로드하거나 구체화하여 온라인 예측을 위해 모델에 최신 기능을 제공할 수 있습니다.
materialize명령을 사용하면 사용자가 특정 과거 시간 범위에 대한 기능을 온라인 상점에 구체화할 수 있습니다. 제공된 시간 범위의 모든 기능 보기에 대한 일괄 소스를 쿼리하고 최신 기능 값을 구성된 온라인 상점에 로드합니다.
materialize–
incremental명령은 마지막 materialize 호출 이후 오프라인 저장소에 도착한 새 데이터만 수집합니다.
$ CURRENT_TIME=$(date -u +"%Y-%m-%dT%H:%M:%S")
$ feast materialize-incremental $CURRENT_TIME
출력:
Materializing 1 feature views to 2021-08-23 16:25:46+00:00 into the redis online store. |
7단계:추론을 위한 특징 벡터 가져오기
추론할 때
get_online_features()를 사용하여 Redis 온라인 기능 저장소에서 다른 드라이버에 대한 최신 기능 값(그렇지 않으면 배치 소스에만 존재할 수 있음)을 빠르게 읽어야 합니다. . 그런 다음 이러한 특징 벡터를 모델에 제공할 수 있습니다.
파이썬
(아래 코드를 get_feature_vectors.py 파일에 복사 그런 다음 실행):
출력
{ |
축하합니다! 튜토리얼의 끝에 도달했습니다. 백그라운드에서 실행 중인 Redis 서버를 종료하려면
redis-cli shutdown을 사용할 수 있습니다. 명령.
자습서 요약:
이 자습서에서는 Parquet 파일 오프라인 저장소 및 Redis 온라인 저장소가 있는 로컬 기능 저장소를 배포했습니다. 그런 다음 Parquet 파일의 시계열 기능을 사용하여 훈련 데이터 세트를 구축했습니다. 그런 다음 오프라인 스토어에서 Redis 온라인 스토어로 특성 값을 구체화했습니다. 마지막으로 추론을 위해 Redis 온라인 스토어에서 최신 기능을 읽습니다. Redis를 온라인 스토어로 사용하면 실시간 ML 사용 사례에 대한 최신 기능을 매우 빠르게 읽을 수 있으며 규모에 따라 지연 시간이 짧고 처리량이 높습니다.
다음은 무엇입니까?
- Feast 데이터 모델을 이해하려면 Feast 개념 페이지를 읽고 Feast 아키텍처 페이지를 읽으십시오.
- Feast with Redis에 대한 전체 구성 가이드와 Redis에 기능 값을 저장하는 데 사용되는 데이터 모델을 읽어보세요.
- 사례 연구 – 동료로부터 배우기:기업이 온라인 스토어(Wix, Swiggy, Comcast, Zomato, AT&T, DoorDash, iFood)로 Redis와 함께 기능 스토어를 사용하는 방법과 특히 Redis와 함께 Feast를 사용하는 방법에 대해 알아보세요. 그들의 온라인 상점(Gojek, Udaan, Robinhood).
- Feast 및 Redis가 포함된 Azure Managed Feature Store에 대해 읽고 Feast on Azure 자습서 및 기타 Feast 자습서 시작하기
- Feast 및 Redis의 일반 제품 소개 페이지에서 각각 Feast 또는 Redis에 대한 자세한 정보를 찾을 수도 있습니다.
Slack의 다른 Feast 사용자 및 기여자와 함께 커뮤니티의 일원이 되십시오!