Amazon Web Services ブログ

Category: SageMaker

AWS のディープラーニングを使い、自然災害による損害賠償を軽減する

2017 年のサンタローザ火災やハリケーンハーベイのような自然災害は、毎年何百億 USD もの損害賠償をもたらし、住宅所有者の生活において経済的混乱を招きました。保険会社は影響を受けた家屋を評価するために最善を尽くしますが、評価を開始するまでに数週間かかることもあり、それでようやく家屋を修復し保護することができます。 プロパティデータ分析会社である EagleView 社 は、  AWS における ディープラーニング に取り組んでいます。 EagleView 社のデータサイエンスと機械学習の指導者である Shay Strong は、「通常、保険会社は所有物損害の評価のために損害査定人を派遣するが、その地域が浸水したり、アクセスできないために、対応するのに数週間かかる場合があります。「EagleView 社は、衛星、航空写真、無人機の画像を使い、AWS Cloud でディープラーニングを実行し、24時間以内に損害賠償を正確に評価します。住宅所有者に情報を提供し、次の段階へ準備を迅速に行うために、データを大手保険保険会社や小規模な地域の保険会社の両方に提供しています。 多くの場合、この迅速な処理により、損害賠償において数百万 USD を節約することができます。フロリダ州のハリケーンアーマーからの洪水の際、クライアントはこのタイムリーなデータを使用して、防水シートで家屋の一部を覆い、二次的な水害を防ぐことをできるようにしました。 損害査定人による不動産評価の精度と一致させるために、EagleView 社は嵐の影響を受けた地域の多次元空間 (空間、時間、スペクトル) 全てをカバーする豊富な画像セットを使用する必要があります。この課題を解決するため、EagleView 社は米国全土で、120 台以上の航空機を使用して 1 インチ以下の解像度で撮影します。ディープラーニング画像分類器、オブジェクト検出器、およびセマンティックセグメンテーションアーキテクチャを実行するために、画像を小さな画像タイル(しばしば区画固有のタイルまたは一般的な 256×256 TMS タイル)に分解します。各画像タイルは、対応する地理空間および時間座標と関連付けることができ、追加のメタデータとして保持され、学習プロセスおよび推論プロセスを通じて維持されます。推論後、地理空間データを使用してタイルが貼り合わされて、ニューラルネットワーク予測を含む、関心領域の情報を地理登録したマップを形成することができます。予測は、AWS Cloud で管理されている永続ストレージ用のプロパティレベルのデータベースに集約することもできます。 以下の図は、2017 年のハリケーンハーベイ後のテキサス州ロックポートの一部で、EagleView 社のディープラーニングモデルによる損傷予測の精度を示しています。左の画像の緑色の箇所は、人間の分析結果による壊滅的な構造的損傷が発生する土地を示します。右側の画像のピンクの箇所は、モデルが作成したセグメント化した損傷予測です。このデータの場合、モデルは人間の分析と比較してアドレス当たり 96 % の精度を持ちます。 「暫定的な前処理能にディープラーニングを使い、アドレスレベルの属性を生成する前に画像が良好であるかどうか (たとえば、曇っていないか、ぼやけていないかなど)、また画像に関心のある適切な土地が含まれているかどうかを見極めます。我々は中間神経網を鎖状につないで、画像を前処理して、土地属性を生成するニューラルネットの効率と精度を向上させています。」と Strong 氏は付け加えています。 EagleView 社は、Apache MXNet フレームワークを使用してディープラーニングモデルを構築しました。モデルは、 AWS 上の Amazon EC2 P2、P3、およびG3 GPU […]

Read More

Amazon SageMaker ノートブックインスタンスのネットワーク設定と高度なルーティングオプションについて理解する

Amazon SageMaker ノートブックインスタンスは、完全マネージド型の機械学習 (ML) Amazon EC2 インスタンスを通じて、Jupyter ノートブックアプリケーションを提供します。Amazon SageMaker Jupyter ノートブックは、高度なデータ探索、トレーニングジョブの作成、Amazon SageMaker ホスティングへのモデルのデプロイ、モデルのテストや検証に使用されます。 ノートブックインスタンスには、さまざまなネットワーク設定が用意されています。このブログ記事では、さまざまなオプションの概要を説明するとともに、お客様の一般的な事例を紹介していきます。 ベーシック Amazon SageMaker ノートブックインスタンスは、Virtual Private Cloud (VPC) がアタッチされているかどうかにかかわらず起動できます。VPC をアタッチして起動すると、ノートブックは、直接インターネット接続ありまたはなしで設定することができます。 重要な注意事項: 直接インターネット接続があるとは、Amazon SageMaker サービスが、サービスによって管理される VPC を通じて、ノートブックをインターネットに接続できるネットワークインターフェイスを提供していることを意味します。 Amazon SageMaker コンソールを使用する際、次の 3 つのオプションがあります。 お客様の VPC のアタッチなし。 お客様の VPC のアタッチあり (直接インターネット接続あり)。 お客様の VPC のアタッチあり (直接インターネット接続なし)。 それはどういう意味ですか? 3 つのオプションはそれぞれ、マネージド EC2 インスタンスのネットワークインターフェイスを一連のルーティング設定で自動的に設定します。特定の状況では、これらの設定を変更して、特定の IP アドレスの範囲を別のネットワークインターフェイスにルーティングすることができます。次に、これらのデフォルト設定をそれぞれ順を追って説明します。 アタッチしたお客様の VPC なし […]

Read More

Amazon SageMaker のバッチ変換が Amazon VPC および AWS KMS に基づく暗号化をサポート開始

Amazon SageMaker が、Amazon Virtual Private Cloud (Amazon VPC) での AWS Key Management Service (AWS KMS) を使用するバッチ変換ジョブのサポートを開始します。Amazon VPC を使用すると、機械学習 (ML) モデルのコンテナやデータへのアクセスをコントロールし、それらをプライベートに保ってインターネット経由でアクセスできないようにすることができます。AWS KMS を使用すると、バッチ変換ジョブを実行する ML コンピューティングインスタンスにアタッチされたストレージボリュームのデータを暗号化できます。これにより、バッチ変換ジョブで使用されるモデルのアーティファクト、ログ、および一時ファイルは常に安全です。このブログでは、こうした機能をバッチ変換ジョブに適用する方法を説明します。 Amazon SageMaker のバッチ変換は、データのバッチが大量にあり、トレーニングデータを前処理して変換する必要があるか、レイテンシーが 1 秒未満であることを必要としないシナリオに最適です。バッチ変換は、ペタバイトのデータから非常に小さなデータセットまで、さまざまなデータセットで使用できます。既存の機械学習モデルは、一切の変更なしで、この新しい機能でシームレスに動作します。Amazon SageMaker は、バッチ変換ジョブの開始時にリソースのプロビジョニングを管理します。ジョブが完了するとリソースが解放されるので、ジョブの実行中に使用されたリソースに対してのみを支払うことになります。 VPC を使用すると、プライベートでインターネットに接続されないように VPC を設定できるため、データやモデルアーティファクトを保存する Amazon S3 バケットなど、アクセスするモデルコンテナや AWS リソースを保護することができます。VPC を使用する場合、VPC フローログを使用して、モデルコンテナ内外のすべてのネットワークトラフィックを監視することもできます。VPC を指定しない場合、Amazon SageMaker はデフォルトでは VPC でバッチ変換ジョブを実行します。 Amazon SageMaker のバッチ変換は、すでに Amazon S3 SSE による入出力データの暗号化をサポートしています。現在は、AWS KMS を使用すると、バッチ変換ジョブで使用するストレージボリュームを、管理する暗号化キーで保護できます。推論を実行したり、データのバッチを変換したりするときに、集中キー管理、キー使用状況監査ログ、マスターキーローテーションなどの […]

Read More

Apache MXNet を Amazon SageMaker および AWS Greengrass ML Inference と共に使用する脳組織のセグメント化 – パート 2

 このブログ記事のパート 1 では、Amazon SageMaker を使用した簡単で合理的な方法によって、MRI スキャンから脳組織を自動的にセグメント化するためにニューラルネットワークをトレーニングおよびデプロイする方法を説明しました。パート 1 では、「Bring Your Own Script」というパラダイムを使用して、Amazon SageMaker で畳み込みニューラルネットワーク (CNN) をトレーニングするために Apache MXNet を使い、U-Net と効率的で低レイテンシーの ENet の 2 つのネットワークをトレーニングしました。パート 2 では、AWS Greengrass ML Inference を使用して、接続性が低い、または接続のない環境で、オフライン推論用のポータブルエッジデバイスに ENet をデプロイする方法を説明していきます。 このユースケースでは、医療画像を保護医療情報 (PHI) ではなく未処理画像として取り扱っていますが、以下の点に注意してください。 AWS Greengrass は、この記事の執筆時点では AWS HIPAA 準拠サービスではありません。AWS Business Associate Addendum (BAA) に従って、AWS Greengrass は、米国の医療保険の携行と責任に関する法律 (HIPAA) における保護医療情報 (PHI) の作成、受信、維持、送信に使用してはなりません。HIPAA の対象であるかどうかを判断する責任はお客様にあります。対象である場合は、HIPAA とその実施規則をどのように遵守するのが最適であるかを判断する必要があります。HIPAA 準拠サービスを使用して […]

Read More

Amazon SageMaker Neural Topic Model で、補助語彙チャンネル、新しいトピック評価メトリクス、およびトレーニングサブサンプリングのサポートを開始

このブログ記事では、Amazon SageMaker Neural Topic Model (NTM) の 3 つの新機能をご紹介します。これらの新機能では、ユーザーの生産性を向上し、トピック評価機能を強化し、さらにはモデルトレーニングのスピードアップに貢献しています。これらの新機能に加えて、スパース (疎) 処理とパラメータサーバーを最適化することで、アルゴリズムの速度をトレーニングに 2 倍、単一 GPU 上での評価に 4 倍向上させました。マルチ GPU トレーニングでは、さらなるスピードアップが可能です。 Amazon SageMaker NTM は、大量の文書集合 (コーパス) のトピック分布を学習する、教師なし学習アルゴリズムです。SageMaker NTM を使用して、文書分類、情報検索、コンテンツの推奨といったユースケースのための機械学習ソリューションを構築できます。Amazon SageMaker NTM についてもっと知りたい方は、Introduction to the Amazon SageMaker Neural Topic Model をご参照ください。 機械学習をよく知らない、あるいは他のタスクに専念したいという方には、完全自動化した Amazon Comprehend トピックモデリング API が最適です。データサイエンスの専門家の方で、ご自身のトピックモデルの構築やチューニングのさまざまなレイヤーをもっと細かく制御したい場合には、Amazon SageMaker NTM がぴったりです。例えば、カスタマイズした語彙を必要とするドキュメントトピックタグ付けアプリケーションを構築していて、ニューラルネットワークのレイヤー数などのアルゴリズムハイパーパラメータを調整する必要があるとしましょう。Amazon SageMaker NTM なら、一貫性および一意性スコアの目標精度を満たすトピックモデルをトレーニングすることができます。このような場合には、Amazon SageMaker NTM は適切なツールでしょう。 補助語彙チャネル トピックモデルをトレーニングする際に、顧客がトピックの内容を理解できるよう、各トピックのトップワードを知ることが重要です。Amazon […]

Read More

Amazon SageMaker でより速いパイプモードを使用してモデルのトレーニングを高速化する

Amazon SageMaker には現在、より高速のパイプモードが実装されているため、機械学習モデルをトレーニングしながら、Amazon Simple Storage Service (S3) から Amazon SageMaker へのデータのストリーミング速度を大幅に高速化することができます。 パイプモードは、モデルトのレーニングを開始する前に、ローカルの Amazon Elastic Block Store (EBS) ボリュームにデータをダウンロードするファイルモードよりも大幅に優れた読み取りスループットを提供します。つまり、トレーニングジョブがより早く始まり、迅速に完了し、必要なディスク容量が少なくて済み、Amazon SageMaker で機械学習モデルをトレーニングするための全体的なコストが削減されることを意味します。たとえば、Amazon SageMaker の組み込みアルゴリズム用パイプ入力モードを開始した今年の早い時期に、内部ベンチマークを実施しました。その結果、78 GB のトレーニングデータセットで開始時間が最大 87% 短縮されたことが分かりました。さらに、一部のベンチマークではスループットが 2 倍に向上し、合計トレーニング時間が最大 35% 短縮されることが分かりました。 概要 Amazon SageMaker は、トレーニングデータを転送するために、ファイルモードとパイプモードの 2 つのメカニズムをサポートしています。ファイルモードでは、トレーニングデータは、トレーニングを開始する前に、まずトレーニングインスタンスに添付された暗号化された EBS ボリュームにダウンロードされます。しかし、パイプモードでは、入力データは実行中にトレーニングアルゴリズムに直接ストリームされます。この連続的なデータのストリーミングによって、いくつかの大きな利点がもたらされます。まず、トレーニングジョブの起動時間が入力データのサイズとは無関係になり、特にギガバイトおよびペタバイトの規模のデータセットでのトレーニングでは、起動がはるかに迅速になります。さらに、大きなデータセットをダウンロードするために大容量のディスクボリュームの使用料を支払う必要がありません。最後に、トレーニングのアルゴリズムで I/O の負荷が大きい場合、パイプモードで採用されている並行性の高い高スループットの読み取りメカニズムにより、モデルのトレーニングが大幅にスピードアップされます。 より速いパイプモードでより高い I/O スループット パイプモードの最新の実装は、以前よりも高いデータストリーミングのスループットを実現しています。次の図は、今年初めにパイプモードのサポートを開始したときと比較した、パイプモードでのスループットの向上を示しています。同一条件での比較では、ストリーミングスループットの数値は、Amazon SageMaker のトレーニングでサポートされているインスタンスタイプで測定したファイルモードのスループットの数値に対するベースラインに基づいています。 ご覧のように、パイプモードを使用してトレーニングデータをストリーミングすると、以前の場合よりも最大で 3 倍高速になることがあります。パイプモードのサポートは、Amazon SageMaker の組み込みアルゴリズムですぐに使用できるように用意されています。ここでは、独自のカスタムトレーニングアルゴリズムを Amazon SageMaker に導入する場合に、パイプモードを活用する方法の例を紹介します。 パイプモードのトレーニングコードを書く […]

Read More

Amazon SageMaker ノートブックインスタンスで一般的なワークフローを使用する方法

 Amazon SageMaker ノートブックインスタンスは、データサイエンスや機械学習を行うためのスケーラブルなクラウドベースの開発環境を提供します。このブログ記事では、より生産性が高く、効果的な一般的ワークフローを紹介します。 このブログ記事で紹介するテクニックは、使い捨てと交換が可能であることを念頭におく、よりクラウドネイティブな方法でノートブックインスタンスを扱うツールとなります。以下を説明します。 まず、協調型の開発のために GitHub および AWS CodeCommit を使用する方法を示します。 次に、AWS CloudFormation を使用して、ノートブックインスタンスを自動的にプロビジョニングし、jupyter ノートブックをアップロードする方法を示します。 3 番目に、Amazon S3 バケットを使用してノートブックインスタンスからアセットをバックアップおよび復元する方法を示します。 チュートリアル Git によるコラボレーション ノートブックインスタンスは、1 人の開発者が 1 つのインスタンスに割り当てられている場合が最適な使用です。ただし、データサイエンティストはしばしば協調型の環境で作業をします。Git は、複数のコントリビュータがバージョン管理されたコードリポジトリに書き込むことを可能にするツールです。複数の開発者/データサイエンティストがそれぞれのノートブックインスタンスで作業し、リモートリポジトリからコードをプルし、変更をそのリポジトリにプッシュ (またはコミット) することができます。AWS CodeCommit と GitHub は、リモート Git リポジトリを配置することができる 2 つの場所です。 CodeCommit CodeCommit リポジトリで作業するには、Amazon SageMaker コンソールを開き、次の手順に従います。 SageMaker インスタンスのロール設定 AWS コンソールにログインします。 検索バーに「sagemaker」と入力し、sagemaker コンソールを開きます。 左側のメニューでノートブックを選択し、ノートブックを選択します (または最初に作成します)。 [IAM role ARN] の下のリンクをクリックします。 [Permissions] タブで、[attach […]

Read More

Amazon SageMaker と AWS Deep Learning AMI で PyTorch 1.0 プレビューが利用できるようになりました

Amazon SageMaker と AWS Deep Learning AMI (DLAMI) が、PyTorch 1.0 プレビューリリースを簡単に評価する手段を提供できるようになりました。PyTorch 1.0 は、PyTorch の人気が急騰する理由となった使いやすさを維持したまま、研究から本番にシームレスに移行する機能を追加します。AWS Deep Learning AMI には、高速コンピューティングインスタンスを活用するための CUDA と MKL のライブラリと共に、PyTorch 1.0、Anaconda、および Python のパッケージが事前構築されています。Amazon SageMaker は、あらゆる規模の機械学習 (ML) モデルを迅速かつ容易に構築、訓練、調整、およびデプロイするためのエンドツーエンドプラットフォームです。そして今、Amazon SageMaker は、お客様が PyTorch 1.0 を使って、自動モデルチューニングを含むすべての SageMaker 機能を活用できるように、PyTorch 1.0 プレビューを備えた事前構築済みの環境を提供するようになりました。 PyTorch は、研究と実験に最適なオープンソースの深層学習フレームワークです。しかし、開発者の最大の課題のひとつは、PyTorch で作成したモデルを使って、それらを大規模な本番環境で実行することでした。PyTorch は、その使いやすさ、命令型スタイル、シンプルな API、そして柔軟性で開発者の人気を急速に得ましたが、モデル探索から本番への移行には、フリージンググラフなど、反復的であるがゆえに時間がかかる追加の作業が必要です。PyTorch 1.0 は、深層学習フレームワークに研究から本番にシームレスに移行する機能を実現します。 Amazon SageMaker 内に事前構築された PyTorch 環境によって、開発者とデータ科学者は、単一の API コールを使ってそれぞれのスクリプトを指定して、ローカルで訓練、または分散型トレーニングジョブを送信することができます。開発者はまた、二番目の API コールを使って、需要の必要性に応じて自動的にスケールアップまたはスケールダウンできる管理された高可用性のオンラインエンドポイントに PyTorch で訓練されたモデルをデプロイできるようにもなりました。開発者は、異なるバージョン向けに単一のパラメータを変更することによって、PyTorch […]

Read More

Apache MXNet を Amazon SageMaker および AWS Greengrass ML Inference と共に使用する脳組織のセグメント化 – パート 1

医療画像のアノテーションとセグメンテーションは、困難な作業ですが深層学習 (DL) 技術によって部分的に自動化することができます。こうした手法は、画素レベルで画像を分類することを目的とする一般的なセグメンテーションタスクにおいて最先端の結果を達成しています。 このブログ記事のパート 1 では、Amazon SageMaker を使用する簡単で合理的な方法で、MRI スキャンから脳組織を自動的にセグメント化するためにニューラルネットワークをトレーニングおよびデプロイする方法を紹介します。Apache MXNet を使って、「Bring Your Own Script」のパラダイムを採用する Amazon SageMaker で畳み込みニューラルネットワーク (CNN) をトレーニングします。U-Net と効率的で低レイテンシーの ENet の 2 つのネットワークをトレーニングします。パート 2 では、AWS Greengrass ML Inference を使用して、低接続または非接続の環境でのオフライン推論用のポータブルエッジデバイスに ENet をデプロイする方法を見ていきます。 この記事ではこのアプローチを脳の MRI に適用しますが、一般的なセグメンテーションの手法として、X 線の分析などの類似のユースケースに適用できます。 このブログ記事では、高レベルの概要を紹介します。完全なチュートリアルのノートブックについては、GitHub にある Amazon SageMaker の脳セグメンテーションを参照してください。 このブログ記事の最後で、ここに示すように MRI からの脳組織のセグメンテーションを予測します。 このユースケースでは、医療画像を保護医療情報 (PHI) ではなく未処理画像として取り扱っていますが、以下の点に注意してください。 AWS Greengrass は、この記事の執筆時点では AWS HIPAA 準拠サービスではありません。AWS Business Associate […]

Read More

Amazon SageMaker 自動モデルチューニングによる高精度なモデル、高速化

Amazon SageMaker では、このほど、機械学習モデルのハイパーパラメータ値を自動的に調整することで、より正確な予測を生成できる機能をリリースしました。ハイパーパラメータは、トレーニング中にアルゴリズムがどのように動作するかを示すユーザー定義の設定です。例としては、データを繰り返し処理する毎に、決定木のサイズを拡張する方法、セグメンテーションで必要なクラスタの数やニューラルネットワークの重み付けを更新する方法などがあります。 機械学習モデルに適したハイパーパラメータ値を選択することは、最終的な精度とパフォーマンスに大きな影響を与える可能性があるため重要です。しかしながら、ハイパーパラメータ値を設定するプロセスは難しい場合があります。正しいやり方はデータによって異なります。アルゴリズムによっては、調整が可能なさまざまなハイパーパラメータがあります。一部のハイパーパラメータは、選択した値に対して他のパラメータよりも敏感に反応します。ほとんどの場合、モデルフィットとハイパーパラメータ値の間には非線形の関係があります。 ハイパーパラメータ値を選択するためのさまざまな方策があります。一部のサイエンティストは、ドメイン知識、経験則、直感、または手動の実験を活用します。他のサイエンティストは力まかせ探索を使用します。いくつかのメタモデルを構築して、どのようなハイパーパラメータ値がうまくいくか予測します。このアプローチの詳細については、Shahriari et alを参照してください。(2016) 方法にかかわらず、ハイパーパラメータ値の選択によっては、新たな機械学習の問題を解決するための特殊なスキルセットを必要になる場合があります。 Amazon SageMaker 自動モデルチューニングを使えば、この作業が容易になります。 ガウス過程回帰 (Gaussian Process regression) を使用して、どのパラメータ値がフィットを改善するのに最も効果的かを予測します。また、ベイズ最適化を使用して、ハイパーパラメータの領域の探索と特定のハイパーパラメータ値の利用が適切な場合にバランスをとることができます。また、重要なポイントとして、Amazon SageMakerの組み込みアルゴリズム、あらかじめ構築された詳細な深層学習フレームワーク、独自アルゴリズムコンテナを使って、自動モデルチューニングを使用することができます。 本ブログ記事では、Amazon SageMakerでハイパーパラメータチューニングを実行し、2つの方法を比較する方法を紹介します。つまり、自動モデルチューニングとランダム検索です。 単純に無作為に選んだハイパーパラメータ値は、最終的なフィットとそれに到達するために必要なジョブの数の両方に適したベースラインとしてしばしば利用できます。最先端の方法にも匹敵する方法です。 問題の概要 本記事では、全体的なアプローチについて説明します。 詳細と完全なステップバイステップの使い方については、対応する例・ノート。 使用するデータセットは、一般的なコンピュータビジョンベンチマークである CIFAR-10 画像データセット。 これは、60K 32×32 ピクセルのカラー画像 (50K トレイン、10Kテスト) で構成され、10 クラスに均等に分散しています。そのサイズは、ダウンロードするには十分に小さく、1つのインスタンスでトレーニングを行います。しかし、さまざまなアプローチの違いがハイライトされるので難しい作業です。 私たちは、Amazon SageMaker MXNetコンテナを使用して、ResNet-34 畳み込み画像分類ニューラルネットワークをトレーニングし、確率的勾配降下を使用してネットワークの重みを見つけます。すべてのジョブ実行に対して、単一の ml.p3.8xlarge インスタンスで、エポックを 50、ミニバッチサイズを 1,024 に修正します。私たちの目標は、ハイパーパラメータのチューニングを通してホールドアウトによる分類精度を向上させる方法と、各チューニング方法がどのように機能するかを示すことです。 この例をエンドツーエンドで実行すると約 400 USD の費用がかかります。 トレーニング 一度デフォルトのハイパーパラメータ値を使って、シンプルにモデルをトレーニングしてみましょう。 確率的勾配降下 (SGD) を使用して畳み込みニューラルネットワーク (CNN) をトレーニングしています。これは、トレーニング損失を改善するネットワーク重みを変更する方向を見つけることでトレーニング損失を最小限に抑える方法です。SGD はその方向の重みを少し更新して繰り返します。これらの3つのハイパーパラメータに焦点を当てます : learning_rate: 重みに対して行う更新の大きさを制御します。 momentum: 前回の更新の方向からの情報を使い、現在の更新を知らせます。 デフォルト値 0 は、現在のバッチ内の情報のみに基づいて重みの更新が行われることを意味します。 wd: […]

Read More