Amazon SageMaker モデルレジストリ PlatoBlockchain Data Intelligence を使用して、クロスアカウント MLOps ワークフローを構築します。垂直検索。あい。

Amazon SageMaker モデルレジストリを使用してクロスアカウント MLOps ワークフローを構築する

ソフトウェア開発ワークフローを効果的にスケーリングするには、適切に設計された CI/CD パイプラインが不可欠です。 本番 CI/CD パイプラインを設計する場合、AWS は複数のアカウントを活用してリソースを分離し、セキュリティの脅威を封じ込め、請求を簡素化することを推奨しています。データ サイエンス パイプラインも例外ではありません。 AWS では、MLOps ワークフローを簡素化するために革新を続けています。

この投稿では、新しいクロスアカウント機能のいくつかについて説明します アマゾンセージメーカー これにより、モデル グループの共有と管理、およびモデル バージョンの管理が向上します。 以下のアカウント構造の例について 組織単位のベスト プラクティス 複数のアカウントで SageMaker エンドポイントを使用してモデルをホストするには、以下を参照してください。 MLOps ワークロード オーケストレーター.

ソリューションの概要

次の図は、共有モデル レジストリ アーキテクチャを示しています。

前述のアーキテクチャで注意すべき点は次のとおりです。

次の手順は、図に対応しています。

  1. データ サイエンティストは、データ サイエンス アカウントから共有サービスの SageMaker モデル レジストリにモデルを登録します。 PendingManualApproval 州。 モデル アーティファクトは共有サービス アカウントに作成されます Amazon シンプル ストレージ サービス (Amazon S3)バケット。
  2. 新しいモデル バージョンの登録時に、メトリクスに基づいてモデルを承認する権限を持つ誰かがモデルを承認または却下する必要があります。
  3. モデルが承認されると、デプロイ アカウントの CI/CD パイプラインが デプロイのトリガー QA アカウントで更新されたモデルの詳細を確認し、ステージを QA として更新します。
  4. テスト プロセスに合格したら、CI/CD プロセス内に手動承認ステップを含めるか、CI/CD パイプラインでモデルを本番環境に直接デプロイし、ステージを Prod として更新するかを選択できます。
  5. 本番環境は、承認されたモデルとコードを参照します。 本番環境での A/B テスト. 監査またはモデルの問題が発生した場合は、使用できます Amazon SageMaker ML 系統追跡. データの準備からモデルのデプロイまでの機械学習 (ML) ワークフローのステップに関する情報を作成して保存します。 追跡情報を使用すると、ワークフローの手順を再現し、モデルとデータセットの系統を追跡し、モデルのガバナンスと監査基準を確立できます。

プロセス全体を通して、共有モデル レジストリは古いモデル バージョンを保持します。 これにより、チームは変更をロールバックしたり、ホストしたりすることができます 生産バリアント.

前提条件

次の前提条件を満たしていることを確認してください。

  • プロビジョニングされたマルチアカウント構造 – 手順については、を参照してください。 AWS Organizations を使用した組織単位のベストプラクティス. このブログでは、次のアカウントを利用しています。
    • データ サイエンス アカウント – データ サイエンティストがトレーニング データにアクセスしてモデルを作成するアカウント。
    • 共有サービス アカウント – さまざまなワークロード アカウント間でアクセスされるモデル成果物 (アーキテクチャー図に示されている) を保管するための中央アカウント。
    • 展開アカウント – さまざまなアカウントへの変更の展開を担当するアカウント。
    • ワークロード アカウント – これらは通常、ソフトウェア エンジニアが ML モデルを使用するアプリケーションを構築できる QA および本番環境です。
  • 適切なアクセス許可を持つ展開アカウント – マルチアカウント OU 構造のベスト プラクティスの詳細については、次を参照してください。 展開 OU. このアカウントは、ワークロード アカウントを共有サービス アカウントのモデル レジストリ内の目的のモデルにポイントする役割を果たします。

クロスアカウント ポリシーを定義する

最小特権の原則に従って、まずクロスアカウント リソース ポリシーを共有サービス リソースに追加して、他のアカウントからのアクセスを許可する必要があります。

モデル アーティファクトは共有サービス アカウントの S3 バケットに保存されるため、トレーニング済みのモデルを Amazon S3 にプッシュするには、データ サイエンス アカウントに Amazon S3 の読み取り/書き込みアクセスが必要です。 次のコードはこのポリシーを示していますが、まだ共有サービス アカウントに追加しないでください。

#Data Science account's policy to access Shared Services' S3 bucket
 {
    'Version': '2012-10-17',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': 'arn:aws:iam:::root'
        }, 
        "Action": [ 
            's3:PutObject', 
            's3:PutObjectAcl',
            's3:GetObject', 
            's3:GetObjectVersion'
        ], #read/write
        'Resource': 'arn:aws:s3:::/*'
    }]
}

デプロイ アカウントには、モデル アーティファクトを使用して SageMaker エンドポイントにデプロイできるように、S3 バケットへの読み取りアクセス権のみを付与する必要があります。 また、次のポリシーを共有サービス S3 バケットにアタッチする必要があります。

#Deployment account's policy to access Shared Services' S3 bucket
 {
    'Version': '2012-10-17',
    'Statement': [{
        'Sid': 'AddPerm',
        'Effect': 'Allow',
        'Principal': {
            'AWS': 'arn:aws:iam:::root'
        },
        'Action': [ 
            's3:GetObject', 
            's3:GetObjectVersion'
        ], #read
        'Resource': 'arn:aws:s3:::/*'
    }]
}

両方のポリシーを組み合わせて、次の最終的なポリシーを取得します。 適切なアカウント ID を置き換えた後、共有サービス アカウントでこのポリシーを作成します。

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": "AddPerm",
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam:::root"    
    },
    "Action": [
      "s3:PutObject",
      "s3:PutObjectAcl",
      "s3:GetObject",
      "s3:GetObjectVersion"    ],
    "Resource": "arn:aws:s3:::/*"  
    },
    {
      "Sid": "AddPermDeployment",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::root"      
      },
      "Action": [
        "s3:GetObject",
        "s3:GetObjectVersion"      ], 
      "Resource": "arn:aws:s3:::/*"    
    }
  ]
}

別のアカウントで作成されたモデルをデプロイできるようにするには、ユーザーは、SageMaker アクションにアクセスできるロールを持っている必要があります。 AmazonSageMakerFullAccess 管理ポリシー。 参照する 別のアカウントからモデル バージョンをデプロイする 詳細については。

デプロイするモデル バージョンを含むモデル グループを定義する必要があります。 また、データ サイエンス アカウントにアクセス許可を付与します。 これは、次の手順で実行できます。 以下のようにアカウントを参照します。

  • 共有サービスアカウントID – モデル レジストリがあり、モデルを置きたいアカウント
  • data_science_account_id – トレーニングを行い、実際のモデル アーティファクトを作成するアカウント
  • デプロイメントアカウント ID – このモデルのエンドポイントをホストするアカウント

まず、モデル パッケージ グループが存在することを確認する必要があります。 次の例に示すように Boto3 API を使用するか、 AWSマネジメントコンソール モデル パッケージを作成します。 参照する モデル パッケージ グループの作成 詳細については。 これは、Boto3 がインストールされていることを前提としています。

model_package_group_name = "cross-account-example-model"
sm_client = boto3.Session().client("sagemaker")

create_model_package_group_response = sm_client.create_model_package_group(
    ModelPackageGroupName=model_package_group_name,
    ModelPackageGroupDescription="Cross account model package group",
    Tags=[
          {
              'Key': 'Name',
              'Value': 'cross_account_test'
          },
      ]

)

print('ModelPackageGroup Arn : {}'.format(create_model_package_group_response['ModelPackageGroupArn']))

このモデル パッケージ グループのアクセス許可については、次のコードに似た JSON ドキュメントを作成できます。 実際のアカウント ID とモデル パッケージ グループ名を独自の値に置き換えます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AddPermModelPackageGroupCrossAccount",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::root"      
      },
      "Action": [
        "sagemaker:DescribeModelPackageGroup"      
        ],
      "Resource": "arn:aws:sagemaker:::model-package-group/"    
    },
    {
      "Sid": "AddPermModelPackageVersionCrossAccount",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam:::root"      
      },
      "Action": [
        "sagemaker:DescribeModelPackage",
        "sagemaker:ListModelPackages",
        "sagemaker:UpdateModelPackage",
        "sagemaker:CreateModelPackage",
        "sagemaker:CreateModel"      
      ],
      "Resource": "arn:aws:sagemaker:::model-package//*"    
    }
  ]
}

最後に、モデル パッケージ グループにポリシーを適用します。 コンソールを介して、このポリシーをパッケージ グループに関連付けることはできません。 SDK または AWSコマンドラインインターフェイス (AWS CLI) アクセス。 たとえば、次のコードでは Boto3 を使用しています。

# Convert the policy from JSON dict to string
model_package_group_policy = dict( )
model_package_group_policy = json.dumps(model_package_group_policy)

# Set the new policy
sm_client = boto3.Session().client("sagemaker")
response = sm_client.put_model_package_group_policy(
    ModelPackageGroupName = model_package_group_name,
    ResourcePolicy = model_package_group_policy)

カスタムも必要です AWSキー管理サービス (AWS KMS) キーを使用してモデルを暗号化し、Amazon S3 に保存します。 これは、データ サイエンス アカウントを使用して行う必要があります。 AWS KMS コンソールで、 キーの使用権限を定義する その他の AWS アカウント セクションでは、選択 別の AWS アカウントを追加する. デプロイ アカウントの AWS アカウント番号を入力します。 この KMS キーを SageMaker トレーニングジョブに使用します。 トレーニングジョブに KMS キーを指定しない場合、SageMaker はデフォルトで Amazon S3 サーバー側の暗号化キーになります。 デフォルトの Amazon S3 サーバー側暗号化キーは、別の AWS アカウントと共有したり、使用したりすることはできません。

ポリシーと権限は次のパターンに従います。

  • で指定された Amazon S3 ポリシー shared_services_account データ サイエンス アカウントとデプロイ アカウントにアクセス許可を付与します
  • で指定された KMS キー ポリシー shared_services_account データ サイエンス アカウントとデプロイ アカウントにアクセス許可を付与します

共有サービス アカウントとデプロイ アカウントが、モデルのトレーニングに使用された Docker イメージにアクセスできることを確認する必要があります。 これらのイメージは通常、AWS アカウントでホストされており、まだアクセス権がない場合は、アカウント管理者がアクセス権を取得できます。 この投稿では、モデルのトレーニング後にカスタム Docker イメージを作成しないため、イメージに特定の Amazon ECR ポリシーは必要ありません。

ワークロード アカウント (QA または本番) では、XNUMX つのアカウントを作成する必要があります。 AWS IDおよびアクセス管理 (IAM) ポリシーは次のようになります。 これらは インライン ポリシー、つまり、それらは IAM ID に埋め込まれています。 これにより、これらのアカウントがモデル レジストリにアクセスできるようになります。

最初のインライン ポリシーは、ロールがモデル アーティファクトを含む共有サービス アカウントの Amazon S3 リソースにアクセスすることを許可します。 S3 バケットの名前とモデルを指定します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::/sagemaker//output/model.tar.gz"
        }
    ]
}

XNUMX 番目のインライン ポリシーは、後で作成するロールが共有サービス アカウントで KMS キーを使用できるようにします。 共有サービス アカウントのアカウント ID と KMS キー ID を指定します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowUseOfTheKey",
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1::key/{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"
            ]
        }
    ]
}

最後に、 IAM ロールを作成する SageMaker 用。 この役割には、 AmazonSageMakerFullAccess ポリシーが添付されています。 次に、作成したロールにこれら XNUMX つのインライン ポリシーをアタッチします。 既存の SageMaker 実行ロールを使用している場合は、これら XNUMX つのポリシーをそのロールにアタッチします。 手順については、を参照してください。 ロールの作成とポリシーの添付 (コンソール).

各アカウントのポリシーを定義したので、例を使用して動作を確認しましょう。

SageMaker パイプラインを使用してモデルを構築およびトレーニングする

まず、データ処理、モデルのトレーニング、および評価を実行するために、データ サイエンス アカウントに SageMaker パイプラインを作成します。 StatLib ライブラリから取得したカリフォルニア州の住宅データセットを使用します。 次のコード スニペットでは、カスタムの前処理スクリプトを使用しています preprocess.py 以下を使用して生成できる、特徴スケーリングなどの単純な特徴変換を実行する ノート. このスクリプトはまた、データセットをトレーニング データセットとテスト データセットに分割します。

作成します SKLearnProcessor この前処理スクリプトを実行するオブジェクト。 SageMaker パイプラインで、処理ステップを作成します (ProcessingStep) を使用して処理コードを実行するには SKLearnProcessor. この処理コードは、SageMaker パイプラインが初期化されるときに呼び出されます。 を作成するコード SKLearnProcessor & ProcessingStep 次のコードに示されています。 このセクションのすべてのコードは、データ サイエンス アカウントで実行されることに注意してください。

# Useful SageMaker variables - Create a Pipeline session which will lazy init resources
session = PipelineSession()

framework_version = "0.23-1"

# Create SKlearn processor object,
# The object contains information about what instance type to use, the IAM role to use etc.
# A managed processor comes with a preconfigured container, so only specifying version is required.
sklearn_processor = SKLearnProcessor(
    framework_version=framework_version,
    role=role,
    instance_type=processing_instance_type,
    instance_count=1,
    base_job_name="tf2-california-housing-processing-job",
    sagemaker_session=session
)

# Use the sklearn_processor in a SageMaker pipelines ProcessingStep
step_preprocess_data = ProcessingStep(
    name="Preprocess-California-Housing-Data",
    processor=sklearn_processor,
    inputs=[
        ProcessingInput(source=input_data, destination="/opt/ml/processing/input"),
    ],
    outputs=[
        ProcessingOutput(output_name="train", source="/opt/ml/processing/train"),
        ProcessingOutput(output_name="test", source="/opt/ml/processing/test"),
    ],
    code="preprocess.py",
)

モデルを暗号化して Amazon S3 に保存するには、カスタム KMS キーが必要です。 次のコードを参照してください。

kms_client = boto3.client('kms')
response = kms_client.describe_key(
    KeyId='alias/sagemaker/outkey',
)
key_id = response['KeyMetadata']['KeyId']

モデルをトレーニングするために、TensorFlow estimator オブジェクトを作成します。 トレーニング スクリプトとともに KMS キー ID を渡します。 train.py、トレーニング インスタンス タイプ、およびカウント。 また、 TrainingStep パイプラインに追加し、それに TensorFlow エスティメータを追加します。 次のコードを参照してください。

model_path = f"s3://{bucket}/{prefix}/model/"

hyperparameters = {"epochs": training_epochs}
tensorflow_version = "2.4.1"
python_version = "py37"

tf2_estimator = TensorFlow(
    source_dir="code",
    entry_point="train.py",
    instance_type=training_instance_type,
    instance_count=1,
    framework_version=tensorflow_version,
    role=role,
    base_job_name="tf2-california-housing-train",
    output_path=model_path,
    output_kms_key=key_id,
    hyperparameters=hyperparameters,
    py_version=python_version,
    sagemaker_session=session
)

# Use the tf2_estimator in a SageMaker pipelines ProcessingStep.
# NOTE how the input to the training job directly references the output of the previous step.
step_train_model = TrainingStep(
    name="Train-California-Housing-Model",
    estimator=tf2_estimator,
    inputs={
        "train": TrainingInput(
            s3_data=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[
                "train"
            ].S3Output.S3Uri,
            content_type="text/csv",
        ),
        "test": TrainingInput(
            s3_data=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[
                "test"
            ].S3Output.S3Uri,
            content_type="text/csv",
        ),
    },
)

トレーニングに加えて、モデル評価を実行する必要があります。この例では、平均二乗誤差 (MSE) をメトリックとして使用します。 の 以前のノート また、生成します evaluate.py、MSE を使用してモデルを評価するために使用します。 また、 ProcessingStep を使用してモデル評価スクリプトを初期化するには SKLearnProcessor 物体。 次のコードは、このステップを作成します。

from sagemaker.workflow.properties import PropertyFile

# Create SKLearnProcessor object.
# The object contains information about what container to use, what instance type etc.
evaluate_model_processor = SKLearnProcessor(
    framework_version=framework_version,
    instance_type=processing_instance_type,
    instance_count=1,
    base_job_name="tf2-california-housing-evaluate",
    role=role,
    sagemaker_session=session
)

# Create a PropertyFile
# A PropertyFile is used to be able to reference outputs from a processing step, for instance to use in a condition step.
# For more information, visit https://docs.aws.amazon.com/sagemaker/latest/dg/build-and-manage-propertyfile.html
evaluation_report = PropertyFile(
    name="EvaluationReport", output_name="evaluation", path="evaluation.json"
)

# Use the evaluate_model_processor in a SageMaker pipelines ProcessingStep.
step_evaluate_model = ProcessingStep(
    name="Evaluate-California-Housing-Model",
    processor=evaluate_model_processor,
    inputs=[
        ProcessingInput(
            source=step_train_model.properties.ModelArtifacts.S3ModelArtifacts,
            destination="/opt/ml/processing/model",
        ),
        ProcessingInput(
            source=step_preprocess_data.properties.ProcessingOutputConfig.Outputs[
                "test"
            ].S3Output.S3Uri,
            destination="/opt/ml/processing/test",
        ),
    ],
    outputs=[
        ProcessingOutput(output_name="evaluation", source="/opt/ml/processing/evaluation"),
    ],
    code="evaluate.py",
    property_files=[evaluation_report],
)

モデルの評価後、モデルのパフォーマンスが要件を満たしている場合は、モデルをモデル レジストリに登録する手順も必要です。 これは、次のコードを使用して示されています。 RegisterModel ステップ。 ここでは、共有サービス アカウントで宣言したモデル パッケージを指定する必要があります。 リージョン、アカウント、およびモデル パッケージを実際の値に置き換えます。 ここで使用されているモデル名は modeltest、ただし、任意の名前を使用できます。

# Create ModelMetrics object using the evaluation report from the evaluation step
# A ModelMetrics object contains metrics captured from a model.
model_metrics = ModelMetrics(
    model_statistics=MetricsSource(
        s3_uri=evaluation_s3_uri,
        content_type="application/json",
    )
)

# Create a RegisterModel step, which registers the model with SageMaker Model Registry.
model = Model(
    image_uri=tf2_estimator.training_image_uri(),
    model_data=training_step.properties.ModelArtifacts.S3ModelArtifacts,
    source_dir=tf2_estimator.source_dir,
    entry_point=tf2_estimator.entry_point,
    role=role_arn,
    sagemaker_session=session
)

model_registry_args = model.register(
    content_types=['text/csv'],
    response_types=['application/json'],
    inference_instances=['ml.t2.medium', 'ml.m5.xlarge'],
    transform_instances=['ml.m5.xlarge'],
    model_package_group_name=model_package_group_name,
    approval_status='PendingManualApproval',
    model_metrics=model_metrics
)

 step_register_model= ModelStep(
    name='RegisterModel',
    step_args=model_registry_args
)

また、(別のアカウントを使用して) デプロイできるように、モデル アーティファクトを作成する必要もあります。 モデルを作成するために、 CreateModelStep、次のコードに示すように:

from sagemaker.inputs import CreateModelInput 
from sagemaker.workflow.model_step import ModelStep 
step_create_model = ModelStep( 
    name="Create-California-Housing-Model", 
    step_args=model.create(instance_type="ml.m5.large",accelerator_type="ml.eia1.medium"),
 )

パイプラインに条件を追加するには、 ConditionStep. この場合、新しいモデルが精度条件を満たしている場合にのみ、新しいモデル バージョンをモデル レジストリに登録します。 次のコードを参照してください。

from sagemaker.workflow.conditions import ConditionLessThanOrEqualTo
from sagemaker.workflow.condition_step import (
    ConditionStep,
    JsonGet,
)

# Create accuracy condition to ensure the model meets performance requirements.
# Models with a test accuracy lower than the condition will not be registered with the model registry.
cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step=step_evaluate_model,
        property_file=evaluation_report,
        json_path="regression_metrics.mse.value",
    ),
    right=accuracy_mse_threshold,
)

# Create a SageMaker Pipelines ConditionStep, using the preceding condition.
# Enter the steps to perform if the condition returns True / False.
step_cond = ConditionStep(
    name="MSE-Lower-Than-Threshold-Condition",
    conditions=[cond_lte],
    if_steps=[step_register_model, step_create_model],
    else_steps=[step_higher_mse_send_email_lambda],
)

最後に、パイプラインを初期化できるように、すべてのパイプライン ステップを調整します。

from sagemaker.workflow.pipeline import Pipeline

# Create a SageMaker Pipeline.
# Each parameter for the pipeline must be set as a parameter explicitly when the pipeline is created.
# Also pass in each of the preceding steps.
# Note that the order of execution is determined from each step's dependencies on other steps,
# not on the order they are passed in.
pipeline = Pipeline(
    name=pipeline_name,
    parameters=[
        processing_instance_type,
        training_instance_type,
        input_data,
        training_epochs,
        accuracy_mse_threshold,
        endpoint_instance_type,
    ],
    steps=[step_preprocess_data, step_train_model, step_evaluate_model, step_cond],
)

別のアカウントからモデル バージョンをデプロイする

モデルが共有サービス アカウントに登録されたので、デプロイ アカウントの CI/CD パイプラインを使用して、ワークロード アカウントにデプロイする必要があります。 前の手順で、役割とポリシーを既に構成しています。 モデル パッケージ ARN を使用して、モデル レジストリからモデルをデプロイします。 次のコードは展開アカウントで実行され、承認されたモデルを QA と製品に展開するために使用されます。

from sagemaker import ModelPackage
from time import gmtime, strftime

sagemaker_session = sagemaker.Session(boto_session=sess)

model_package_arn = 'arn:aws:sagemaker:::/modeltest/version_number'
model = ModelPackage(role=role, 
                     model_package_arn=model_package_arn, 
                     sagemaker_session=sagemaker_session)
model.deploy(initial_instance_count=1, instance_type='ml.m5.xlarge')

まとめ

この投稿では、最小権限の原則に基づいて、ML のマルチアカウント設定に必要なポリシーを設定する方法を示しました。 次に、データ サイエンス アカウントでモデルを構築してトレーニングするプロセスを示しました。 最後に、展開アカウントで CI/CD パイプラインを使用して、承認されたモデルの最新バージョンを QA アカウントと運用アカウントに展開しました。 さらに、次のことができます。 モデルのデプロイ履歴を表示する & ビルドトリガー in AWS コードビルド.

この投稿の概念をスケーリングして、モデルをホストすることができます アマゾン エラスティック コンピューティング クラウド (Amazon EC2)または Amazon Elastic Kubernetesサービス (Amazon EKS)、およびバッチ推論パイプラインを構築します。

AWS で ML モデルを構築する別のアカウントを持つことの詳細については、次を参照してください。 AWS Organizations を使用した組織単位のベストプラクティス & 本番環境でモデルを安全に更新.


著者について

Amazon SageMaker モデルレジストリ PlatoBlockchain Data Intelligence を使用して、クロスアカウント MLOps ワークフローを構築します。垂直検索。あい。サンディープ・ヴェルマ AWS のシニア プロトタイピング アーキテクトです。 彼は顧客の課題を深く掘り下げ、顧客がイノベーションを加速するためのプロトタイプを構築することを楽しんでいます。 彼は AI/ML のバックグラウンドを持ち、New Knowledge の創設者であり、一般的にテクノロジーに情熱を注いでいます。 余暇には、家族と旅行やスキーを楽しんでいます。

マニカヌジャ  マニカヌジャ アマゾンウェブサービス(AWS)の人工知能および機械学習スペシャリストSAです。 彼女は、機械学習を使用しているお客様がAWSを使用してビジネス上の課題を解決するのを支援しています。 彼女はほとんどの時間を、コンピュータービジョン、自然言語処理、予測、エッジでのMLなどに関連するAI / MLプロジェクトについて深く掘り下げ、顧客に教えることに費やしています。 彼女はエッジでのMLに情熱を注いでいるため、自動運転キットとプロトタイプ製造生産ラインを備えた独自のラボを作成し、自由な時間を多く過ごしています。

Amazon SageMaker モデルレジストリ PlatoBlockchain Data Intelligence を使用して、クロスアカウント MLOps ワークフローを構築します。垂直検索。あい。サウミトラ・ヴィクラム Amazon SageMaker チームのソフトウェア開発者であり、インドのチェンナイを拠点としています。 仕事以外では、ランニング、トレッキング、モーター バイクでヒマラヤ山脈を走るのが大好きです。

Amazon SageMaker モデルレジストリ PlatoBlockchain Data Intelligence を使用して、クロスアカウント MLOps ワークフローを構築します。垂直検索。あい。スレデヴィ スリニバサン AWS SageMaker のエンジニアリングリーダーです。 彼女は、日常生活を変革するためのプラットフォームとして ML を実現することに情熱と興奮を感じています。 彼女は現在、SageMaker Feature Store に注力しています。 自由な時間には、家族と過ごすのが好きです。

Amazon SageMaker モデルレジストリ PlatoBlockchain Data Intelligence を使用して、クロスアカウント MLOps ワークフローを構築します。垂直検索。あい。 ルピンダー・グレワル AWS のシニア Ai/ML スペシャリスト ソリューション アーキテクトです。 彼は現在、SageMaker でのモデルと MLOps の提供に注力しています。 この役職に就く前は、モデルの構築とホスティングを行う機械学習エンジニアとして働いていました。 仕事以外では、テニスや山道でのサイクリングを楽​​しんでいます。

Amazon SageMaker モデルレジストリ PlatoBlockchain Data Intelligence を使用して、クロスアカウント MLOps ワークフローを構築します。垂直検索。あい。ファルーク・サビール AWS のシニア人工知能および機械学習スペシャリスト ソリューション アーキテクトです。 テキサス大学オースティン校で電気工学の博士号と修士号を取得し、ジョージア工科大学でコンピューター サイエンスの修士号を取得しています。 AWS では、データ サイエンス、機械学習、コンピューター ビジョン、人工知能、数値最適化、および関連分野におけるビジネス上の問題を顧客が定式化して解決するのを支援しています。 彼は 16 年以上の実務経験があり、テキサス大学ダラス校の非常勤教員でもあり、応用機械学習の大学院コースを教えています。 テキサス州ダラスを拠点とする彼と彼の家族は、旅行が大好きで、長いドライブ旅行をしています。

タイムスタンプ:

より多くの AWS機械学習