Amazon Web Services ブログ

Category: Amazon SageMaker

AWS PrivateLink を使用してすべての Amazon SageMaker API コールを保護する

すべての Amazon SageMaker API 操作が AWS PrivateLink を介して完全にサポートされるようになりました。これにより、インターネットへのデータ暴露を減らすことで、クラウドベースのアプリケーションと共有されるデータセキュリティが向上します。ノートブックインスタンスへのアクセスは引き続き、TLSを介したインターネット経由となり、AWSマネージメントコンソールへのログインクレデンシャルで保護される形態となります。このブログでは、AWS PrivateLink を使用して Amazon SageMaker API コールを保護するための VPC エンドポイントの設定方法を説明します。 AWS PrivateLink トラフィックはインターネットを通過しないため、ブルートフォースや分散型サービス拒否攻撃などの脅威への露出を低減します。お使いのアプリケーションと Amazon SageMaker API 操作間のすべての通信は VPC の内部で行われるため、Amazon SageMaker と通信するためにインターネットゲートウェイ、NAT デバイス、VPN 接続、または AWS Direct Connect は必要ありません。代わりに、AWS PrivateLink では、インターフェイス VPC エンドポイントを使用して、スケーラブルな方法でお使いの VPC からすべての Amazon SageMaker API 操作にプライベートアクセスすることが可能です。VPC エンドポイントはすべての Amazon SageMaker API コールのエントリポイントとして機能するプライベート IP アドレスを使用したサブネット内の Elastic Network Interface です。 AWS […]

Read More

Amazon SageMaker MXNet 1.2 コンテナの発表

Amazon SageMaker の構築済み MXNet コンテナで、最新リリースの Apache MXNet 1.2 の使用を開始しました。  Amazon SageMaker は、開発者やデータサイエンティストが、機械学習モデルをあらゆる規模で、迅速かつ簡単に構築、トレーニング、デプロイできるようにする完全マネージド型プラットフォームです。  また、構築済み MXNet コンテナにより、深層学習スクリプトを自然に記述するのが容易になるととも、Amazon SageMaker における分散型のマネージドトレーニングやリアルタイムの製品ホスティングの活用も可能にします。 MXNet 1.2 には使いやすさ、より優れたパフォーマンス、強化された相互運用性などといった特徴があります。 また、この製品により、新しいインテル MKL-DNN との統合が追加され、コンボリューション、デコンボリューション、コンピューティングに最適化された C5 インスタンスのプールなどのニューラルネットワーク演算が高速化されます。拡張 FP16 のサポートにより、NVIDIA Volta V100 GPU 搭載の Amazon EC2 P3 インスタンスでの Tensor Core の混合精度トレーニングが高速化されます。最後に、MXNet 1.2 には、Open Neural Network Exchange の新しい形式 (ONNX) のモジュールが付属しているため、ONNX モデルを MXNet のシンボリックインターフェイスにインポートできます。 ONNX は PyTorch、Caffe2、Microsoft Cognitive Toolkit (CNTK)、Chainer、MXNet […]

Read More

自分で事前にトレーニングした MXNet または TensorFlow のモデルを Amazon SageMaker に導入する

Amazon SageMaker は、ML モデルをトレーニングおよびホストするための容易なスケーラビリティとディストリビューションを提供するだけでなく、モデルをトレーニングするプロセスとモデルのデプロイメントを分離するようにモジュール化されています。これは、Amazon SageMaker 以外でトレーニングされたモデルを SageMaker に導入してデプロイできることを意味します。すでにトレーニングを受けたモデルがあり、パイプライン全体ではなく SageMaker のホスティング部分だけを使用したい場合は、これは非常に便利です。また、これは自分のモデルをトレーニングしないが、事前にトレーニングされたモデルを購入する場合にも便利です。 このブログ記事では、TensorFlow または MXNet でトレーニングした自分のモデルを Amazon SageMaker にデプロイする方法について説明します。以下は、プロセス全体の概要です。 ステップ 1: モデル定義を、選択したフレームワークで記述します。 ステップ 2: モデルを、そのフレームワークでトレーニングします。 ステップ 3: モデルをエクスポートし、Amazon SageMaker が理解できるモデル成果物を作成します。 ステップ 4: モデル成果物を Amazon S3 バケットにアップロードします。 ステップ 5: モデル定義、モデル成果物、Amazon SageMaker Python SDK を使用して、SageMaker モデルを作成します。 ステップ 6: SageMaker モデルをエンドポイントとしてデプロイします。 モデルとは何か?、そしてどうすれば手に入るのか? トレーニングされたモデルファイルとは、単にトレーニングプロセスによって作成されたモデル成果物です。これには、モデルのすべてのパラメータの値と、モデルのアーキテクチャに関する追加のメタデータが含まれていて、これらのパラメータが互いにどのように接続されているかを示します。フレームワークが異なると、モデルファイルをエクスポートする方法も異なります。 TensorFlow TensorFlow のモデルは、トレーニングされた TensorFlow Estimator からエクスポートできます。モデルファイルは、Amazon SageMaker がそれを理解できるようにするためのプロトコルに従わなければなりません。 単純な TensorFlow Estimator […]

Read More

教師あり学習に Amazon SageMaker の Amazon Mechanical Turk を使用する

教師付き学習には、プロジェクトのトレーニング段階で、何が正しい答えかをアルゴリズムに教えるラベルまたはアノテーションが必要です。事実、MXNet 、TensorFlow 、および PyTorch を使った例の多くは、これらのフレームワークが持ついろんな機能を調べるのに利用するアノテーション付きデータセットから始めています。しかし残念ながら、例からアプリケーションに移行する際に、完全なアノテーションが付随するデータセットを簡単に入手できることはまずありません。このチュートリアルでは、Amazon SageMaker ノートブックの中から Amazon Mechanical Turk (MTurk) を使って、データセットのアノテーションを取得し、トレーニングに使用する方法を解説します。 TensorFlow では、ニューラルネットワーク識別子を使ってアイリス ( アヤメ ) を識別するのに、エスティメーターを利用するという例があります。この例も、SageMaker サンプルノートブックライブラリ、または GitHub の SageMaker Examples プロジェクトの中にあります。チュートリアルとサンプルノートの両方でアイリスデータセットを使用しています。これには、3 つの関連するアイリス種および関連する種の測定が含まれます。これらのデータポイントは、4 つの測定値に基づいてアイリスの種を予測するモデルをトレーニングするのに使用します。 左から右へ、Iris setosa ( 画像は Radomil 氏、CC BY-SA 3.0) 、Iris versicolor ( 画像は Dlanglois 氏、CC BY-SA 3.0) 、および Iris virginica ( 画像は Frank Mayfield 氏、CC BY-SA 2.0) 。 これは TensorFlow […]

Read More

【開催報告】Digital Advertising Japan Seminar 2018 – Machine Learning 事例祭り –

こんにちは。AWS ソリューションアーキテクトの八木達也 ( @ygtxxxx ) です。 7月23日に、「Digital Advertising Japan Seminar 2018 – Machine Learning 事例祭り –」を開催いたしました。 AWSジャパン主催でデジタル広告業界の方向けのイベントを開催するのは2年ぶりでしたが、定員60人のところ55名の方にお集まりいただき、盛況となりました。             このイベントは「Digital Advertising、AdTech 領域における Machine Learningの実践知」を「互いに学び合う」ことができる場を作ることを目標としていたため、AWSメンバーによるプレゼンテーションだけではなく、お客様プレゼンテーションを中心としたAGENDAを構成しました。機会学習という領域における、テクノロジー視点でのお取組み、組織育成視点でのお取組み、それぞれの視点で最先端な活動をなさる方々よりご登壇を頂きました。 まずは主催者の唐木/八木よりオープニングセッションを行いました。 唐木より全体の説明を行い、八木より「Machine Learning for Digital Advertising」というタイトルでプレゼンテーションを行いました。 Machine Learning for Digital Advertising 次に、アナリティクス スペシャリスト ソリューションアーキテクトの志村より「AWS ML Services Update」というタイトルでプレゼンテーションを行いました。 AWS ML Update ここから、お客様セッションに移りました。 まずは、SIGNATE inc. 代表取締役社長 CEO/CDO 齊藤 秀 様より「国内外AIコンペティションからみるAI技術者のキャリアパスの潮流およびAIコンペサイトSIGNATEにおけるAWS活用事例」というタイトルでプレゼンテーションを行って頂きました。 […]

Read More

TensorFlow コンテナと Amazon SageMaker での「独自のアルゴリズムの導入」を活用する、カスタムラベルの転移学習

データ科学者および開発者は、Amazon SageMaker の完全マネージド型機械学習サービスを使用して機械学習 (ML) モデルを構築およびトレーニングし、実稼働対応可能なレベルでホストされている環境に直接デプロイすることができます。 このブログ記事では、Amazon SageMaker を使用して、トレーニングと推論のための独自のコードで TensorFlow コンテナによる転移学習を行う方法を説明します。 転移学習は、追加のカスタムラベルのために AlexNet や ResNet[1] などの既にトレーニングされたニューラルネットワークを再トレーニングするためにコンピュータビジョンの問題で使用されるよく知られているテクニックです。また、Amazon SageMaker は、組み込みの画像分類アルゴリズムによる画像分類のための転移学習もサポートしており、独自のラベル付き画像データを使用して ResNet[1] ネットワークを再トレーニングすることもできます。Amazon SageMaker についての詳細は、この画像分類のドキュメントを参照してください。転移学習および関連するガイドラインをいつ使用するかを理解するには、こちらをご覧ください。 Amazon SageMaker の組み込みの画像分類アルゴリズムは幅広い種類の用途に適していますが、事前にトレーニングされたネットワークとそれがトレーニングされた画像データの異なる組み合わせが必要となる場合があります。たとえば、念頭に置いておくべき基準のいくつかは、元のデータセットと新しいデータセットの類似性、新しいデータセットのサイズ、必要なラベルの数、モデルの精度、トレーニングしたモデルのサイズ、そして再トレーニングに必要なコンピューティング能力の量などです。仮に、トレーニングしたモデルをハンドヘルドデバイスにデプロイしようとしているなら、MobileNet などのフットプリントが小さいモデルを採用する方が良いかもしれません。あるいは、コンピューティング効率がより良いモデルが欲しいなら、Xception のほ方が VGG16 や Inception よりも優れています。 このブログ記事では、ImageNet データセットで事前にトレーニングした inception v3 ネットワークを採用し、Caltech-256 データセット (Griffin、G. Holub、AD. Perona、P. The Caltech 256. Caltech Technical Report) を使用して再トレーニングします。Amazon SageMaker を使用すると、独自のコンテナをバンドルして Amazon Elastic Container Registry (Amazon ECR) にインポートするのが非常に簡単になります。あるいは、Amazon […]

Read More

Amazon SageMaker を使用して画像を分類する

イメージ分類と画像内の物体検出が最近注目されてきていますが、アルゴリズム、データセット、フレームワーク、およびハードウェアの機能の向上が組み合わさった結果です。こうした改良のおかげで技術が一般大衆化し、イメージ分類のためのソリューションが独自で作成できるようになったのです。 画像内の物体検出は、以下の画像が示すように、こうしたアクティビティを実行するアプリケーションの中でも最も重要な機能です。 人の進路と物体追跡 実際の店舗で、商品の再配置を警告する 視覚的な検索 (画像を入力して検索する) イメージ分類および物体検出に使う技術は、深層学習 (DL) に基づいているのが現状です。DL は、多層のニューラルネットワーク (NN) あるいはディープニューラルネットワークを処理するためのアルゴリズムに焦点を当てた機械学習 (ML) のサブ領域です。一方、ML は人工知能 (AI) のサブ領域で、コンピューターサイエンスの分野です。 誰でもこれらの技術にアクセスできますが、実際のビジネスプロセスをサポートするエンドツーエンドのソリューションとして、これらの要素をつなぎ合わせて使うことはまだ難しい状況です。Amazon Rekognition は、非常に正確な顔分析と画像や動画の顔認識ができるシンプルな API を装備しており、すぐに利用できるサービスなので、最初に選ぶならよい選択肢かもしれません。さらに、顔を検出、分析、比較することができるため、多岐にわたるユーザー検証、人数計算、公共の安全といったユースケースにも利用できます。Amazon Rekognition のドキュメントを読めば、シンプルな API 呼び出しでこれらの機能全てをアプリケーションに簡単に追加できることが分かります。 ただし、ビジネス上でカスタムでのイメージ分類が必要な場合は、機械学習モデルを作成するためのパイプライン全体をサポートするプラットフォームが必要です。Amazon SageMaker は、そのためのものです。Amazon SageMaker は、ML モデル開発の全ての手順、つまりデータ検索と構築、トレーニング、および ML モデルのデプロイをサポートする、完全マネージド型のサービスです。Amazon SageMaker を使用すると、どんなビルトインアルゴリズムでも選択でき使用することができるので、市場投入までの時間と開発コストを削減できます。詳細は、「Amazon SageMaker でビルトインアルゴリズムを使用する」をご参照ください。 カスタムの画像識別子を作成する このブログ記事は、服装品やアクセサリーを識別するための画像識別子の作成を目標としています。これらのアイテムの画像がいくつかあり、それらを見て、何の物体が各画像に含まれているかを言う (予測する) モデルが必要だとしましょう。Amazon SageMaker はすでにビルトインのイメージ分類アルゴリズムを装備しています。これで、データセット (画像コレクションと各オブジェクトのそれぞれのラベル) を準備し、モデルのトレーニングを開始するだけです。 公開データセットを使用します。これは Fashion-MNIST と呼ばれる ML アルゴリズムをベンチマークするための新しい画像データセットです。データセットは、6 万例のトレーニングセットと 1 万例のテストセットで構成されています。各例は、ラベルまたはクラスに関連付けられた、28×28 のグレースケール画像です。データセットには、T […]

Read More

Amazon SageMaker が、バッチ変換機能と TensorFlow コンテナ向けのパイプ入力モードを追加

数日前のニューヨーク Summit で、Amazon SageMaker の 2 つの新しい機能が始まりました。ペタバイトのデータに対して非リアルタイムシナリオで予測を行うことができるバッチ変換と呼ばれる新しいバッチ推論機能と、TensorFlow コンテナのためのパイプ入力モードのサポートです。SageMaker は大好きなサービスの 1 つであり、このブログや機械学習のブログで幅広く取り上げてきました。実際、SageMaker チームのインベーションの速いペースは、追いつくのが少し難しいです。SageMaker のハイパーパラメータ最適化による自動モデルチューニングに関する最後の記事以降に、このチームは 4 つの新しい組み込みアルゴリズムと多数の新機能を発表しています。それでは、新しいバッチ変換機能を見てみましょう。 バッチ変換 バッチ変換機能は、データを変換して推論を生成するための高性能かつ高スループットの方法です。これは、大量のバッチデータを扱う場合、1 秒未満のレイテンシーを必要としない場合、あるいはトレーニングデータを前処理して変換する必要がある場合に理想的です。何よりもよい点は?この機能を利用するために、わずか 1 行のコードを追加する必要さえありません。既存のモデルをすべて使用して、それらに基づいてバッチ変換ジョブを開始することができます。この機能は追加料金なしで利用でき、基盤となるリソースについてのみ支払うことになります。 物体検出アルゴリズムでこれをどうやって行うのかを見てみましょう。サンプルのノートブックに従って、物体検出モデルのトレーニングを行いました。それでは、SageMaker コンソールに移動し、バッチ変換サブコンソールを開きます。 そこから、新しいバッチ変換ジョブを開始することができます。 ここで、自分の変換ジョブに名前をつけ、使用するモデルを選択し、使用するインスタンスの数とタイプを選択することができます。さらに、同時に推論に送信するレコードの数とペイロードのサイズに関する詳細を設定することができます。これらを手動で指定しないと、SageMaker がいくつかの適切なデフォルトを選択します。 次に、入力の場所を指定する必要があります。マニフェストファイルを使用するか、S3 の場所にあるすべてのファイルをロードするだけです。ここでは画像を扱っているので、入力のコンテンツタイプを手動で指定しました。 最後に、出力の場所を設定してジョブを開始します! ジョブが実行されると、ジョブの詳細ページを開いて、Amazon CloudWatch のメトリクスとログへのリンクをたどることができます。 ジョブが実行中であることがわかります。S3 で結果を確認すると、それぞれの画像について予測されるラベルが表示されます。 変換は、検出した物体を含む入力ファイルごとに 1 つの出力 JSON ファイルを生成しました。 ここから、AWS Glue でバケットのテーブルを作成し、Amazon Athena で結果を照会するか、Amazon QuickSight で視覚化するのは簡単です。 もちろん、これらのジョブを SageMaker API からプログラムで開始することも可能です。 自分のコンテナでバッチ変換を使用する方法についての詳細は、ドキュメントに説明があります。 TensorFlow のためのパイプ入力モード パイプ入力モードでは、高度に最適化されたマルチスレッドバックグラウンドプロセスを使用して、Amazon Simple Storage […]

Read More

Amazon SageMaker を使用して、整形外科的病理を予測するためのモデルを作成する

人工知能 (AI) および機械学習 (ML) の分野は、ヘルスケア産業、特に医用画像化において、勢いを増しつつあります。ML に対する Amazon SageMaker のアプローチは、ヘルスケア分野において将来有望であると言えます。ML は、産業間全体のどの分野においても、適用可能であると考えられています。ヘルスケア分野の範囲で言えば、ML は最終診断を下すための重要な要素として、放射線検査または検査報告のような役割を果たすことが可能なのです。 このブログ投稿では、UCI ML Dataset を使用して、整形外科における ML の使用について説明し、脊椎の病状予測を自動化することを目指します。この技術は、診断時間を短縮し、ML を用いた拒絶選択肢技術を促すことによって、診察訪問数および / または処方数を最小限に抑える対策について考えるよい機会となるでしょう。 この技術により、難しい症例は整形外科医などの専門家に委ねられることになるでしょう。データセットの 2 つの診断である、椎間板ヘルニアおよび脊椎すべり症は、筋骨格疼痛障害を引き起こしうる脊髄病変の 1 つです。疼痛障害のためのオピオイド処方を最小限に抑えるため、リスクにさらされている患者を客観的かつ効果的に特定し治療を行うことのできる ML 技術を駆使することで、コンピュータ支援診断システムに可能性を見出すことができるのです。 このブログの記事では、これらのデータセットをダウンロードして、脊柱の特徴または特性に基づいて、正常または異常な整形外科的あるいは脊髄の病状 (ヘルニアまたは脊椎すべり症) を有するかどうかを予測するための例を提示しています。これらの病状の特性を考慮する予備診断ツールは、高い偽陽性率を有します。MRI は、腰椎椎間板ヘルニアの抑制を検出するのに使用しますが、この技法では ~ 33% の偽陽性率を有します。診断に用いる脊髄ブロック (注射) は、22% から 47% の偽陽性率があります。(注: これを ML モデルを評価する際のベースラインとして使用します)。 これらのデータセットは、マルチクラスおよびバイナリ分類問題の両方を提示します。 病理予測のための Amazon SageMaker での ML モデルの作成 この投稿では、マルチクラスのカテゴリ分類モデルとバイナリ分類モデルという 2 つのモデルを作成し、両方を評価します。マルチクラスのカテゴリ分類は、正常、椎間板ヘルニア、または脊椎すべり症の病状を有するかどうかを予測します。バイナリ分類はバイナリ応答を予測します。0 – 正常、または 1 – […]

Read More

Amazon SageMaker ハンズオン開催報告とシナリオ公開のお知らせ

(この記事は2018年7月17日に公開したあと、7月31日にシナリオが更新されたので追記しました) みなさん、こんにちは。アマゾン ウェブ サービス ジャパン、プロダクトマーケティング エバンジェリストの亀田です。 2018年7月3日にAmazon SageMaker ハンズオンを弊社目黒オフィスで開催しました。講師は弊社ソリューションアーキテクトの志村と鮫島がお届けさせていただきました。 その時の資料が公開され、ご自宅でもハンズオンを楽しんでいただくことができるようになりましたのでお知らせいたします。 Amazon SageMaker 紹介 & ハンズオン(2018/07/03 実施) Amazon SageMaker 紹介 & ハンズオン(2018/07/25 実施) (2018年7月31日、シナリオが新しく更新されました) 57ページからがハンズオンの資料となっています。SageMakerはその学習モデルの開発においてJupyter Notebookを使用します。このため、ハンズオンではあらかじめ用意されたJupyter Notebookの内容に従って作業を進めて行く形態をとっています。中身はDeep Learningですので、慣れてない方からすると、すべてを理解いただくのが大変な一方で、ハンズオンの完走自体は非常に簡単に行っていただけるような工夫がされています。 最後に自分のマウスで書いた手書きの文字を判別する実習を行ってハンズオンは終了となります。 またSageMakerは非常に頻繁にアップデートがかかっています。 https://aws.amazon.com/jp/blogs/news/category/artificial-intelligence/sagemaker/ 2018年6月1日東京リージョンでの一般提供開始以降に対応した主なアップデートが以下です。 トレーニングジョブのクローン作成機能 自動モデルチューニングにおけるハイパーパラメーターチューニングに対応 PyTorch と TensorFlow 1.8 のサポート AWS PrivateLink を使用した Amazon Virtual Private Cloud (VPC) エンドポイントをサポート BlazingText において、キスト分類 (教師ありモード) と Word2Vec ベクトル学習 (Skip-gram、CBOW、batch_skipgram モード) […]

Read More