顧客がますます困難な問題を解決しようとするにつれて、機械学習 (ML) はますます複雑になっています。 この複雑さにより、多くの場合、複数のマシンを使用して単一のモデルをトレーニングする分散 ML が必要になります。 これにより、複数のノードにわたるタスクの並列化が可能になり、トレーニング時間の短縮、スケーラビリティの向上、パフォーマンスの向上につながりますが、分散ハードウェアを効果的に使用するには大きな課題があります。 データ サイエンティストは、データのパーティショニング、ロード バランシング、フォールト トレランス、スケーラビリティなどの課題に対処する必要があります。 ML エンジニアは、並列化、スケジューリング、障害、再試行を手動で処理する必要があり、複雑なインフラストラクチャ コードが必要になります。
この記事では、使用するメリットについて説明します。 レイ および アマゾンセージメーカー 分散 ML 向けに、これらのフレームワークを使用してスケーラブルな ML ワークフローを構築およびデプロイする方法に関するステップバイステップのガイドを提供します。
オープンソースの分散コンピューティング フレームワークである Ray は、分散トレーニングと ML モデルの提供のための柔軟なフレームワークを提供します。 データ前処理、分散トレーニング、ハイパーパラメータ調整、強化学習、モデル提供などの一般的な ML タスク用のシンプルでスケーラブルなライブラリを通じて、低レベルの分散システムの詳細を抽象化します。
SageMaker は、ML モデルの構築、トレーニング、デプロイを行うためのフルマネージド サービスです。 Ray は SageMaker の機能とシームレスに統合し、効率的で信頼性の高い複雑な ML ワークロードを構築およびデプロイします。 Ray と SageMaker を組み合わせると、スケーラブルな ML ワークフローにエンドツーエンドの機能が提供され、次の注目すべき機能があります。
- Ray の分散アクターと並列処理構造により、分散アプリケーションの開発が簡素化されます。
- Ray AI Runtime (AIR) は、開発から本番環境に移行する際の負担を軽減します。 Ray と AIR を使用すると、同じ Python コードをラップトップから大規模なクラスターまでシームレスに拡張できます。
- SageMaker のマネージド インフラストラクチャと、処理ジョブ、トレーニング ジョブ、ハイパーパラメータ調整ジョブなどの機能は、分散コンピューティングのためにその下にある Ray ライブラリを使用できます。
- AmazonSageMakerの実験 迅速な反復とトライアルの追跡が可能になります。
- Amazon SageMaker フィーチャーストア モデルトレーニング用の ML 機能を保存、取得、共有するためのスケーラブルなリポジトリを提供します。
- トレーニングされたモデルは、次の場所に保存、バージョン管理、追跡できます。 Amazon SageMaker モデルレジストリ ガバナンスとマネジメントのために。
- AmazonSageMakerパイプライン データの準備とトレーニングからモデルのデプロイメントまで、自動化されたワークフローとしてエンドツーエンドの ML ライフサイクルを調整できます。
ソリューションの概要
この投稿では、Ray と SageMaker を併用する利点に焦点を当てます。 SageMaker Pipelines を使用して調整された、エンドツーエンドの Ray ベースの ML ワークフローをセットアップしました。 ワークフローには、Ray アクターを使用したフィーチャ ストアへのデータの並列取り込み、Ray Data によるデータの前処理、Ray Train とハイパーパラメータ最適化 (HPO) 調整ジョブを使用した大規模なモデルのトレーニングとハイパーパラメータ調整、そして最後にモデルの評価とモデルの登録が含まれます。モデルレジストリ。
データとしては、 合成住宅データセット XNUMX つの機能 (YEAR_BUILT
, SQUARE_FEET
, NUM_BEDROOM
, NUM_BATHROOMS
, LOT_ACRES
, GARAGE_SPACES
, FRONT_PORCH
, DECK
) そして私たちのモデルは PRICE
家の。
ML ワークフローの各ステージは、入力パラメーターと出力パラメーターを受け取る独自のスクリプトを備えた個別のステップに分割されます。 次のセクションでは、各ステップの主要なコード スニペットを強調表示します。 完全なコードは次の場所にあります。 aws-samples-for-ray GitHub リポジトリ.
前提条件
SageMaker Python SDK を使用してこの投稿に関連付けられたコードを実行するには、次の前提条件が必要です。
SageMaker Feature Store へのデータの取り込み
ML ワークフローの最初のステップは、ソース データ ファイルを読み取ることです。 Amazon シンプル ストレージ サービス (Amazon S3) を CSV 形式で保存し、SageMaker Feature Store に取り込みます。 SageMaker Feature Store は、チームが ML 機能を簡単に作成、共有、管理できるようにする専用のリポジトリです。 これにより、機能の発見、再利用、共有が簡素化され、開発の迅速化、顧客チーム内のコラボレーションの強化、コストの削減につながります。
機能ストアへの機能の取り込みには、次の手順が含まれます。
- 機能グループを定義し、機能ストアに機能グループを作成します。
- データの各行にイベント時刻とレコード ID を追加して、フィーチャ ストアのソース データを準備します。
- Boto3 SDK を使用して、準備されたデータを機能グループに取り込みます。
このセクションでは、ステップ 3 のみを強調表示します。これは、Ray を使用した取り込みタスクの並列処理に関係する部分であるためです。 このプロセスの完全なコードは、次の場所で確認できます。 GitHubレポ.
取り込み_機能 メソッドはクラス内で定義されています。 Featurestore
。 なお、 Featurestore
クラスに飾られているのは @ray.remote
。 これは、このクラスのインスタンスが Ray アクター、つまり Ray 内のステートフルな同時計算ユニットであることを示します。 これは、内部状態を維持し、Ray クラスター内の異なるノードで実行されている複数のタスクから同時にアクセスできる分散オブジェクトを作成できるようにするプログラミング モデルです。 アクターは、可変状態を管理およびカプセル化する方法を提供するため、分散設定で複雑でステートフルなアプリケーションを構築する場合に役立ちます。 アクターでリソース要件を指定することもできます。 この場合、 FeatureStore
クラスには 0.5 CPU が必要です。 次のコードを参照してください。
@ray.remote(num_cpus=0.5)
class Featurestore: def ingest_features(self,feature_group_name, df, region): """ Ingest features to Feature Store Group Args: feature_group_name (str): Feature Group Name data_path (str): Path to the train/validation/test data in CSV format. """ ...
を呼び出すことでアクターと対話できます。 remote
オペレーター。 次のコードでは、必要な数のアクターが入力引数としてスクリプトに渡されます。 次に、データはアクターの数に基づいて分割され、リモートの並列プロセスに渡されて、特徴ストアに取り込まれます。 電話することができます get
オブジェクト ref に対して、リモート計算が完了して結果が利用可能になるまで、現在のタスクの実行をブロックします。 結果が出たら、 ray.get
結果が返され、現在のタスクの実行が続行されます。
import modin.pandas as pd
import ray df = pd.read_csv(s3_path)
data = prepare_df_for_feature_store(df)
# Split into partitions
partitions = [ray.put(part) for part in np.array_split(data, num_actors)]
# Start actors and assign partitions in a loop
actors = [Featurestore.remote() for _ in range(args.num_actors)]
results = [] for actor, partition in zip(actors, input_partitions): results.append(actor.ingest_features.remote( args.feature_group_name, partition, args.region ) ) ray.get(results)
トレーニング、検証、テスト用のデータを準備する
このステップでは、Ray データセットを使用して、機械学習の準備としてデータセットを効率的に分割、変換、スケールします。 Ray Dataset は、分散データを Ray にロードする標準的な方法を提供し、さまざまなストレージ システムとファイル形式をサポートします。 並列変換、シャッフル、グループ化、集計などの一般的な ML データ前処理操作用の API を備えています。 Ray Dataset は、ステートフル セットアップと GPU アクセラレーションを必要とする操作も処理します。 Spark、Pandas、NumPy などの他のデータ処理ライブラリや、TensorFlow や PyTorch などの ML フレームワークとスムーズに統合します。 これにより、Ray 上にエンドツーエンドのデータ パイプラインと ML ワークフローを構築できるようになります。 目標は、分散データ処理と ML を実務者や研究者にとって容易にすることです。
このデータ前処理を実行するスクリプトのセクションを見てみましょう。 まず、フィーチャ ストアからデータをロードします。
def load_dataset(feature_group_name, region): """ Loads the data as a ray dataset from the offline featurestore S3 location Args: feature_group_name (str): name of the feature group Returns: ds (ray.data.dataset): Ray dataset the contains the requested dat from the feature store """ session = sagemaker.Session(boto3.Session(region_name=region)) fs_group = FeatureGroup( name=feature_group_name, sagemaker_session=session ) fs_data_loc = fs_group.describe().get("OfflineStoreConfig").get("S3StorageConfig").get("ResolvedOutputS3Uri") # Drop columns added by the feature store # Since these are not related to the ML problem at hand cols_to_drop = ["record_id", "event_time","write_time", "api_invocation_time", "is_deleted", "year", "month", "day", "hour"] ds = ray.data.read_parquet(fs_data_loc) ds = ds.drop_columns(cols_to_drop) print(f"{fs_data_loc} count is {ds.count()}") return ds
次に、 ray.data
としょうかん:
def split_dataset(dataset, train_size, val_size, test_size, random_state=None): """ Split dataset into train, validation and test samples Args: dataset (ray.data.Dataset): input data train_size (float): ratio of data to use as training dataset val_size (float): ratio of data to use as validation dataset test_size (float): ratio of data to use as test dataset random_state (int): Pass an int for reproducible output across multiple function calls. Returns: train_set (ray.data.Dataset): train dataset val_set (ray.data.Dataset): validation dataset test_set (ray.data.Dataset): test dataset """ # Shuffle this dataset with a fixed random seed. shuffled_ds = dataset.random_shuffle(seed=random_state) # Split the data into train, validation and test datasets train_set, val_set, test_set = shuffled_ds.split_proportionately([train_size, val_size]) return train_set, val_set, test_set def scale_dataset(train_set, val_set, test_set, target_col): """ Fit StandardScaler to train_set and apply it to val_set and test_set Args: train_set (ray.data.Dataset): train dataset val_set (ray.data.Dataset): validation dataset test_set (ray.data.Dataset): test dataset target_col (str): target col Returns: train_transformed (ray.data.Dataset): train data scaled val_transformed (ray.data.Dataset): val data scaled test_transformed (ray.data.Dataset): test data scaled """ tranform_cols = dataset.columns() # Remove the target columns from being scaled tranform_cols.remove(target_col) # set up a standard scaler standard_scaler = StandardScaler(tranform_cols) # fit scaler to training dataset print("Fitting scaling to training data and transforming dataset...") train_set_transformed = standard_scaler.fit_transform(train_set) # apply scaler to validation and test datasets print("Transforming validation and test datasets...") val_set_transformed = standard_scaler.transform(val_set) test_set_transformed = standard_scaler.transform(test_set) return train_set_transformed, val_set_transformed, test_set_transformed
処理されたトレイン、検証、テストのデータセットは Amazon S3 に保存され、入力パラメーターとして後続のステップに渡されます。
モデルのトレーニングとハイパーパラメーターの最適化を実行する
データが前処理され、モデリングの準備ができたら、いくつかの ML モデルをトレーニングし、そのハイパーパラメーターを微調整して、予測パフォーマンスを最大化します。 を使用しております XGブーストレイは、Ray 上に構築された XGBoost の分散バックエンドで、複数のノードと GPU を使用して大規模なデータセットで XGBoost モデルをトレーニングできるようにします。 これは、分散データ管理と内部トレーニングの複雑さを処理しながら、XGBoost のトレーニング API と予測 API のシンプルなドロップイン代替機能を提供します。
複数のノードにわたるトレーニングの分散を可能にするために、という名前のヘルパー クラスを利用します。 レイヘルパー。 次のコードに示すように、トレーニング ジョブのリソース構成を使用し、最初のホストをヘッド ノードとして選択します。
class RayHelper(): def __init__(self, ray_port:str="9339", redis_pass:str="redis_password"): .... self.resource_config = self.get_resource_config() self.head_host = self.resource_config["hosts"][0] self.n_hosts = len(self.resource_config["hosts"])
ホスト情報を使用して、各トレーニング ジョブ インスタンスで Ray を初期化する方法を決定できます。
def start_ray(self): head_ip = self._get_ip_from_host() # If the current host is the host choosen as the head node # run `ray start` with specifying the --head flag making this is the head node if self.resource_config["current_host"] == self.head_host: output = subprocess.run(['ray', 'start', '--head', '-vvv', '--port', self.ray_port, '--redis-password', self.redis_pass, '--include-dashboard', 'false'], stdout=subprocess.PIPE) print(output.stdout.decode("utf-8")) ray.init(address="auto", include_dashboard=False) self._wait_for_workers() print("All workers present and accounted for") print(ray.cluster_resources()) else: # If the current host is not the head node, # run `ray start` with specifying ip address as the head_host as the head node time.sleep(10) output = subprocess.run(['ray', 'start', f"--address={head_ip}:{self.ray_port}", '--redis-password', self.redis_pass, "--block"], stdout=subprocess.PIPE) print(output.stdout.decode("utf-8")) sys.exit(0)
トレーニング ジョブが開始されると、Ray クラスターは、 start_ray()
のインスタンスのメソッド RayHelper
:
if __name__ == '__main__': ray_helper = RayHelper() ray_helper.start_ray() args = read_parameters() sess = sagemaker.Session(boto3.Session(region_name=args.region))
次に、XGBoost-Ray の XGBoost トレーナーをトレーニングに使用します。
def train_xgboost(ds_train, ds_val, params, num_workers, target_col = "price") -> Result: """ Creates a XGBoost trainer, train it, and return the result. Args: ds_train (ray.data.dataset): Training dataset ds_val (ray.data.dataset): Validation dataset params (dict): Hyperparameters num_workers (int): number of workers to distribute the training across target_col (str): target column Returns: result (ray.air.result.Result): Result of the training job """ train_set = RayDMatrix(ds_train, 'PRICE') val_set = RayDMatrix(ds_val, 'PRICE') evals_result = {} trainer = train( params=params, dtrain=train_set, evals_result=evals_result, evals=[(val_set, "validation")], verbose_eval=False, num_boost_round=100, ray_params=RayParams(num_actors=num_workers, cpus_per_actor=1), ) output_path=os.path.join(args.model_dir, 'model.xgb') trainer.save_model(output_path) valMAE = evals_result["validation"]["mae"][-1] valRMSE = evals_result["validation"]["rmse"][-1] print('[3] #011validation-mae:{}'.format(valMAE)) print('[4] #011validation-rmse:{}'.format(valRMSE)) local_testing = False try: load_run(sagemaker_session=sess) except: local_testing = True if not local_testing: # Track experiment if using SageMaker Training with load_run(sagemaker_session=sess) as run: run.log_metric('validation-mae', valMAE) run.log_metric('validation-rmse', valRMSE)
インスタンス化する際に注意してください。 trainer
、合格します RayParams
、アクターの数とアクターごとの CPU の数を取得します。 XGBoost-Ray はこの情報を使用して、Ray クラスターに接続されているすべてのノードにトレーニングを分散します。
ここで、SageMaker Python SDK に基づいて XGBoost 推定オブジェクトを作成し、それを HPO ジョブに使用します。
SageMaker Pipelines を使用して前述の手順を調整します。
エンドツーエンドのスケーラブルで再利用可能な ML ワークフローを構築するには、CI/CD ツールを使用して前述のステップをパイプラインに統合する必要があります。 SageMaker Pipelines は、SageMaker、SageMaker Python SDK、および SageMaker Studio と直接統合されています。 この統合により、使いやすい Python SDK で ML ワークフローを作成し、SageMaker Studio を使用してワークフローを視覚化して管理できるようになります。 パイプライン実行内のデータの履歴を追跡し、キャッシュのステップを指定することもできます。
SageMaker Pipelines は、ML ワークフローの構築に必要なステップを含む有向非巡回グラフ (DAG) を作成します。 各パイプラインは、ステップ間のデータ依存関係によって調整された一連の相互接続されたステップであり、パラメーター化できるため、パイプラインの実行ごとに入力変数をパラメーターとして指定できます。 SageMaker Pipelines には XNUMX 種類のパイプライン パラメーターがあります。 ParameterString
, ParameterInteger
, ParameterFloat
, ParameterBoolean
。 このセクションでは、いくつかの入力変数をパラメータ化し、ステップ キャッシュ構成をセットアップします。
processing_instance_count = ParameterInteger( name='ProcessingInstanceCount', default_value=1
)
feature_group_name = ParameterString( name='FeatureGroupName', default_value='fs-ray-synthetic-housing-data'
)
bucket_prefix = ParameterString( name='Bucket_Prefix', default_value='aws-ray-mlops-workshop/feature-store'
)
rmse_threshold = ParameterFloat(name="RMSEThreshold", default_value=15000.0) train_size = ParameterString( name='TrainSize', default_value="0.6"
)
val_size = ParameterString( name='ValidationSize', default_value="0.2"
)
test_size = ParameterString( name='TestSize', default_value="0.2"
) cache_config = CacheConfig(enable_caching=True, expire_after="PT12H")
XNUMX つの処理ステップを定義します。XNUMX つは SageMaker Feature Store の取り込み用、もう XNUMX つはデータ準備用です。 これは、前述した前の手順と非常に似ているはずです。 コードの唯一の新しい行は、 ProcessingStep
これにより、処理ジョブ構成を取得し、それをパイプライン ステップとして含めることができます。 さらに、SageMaker Feature Store 取り込みステップに対するデータ準備ステップの依存関係を指定します。 次のコードを参照してください。
feature_store_ingestion_step = ProcessingStep( name='FeatureStoreIngestion', step_args=fs_processor_args, cache_config=cache_config
) preprocess_dataset_step = ProcessingStep( name='PreprocessData', step_args=processor_args, cache_config=cache_config
)
preprocess_dataset_step.add_depends_on([feature_store_ingestion_step])
同様に、モデルのトレーニングと調整のステップを構築するには、次の定義を追加する必要があります。 TuningStep
モデルトレーニングステップのコードの後に、SageMaker ハイパーパラメータ調整をパイプラインのステップとして実行できるようにします。
tuning_step = TuningStep( name="HPTuning", tuner=tuner, inputs={ "train": TrainingInput( s3_data=preprocess_dataset_step.properties.ProcessingOutputConfig.Outputs[ "train" ].S3Output.S3Uri, content_type="text/csv" ), "validation": TrainingInput( s3_data=preprocess_dataset_step.properties.ProcessingOutputConfig.Outputs[ "validation" ].S3Output.S3Uri, content_type="text/csv" ) }, cache_config=cache_config,
)
tuning_step.add_depends_on([preprocess_dataset_step])
調整ステップの後、最適なモデルを SageMaker モデル レジストリに登録することを選択します。 モデルの品質を制御するために、最良のモデルの目標メトリック (RMSE) をパイプラインの入力パラメーターとして定義されたしきい値と比較する最小品質ゲートを実装します。 rmse_threshold
。 この評価を行うために、別の処理ステップを作成して 評価スクリプト。 モデルの評価結果はプロパティファイルとして保存されます。 プロパティ ファイルは、処理ステップの結果を分析して他のステップをどのように実行するかを決定する場合に特に役立ちます。 次のコードを参照してください。
# Specify where we'll store the model evaluation results so that other steps can access those results
evaluation_report = PropertyFile( name='EvaluationReport', output_name='evaluation', path='evaluation.json',
) # A ProcessingStep is used to evaluate the performance of a selected model from the HPO step. # In this case, the top performing model is evaluated. evaluation_step = ProcessingStep( name='EvaluateModel', processor=evaluation_processor, inputs=[ ProcessingInput( source=tuning_step.get_top_model_s3_uri( top_k=0, s3_bucket=bucket, prefix=s3_prefix ), destination='/opt/ml/processing/model', ), ProcessingInput( source=preprocess_dataset_step.properties.ProcessingOutputConfig.Outputs['test'].S3Output.S3Uri, destination='/opt/ml/processing/test', ), ], outputs=[ ProcessingOutput( output_name='evaluation', source='/opt/ml/processing/evaluation' ), ], code='./pipeline_scripts/evaluate/script.py', property_files=[evaluation_report],
)
を定義します。 ModelStep
パイプラインの SageMaker Model Registry に最適なモデルを登録します。 最良のモデルが所定の品質チェックに合格しなかった場合、追加で指定します。 FailStep
エラーメッセージを出力するには:
register_step = ModelStep( name='RegisterTrainedModel', step_args=model_registry_args
) metrics_fail_step = FailStep( name="RMSEFail", error_message=Join(on=" ", values=["Execution failed due to RMSE >", rmse_threshold]),
)
次に、 ConditionStep
パイプラインで次にモデル登録ステップまたは失敗ステップを実行する必要があるかどうかを評価します。 この例では、RMSE スコアがしきい値よりも低い場合に最適なモデルが登録されます。
# Condition step for evaluating model quality and branching execution
cond_lte = ConditionLessThanOrEqualTo( left=JsonGet( step_name=evaluation_step.name, property_file=evaluation_report, json_path='regression_metrics.rmse.value', ), right=rmse_threshold,
)
condition_step = ConditionStep( name='CheckEvaluation', conditions=[cond_lte], if_steps=[register_step], else_steps=[metrics_fail_step],
)
最後に、定義されたすべてのステップをパイプラインに統合します。
pipeline_name = 'synthetic-housing-training-sm-pipeline-ray'
step_list = [ feature_store_ingestion_step, preprocess_dataset_step, tuning_step, evaluation_step, condition_step ] training_pipeline = Pipeline( name=pipeline_name, parameters=[ processing_instance_count, feature_group_name, train_size, val_size, test_size, bucket_prefix, rmse_threshold ], steps=step_list
) # Note: If an existing pipeline has the same name it will be overwritten.
training_pipeline.upsert(role_arn=role_arn)
前述のパイプラインは、SageMaker Studio で直接視覚化して実行することも、呼び出しによって実行することもできます。 execution = training_pipeline.start()
。 次の図はパイプライン フローを示しています。
さらに、パイプラインの実行によって生成されたアーティファクトの系統を確認できます。
from sagemaker.lineage.visualizer import LineageTableVisualizer viz = LineageTableVisualizer(sagemaker.session.Session())
for execution_step in reversed(execution.list_steps()): print(execution_step) display(viz.show(pipeline_execution_step=execution_step)) time.sleep(5)
モデルを展開する
パイプライン実行を通じて最適なモデルが SageMaker モデル レジストリに登録された後、SageMaker のフルマネージド モデル デプロイメント機能を使用して、モデルをリアルタイム エンドポイントにデプロイします。 SageMaker には、さまざまなユースケースのニーズを満たす他のモデル展開オプションがあります。 詳細については、を参照してください。 推論用のモデルをデプロイする ユースケースに適したオプションを選択するとき。 まず、SageMaker Model Registry に登録されたモデルを取得しましょう。
xgb_regressor_model = ModelPackage( role_arn, model_package_arn=model_package_arn, name=model_name
)
モデルの現在のステータスは、 PendingApproval
。 そのステータスを次のように設定する必要があります Approved
導入前:
sagemaker_client.update_model_package( ModelPackageArn=xgb_regressor_model.model_package_arn, ModelApprovalStatus='Approved'
) xgb_regressor_model.deploy( initial_instance_count=1, instance_type='ml.m5.xlarge', endpoint_name=endpoint_name
)
クリーンアップ
実験が終了したら、不必要な料金が発生しないようにリソースをクリーンアップすることを忘れないでください。 クリーンアップするには、API を呼び出してリアルタイム エンドポイント、モデル グループ、パイプライン、および機能グループを削除します。 エンドポイントの削除, モデルパッケージグループの削除, パイプラインの削除, フィーチャーグループの削除をそれぞれ実行し、すべての SageMaker Studio ノートブック インスタンスをシャットダウンします。
まとめ
この投稿では、SageMaker Pipelines を使用して Ray ベースの ML ワークフローを調整する方法を段階的に説明しました。 また、サードパーティの ML ツールと統合する SageMaker Pipelines の機能も実証しました。 優れたパフォーマンスと運用効率を確保するために、スケーラブルかつ安全な方法で Ray ワークロードをサポートするさまざまな AWS サービスがあります。 次は、これらの強力な機能を探索し、Amazon SageMaker Pipelines と Ray を使用して機械学習ワークフローの最適化を開始する番です。 今すぐ行動を起こして、ML プロジェクトの可能性を最大限に引き出してください。
著者について
ラジュ・ランガン アマゾン ウェブ サービス (AWS) のシニア ソリューション アーキテクトです。 彼は政府支援団体と協力し、AWS を使用した AI/ML ソリューションの構築を支援しています。 クラウド ソリューションをいじっていないときは、家族と遊んだり、友人とバドミントンの活発なゲームでバーディを決めたりしている姿が目に入るでしょう。
シェリー・ディン アマゾン ウェブ サービス (AWS) のシニア AI/ML スペシャリスト ソリューション アーキテクトです。 彼女は機械学習に関して豊富な経験を持ち、コンピューター サイエンスの博士号を取得しています。 彼女は主に公共部門の顧客と協力して AI/ML 関連のさまざまなビジネス課題に取り組み、AWS クラウドでの機械学習の取り組みを加速できるよう支援しています。 顧客をサポートしていないときは、屋外アクティビティを楽しんでいます。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- PlatoData.Network 垂直生成 Ai。 自分自身に力を与えましょう。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- プラトンESG。 カーボン、 クリーンテック、 エネルギー、 環境、 太陽、 廃棄物管理。 こちらからアクセスしてください。
- プラトンヘルス。 バイオテクノロジーと臨床試験のインテリジェンス。 こちらからアクセスしてください。
- ブロックオフセット。 環境オフセット所有権の近代化。 こちらからアクセスしてください。
- 情報源: https://aws.amazon.com/blogs/machine-learning/orchestrate-ray-based-machine-learning-workflows-using-amazon-sagemaker/
- :持っている
- :は
- :not
- :どこ
- $UP
- 10
- 100
- 7
- a
- 抄録
- 加速する
- 加速された
- アクセス
- アクセス
- 会計処理
- 越えて
- Action
- 活動
- 俳優
- 非周期的
- 加えます
- 追加されました
- 追加
- さらに
- 住所
- 後
- に対して
- AI
- AI / ML
- 空気
- すべて
- 許す
- 許可
- ことができます
- また
- しかし
- Amazon
- アマゾンセージメーカー
- AmazonSageMakerパイプライン
- Amazon Webサービス
- Amazon Webサービス(AWS)
- an
- 分析する
- および
- 別の
- API
- 申し込む
- 承認された
- です
- 引数
- AS
- 関連する
- At
- オート
- 自動化
- 利用できます
- 避ける
- 離れて
- AWS
- バックエンド
- バランシング
- ベース
- BE
- なぜなら
- になる
- さ
- 利点
- BEST
- の間に
- ブロック
- 両言語で
- 壊れた
- ビルド
- 建物
- 内蔵
- ビジネス
- by
- コール
- 呼ばれます
- 呼び出し
- コール
- 缶
- 機能
- 機能
- 場合
- 例
- レスリング
- 課題
- 挑戦
- 課金
- チェック
- 選択する
- 選択する
- class
- クラウド
- クラスタ
- コード
- 環境、テクノロジーを推奨
- コラム
- コラム
- 組み合わせ
- コマンドと
- コンプリート
- 複雑な
- 複雑さ
- 複雑さ
- 計算
- コンピュータ
- コンピュータサイエンス
- コンピューティング
- 同時
- 条件
- からなる
- 含まれています
- 続ける
- コントロール
- コスト
- 作ります
- 作成します。
- 電流プローブ
- 顧客
- Customers
- DAG
- データ
- データ管理
- データの準備
- データ処理
- データセット
- 中
- 決めます
- 定義します
- 定義済みの
- 定義
- 度
- 実証
- 依存関係
- 依存関係
- 展開します
- 展開する
- 展開
- 記載された
- 希望
- 細部
- 開発
- 開発
- DICT
- 異なります
- 直接
- 指示された
- 直接に
- 発見
- 話し合います
- 分配します
- 配布
- 分散コンピューティング
- 分散トレーニング
- ディストリビューション
- do
- そうではありません
- 行われ
- ダウン
- Drop
- 原因
- 各
- 前
- 容易
- 簡単に
- 使いやすい
- 効果的に
- 効率
- 効率的な
- 効率良く
- ほかに
- enable
- 可能
- 端から端まで
- エンドポイント
- エンジニア
- 強化された
- 確保
- エンティティ
- エラー
- 評価する
- 評価
- 評価します
- 評価
- イベント
- 優秀
- 除く
- 実行された
- 実行
- 既存の
- 体験
- 実験
- 探る
- 広範囲
- 豊富な経験
- Failed:
- 不良解析
- false
- 家族
- ファッション
- 速いです
- 欠点
- 特徴
- 特徴
- フィーチャーストア
- フィギュア
- File
- 最後に
- 名
- フィット
- フィッティング
- 固定の
- フレキシブル
- フロート
- フロー
- 焦点を当てて
- フォロー中
- 形式でアーカイブしたプロジェクトを保存します.
- 発見
- 4
- フレームワーク
- フレームワーク
- 摩擦
- 友達
- から
- フル
- 完全に
- function
- さらに
- ゲーム
- 生成された
- 取得する
- GitHubの
- 目標
- 行く
- ガバナンス
- 政府・公共機関
- 政府後援
- GPU
- GPU
- グラフ
- グループ
- ガイド
- ハンド
- ハンドル
- ハンドル
- ハンドリング
- Hardware
- 持ってる
- he
- 助け
- 特徴
- 強調表示された
- 彼に
- history
- フード
- host
- ホスト
- 時間
- お家の掃除
- 住宅
- 認定条件
- How To
- HTML
- HTTPS
- ハイパーパラメーターの最適化
- ハイパーパラメータ調整
- ID
- if
- 説明する
- 実装する
- import
- 改善されました
- in
- include
- 含ま
- 増加した
- ますます
- を示し
- 情報
- インフラ
- 内部
- 統合する
- 統合する
- 統合
- 対話
- 相互接続
- 内部
- に
- IP
- IPアドレス
- IT
- ITS
- ジョブ
- Jobs > Create New Job
- 旅
- JPG
- JSON
- 保管
- キー
- ノートパソコン
- 大
- 主要な
- リード
- 学習
- ライブラリ
- 図書館
- wifecycwe
- ような
- LINE
- 系統
- ll
- 負荷
- ローディング
- 負荷
- 場所
- 見て
- 下側
- 機械
- 機械学習
- マシン
- 主に
- 維持する
- make
- 作る
- 作成
- 管理します
- マネージド
- 管理
- 手動で
- 最大化します
- 大会
- メッセージ
- 方法
- メトリック
- 最小
- ML
- モデリング
- モデル
- 月
- 他には?
- の試合に
- しなければなりません
- 名
- 名前付き
- 必要
- 必要とされる
- 必要
- ニーズ
- 新作
- 次の
- ノード
- ノート
- 今
- 数
- numpy
- オブジェクト
- 客観
- オブジェクト
- of
- オンライン
- 頻繁に
- on
- ONE
- の
- オープンソース
- オペレーショナル
- 業務執行統括
- オペレータ
- 最適化
- 最適化
- オプション
- オプション
- or
- 調整された
- その他
- 私たちの
- でる
- 出力
- が
- 自分の
- パンダ
- 並列シミュレーションの設定
- パラメーター
- パラメータ
- 部
- 特に
- パス
- 渡された
- path
- 以下のために
- 実行する
- パフォーマンス
- 実行
- 博士号
- パイプ
- パイプライン
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- ポスト
- 潜在的な
- 強力な
- 予測する
- 準備
- 準備
- 前提条件
- 現在
- 前
- ブランド
- 事前の
- 問題
- 問題
- プロセス
- 処理済み
- ラボレーション
- 処理
- 生産
- プログラミング
- プロパティ
- 財産
- 提供します
- は、大阪で
- 公共
- Python
- パイトーチ
- 品質
- ランダム
- 急速に
- 比
- RAY
- 読む
- 準備
- への
- 記録
- 電話代などの費用を削減
- 軽減
- 参照する
- 地域
- 登録
- 登録された
- 登録
- 参加申し込み
- レジストリ
- 関連する
- 信頼性のある
- 覚えています
- リモート
- 削除します
- 倉庫
- 必要とする
- 要件
- 研究者
- リソースを追加する。
- リソース
- それぞれ
- 結果
- 結果
- return
- 収益
- 再利用可能な
- 再利用
- レビュー
- 右
- 行
- ラン
- ランニング
- セージメーカー
- SageMakerパイプライン
- 同じ
- スケーラビリティ
- ド電源のデ
- 規模
- スケーリング
- スケジューリング
- 科学
- 科学者たち
- スコア
- スクリプト
- スクリプト
- SDDK
- シームレス
- セクション
- セクション
- セクター
- 安全に
- シード
- 選択
- 自己
- シニア
- シリーズ
- サービス
- サービス
- サービング
- セッション
- セッションに
- 設定
- シェアする
- シェアリング
- 彼女
- すべき
- 示す
- シャッフル
- シャットダウン
- 重要
- 同様の
- 簡単な拡張で
- 簡素化する
- から
- スムーズに
- So
- ソリューション
- 解決する
- 一部
- ソース
- スパーク
- 専門家
- split
- スポンサー
- ステージ
- 標準
- start
- 開始
- 都道府県
- Status:
- 手順
- ステップ
- ストレージ利用料
- 店舗
- 保存され
- 保存
- 研究
- それに続きます
- そのような
- サポート
- 支援する
- 合成
- SYS
- システム
- 取る
- 撮影
- 取り
- ターゲット
- 仕事
- タスク
- チーム
- テンソルフロー
- test
- より
- それ
- ソース
- アプリ環境に合わせて
- それら
- その後
- そこ。
- ボーマン
- サードパーティ
- この
- それらの
- しきい値
- 介して
- 時間
- <font style="vertical-align: inherit;">回数</font>
- 〜へ
- 今日
- 一緒に
- 公差
- あまりに
- ツール
- 豊富なツール群
- top
- 追跡する
- トレーニング
- トレーニング
- 最適化の適用
- 変換
- 変換
- 試験
- true
- 試します
- 順番
- 2
- 下
- 単位
- アンロック
- 不要
- まで
- us
- つかいます
- 使用事例
- 中古
- 使用されます
- 活用する
- 貴重な
- 値
- さまざまな
- 非常に
- 、
- 視覚化する
- ウォークスルー
- 仕方..
- we
- ウェブ
- Webサービス
- WELL
- いつ
- かどうか
- which
- while
- 意志
- 以内
- 労働者
- ワークフロー
- ワークフロー
- 作品
- XGブースト
- 年
- You
- あなたの
- ゼファーネット