Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker

Ponieważ firmy i liderzy IT chcą przyspieszyć wdrażanie uczenia maszynowego (ML), rośnie potrzeba zrozumienia alokacji wydatków i kosztów w środowisku ML, aby spełnić wymagania przedsiębiorstwa. Bez odpowiedniego zarządzania kosztami i zarządzania kosztami Twoje wydatki na ML mogą prowadzić do niespodzianek na Twoim miesięcznym rachunku AWS. Amazon Sage Maker to w pełni zarządzana platforma ML w chmurze, która wyposaża naszych klientów korporacyjnych w narzędzia i zasoby do określania środków alokacji kosztów oraz poprawy wglądu w szczegółowe koszty i wykorzystanie przez zespoły, jednostki biznesowe, produkty i nie tylko.

W tym poście dzielimy się wskazówkami i najlepszymi praktykami dotyczącymi alokacji kosztów dla Twojego środowiska i obciążeń SageMaker. W prawie wszystkich usługach AWS, w tym SageMaker, stosowanie tagów do zasobów jest standardowym sposobem śledzenia kosztów. Te tagi mogą pomóc w śledzeniu, raportowaniu i monitorowaniu wydatków na ML za pomocą gotowych rozwiązań, takich jak Eksplorator kosztów AWS i Budżety AWS, a także niestandardowe rozwiązania zbudowane na danych z Raporty kosztów i użytkowania AWS (CUR).

Tagowanie alokacji kosztów

Alokacja kosztów w AWS to trzyetapowy proces:

  1. Dołączać Tagi alokacji kosztów do Twoich zasobów.
  2. Aktywuj swoje tagi w Tagi alokacji kosztów sekcji konsoli rozliczeń AWS.
  3. Użyj tagów do śledzenia i filtrowania raportów alokacji kosztów.

Po utworzeniu i dołączeniu tagów do zasobów pojawiają się one w konsoli rozliczeń AWS Tagi alokacji kosztów sekcja pod Zdefiniowane przez użytkownika znaczniki alokacji kosztów. Utworzenie tagów może potrwać do 24 godzin. Następnie musisz aktywować te tagi, aby AWS zaczął śledzić je dla swoich zasobów. Zazwyczaj po aktywacji tagu pojawienie się tagu w Cost Explorer zajmuje około 24-48 godzin. Najłatwiejszym sposobem sprawdzenia, czy Twoje tagi działają, jest wyszukanie nowego tagu w filtrze tagów w Cost Explorer. Jeśli tak, możesz użyć tagów do raportowania alokacji kosztów. Następnie możesz wybrać grupowanie wyników według kluczy tagów lub filtrowanie według wartości tagów, jak pokazano na poniższym zrzucie ekranu.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Jedna rzecz do zapamiętania: jeśli używasz Organizacje AWS i mają połączone konta AWS, tagi można aktywować tylko na głównym koncie płatnika. Opcjonalnie możesz również aktywować CUR dla kont AWS, które umożliwiają raporty alokacji kosztów w postaci pliku CSV z Twoim użyciem i kosztami pogrupowanymi według aktywnych tagów. Zapewnia to bardziej szczegółowe śledzenie kosztów i ułatwia konfigurowanie własnych niestandardowych rozwiązań raportowania.

Tagowanie w SageMakerze

Na wysokim poziomie tagowanie zasobów SageMaker można podzielić na dwa segmenty:

  • Oznaczanie środowiska notatnika SageMaker, albo Studio Amazon SageMaker domeny i użytkownicy domeny lub instancje notatek SageMaker
  • Oznaczanie zadań zarządzanych przez SageMaker (etykietowanie, przetwarzanie, szkolenie, dostrajanie hiperparametrów, transformacja wsadowa itp.) oraz zasobów (takich jak modele, zespoły robocze, konfiguracje punktów końcowych i punkty końcowe)

Omówimy je bardziej szczegółowo w tym poście i przedstawimy kilka rozwiązań dotyczących stosowania kontroli zarządzania, aby zapewnić dobrą higienę tagowania.

Tagowanie domen i użytkowników SageMaker Studio

Studio to oparte na sieci Web zintegrowane środowisko programistyczne (IDE) dla ML, które umożliwia tworzenie, trenowanie, debugowanie, wdrażanie i monitorowanie modeli ML. Notatniki Studio można uruchamiać szybko i dynamicznie wybierać lub wyłączać podstawowe zasoby obliczeniowe bez przerywania pracy.

Aby automatycznie oznaczać te dynamiczne zasoby, musisz przypisać tagi do domeny SageMaker i użytkowników domeny, którzy mają zapewniony dostęp do tych zasobów. Możesz określić te tagi w parametrze tags w tworzenie domeny or utwórz-profil-użytkownika podczas tworzenia profilu lub domeny, lub możesz dodać je później, używając Dodaj tagi API. Studio automatycznie kopiuje i przypisuje te tagi do notatników Studio utworzonych w domenie lub przez określonych użytkowników. Możesz także dodawać tagi do domen SageMaker, edytując ustawienia domeny w Panelu sterowania Studio.

Poniżej znajduje się przykład przypisywania tagów do profilu podczas tworzenia.

aws sagemaker create-user-profile --domain-id  --user-profile-name data-scientist-full --tags Key=studiouserid,Value= --user-settings ExecutionRole=arn:aws:iam:::role/SageMakerStudioExecutionRole_datascientist-full

Aby otagować istniejące domeny i użytkowników, użyj add-tags API. Tagi są następnie stosowane do wszystkich nowych notatników. Aby zastosować te tagi do istniejących notatników, musisz ponownie uruchomić aplikację Studio (Kernel Gateway i Jupyter Server) należącą do tego profilu użytkownika. Nie spowoduje to utraty danych z notebooka. Odwołaj się do tego Wyłączanie i aktualizowanie aplikacji SageMaker Studio i Studio aby dowiedzieć się, jak usuwać i ponownie uruchamiać aplikacje Studio.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Oznaczanie instancji notatników SageMaker

W przypadku instancji notatnika SageMaker tagowanie jest stosowane do samej instancji. Tagi są przypisane do wszystkich zasobów działających w tej samej instancji. Tagi można określić programowo za pomocą parametru tags w tworzenie-instancji-notebooka API lub dodaj je za pomocą konsoli SageMaker podczas tworzenia instancji. Możesz także dodawać lub aktualizować tagi w dowolnym momencie, używając Dodaj tagi API lub przez konsolę SageMaker.

Należy zauważyć, że nie obejmuje to zadań i zasobów zarządzanych przez program SageMaker, takich jak zadania szkolenia i przetwarzania, ponieważ znajdują się one w środowisku usługi, a nie w instancji. W następnej sekcji omówimy bardziej szczegółowo, jak zastosować tagowanie do tych zasobów.

Oznaczanie zadań i zasobów zarządzanych przez SageMaker

W przypadku zadań i zasobów zarządzanych przez SageMaker tagowanie musi być stosowane do tags atrybut jako część każdego żądania API. jakiś SKLearnProcessor przykład jest zilustrowany w poniższym kodzie. Więcej przykładów przypisywania tagów do innych zadań i zasobów zarządzanych przez SageMaker można znaleźć na stronie GitHub repo.

from sagemaker import get_execution_role
from sagemaker.sklearn.processing import SKLearnProcessor

processing_tags = [{' Key':"cost-center','Value':'TF2WorkflowProcessing'}]
sklearn_processorl = SKLearnProcessor(framework_version='0.23-1' ,
									 role=get_execution_role(),
									 instance_type='ml.m5.xlarge',
									 instance_count=2,
									 tags=processing_tags)

Oznaczanie potoków SageMaker

W przypadku potoków SageMaker można oznaczyć cały potok jako całość zamiast każdego pojedynczego kroku. Potok SageMaker automatycznie propaguje tagi do każdego kroku potoku. W razie potrzeby nadal masz możliwość dodania dodatkowych, oddzielnych tagów do poszczególnych kroków. W interfejsie użytkownika Studio tagi potoku pojawiają się w sekcji metadanych.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Aby zastosować tagi do potoku, użyj pakietu SageMaker Python SDK:

pipeline_tags = [ {'Key': 'pipeline-type', 'Value': 'TF2WorkflowPipeline'}]
pipeline.upsert(role_arn=role, tags=pipeline_tags)
execution = pipeline.start()

Wymuszaj tagowanie za pomocą zasad uprawnień

Chociaż tagowanie jest skutecznym mechanizmem wdrażania strategii zarządzania chmurą i zarządzania, wymuszanie właściwego zachowania tagowania może być trudne, jeśli pozostawisz to użytkownikom końcowym. Jak zapobiec tworzeniu zasobów ML, jeśli brakuje określonego tagu, jak zapewnić stosowanie właściwych tagów i jak uniemożliwić użytkownikom usuwanie istniejących tagów?

Możesz to osiągnąć za pomocą AWS Zarządzanie tożsamością i dostępem (IAM) zasady. Poniższy kod jest przykładem polityki, która uniemożliwia działania SageMaker, takie jak CreateDomain or CreateNotebookInstance jeśli żądanie nie zawiera klucza środowiska i jednej z wartości listy. The ForAllValues modyfikator z aws:TagKeys klawisz stanu wskazuje, że tylko klawisz environment jest dozwolone w żądaniu. Uniemożliwia to użytkownikom dołączanie innych kluczy, takich jak przypadkowe użycie Environment zamiast environment.

"sagemaker:CreateTrainingJob"
      ],
      "{
      "Sid": "SageMakerEnforceEnvtOnCreate",
      "Action": [
        "sagemaker:CreateDomain",
        "sagemaker:CreateEndpoint",
        "sagemaker:CreateNotebookInstance",
        Effect": "Allow",
      "Resource": "*",
  "Condition": {
            "StringEquals": {
                "aws:RequestTag/environment": [
                    "dev","staging","production"
                ]
            },
            "ForAllValues:StringEquals": {"aws:TagKeys": "environment"}
        }
      }

Zasady dotyczące tagów i zasady kontroli usług (SCP) może być również dobrym sposobem na standaryzację tworzenia i etykietowania zasobów ML. Aby uzyskać więcej informacji o tym, jak wdrożyć strategię tagowania, która wymusza i weryfikuje tagowanie na poziomie organizacji, zobacz Seria blogów alokacji kosztów nr 3: Egzekwowanie i weryfikowanie tagów zasobów AWS.

Raportowanie alokacji kosztów

Możesz wyświetlić tagi, filtrując widoki w Cost Explorer, wyświetlając a miesięczny raport alokacji kosztówlub sprawdzając CUR.

Wizualizacja tagów w Cost Explorer

Cost Explorer to narzędzie, które umożliwia przeglądanie i analizowanie kosztów i wykorzystania. Możesz zbadać swoje wykorzystanie i koszty, korzystając z głównego wykresu: raportów kosztów i wykorzystania w Eksploratorze kosztów. Aby obejrzeć krótki film na temat korzystania z narzędzia Cost Explorer, sprawdź Jak mogę użyć narzędzia Cost Explorer do analizy moich wydatków i wykorzystania?

Dzięki Cost Explorer możesz filtrować sposób wyświetlania kosztów AWS według tagów. Grupuj według pozwala nam odfiltrować wyniki według kluczy tagów, takich jak Environment, Deploymentlub Cost Center. Filtr tagów pomaga nam wybrać pożądaną wartość niezależnie od klucza. Przykłady zawierają Production i Staging. Pamiętaj, że musisz uruchomić zasoby po dodaniu i aktywowaniu tagów; w przeciwnym razie Cost Explorer nie będzie miał żadnych danych użycia, a wartość tagu nie będzie wyświetlana jako filtr lub opcja grupowania według.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Poniższy zrzut ekranu jest przykładem filtrowania według wszystkich wartości BusinessUnit etykietka.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Badanie tagów w CUR

Raport Kosztów i Użytkowania zawiera najpełniejszy dostępny zestaw danych dotyczących kosztów i użytkowania. Raport zawiera pozycje dla każdej unikalnej kombinacji produktu AWS, typu użycia i operacji, z których korzysta Twoje konto AWS. Możesz dostosować CUR, aby agregować informacje według godziny lub dnia. Miesięczny raport alokacji kosztów to jeden ze sposobów na skonfigurowanie raportów alokacji kosztów. Możesz skonfigurować miesięczny raport alokacji kosztów który zawiera listę wykorzystania AWS dla Twojego konta według kategorii produktu i połączonego użytkownika konta. Raport zawiera te same pozycje, co szczegółowy raport rozliczeniowy i dodatkowe kolumny dla kluczy tagów. Możesz go skonfigurować i pobrać raport, wykonując czynności opisane w Miesięczny raport alokacji kosztów.

Poniższy zrzut ekranu pokazuje, jak klucze znaczników zdefiniowane przez użytkownika są wyświetlane w CUR. Klucze tagów zdefiniowane przez użytkownika mają prefiks user, Takie jak user:Department i user:CostCenter. Klucze tagów generowane przez AWS mają prefiks aws.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wizualizuj CUR za pomocą Amazon Athena i Amazon QuickSight

Amazonka Atena to interaktywna usługa zapytań, która ułatwia analizowanie danych w Amazon S3 przy użyciu standardowego SQL. Athena jest bezserwerowa, więc nie ma infrastruktury do zarządzania i płacisz tylko za uruchomione zapytania. Aby zintegrować Athena z CUR, zapoznaj się z Odpytywanie raportów kosztów i użytkowania za pomocą Amazon Athena. Następnie można tworzyć zapytania niestandardowe, aby przeszukiwać dane CUR przy użyciu standardowego SQL. Poniższy zrzut ekranu jest przykładem zapytania filtrującego wszystkie zasoby, które mają wartość TF2WorkflowTraining dla cost-center etykietka.

select * from {$table_name} where resource_tags_user_cost-center= 'TF2WorkflowTraining'

W poniższym przykładzie próbujemy dowiedzieć się, w których zasobach brakuje brakujących wartości w cost-center etykietka.

SELECT
 bill_payer_account_id, line_item_usage_account_id, DATE_FORMAT((line_item_usage_start_date), '%Y-%m-%d') AS day_line_item_usage_start_date, line_item_resource_id, line_item_usage_type, resource_tags_user_cost-center
FROM
{$table_name} 
WHERE
 resource_tags_user_cost-center IS NULL
AND line_item_product_code = 'AmazonSageMaker'

Więcej informacji i przykładowe zapytania można znaleźć w Biblioteka zapytań AWS CUR.

Możesz również wprowadzić dane CUR do Amazon QuickSight, gdzie możesz go dowolnie pokroić i pokroić w kostkę do celów raportowania lub wizualizacji. Aby uzyskać instrukcje dotyczące pozyskiwania danych CUR do QuickSight, zobacz Jak pozyskać i zwizualizować raport kosztów i wykorzystania AWS (CUR) w Amazon QuickSight?.

Monitorowanie budżetu za pomocą tagów

Budżety AWS to doskonały sposób na zapewnienie wczesnego ostrzeżenia, jeśli wydatki nieoczekiwanie wzrosną. Możesz tworzyć niestandardowe budżety, które będą ostrzegać, gdy koszty i wykorzystanie ML przekroczą (lub prognozowane przekroczenie) progów zdefiniowanych przez użytkownika. Dzięki AWS Budgets możesz monitorować łączne miesięczne koszty ML lub filtrować budżety, aby śledzić koszty związane z określonymi wymiarami użytkowania. Na przykład możesz ustawić zakres budżetu, aby uwzględnić koszty zasobów SageMaker oznaczone jako cost-center: ML-Marketing, jak pokazano na poniższym zrzucie ekranu. Aby uzyskać dodatkowe wymiary i szczegółowe instrukcje dotyczące konfigurowania budżetów AWS, zapoznaj się z tutaj.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Z alerty budżetowe, możesz wysyłać powiadomienia, gdy limity budżetu są (lub wkrótce zostaną) przekroczone. Alerty te mogą być również wysyłane do Usługa prostego powiadomienia Amazon (Amazon SNS) temat. jakiś AWS Lambda funkcja, która subskrybuje temat SNS, jest następnie wywoływana i można podjąć wszelkie działania programowalne.

AWS Budgets umożliwia również konfigurację działania budżetowe, czyli czynności, które można wykonać po przekroczeniu progu budżetu (kwoty rzeczywiste lub prognozowane). Ten poziom kontroli pozwala ograniczyć niezamierzone nadmierne wydatki na koncie. Możesz skonfigurować konkretne odpowiedzi na koszt i wykorzystanie na swoim koncie, które będą stosowane automatycznie lub w ramach procesu zatwierdzania przepływu pracy po przekroczeniu docelowego budżetu. To naprawdę potężne rozwiązanie, które zapewnia, że ​​wydatki na ML są zgodne z celami firmy. Możesz wybrać rodzaj działania, które chcesz podjąć. Na przykład po przekroczeniu progu budżetu możesz przenieść określonych użytkowników uprawnień z uprawnień administratora na uprawnienia tylko do odczytu. W przypadku klientów korzystających z organizacji możesz zastosować działania do całej jednostki organizacyjnej, przenosząc ją z trybu administratora do trybu tylko do odczytu. Aby uzyskać więcej informacji na temat zarządzania kosztami za pomocą działań budżetowych, zobacz Jak zarządzać przekroczeniami kosztów w środowisku wielokontowym AWS – część 1.

Możesz także skonfigurować raport, aby monitorować wydajność istniejących budżetów w rytmie dziennym, tygodniowym lub miesięcznym i dostarczać go na maksymalnie 50 adresów e-mail. Z Raporty AWS Budżety, możesz połączyć wszystkie budżety związane z programem SageMaker w jeden raport. Ta funkcja umożliwia śledzenie śladu SageMaker z jednego miejsca, jak pokazano na poniższym zrzucie ekranu. Możesz zdecydować się na otrzymywanie tych raportów w rytmie dziennym, tygodniowym lub miesięcznym (wybrałem Co tydzień dla tego przykładu) i wybierz dzień tygodnia, w którym chcesz je otrzymywać.

Ta funkcja jest przydatna, aby na bieżąco informować interesariuszy o kosztach i wykorzystaniu programu SageMaker, a także pomagać im zobaczyć, kiedy wydatki nie są zgodne z oczekiwaniami.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Po skonfigurowaniu tej konfiguracji powinieneś otrzymać wiadomość e-mail podobną do poniższej.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.

Wnioski

W tym poście pokazaliśmy, jak skonfigurować tagowanie alokacji kosztów w programie SageMaker, a także udostępniliśmy wskazówki dotyczące najlepszych praktyk tagowania dla środowiska i obciążeń SageMaker. Następnie omówiliśmy różne opcje raportowania, takie jak Eksplorator kosztów i CUR, aby pomóc Ci poprawić wgląd w wydatki na ML. Na koniec zademonstrowaliśmy Budżety AWS i raport podsumowujący budżet, aby pomóc Ci monitorować wydatki na ML Twojej organizacji.

Aby uzyskać więcej informacji o stosowaniu i aktywowaniu tagów alokacji kosztów, zobacz Zdefiniowane przez użytkownika znaczniki alokacji kosztów.


O autorach

Seana MorganaSeana Morgana jest architektem rozwiązań AI/ML w AWS. Ma doświadczenie w dziedzinie półprzewodników i badań akademickich i wykorzystuje swoje doświadczenie, aby pomóc klientom osiągnąć ich cele w AWS. W wolnym czasie Sean jest aktywnym współtwórcą i opiekunem oprogramowania typu open source, a także jest liderem specjalnej grupy zainteresowań dodatków TensorFlow.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Brent Rabowski koncentruje się na analizie danych w AWS i wykorzystuje swoją wiedzę, aby pomagać klientom AWS we własnych projektach związanych z analizą danych.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Nilesz Szetty pracuje jako Senior Technical Account Manager w AWS, gdzie pomaga klientom wsparcia korporacyjnego usprawnić ich operacje w chmurze na AWS. Pasjonuje się uczeniem maszynowym i ma doświadczenie w pracy jako konsultant, architekt i programista. Poza pracą lubi słuchać muzyki i oglądać sport.

Skonfiguruj alokację kosztów na poziomie przedsiębiorstwa dla środowisk ML i obciążeń roboczych za pomocą tagowania zasobów w Amazon SageMaker PlatoBlockchain Data Intelligence. Wyszukiwanie pionowe. AI.Jamesa Wu jest starszym architektem rozwiązań AI/ML w AWS. pomaganie klientom w projektowaniu i budowaniu rozwiązań AI/ML. Praca Jamesa obejmuje szeroki zakres przypadków użycia ML, ze szczególnym uwzględnieniem wizji komputerowej, głębokiego uczenia i skalowania ML w całym przedsiębiorstwie. Przed dołączeniem do AWS James był architektem, programistą i liderem technologicznym przez ponad 10 lat, w tym 6 lat w inżynierii i 4 lata w branży marketingowej i reklamowej.

Znak czasu:

Więcej z Uczenie maszynowe AWS