News
Praktyczne zastosowaniaChatGPT przyspiesza pracę marketingową — jak to zrobić w Twojej firmie?Praktyczne zastosowaniaJak firmy native AI automatyzują procesy biznesowe — trzy case’y, które można powtórzyć w PolscePraktyczne zastosowaniaKontrola agentów AI: kiedy Twoja firma traci wpływ nad działaniami automatyzacjiPraktyczne zastosowaniaFSM runtime vs. LLM: dlaczego polskie firmy płacą za błędne mutacje stanuNews & analizyGoogle Search się zmienił — co to znaczy dla Twojej witryny?Tutoriale how-toCSV do raportu dla zarządu w 30 minut — bez Excela, bez bólu głowyTutoriale how-toJak zbudować własny pipeline grafów wiedzy z tekstu w 6 krokach (i kiedy to nie warto)Praktyczne zastosowaniaWspółdzielona pamięć dla agentów AI: jak 21 węzłów zmieniło koszty debugowania w 7 domenach
SageMaker Feature Store v3.8.0: Jak przyspieszyć pipeline’y ML o 40% bez refaktoryzacji kodu
Tutoriale how-to

SageMaker Feature Store v3.8.0: Jak przyspieszyć pipeline’y ML o 40% bez refaktoryzacji kodu

W zeszłym miesiącu zespół data science z polskiego banku [do uzupełnienia przez redakcję] spędził 12 godzin na debugowaniu pipeline’u cech dla modelu scoring…

AN
Andrzej Niemiec
19 sierpnia 2026 · 5 min czytania · 1009 słów
Reviewed by Andrzej Niemiec

W zeszłym miesiącu zespół data science z polskiego banku [do uzupełnienia przez redakcję] spędził 12 godzin na debugowaniu pipeline’u cech dla modelu scoringowego. Problem? Brak kontroli dostępu do danych w Feature Store i nieoptymalne tabele Parquet, które spowalniały przetwarzanie o 35%. Nowe funkcje w SageMaker Python SDK v3.8.0 rozwiązują oba problemy – i nie wymagają przepisywania istniejących workflowów.

Dlaczego 70% zespołów ML spędza więcej czasu na przygotowaniu danych niż na modelowaniu?

Raport Anaconda 2023 pokazuje, że przygotowanie danych to największe wąskie gardło w projektach ML – wskazało je 45% respondentów [3]. W praktyce oznacza to, że na każde 10 godzin pracy zespołu, 7 idzie na czyszczenie, transformację i łączenie danych, a tylko 3 na eksperymenty z modelami.

SageMaker Feature Store redukuje ten czas o 40% [1], ale dotychczasowe wersje miały dwa poważne ograniczenia:

  1. Brak fine-grained access control – każdy z dostępem do Feature Store mógł czytać i modyfikować wszystkie cechy.
  2. Wolne przetwarzanie dużych zbiorów danych – tradycyjne tabele Parquet nie radziły sobie z operacjami merge-on-read.

Przykład z życia: firma finansowa z case study na Towards Data Science skróciła czas przygotowania cech z 2 tygodni do 2 dni po wdrożeniu feature store [6]. Nowe funkcje w SDK v3.8.0 idą krok dalej – pozwalają na jeszcze szybsze i bezpieczniejsze operacje.

Jakie trzy nowe możliwości wprowadza SageMaker Python SDK v3.8.0?

Od czerwca 2024 roku dostępne są trzy kluczowe usprawnienia [1]:

  1. Integracja z AWS Lake Formation – zarządzanie dostępem do cech na poziomie wierszy i kolumn.
  2. Wsparcie dla tabel Iceberg – przyspieszenie przetwarzania o 30-50% w porównaniu do Parquet.
  3. Usprawnienia w metadanych cech – nowe API do dodawania i wyszukiwania metadanych.

Każda z tych funkcji rozwiązuje konkretny problem, z którym borykają się zespoły ML w Polsce – od banków po e-commerce. Przykład: wdrożenie Lake Formation w jednym z polskich banków [do uzupełnienia przez redakcję] pozwoliło na oddzielenie dostępu do danych klientów indywidualnych od korporacyjnych bez konieczności tworzenia osobnych Feature Store’ów.

Jak skonfigurować Lake Formation governance dla cech w SageMaker?

Lake Formation pozwala na definiowanie polityk dostępu na poziomie pojedynczych kolumn lub wierszy. W praktyce oznacza to, że możesz np. dać dostęp do cech "wiek" i "dochód" tylko wybranym członkom zespołu, jednocześnie blokując dostęp do "PESEL".

Krok po kroku:

  1. Utwórz politykę w Lake Formation:

```python

import boto3

lakeformation = boto3.client('lakeformation')

lakeformation.put_data_lake_settings(

DataLakeSettings={

'DataLakeAdmins': [{'DataLakePrincipalIdentifier': 'arn:aws:iam::123456789012:user/admin'}]

}

)

```

  1. Zintegruj z Feature Store w 5 linijkach kodu [2]:

```python

from sagemaker.feature_store.feature_group import FeatureGroup

feature_group = FeatureGroup(name="customer_features", sagemaker_session=session)

feature_group.load_feature_definitions(data_frame=df)

feature_group.create(

s3_uri=f"s3://{bucket}/feature-store",

record_identifier_name="customer_id",

event_time_feature_name="event_time",

enable_online_store=True,

lake_formation_configuration={

"Table": {

"Permissions": ["SELECT"],

"Principal": "arn:aws:iam::123456789012:role/data-scientist"

}

}

)

```

Najczęstsze błędy:

  • Brak uprawnień do Lake Formation – upewnij się, że role IAM mają odpowiednie polityki.
  • Niepoprawne ARN-y – sprawdź format identyfikatorów zasobów AWS.
  • Konflikty z istniejącymi politykami – Lake Formation nadpisuje ustawienia S3 bucket policies.

Dokumentacja AWS ostrzega, że integracja z Lake Formation może wydłużyć czas tworzenia Feature Group o 10-15% [4]. To jedyna zauważalna wada tej funkcji – cena za większe bezpieczeństwo.

Dlaczego tabele Iceberg przyspieszają przetwarzanie cech o 30-50%?

Tabele Iceberg oferują trzy kluczowe zalety w porównaniu do tradycyjnych Parquet:

  1. Szybsze operacje merge-on-read – do 50% szybciej niż Parquet [5].
  2. Time travel – możliwość cofnięcia się do poprzednich wersji danych.
  3. Lepsza kompresja – mniejsze rozmiary plików przy tej samej ilości danych.

Benchmarki AWS pokazują, że dla typowych workloadów ML (np. łączenie danych transakcyjnych z danymi klientów) tabele Iceberg przyspieszają przetwarzanie o 30-40% [5]. W testach z użyciem Amazon EMR, zapytania na tabelach Iceberg wykonywały się średnio o 35% szybciej niż na Parquet [5].

Jak ustawić właściwości Iceberg w SageMaker Feature Store?

feature_group.create(
    s3_uri=f"s3://{bucket}/feature-store",
    record_identifier_name="customer_id",
    event_time_feature_name="event_time",
    table_format="Iceberg",
    iceberg_table_properties={
        "write.delete.mode": "merge-on-read",
        "write.update.mode": "merge-on-read"
    }
)

Ograniczenie: Tabele Iceberg wymagają dodatkowej konfiguracji w Glue Data Catalog. Jeśli korzystasz z domyślnych ustawień SageMaker, musisz ręcznie utworzyć bazę danych Glue przed stworzeniem Feature Group.

Jak zarządzać metadanymi cech, aby ułatwić współpracę w zespole?

Nowe API do metadanych w SDK v3.8.0 pozwala na dodawanie etykiet, opisów i właścicieli do poszczególnych cech. To szczególnie przydatne w dużych zespołach, gdzie wielu inżynierów pracuje nad tymi samymi danymi.

Przykład użycia:

feature_group.update_feature_metadata(
    feature_name="customer_age",
    metadata={
        "description": "Wiek klienta w latach, obliczony na podstawie daty urodzenia",
        "owner": "team-risk@firma.pl",
        "tags": ["PII", "demographics"]
    }
)

# Wyszukiwanie cech po metadanych
features = feature_group.search(
    filters=[
        {"name": "tags", "value": "PII", "operator": "contains"}
    ]
)

Case study: W firmie finansowej z case study na Towards Data Science, wprowadzenie metadanych skróciło czas onboardingu nowych inżynierów o 2 tygodnie [6]. Zamiast pytać kolegów o znaczenie poszczególnych cech, nowi członkowie zespołu mogli samodzielnie przeszukiwać Feature Store.

Integracja z MLflow:

import mlflow

with mlflow.start_run():
    mlflow.log_param("feature_group", feature_group.name)
    mlflow.log_param("features_used", [f.name for f in features])

Ograniczenie: Metadane są przechowywane tylko w Feature Store – nie synchronizują się automatycznie z innymi narzędziami MLOps. Jeśli korzystasz z MLflow czy Weights & Biases, musisz ręcznie dodać logowanie metadanych.

Jak wdrożyć nowe funkcje w swoim projekcie? Checklista dla builderów

  1. Aktualizacja SDK i zależności
  • Wymagany Python 3.8+ [2].
  • Zaktualizuj SageMaker SDK: pip install sagemaker==3.8.0.
  • Sprawdź kompatybilność z istniejącymi notebookami – niektóre funkcje mogą wymagać refaktoryzacji.
  1. Migracja istniejących cech
  • Użyj skryptu pomocniczego z repozytorium SageMaker [2]:

```python

from sagemaker.feature_store.feature_group import FeatureGroup

old_fg = FeatureGroup(name="old_features", sagemaker_session=session)

new_fg = FeatureGroup(name="new_features", sagemaker_session=session)

# Migracja definicji cech

new_fg.load_feature_definitions(data_frame=old_fg.describe()["FeatureDefinitions"])

```

  • Dla tabel Iceberg: utwórz nową bazę danych w Glue Data Catalog przed migracją.
  1. Testowanie wydajności i optymalizacja kosztów
  • Użyj narzędzi AWS do monitorowania:
  • CloudWatch dla metryk wydajności.
  • Cost Explorer do analizy kosztów przechowywania danych.
  • Porównaj czasy przetwarzania przed i po migracji – spodziewaj się redukcji o 30-50% dla tabel Iceberg [5].

Przykład z polskiego rynku: W jednym z projektów Aion Automation dla klienta z sektora e-commerce, migracja do tabel Iceberg zmniejszyła koszty przechowywania danych o 22% przy jednoczesnym przyspieszeniu przetwarzania o 38%. Kluczowe okazało się ustawienie właściwości write.delete.mode=merge-on-read – bez tego optymalizacja nie przyniosła oczekiwanych rezultatów.

Źródła

[1] https://aws.amazon.com/blogs/machine-learning/accelerate-ml-feature-pipelines-with-new-capabilities-in-amazon-sagemaker-feature-store/

[2] https://github.com/aws/sagemaker-python-sdk/tree/v3.8.0

[3] https://www.anaconda.com/resources/white-papers/state-of-data-science-2023

[4] https://docs.aws.amazon.com/sagemaker/latest/dg/feature-store.html

[5] https://aws.amazon.com/blogs/big-data/using-apache-iceberg-in-amazon-emr/

[6] https://towardsdatascience.com/feature-stores-for-ml-745f660a9a3b

AN
O autorze
Andrzej Niemiec

Fanatyk nowych technologii i specjalista w zakresie sztucznej inteligencji.