Amazon Web Services ブログ

Category: Artificial Intelligence

keras-logo

Amazon SageMaker で簡単に Keras を使う方法

Amazon SageMaker は、すべての開発者とデータサイエンティストに機械学習モデルの構築、トレーニング、デプロイの手段を提供する AWS のマネージドサービスです。SageMaker は深層学習の主要なフレームワークをサポートしており、TensorFlow、Apache MXNet、PyTorch、Chainer などを用いてモデルを記述することができます。また、TensorFlow や MXNet をバックエンドとした Keras の高レベルな API を用いることで、モデルを簡単にすばやく作成することもできます。 これまで、Keras で書いたコードを SageMaker 上で動かす方法について、多くのお客様からご質問を頂いておりました。2018年12月に、SageMaker の TensorFlow ならびに MXNet のコンテナに、それぞれのフレームワークをバックエンドとする Keras がデフォルトでインストールされました。また両コンテナでは Script Mode をサポートしているため、SageMaker 外で開発した Keras のコードに、わずかな修正を加えるだけで動かすことができるようになりました。ここでは Keras 公式サンプルコードの mnist_cnn.py をなるべくそのまま利用して、SageMakerのTensorFlowとMXNetコンテナで実行する方法をご説明します。   TensorFlow Backend での Keras の使い方 トレーニングスクリプトの修正 AWS のマネージドコンソールから SageMaker ノートブックインスタンス (Jupyter/JupyterLab) を開き、Keras のリポジトリをクローンします (このブログのようにノートブックインスタンスの作成時に関連付けることも可能です)。keras/examples/mnist_cnn.py の中で以下の3点を修正します: 学習からモデルの保存までを train(args) 関数として定義します。ここでは次の手順で読み込む args […]

Read More

AWS がエッジデバイスの ML 展開を加速するオープンソースの Neo-AI プロジェクトをロンチング

 re:Invent 2018 で、Amazon SageMaker Neo が発表されました。機械学習モデルを一度トレーニングすると、クラウドおよびエッジ内ではどこでも実行できる新しい機械学習機能です。今日、私たちは Apache Software License の下でオープンソースの Neo-AI プロジェクトとしてコードを公開しています。このリリースでは、プロセッサベンダー、デバイスメーカー、および深層学習の開発者が、機械学習における新しい独自のイノベーションをさまざまなハードウェアプラットフォームにすばやく取り入れることができます。 通常、開発者は各プラットフォームのハードウェアおよびソフトウェア構成に合わせて、モデルを手動で調整する必要があるため、複数のハードウェアプラットフォームに対して機械学習モデルを最適化することは困難です。コンピューティング能力とストレージが制約される傾向があるエッジデバイスにとっては、特に困難です。これらの制約により、実行できるモデルのサイズと複雑さが制限されます。そのため、最高のパフォーマンスを得るために、開発者が手動でモデルを調整するのに数週間または数ヶ月かかります。調整プロセスには、最適化手法に関する稀な専門知識とハードウェアに関する深い知識が必要です。それでも、優れたツールをすぐに利用できないため、優れたパフォーマンスを得るには、通常、かなりの試行錯誤が必要となります。 ソフトウェアの違いにより、この作業はさらに複雑になります。デバイス上のソフトウェアがモデルと同じバージョンでない場合、モデルはデバイスと互換性がありません。これにより、開発者は自分のモデルのソフトウェア要件と完全に一致するデバイスのみに制限するようになります。 したがって、機械学習アプリケーションをすばやく構築、拡張、および維持することは非常に困難です。 Neo-AI は、TensorFlow、MXNet、PyTorch、ONNX、および XGBoost モデルを自動的に最適化して、最大元のモデルの 2 倍速で正確性を損なうことなく実行できます。これにより、複数プラットフォームへ展開する機械学習モデルの調整に必要な時間と労力を省きます。さらに、ソフトウェアの互換性の問題を排除するために、モデルを効率的な共通フォーマットに変換します。ターゲットプラットフォームでは、コンパクトなランタイムによって通常のフレームワークが消費するリソースのごく一部を使用します。最適化を簡素化にすることによって、Neo-AI は洗練されたモデルがリソースに制約のあるデバイス上で動作することを可能にします。また、そこで自律走行車、ホームセキュリティ、および異常検出などの分野におけるイノベーションを引き出します。Neo-AI は現在、Intel、NVIDIA、および ARM のプラットフォームをサポートしており、Xilinx、Cadence、および Qualcomm のサポートも近日中に開始する予定です。 Neo-AI は、主要な機械学習コンパイラであり、LLVM や Halide など従来のコンパイラテクノロジーに関する、数十年にわたる研究に基づいて構築されたランタイムです。Neo-AI コンパイラには、ワシントン大学で開始したオープンソース研究プロジェクトの TVM と Treelite に対する修正が含まれています。今日の Neo-AI プロジェクトを通じて AWS コードをオープンソースにリリースすることで、開発者はプロダクショングレードの Neo コンパイラとランタイムをイノベーションすることができます。Neo-AI プロジェクトは、AWS、ARM、Intel、Qualcomm、Xilinx、Cadence などを含め、複数の組織によって進められます。 Neo-AI プロジェクトと連携することで、モデルのパフォーマンス向上に最大の効果を発揮する時点で、プロセッサベンダーはカスタムコードをコンパイラにすばやく統合できます。このプロジェクトにより、デバイスメーカーは、デバイス特定のソフトウェアおよびハードウェアの構成に合わせて Neo-AI ランタイムをカスタマイズすることもできます。Neo-AI ランタイムは現在、ADLINK、Lenovo、Leopard Imaging、Panasonic などのデバイスに導入されています。Neo-AI プロジェクトは、さまざまなソースによるイノベーションを機械学習用の共通コンパイラおよびランタイムに吸収して、利用可能な最高のパフォーマンスをモデルに提供します。 Intel の […]

Read More

AWS Step Functions を使用した Amazon SageMaker モデルの自動的で連続的なデプロイ

Amazon SageMaker は、モデルの開発、トレーニング、およびデプロイ、ソリューション構築のコスト削減、データサイエンスチームの生産性向上のための完全な機械学習 (ML) ワークフローサービスです。Amazon SageMaker には、多くの事前定義済みアルゴリズムが付属しています。また、Docker イメージ、モデルをトレーニングするためのトレーニングイメージ、および REST エンドポイントにデプロイするための推論モデルを指定して、独自のアルゴリズムを作成することもできます。 機械学習モデルの構築とデプロイを自動化することは、本稼働の機械学習サービスを作成する上で重要なステップです。コードおよび/またはデータが更新されたときは、モデルを再トレーニングしてデプロイする必要があります。このブログ記事では、AWS Step Functions を使用した Amazon SageMaker の自動化の手法について説明します。新しいオープンソースプロジェクトである aws-sagemaker-build を通してそれを実証します。このプロジェクトは私たちのワークフローを完全に実装しています。Python と Amazon Alexa を使用してビルドの作成、起動、停止、進行状況の追跡を行う方法を示す Jupyterノ ートブックも含まれています。 aws-sagemaker-build の目的は、Amazon SageMaker と AWS Step Functions を使用する一般的で有用なパイプラインのリポジトリを提供することです。このリポジトリはコミュニティと共有され、コミュニティによって成長できます。 このコードはオープンソースであり、GitHub のここでホストされています。 カスタムモデル このブログ記事では、トレーニングや推論のために Dockerfile を作成および設計する方法の詳細については説明しません。詳細については、以下のドキュメントをご覧ください。 Example Project and Tutorial using aws-sagemaker-build (aws-sagemaker-build を使ったサンプルプロジェクトとチュートリアル) Training Image Documentation (トレーニングイメージのドキュメント) Inference Image Documentation (推論イメージのドキュメント) […]

Read More

simpleshow が Amazon Polly を使って解説動画のストーリーを音声化する方法

simpleshow は 10 数年前に、3 分間のアニメーション解説動画を使用することによって、お客様がそれぞれの素材、アイデア、および製品を説明できるように援助し始めました。これらの解説動画は、ふたつの手とシンプルな白黒のイラストを使って視聴者にストーリーを伝えます。現在 simpleshow では、誰もがほぼすべてのトピックに関する高品質の解説動画を作成できるプラットフォーム、mysimpleshow.com も提供しています。このプラットフォームは Amazon Polly と統合されているため、台本が提供されていれば、誰でも解説動画に自然な発音の音声を使用できます。 最初に、simpleshow についてもう少しお話ししてから、mysimpleshow がどのように Amazon Polly と統合されているかについて説明したいと思います。 過去 10 年の間、simpleshow は解説動画フォーマットの有効性を科学的に証明し、simpleshow の専門家は、何千にも及ぶ解説動画において、シンプルかつ楽しい方法でそれぞれのトピックを紹介できるようにお客様を助けてきました。 これらの動画の制作には、チーム内に多くの才能が必要です。 ストーリーテリング: 認定された simpleshow のコンセプトライターが基本的な事実を中心にストーリーを創り出します。 イラストレーション: 才能豊かなアーティストが適切な抽象化レベルで対象物とコンセプトをイラストにします。 ビジュアル化: ストーリーボードアーティストとモーションデザイナーがストーリーをビジュアル化してアニメーションにします。 音声: プロの話し手のネットワークが、ふさわしい口調であることを確実にします。 解説動画が極めて幅広い用途を持つフォーマットであることに気付いた simpleshow のチームは、さらに多くの分野におけるさらに多くのユーザーがリソースを使用できるようにしたいと考えました。これが、simpleshow のチームが mysimpleshow.com を作った理由です。このプラットフォームは、誰もがほぼすべてのトピックに関する高品質の解説動画を作成できるようにするものです。mysimpleshow は人口知能 (AI) を使用し、使いやすいユーザーインターフェイスを備えています。 mysimpleshow でのプロセスはとてもシンプルです。 まず、ユーザーがストーリーを書きます。mysimpleshow は、幅広いトピックを対象とするサンプルストーリーを使ったテンプレートとインスピレーションでユーザーをガイドします。 ストーリーのテキストは、次に mysimpleshow の中核にある人工知能、Explainer Engine によって分析されます。Explainer Engine は、意味のあるキーワード、人物、および場所を認識するために自然言語処理 (NLP) を使用します。その後、Wikipedia […]

Read More

Amazon SageMaker のトレーニングと推論の間でデータ処理コードの一貫性を確保する

このブログ記事では、推論パイプラインを紹介します。これは、推論リクエストごとに実行される一連の手順を指定できる、Amazon SageMaker の新機能です。この機能を使用すると、同じコードの 2 つの別のコピーを保持する必要なしで、推論中のトレーニングで適用されたデータ処理手順を再利用できます。これにより、予測が正確になり、開発のオーバーヘッドを削減できます。ここでの例では、Apache Spark MLlib で変換器を使用してトレーニングと推論の入力データを前処理し、Amazon SageMaker の XGBoost アルゴリズムを使用して自動車の状態を予測する機械学習モデルをトレーニングします。 概要 データサイエンティストや開発者は、機械学習 (ML) モデルをトレーニングする前に、データのクリーニングと準備に多くの時間を費やしています。これは、現実のデータを直接使用することができないためです。値が欠落していたり、情報が重複していたり、標準化する必要がある同じ情報の複数のバリエーションがあったりするからです。さらに多くの場合、機械学習アルゴリズムで使用できるために、データをある形式から別の形式に変換する必要があります。たとえば、XGBoost アルゴリズムは数値データしか受け入れないため、入力データが文字列またはカテゴリ形式の場合は、使用する前に数値形式に変換する必要があります。他には、複数の入力の特徴を単一の特徴に組み合わせることで、より正確な機械学習モデルとなります。たとえば、気温と湿度を組み合わせて飛行遅延を予測すると、より正確なモデルが作成されます。 機械学習モデルを本稼働にデプロイして新しいデータを予測する場合 (推論と呼ばれるプロセス)、トレーニングで使用されたのと同じデータ処理手順がそれぞれの推論リクエストにも適用されるようにする必要があります。そうしないと、誤った予測結果となる可能性があります。今までは、トレーニングと推論に使用するために同じデータ処理手順の 2 つのコピーを維持し、それらが常に同期していることを確認する必要がありました。また、データ処理手順を、機械学習モデルへのリクエストを行うアプリケーションコードと組み合わせるか、推論ロジックに組み込む必要がありました。その結果、開発のオーバーヘッドと複雑さが必要以上に高くなり、迅速に繰り返す能力が制限されていました。 現在は、Amazon SageMaker に推論パイプラインを作成することで、推論中のトレーニングと同じデータ処理手順を再利用できます。推論パイプラインを使用すると、最大 5 つのデータ処理および推論の手順を指定できます。これらの手順は、全ての予測リクエストに対して実行されます。トレーニングのデータ処理手順を再利用できるので、データ処理コードのコピーを 1 つだけ管理し、クライアントアプリケーションや推論ロジックを更新することなくデータ処理手順を個別に更新することができます。 Amazon SageMaker は、推論パイプラインの作成方法に柔軟性をもたらします。データ処理手順では、Scikit-Learn および Apache SparkMLlib で利用可能な組み込みのデータ変換器を使用して、一般的なユースケースのためにデータをある形式から別の形式に処理および変換するか、カスタムの変換器を作成することができます。推論では、Amazon SageMaker で利用可能な組み込みの機械学習アルゴリズムとフレームワークを使用することもできますし、カスタムのトレーニングモデルを使用することもできます。リアルタイム推論とバッチ推論で同じ推論パイプラインを使用できます。推論パイプラインのすべての手順が同じインスタンスで実行されるため、レイテンシーによる影響は最小限になります。 例 この例では、AWS Glue を使用するデータ処理に Apache Spark MLLib を使用し、推論中にデータ処理コードを再利用します。UCI の Machine Learning Repository の Car Evaluation データセットを使用します。目標は、unacc、acc、good、vgoodの値の中から、特定の車の容認可能性を予測することです。根本的には分類問題であり、Amazon SageMaker の組み込みの […]

Read More

Amazon Translate を使用してオンデマンドで翻訳されたレビューを用いたウェブサイトの強化

e コマースプラットフォームの成功は、顧客による何千ものユーザーレビューとソーシャルシェアリングによって確立された評判に大きく依存しています。既存の顧客は、レビューすること、そして情報を共有することによって、実際に触れることができないものとの信頼関係を築きます。世界中の閲覧者がこの内容を利用できるようにするためにも、それらを現地語に翻訳して顧客の購買決定を助けることが極めて重要です。 古い車、ボート、およびオートバイを販売する会社を想像してみましょう。この会社はその e コマースビジネスを数か国に拡大し、会社の製品について他の買い物客が書いたレビューを顧客が簡単に読めるようにしたいと考えています。 この問題を解決するために、この会社がどのように Amazon Translate を活用して、オンデマンドの翻訳済みレビューをリアルタイムで取得できるかをご紹介します。また、いかに簡単にそのサービスを最新の e コマースアーキテクチャに統合できるかについても説明していきます。 Amazon Translate は、高度な深層学習技術を使用してソース言語からターゲット言語 (サポートされる言語ペアの中から選択されたもの) へのコンテンツの迅速な言語翻訳を提供する、高品質のニューラル機械翻訳サービスです。このサービスは、開発者がニューラル機械翻訳モデルを構築する複雑さを考慮することなく、翻訳されるテキストを提供する API を簡単に呼び出し、翻訳されたテキストをリアルタイムで取得することを可能にします。

Read More

Amazon SageMaker で、Scikit-Learn のサポートを追加

Amazon SageMaker は、Docker コンテナの Scikit-Learn Machine Learning ライブラリで事前に構成されています。Scikit-Learn は、一貫性のある Python インターフェイスと文書で十分に立証された API を使用して、データ分析や一般的な Machine Learning アルゴリズムを高品質で実装できる効率的なツールを提供するため、データサイエンティストや開発者にとって人気があります。Scikit-Learn はすばやく実行でき、ほとんどのデータセットや問題に対応できるため、Machine Learning 問題をすばやく繰り返さなくてはならない場合に最適です。TensorFlow や MxNet などの深層学習フレームワークとは異なり、Scikit-Learn は Machine Learning やデータ分析に使用されます。クラスタリング、回帰、分類、次元削減、機能の前処理、およびモデル選択に関して、指導付き学習アルゴリズムと指導無し学習アルゴリズムの範囲から選択できます。 新しく追加された Scikit-Learn ライブラリは、Amazon SageMaker Python SDK で利用可能です。Scikit-Learn スクリプトを作成し、自動モデルチューニングを含む Amazon SageMaker のトレーニング機能を使用することができます。モデルのトレーニングを終えたら、Scikit-Learn モデルを高い可用性のエンドポイントにデプロイして、Auto Scaling して、低レイテンシーでリアルタイムでの予測を行うことができます。また、大規模なバッチ変換ジョブで同じモデルを使用することもできます。 このブログ記事では、Amazon SageMaker で事前に構築された Scikit-Learn ライブラリを使用して、マルチクラス分類モデルを構築、トレーニング、およびデプロイする方法を説明します。 Scikit-Learn モデルのトレーニングとデプロイ この例では、IRIS データセットの決定木分類子をトレーニングします。この例は Scikit-Learn 決定木分類子の例に基づいています。完全な Amazon SageMaker ノートブックをお試しいただけます。ここでは最も重要な部分を強調します。このデータセットは、異なる 3 […]

Read More

3 つの新しい言語で音声の文字起こしが可能に: フランス語、イタリア語、ブラジルポルトガル語

Amazon Transcribe が、フランス語、イタリア語、ブラジルポルトガル語の 3 つの新しい言語で自動音声認識をサポートするようになったことをお知らせいたします。これらの新しい言語は、Amazon Transcribe ですでに利用可能であった米国英語、米国スペイン語、オーストラリア英語、イギリス英語、カナダフランス語の 5 つの言語の拡張になります。 Amazon Transcribe API を使用すると、Amazon S3 に保存されている音声ファイルを分析して、文字起こしした音声のテキストファイルをサービスに返すことができます。また、ライブのオーディオストリームを Amazon Transcribe に送信し、文字起こしのストリームをリアルタイムで受信することもできます。自動文字起こしは、さまざまな分野 (動画の字幕、コンタクトセンターの通話分析およびコンプライアンス、法廷での宣誓証言、あらゆるアプリケーションへのアクセシビリティの一般的な向上など) で、多くの開発者にとって非常に役立つツールであることが証明されています。 この最近の re:Invent で行われた分科会から、コンタクトセンター (Amazon Connect を含む) で文字起こしを使用する方法の詳細を学ぶことができます。 フランス語、イタリア語、ブラジルポルトガル語の文字起こしは、Amazon Transcribe の他の言語と同じ料金、同じリージョンで利用できます。この新しい言語のセットは、AWS マネジメントコンソール、AWS コマンドラインインターフェイス、AWS SDK を介して試すことができます。   著者について Paul Zhao は、AWS Machine Learning のシニアプロダクトマネージャーです。 Paul は Amazon Transcribe サービスを管理しており、仕事以外ではオートバイのファンで、木工細工が大好きです。    

Read More

Amazon SageMaker Ground Truth でラベル付けしたデータセットを使用して、モデルを簡単にトレーニングする

 データサイエンティストや開発者は、Amazon SageMaker Ground Truth でラベル付けされたデータセットによって機械学習モデルを簡単にトレーニングすることができます。Amazon SageMaker のトレーニングは、AWS マネジメントコンソールと Amazon SageMaker Python SDK API の両方を通じた入力として拡張マニフェスト形式で作成されたラベル付きデータセットを受け入れるようになりました。 先月の AWS re:Invent の期間中に、人間のラベル付け作業者のパブリックワークフォースならびにプライベートワークフォースを支援する機械学習を使用して、ラベル作成コストを最大 70% 節約し、正確なトレーニングデータセットを構築できる Amazon SageMaker Ground Truth を開始しました。ラベル付きデータセットは、それぞれの入力データセットオブジェクトを、ラベルなどの追加のメタデータを使用してファイル内でインライン展開する拡張マニフェストファイル形式で作成されます。以前は、拡張されたデータセットでモデルをトレーニングするために、低レベルの AWS SDK API しか使用できませんでした。本日から、Amazon SageMaker コンソールですばやく簡単に数回クリックするか、ハイレベルの Amazon SageMaker Python SDK を使用して 1 行の API をコールすることで、そうしたトレーニングをすばやく簡単に実行できるようになります。 さらに、 モデルを Amazon SageMaker のパイプモードを使用してトレーニングすることができます。このモードは、Amazon Simple Storage Service (S3) から Amazon SageMaker にデータがストリーミングされる速度を大幅に高速化するので、トレーニングジョブが早く始まり、素早く完了し、 Amazon […]

Read More

TensorFlow で行うスケーラブルなマルチノードトレーニング

 お客様から、TensorFlow トレーニングのジョブを複数のノードや GPU にスケーリングすることは難しいとの声を聞きました。TensorFlow には分散トレーニングが組み込まれていますが、使用するのは難しい場合があります。最近、TensorFlow と Horovod を最適化し、AWS のお客様が TensorFlow のトレーニングジョブを複数のノードや GPU に拡張できるようにしました。これらの改善により、AWS のお客様は、15 分以内に ImageNet の ResNet-50 をトレーニングするために AWS Deep Learning AMI を使用することができます。 これを実現するため、32 個のAmazon EC2 インスタンス (それぞれ 8 GPU、合計 256 GPU) が TensorFlow で利用できます。このソリューションに必要なソフトウェアとツールは、すべて最新の Deep Learning AMI (DLAMI) に付属しているので、自分で試すことができます。 より早くトレーニングし、モデルをより速く実装し、結果を以前より速く得ることができます。 このブログの記事では、得られた結果について説明し、さらに TensorFlow で分散トレーニングを実行するための簡単で迅速な方法をご紹介ます。 図A. Deep Learning AMI 上で、Horovod を使用した、最新の最適化された TensorFlow で行う ResNet-50 ImageNet モデルトレーニングには、256 […]

Read More