Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pengantar buku catatan contoh Toko Fitur
penting
IAMKebijakan khusus yang memungkinkan Amazon SageMaker Studio atau Amazon SageMaker Studio Classic membuat SageMaker sumber daya Amazon juga harus memberikan izin untuk menambahkan tag ke sumber daya tersebut. Izin untuk menambahkan tag ke sumber daya diperlukan karena Studio dan Studio Classic secara otomatis menandai sumber daya apa pun yang mereka buat. Jika IAM kebijakan mengizinkan Studio dan Studio Classic membuat sumber daya tetapi tidak mengizinkan penandaan, kesalahan "AccessDenied" dapat terjadi saat mencoba membuat sumber daya. Untuk informasi selengkapnya, lihat Berikan izin untuk menandai sumber daya SageMaker.
AWS Kebijakan Terkelola untuk Amazon SageMakeryang memberikan izin untuk membuat SageMaker sumber daya sudah menyertakan izin untuk menambahkan tag saat membuat sumber daya tersebut.
Kode contoh pada halaman ini mengacu pada contoh buku catatan Pengantar Toko Fitur
Gunakan yang berikut ini untuk mengkloning aws/ amazon-sagemaker-examples
-
Untuk Studio Klasik
Luncurkan Studio Klasik. Anda dapat membuka Studio Classic jika Studio atau Studio Classic diaktifkan sebagai pengalaman default Anda. Untuk petunjuk tentang cara membuka Studio Classic, lihatLuncurkan Studio Classic Menggunakan SageMaker Konsol Amazon.
Kloning aws/ amazon-sagemaker-examples
GitHub repositori ke Studio Classic dengan mengikuti langkah-langkah di. Mengkloning Repositori Git di Studio Classic SageMaker -
Untuk instans SageMaker notebook Amazon
Luncurkan instance SageMaker notebook dengan mengikuti instruksi diAkses Instans Notebook.
Periksa apakah contoh sudah ada di buku catatan Anda dengan mengikuti instruksi diAkses contoh notebook. Jika tidak, ikuti instruksi diTambahkan repositori Git ke akun Amazon Anda SageMaker.
Sekarang setelah Anda memiliki SageMaker contoh notebook, navigasikan ke amazon-sagemaker-examples/sagemaker-featurestore
direktori dan buka buku catatan contoh Pengantar ke Feature Store
Langkah 1: Siapkan SageMaker sesi Anda
Untuk mulai menggunakan Feature Store, buat SageMaker sesi. Kemudian, siapkan bucket Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) yang ingin Anda gunakan untuk fitur Anda. Bucket Amazon S3 adalah toko offline Anda. Kode berikut menggunakan bucket SageMaker default dan menambahkan awalan kustom ke dalamnya.
catatan
Peran yang Anda gunakan untuk menjalankan buku catatan harus memiliki kebijakan terkelola berikut yang dilampirkan padanya: AmazonS3FullAccess
danAmazonSageMakerFeatureStoreAccess
. Untuk informasi tentang menambahkan kebijakan ke IAM peran Anda, lihatMenambahkan kebijakan ke IAM peran Anda.
# SageMaker Python SDK version 2.x is required import sagemaker import sys
import boto3 import pandas as pd import numpy as np import io from sagemaker.session import Session from sagemaker import get_execution_role prefix = 'sagemaker-featurestore-introduction' role = get_execution_role() sagemaker_session = sagemaker.Session() region = sagemaker_session.boto_region_name s3_bucket_name = sagemaker_session.default_bucket()
Langkah 2: Periksa data Anda
Dalam contoh notebook ini, kami menelan data sintetis dari GitHub repositori
customer_data = pd.read_csv("data/feature_store_introduction_customer.csv") orders_data = pd.read_csv("data/feature_store_introduction_orders.csv") print(customer_data.head()) print(orders_data.head())
Diagram berikut mengilustrasikan langkah-langkah yang dilalui data sebelum Feature Store menelannya. Dalam buku catatan ini, kami mengilustrasikan kasus penggunaan di mana Anda memiliki data dari berbagai sumber dan ingin menyimpannya secara independen di Toko Fitur. Contoh kami mempertimbangkan data dari gudang data (data pelanggan), dan data dari layanan streaming real-time (data pesanan).
Langkah 3: Buat grup fitur
Pertama-tama kita mulai dengan membuat nama grup fitur untuk customer_data dan orders_data. Setelah ini, kami membuat dua grup fitur, satu untuk customer_data
dan satu lagi untukorders_data
:
import time from time import strftime, gmtime customers_feature_group_name = 'customers-feature-group-' + strftime('%d-%H-%M-%S', gmtime()) orders_feature_group_name = 'orders-feature-group-' + strftime('%d-%H-%M-%S', gmtime())
Buat instance FeatureGroup
objek untuk customers_data
dan: orders_data
from sagemaker.feature_store.feature_group import FeatureGroup customers_feature_group = FeatureGroup( name=customers_feature_group_name, sagemaker_session=sagemaker_session ) orders_feature_group = FeatureGroup( name=orders_feature_group_name, sagemaker_session=sagemaker_session )
import time current_time_sec = int(round(time.time())) record_identifier_feature_name = "customer_id"
Tambahkan EventTime
fitur ke bingkai data Anda. Parameter ini diperlukan, dan stempel waktu setiap titik data:
customer_data["EventTime"] = pd.Series([current_time_sec]*len(customer_data), dtype="float64") orders_data["EventTime"] = pd.Series([current_time_sec]*len(orders_data), dtype="float64")
Muat definisi fitur ke grup fitur Anda:
customers_feature_group.load_feature_definitions(data_frame=customer_data) orders_feature_group.load_feature_definitions(data_frame=orders_data)
Panggilan berikut create
untuk membuat dua grup fitur, customers_feature_group
danorders_feature_group
, masing-masing:
customers_feature_group.create( s3_uri=f"s3://{s3_bucket_name}/{prefix}", record_identifier_name=record_identifier_feature_name, event_time_feature_name="EventTime", role_arn=role, enable_online_store=True ) orders_feature_group.create( s3_uri=f"s3://{s3_bucket_name}/{prefix}", record_identifier_name=record_identifier_feature_name, event_time_feature_name="EventTime", role_arn=role, enable_online_store=True )
Untuk mengonfirmasi bahwa grup fitur Anda telah dibuat, kami menampilkannya dengan menggunakan DescribeFeatureGroup
dan ListFeatureGroups
APIs:
customers_feature_group.describe()
orders_feature_group.describe()
sagemaker_session.boto_session.client('sagemaker', region_name=region).list_feature_groups() # We use the boto client to list FeatureGroups
Langkah 4: Menyerap data ke dalam grup fitur
Setelah grup fitur dibuat, kita dapat memasukkan data ke dalamnya. Jika Anda menggunakan SageMaker AWS SDK for Python (Boto3), gunakan ingest
API panggilan. Jika Anda menggunakan SDK untuk Python (Boto3), maka gunakan. PutRecord
API Ini akan memakan waktu kurang dari 1 menit untuk menelan data kedua opsi ini. Contoh ini menggunakan SageMaker SDK untuk Python (Boto3), sehingga menggunakan panggilan: ingest
API
def check_feature_group_status(feature_group): status = feature_group.describe().get("FeatureGroupStatus") while status == "Creating": print("Waiting for Feature Group to be Created") time.sleep(5) status = feature_group.describe().get("FeatureGroupStatus") print(f"FeatureGroup {feature_group.name} successfully created.") check_feature_group_status(customers_feature_group) check_feature_group_status(orders_feature_group)
customers_feature_group.ingest( data_frame=customer_data, max_workers=3, wait=True )
orders_feature_group.ingest( data_frame=orders_data, max_workers=3, wait=True )
Menggunakan id catatan pelanggan arbitrer, 573291 kami gunakan get_record
untuk memeriksa apakah data telah dicerna ke dalam grup fitur.
customer_id = 573291 sample_record = sagemaker_session.boto_session.client('sagemaker-featurestore-runtime', region_name=region).get_record(FeatureGroupName=customers_feature_group_name, RecordIdentifierValueAsString=str(customer_id))
print(sample_record)
Berikut ini menunjukkan bagaimana menggunakan batch_get_record
untuk mendapatkan batch catatan.
all_records = sagemaker_session.boto_session.client( "sagemaker-featurestore-runtime", region_name=region ).batch_get_record( Identifiers=[ { "FeatureGroupName": customers_feature_group_name, "RecordIdentifiersValueAsString": ["573291", "109382", "828400", "124013"], }, { "FeatureGroupName": orders_feature_group_name, "RecordIdentifiersValueAsString": ["573291", "109382", "828400", "124013"], }, ] )
print(all_records)
Langkah 5: Bersihkan
Di sini kita menghapus Grup Fitur yang kita buat.
customers_feature_group.delete() orders_feature_group.delete()
Langkah 6: Langkah selanjutnya
Di buku catatan contoh ini, Anda mempelajari cara memulai dengan Feature Store, membuat grup fitur, dan memasukkan data ke dalamnya.
Untuk contoh lanjutan tentang cara menggunakan Toko Fitur untuk kasus penggunaan deteksi penipuan, lihat Deteksi Penipuan dengan Toko Fitur
Langkah 7: Contoh kode untuk programmer
Di notebook ini kami menggunakan berbagai API panggilan yang berbeda. Kebanyakan dari mereka dapat diakses melalui SageMaker PythonSDK, namun beberapa hanya ada dalam Boto3. Anda dapat memanggil panggilan SageMaker SDK API Python langsung pada objek Feature Store Anda, sedangkan untuk API memanggil panggilan yang ada dalam Boto3, Anda harus terlebih dahulu mengakses klien Boto3 melalui Boto3 dan sesi Anda: misalnya,. SageMaker sagemaker_session.boto_session.client()
Berikut ini adalah daftar API panggilan untuk notebook ini. Panggilan ini ada di dalam SDK for Python dan ada di Boto3, untuk referensi Anda:
SDKuntuk Panggilan Python (Boto3) API
describe() ingest() delete() create() load_feature_definitions()
Panggilan Boto3 API
list_feature_groups() get_record()