Amazon Web Services ブログ

Category: Artificial Intelligence

PyTorch のオープンソースモデルサーバー、TorchServe を発表

PyTorch は、ディープラーニングで最も人気のあるオープンソースライブラリの 1 つです。開発者と研究者は、モデルの構築とトレーニングにおいて享受できる柔軟性を特に重宝しています。しかし、これはストーリーの半分にすぎず、本番環境でのモデルのデプロイと管理は、機械学習プロセスの最も困難な部分であることが多々あります。オーダーメイドの予測 API の構築、それらのスケーリング、保護などがその厄介な部分です。 モデルのデプロイプロセスを簡略化する 1 つの方法は、モデルサーバー、つまり、本番環境で機械学習予測を行うために特別に設計された既製のウェブアプリケーションを使用することです。モデルサーバーを使用すると、1 つまたは複数のモデルを簡単に読み込むことができ、スケーラブルなウェブサーバーに基づく予測 API が自動的に作成されます。また、予測リクエストに対して前処理と後処理のコードを実行することもできます。最後に忘れてならないのが、モデルサーバーは、ログ記録、モニタリング、セキュリティなどの生産に不可欠な機能も提供している点です。一般的なモデルサーバーには、TensorFlow Serving と Multi Model Server があります。 今日、TorchServe を発表できることをとても嬉しく思います。これは、カスタムコードを記述することなく、トレーニングされた PyTorch モデルを大規模かつ簡単にデプロイできる PyTorch のモデルサービングライブラリです。 TorchServe のご紹介 TorchServe は AWS と Facebook 間のコラボレーションであり、PyTorch オープンソースプロジェクトの一部として利用できます。プロジェクトの開始方法に興味がある場合は、Github で初期の RFC を読むことができます。 TorchServe を使用すると、PyTorch ユーザーは、カスタムコードを記述することなく、モデルをより迅速に本番環境に導入できるようになります。低レイテンシーの予測 API の提供に加えて、TorchServe は、オブジェクト検出やテキスト分類などの最も一般的なアプリケーションのデフォルトハンドラーも埋め込んでいます。さらに、TorchServe には、アプリケーション統合のためのマルチモデルの提供、A/B テストのモデルバージョン管理、モニタリング指標、RESTful エンドポイントが含まれます。ご想像のとおり、TorchServe は、Amazon SageMaker、コンテナサービス、Amazon Elastic Compute Cloud (EC2) などの機械学習環境をサポートしています。 一部のお客様はすでに TorchServe のメリットを享受しています。 […]

Read More

TorchServe を使用した大規模な推論のための PyTorch モデルをデプロイする

今日ご紹介するサービスの多くは機械学習 (ML) を必要とするものです。オンライン検索や製品のレコメンデーションから音声認識や翻訳まで、これらのサービスには予測を提供するための ML モデルが必要です。ML がさらに多くのサービスで採用されるにつれて、苦労して結果を得て、モデルを迅速かつ確実に本番環境にデプロイすることが困難になります。そして、これらのサービスを利用する人の数が増えるにつれて、モデルが数百万のユーザーに同時に、そして、安全かつ確実に、低レイテンシーで予測を提供できるようにすることには、より大きな困難が伴います。 開発者は、モデル開発にさまざまなオープンソースフレームワークを使用します。ここ数年、PyTorch は、ML を利用したアプリケーションを開発する多くの研究者、開発者、およびデータサイエンティストが選択する深層学習のフレームワークとなっています。PyTorch は、そのシンプルさに加えて、Python 的な方法でモデルを実装およびトレーニングでき、Eager モードと Graph モードをシームレスに切り替える機能があることから好まれています。しかしながら、これまで、PyTorch モデルを本番環境で大規模に提供することについて、簡単かつネイティブにサポートされた方法はありませんでした。 AWS は、PyTorch のオープンソースモデルサービスライブラリである TorchServe の実験的リリースを共有できることを嬉しく思います。 AWS は、Facebook と連携して TorchServe を開発しました。AWS と Facebook は、より広範な PyTorch コミュニティと共に、TorchServe に注力し続けます。クラウドベースの PyTorch プロジェクトが 83% を超えて AWS で行われていることから、PyTorch モデルのデプロイの困難に対処するために TorchServe を立ち上げることができることを幸いに思います。TorchServe を使用すると、PyTorch モデルを TorchScript を使用して Eager モードまたは Graph モードでデプロイし、複数のモデルを同時に提供し、A/B テスト用に本番モデルをバージョン管理し、モデルを動的にロードおよびアンロードし、詳細なログとカスタマイズ可能なメトリクスを監視できます。 TorchServe は使いやすいです。ローカルにデプロイするのに便利な CLI が付属しており、コンテナにパッケージ化して Amazon SageMaker […]

Read More

高性能でコスト効率の高い機械学習推論を実現する Inf1 インスタンスが Amazon SageMaker でご利用可能に

完全マネージドサービスの Amazon SageMaker は、あらゆる開発者やデータサイエンティストが機械学習 (ML) モデルを迅速に構築、トレーニング、デプロイできるように支援します。Intuit、Voodoo、ADP、Cerner、Dow Jones、Thompson Reuters をご利用の数万人におよぶお客様が、Amazon SageMaker を使って ML の各プロセスで発生する負担の大部分を取り除いています。 リアルタイム予測に ML モデルをデプロイする場合、Amazon SageMaker には、小さな CPU インスタンスからマルチ GPU インスタンスに至る幅広い AWS のインスタンスタイプがあります。そのため、予測インフラストラクチャに適したコストとパフォーマンスの割合を見つけることができます。本日より、Amazon SageMaker で Inf1 インスタンスがご利用いただけるようになりました。これで、高いパフォーマンス、低いレイテンシー、コスト効率の高い推論を実現できます。 Amazon EC2 Inf1 インスタンス入門 Amazon EC2 Inf1 インスタンスは AWS re:Invent 2019 でリリースしました。Inf1 インスタンスは AWSが一から構築したカスタムチップの AWS Inferentia を使用しており、機械学習の推論ワークロードが加速します。G4 インスタンスと比較した場合、Inf1 インスタンスでは、推論のスループットが最大 3 倍となり、推論あたりのコストが最大 45% 削減します。 Inf1 インスタンスは、1 個、4 個、または […]

Read More

Amazon SageMaker で分散強化学習を使用して AI 搭載の Battlesnake をスケーリングする

Battlesnake は AI を搭載したヘビを構築する AI コンテストです。Battlesnake のルールは、従来のスネークゲームと類似しています。目標は、他のヘビと競争して、最後まで生き残るヘビになることです。あらゆるレベルの開発者が、独自のヒューリスティックベースの戦略から、最先端の深層強化学習 (RL) アルゴリズムまで、さまざまな技術を駆使してヘビを構築します。 SageMaker Battlesnake Starter Pack を使用して独自のヘビを構築し、Battlesnake アリーナで競うことができます。詳細については、Amazon SageMaker の強化学習を使用して AI で駆動する Battlesnake を構築するを参照してください。Starter Pack には、Amazon SageMaker で複数の戦略を開発するための開発環境が含まれています。戦略には、RL ベースのポリシートレーニングと決定木ベースのヒューリスティックが含まれます。以前の SageMaker Battlesnake Starter Pack では、Deep Q-Network (DQN) [1] ベースのスネークポリシーを開発するための Apache MXNet ベースのトレーニングスクリプトを提供しました。このアルゴリズムの実装は実践および変更が簡単で、初心者の開発者に教育体験を提供します。 この投稿では、フルマネージド型の RL に Amazon SageMaker を使用し、同じトレーニング時間で 10 倍の成果を提供する Starter Pack の更新について説明します。Starter Pack は、分散 RL トレーニングに Amazon SageMaker […]

Read More

Amazon Kendra を使用して、よくある質問ボットをよりスマートに

製品やサービスを選択をするとき、私たちは質問が浮かんできます。職場の IT ヘルプデスクに最後に行ったときのことを思い出してください。 「IT ヘルプデスクはいつ開くか?」とか、「自分のノートパソコンを修理に出している間、代わりをものを使えるか?」などと考えたのではないでしょうか。  このような質問に対し迅速で正確な応答ができれば、顧客の満足度が向上します。サポートスタッフはこれらの質問に簡単に答えることができますが、効率的とは言えないでしょう。このような繰り返しの作業は、自動化に適しています。お客様は即座に応答を受け取り、サポートスタッフは問題の解決に集中できるからです。 このようなボットとの会話を可能にするには、各質問を個別のインテントとしてモデル化します。サンプルの発話はユーザーの質問を自然言語形式で取り込むように設計されており、ボットが応答して回答します。これは、質問が 2 つや 3 つの場合にはよいですが、質問の数が増えるとインテントの数も増え、ボットの定義が絶えず変化します。こうなると、ほとんどの応答が単なる静的テキストとなり、少々効率が悪くなる可能性があります。もう一つの方法は、質問のリストをデータベースに取り込み、データベースにクエリを実行して各質問に回答することです。これは、QnABot ボットが行うことと似ています。この設計では、すべての質問にインテントを追加する必要はありません。ただし、自然言語の入力がデータベースのエントリと異なる場合、検索は言語の変化に対応できるくらいスマートである必要があります。たとえば、「画面の修理にはどのくらい時間がかかりますか?」と「画面を修理する時間はどの程度ですか?」という質問に対して、同じ答えを提供する必要があります。 最近の Amazon Kendra のリリースでは、自然言語の質問を使って、よくある質問、ドキュメント内の回答、ドキュメント全体へのリンクなど、探している回答を取得できるようになりました。Amazon Kendra では、構造化されていないデータから特定の回答を抽出できます。Amazon Kendra をコンテンツにポイントするだけで、Amazon Kendra がコンテンツにインデックスを付けて回答します。Amazon Kendra コンソールまたは API を使用して、よくある質問やドキュメントにインデックスを付け、検索インデックスを作成できます。Amazon Kendra はインデックスを使って検索クエリに最も近い一致を見つけ、対応する回答を返します。 この投稿では、Amazon Lex チャットボットを Amazon Kendra と統合し、エンドユーザーが Slack などのメッセージングプラットフォームから Amazon Kendra にクエリできるようにする方法をご紹介します。  次の図は、このアイデアを示しています。 Amazon Lex チャットボットの構築 この記事では、ボットをモデリングするために、次のような会話を使用します。 ユーザー: IT ヘルプデスクはどこにありますか? エージェント: 37 階の 201 号室 (エレベーターを降りて、右手 2 つ目の部屋) […]

Read More

重要なドキュメントを処理するための Amazon Textract と Amazon Augmented AI の併用

ドキュメントは、金融、医療、法律、および不動産などの数多くの業界全体における記録管理、コミュニケーション、コラボレーション、そして取引のための主な手段です。たとえば、毎年、数百万の住宅ローン申請書と数億の納税申告書が処理されます。ドキュメントは構造化されていないことがよくあります。コンテンツの場所や形式は、2 つの類似したフォーム間で異なる場合があります。非構造化ドキュメントは、検索と検出、ビジネスプロセスの自動化、およびコンプライアンス管理を可能にするために、時間がかかる複雑なプロセスが必要になります。機械学習 (ML) を使用してこれらの非構造化ドキュメントの処理を自動化する場合、人間の判断を必要とする機密ワークフローの管理に役立つように人間のレビューを組み込むことができます。 Amazon Textract を使用すると、ほぼすべてのドキュメントからテキストとデータを簡単に抽出できます。Amazon Augmented AI (Amazon A2I) を使用すると、機械学習の予測で人間によるレビューを簡単に実装できます。この記事では、Amazon Textract と Amazon A2I を利用して、機械学習の経験がなくても、構造化ドキュメントと非構造化ドキュメントの両方から非常に正確なデータを自動的に抽出する方法を示します。Amazon Textract は、Amazon A2I と直接統合されているため、たとえば、低品質のスキャンや手書きの荒いドキュメントのレビューを人間が簡単に行えるようにします。Amazon A2I は、レビュー担当者がレビュータスクを完了するために必要な指示とツールを備えたウェブインターフェイスを提供します。 AWS が可用性に優れたスケーラブルな環境での高度な機械学習モデルの構築、トレーニング、およびデプロイメントを処理するので、皆さんには簡単に使用できる API アクションでこれらのサービスを活用していただきます。Amazon Textract フォームデータ抽出 API と Amazon A2I を使用して、人間のレビュー担当者が必要な条件を定義できます。これらのビジネス条件をいつでも調整して、精度と費用対効果の適切なバランスを実現できます。たとえば、モデルがその予測について 90% 未満の確信しか持っていない場合、機械学習モデルがドキュメントのコンテンツについて行う予測 (または推論) を人間が確認するように指定できます。また、ドキュメントで重要なフォームフィールドを指定して、人間によるレビューに送信することもできます。 Amazon A2I を使用して、Amazon Textract 予測のランダムなサンプルを人間のレビュー担当者に送信することもできます。これらの結果を使用して、利害関係者にモデルのパフォーマンスを通知し、モデルの予測を監査できます。 前提条件 この記事では、次の前提条件を満たす必要があります。 IAM ロールを作成する – 人間によるレビューのワークフローを作成するには、ヒューマンタスク UI でレンダリングするオブジェクトの読み取りと人間によるレビュー結果の書き込みの両方について、Amazon S3 にアクセスするための Amazon A2I […]

Read More

CI/CD パイプラインで Amazon Translate を使用してウェブサイトまたはアプリケーションを自動的に翻訳する

AWS では、ウェブサイトやアプリケーションを数分でグローバルにデプロイできます。これは、大企業であっても個人の開発者であっても、世界中のユーザー、つまり潜在的な顧客にリーチできることを意味します。けれども、最高のエクスペリエンスを提供するには、顧客に身近なコンテンツを提供するだけでなく、そのコンテンツを顧客の母国語で利用できるようにする必要があります。 ウェブサイトやアプリケーションの翻訳は、ローカリゼーションおよびインターナショナライゼーション (それぞれ L10N および I18N) と呼ばれるプロセスの一部です。コンテンツをローカライズするために、企業は翻訳者を雇う (専門的なリソースが必要で、ターゲット言語の数が多い場合はさらにその傾向が顕著) か、システムを構築したのと同じ開発者にタスクを割り当てます (これは最適な結果が得られることを保障できず、また開発者がより重要なタスクを遂行する上で支障になる)。 Amazon Translate は、手頃な価格で迅速かつ高品質な翻訳を実現するニューラル機械翻訳サービスです。サポートされている言語の詳細については、「Amazon Translate とは?」 を参照してください。 Amazon Translate は、自動的にスケーリングして大量のテキストを処理します。ビジネスの特定の詳細情報を翻訳するようにカスタマイズでき、料金は翻訳したテキストの量に対してのみ発生します。 この記事は、英語で記述された UI を含むウェブサイトと、Amazon Translate を使用して自動的にスペイン語にローカライズする継続的統合パイプラインを作成します。次の図は、このソリューションのアーキテクチャを示しています。   ウェブサイトのローカリゼーションに関する入門書 ウェブサイトまたはアプリケーションのローカライズは、通常、開発者と翻訳者の間で共有するタスクです。開発者は、ローカライズする必要のあるテキストを含むユーザーインターフェイスへのプレースホルダーまたはタグの挿入を監視する一方、翻訳者は、このようなプレースホルダーを必要な言語に翻訳する責任を負っています。 各チームの責任をより適切に分離し、メンテナンスを容易にするために、開発者は通常、翻訳ペアのみを含む翻訳者用のファイルを個別に作成しています。翻訳の発生方法とこれらのファイルの形式に関する具体的な詳細は、ローカライズするコンポーネントの言語、フレームワーク、テクノロジースタックによって異なりますが、全体的な考え方は通常同じです。(たとえば、Symfony を使用する PHP サイトは YAML ファイルに依存し、Spring で記述した Java アプリはおそらく.properties ファイルを使用しています)。 この記事は Flask で記述された単純な Python ウェブサイトで動作し、ウェブブラウザから送信される Accept-Language ヘッダー (値はユーザーの設定によって異なります) に応じて言語を切り替えます。ウェブサイトは実際に出来上がった翻訳を処理するために Babel と呼ばれるパッケージを使用しています。Babel は、Python の gettext モジュールの上にあるユーティリティとラッパーのセットで、同時に GNU gettext 上の抽象化レイヤーでもあります。 […]

Read More

リモートワークの取り組みの立ち上げと拡大を支援するために、AWS IQ の料金体系が 2020 年 6 月 30 日まで延長されます

最近の記事「Working from Home? Here’s How AWS Can Help」では、お客様がリモートワークや在宅勤務の取り組みを立ち上げ拡張するのに役立つ、AWS からのいくつかの手法をご紹介しています。こういったソリューションの立ち上げは、しばしば、専門家のアドバイスの下で行うほうが最良の (そしてより迅速な) 結果につながります。オンデマンドのプロジェクト作業に関し、AWS 認定済みの専門サードバーティ企業と連携するため必要な助けは、AWS IQから入手することができます。このリソースへのアクセス、および、高いスキルにより関連サービスを提供しているコンサルタントコミュニティとの連携を支援するため、AWS IQ では、3% の購入者料金と 15% の専門家料金を 2020 年 6 月 30 日まで延長します。即効性のために、AWS IQ への支払いは 100%、関連業務に従事している IQ エキスパートに手渡されます。 現在皆様が、仕事、学業、コミュニティ環境の中で、多くの変化にさらされているということを AWS は理解しています。そういった皆様は、他の AWS IQ のお客様同様に、Amazon WorkSpaces を使うチームのためにリモートデスクトップを設定したり、Amazon Connect によりクラウドで問い合わせセンターを立ち上げたり、増加する着信量に対応するためにセンターのチャットボットを追加するための支援がご必要だと思います。あるいは、世の中の多くのビジネス (例えばレストラン、学校、医療サービス、個人の小売店など) と同様に、オンラインの導入と移行を迅速に行う必要もあるでしょう。AWS IQ のエキスパートたちは、広範囲のプロジェクトに対し遠隔からの実践的な助言を提供します。そのプロジェクトには、ウェブサイトのホスティング、データベースの移行、ネットワークの設定、分析ソリューションの構築、さらに AWS のサービス利用量の最適化などが含まれます。 AWS IQ エキスパート 多くの技能労働者が新しい困難に直面しています。AWS IQ では、こういったエキスパートの方たちに、ご自身の AWS スキルを活用して収入を得る機会を提供しています。この業務の範囲は、AWS のサービスの設定といった小さな作業から、エンドツーエンドのアプリケーション開発といった大規模プロジェクトにまでおよびます。AWS IQ […]

Read More

Amazon Polly を使用した日本語テキスト読み上げの最適化

Amazon Polly は、高度なディープラーニングテクノロジーを使用して、29 の言語および 61 の音声でテキスト入力を音声波形に変換するシステムである、テキスト読み上げ (TTS) 機能を提供するクラウドサービスです。Amazon Polly サービスは、自動コンタクトセンター、言語学習プラットフォーム、翻訳アプリ、および記事の読み上げなどのさまざまなユースケースのために音声合成を使用するデジタル製品の開発において企業をサポートしています。 Amazon Polly は現在、ポートフォリオに 2 つの日本語音声を提供しています。日本語は、その筆記体系の複雑さのために、TTS システムに多くの課題をもたらす言語です。 この投稿では、日本語が TTS に与える課題の概要、Amazon Polly がそれらの課題に対処する方法、およびカスタマーエクスペリエンスを最適化するために開発者が利用できるものについて説明します。 日本語は TTS にとって課題が多い言語 日本語の書記体系は、主に 3 つの書記法 (漢字、平仮名、および片仮名) で構成されており、多くの場合、これらの書記法は同じ意味合いで使用できます。たとえば、「キャンドル」を表す単語は、漢字 (蝋燭)、平仮名 (ろうそく)、または片仮名 (ロウソク) で書くことができます。漢字は表語文字であり、平仮名と片仮名 (総称して仮名と呼ばれます) は、発音をより正確に表す音節文字です。日本語の文章には、ほとんどの場合、漢字と仮名の両方が含まれています。 この豊富な書記法により、日本語を話す人はクリエイティブに筆記することができ、熟語の読みは、構成文字 (当て字) から予想されるものとは異なる場合があります。これは、人名でさらに顕著であり、文字の連なりからその名前の発音方法を常に予測できるとは限りません。 TTS フロントエンドの最初のステップの 1 つは、文を単語に分割することです。これは、日本語においては、別の課題となります。英語では、単語をスペースで確定的に分離できるため、タスクは簡単です。日本語は、間にスペースを入れずに単語をつなぎ合わせます。そのため、単語の終わりと次の単語の始まりを予測するモデルが必要です。英語で、Applesonatable などの文字の順序を個々の単語に分解することを想像してみてください。言語的な知識に基づき、これが「Apple son at able」ではなく「Apples on a table」であることがわかります。 これを行うにはモデルに教える必要があります。 さらに、日本語の単語の発音は周囲の文脈に大きく依存します。同じ漢字の連なりの単語であっても、発音が異なり、文脈に応じて異なる意味を有することがあります (同形異義語)。これらは TTS にとって最大の課題です。次の例は、この発音の違いを示しています。 「とうきょうと」と発音される「東京都」は「東京という都市」を意味します […]

Read More

Amazon Personalize の推奨スコアのご紹介

Amazon Personalize を使用すると、Amazon.com で使用されているのと同じ機械学習テクノロジーを使用して、事前の機械学習の経験を必要とせずに、ウェブサイト、アプリ、広告、メールなどをパーソナライズできます。Amazon Personalize を使用すると、シンプルな API インターフェイスを介してユーザーのためにパーソナライズされたレコメンデーションを生成できます。Amazon Personalize は、パーソナライズされたレコメンデーションごとに生成された推奨スコアの提供を開始しました。これらのスコアは、レコメンデーションの関連性の相対的差異を理解するのに役立ちます。この投稿では、これらのスコアの使用法と解釈につ​​いて説明します。 推奨スコアの使用 Amazon Personalize の推奨スコアは、レコメンデーションに追加のビジネスロジックを適用するのに役立ちます。以下の例をいくつか見てみましょう。 相対しきい値を超えるアイテムを推奨します。たとえば、返されたアイテムの中で最高スコアの 50% を超えるスコアを持つアイテムのみを推奨します。推奨スコアが 0.001 を超えるアイテムのみを推奨するなど、絶対しきい値を設定することはお勧めしません。 あるユーザーについて、アイテムのスコアが非常に高い場合は、特別なアクションを実行します。たとえば、アイテムのスコアが 0.2 を超える場合、ユーザーに特別な通知を送信するか、特別な UI エレメントを表示して、この信頼性の高いアイテムについてユーザーに知らせます。 レコメンデーションの関連性と、スポンサー付きコンテンツの表示などの他のビジネス目標との間でバランスを調整するなど、Personalize の結果に対してカスタマイズされた再ランキングを実行します。 推奨スコアは、リアルタイムレコメンデーションおよびバッチレコメンデーションを通じて利用できます。リアルタイムレコメンデーションについては、Amazon Personalize コンソールからも利用できます。スコアは、次のレシピを使用して作成されたソリューションバージョンで有効となります。 arn:aws:personalize:::recipe/aws-hrnn arn:aws:personalize:::recipe/aws-hrnn-metadata arn:aws:personalize:::recipe/aws-hrnn-coldstart arn:aws:personalize:::recipe/aws-personalized-ranking 現時点では、aws-sims および aws-popularity-count レシピを使用して作成されたソリューションのスコアは使用できません。 この投稿では、コンソールで推奨スコアを取得する方法の簡単なデモを行います。これまでに Amazon Personalize を使用したことがない場合は、続行する前に開始方法を参照してください。 リアルタイムレコメンデーションのスコアの取得 Amazon Personalize コンソールでは、GetRecommendations または GetPersonalizedRanking API からのチェック結果を簡単に見つけることができます。本番アプリケーションでは、AWS CLI または言語固有の SDK を使用してこれらの API を呼び出します。推奨スコアを取得するには、Amazon […]

Read More