[レポート] Building AI-enriched applications with .NET on AWS #reinvent #XNT303

2022.12.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

いわさです。

YouTube で公開されている AWS re:Invent 2022 Breakout Session の Building AI-enriched applications with .NET on AWS (XNT303) のセッションレポートです。

このレポートではセッションのポイントと見どころを紹介したいと思います。

.NET への組み込み方を学びながら各 AI サービスがどういったものなのかを学ぶことも出来るので、.NET アプリケーション開発の経験があるが AWS の AI サービス(Traslate や Comprehend など)をまだ使ったことが無い、という方にとても適したセッションだと思います。

興味を持って頂けた方は以下のアーカイブ動画を是非ご視聴ください。

セッション概要

With AWS AI services, you can add capabilities like image and video analysis, natural language processing, personalized recommendations and translation, virtual assistants, and speech recognition.
You can use each service standalone, or you can use them together to build a sophisticated AI-capable application.
In this demo-heavy session, discover how to iteratively enrich your existing .NET applications with AI capabilities using AWS SDK for .NET.

スピーカー

  • Prasad Rao, Principal Partner Solutions Architect, AWS
  • Alexander Dragunov, Senior Partner Solutions Architect, AWS

レベル

  • 300 - Advanced

セッション内容

トレンド

IDC やガートナーの報告によると、2025 年までに AI ソリューションへの支出が増え、2024 年末までに 75% の企業が AI ソリューションの試験運用から本番運用へ移行するとされているそうです。

Investment in Artificial Intelligence Solutions Will Accelerate as Businesses Seek Insights, Efficiency, and Innovation, According to a New IDC Spending Guide

Top 10 Data and Analytics Technology Trends for 2020 | Gartner

AWS でも機械学習に取り組んでおり、そしてビジネスインテリジェントなアプリケーションを簡単に構築する仕組みを開発者に提供しています。

AWS の AI/ML スタック

このセッションでは AWS の AI/ML サービスを以下の 3 つに分類した上で、AI サービスについて取り上げています。

  • AI サービス
    • Translate
    • Comprehend
    • Textract
    • Lex
    • Polly
    • etc ...
  • ML サービス
    • SageMaker 関係
  • ML フレームワーク & インフラストラクチャ
    • PyTorch, MXNet, TensorFlow
    • EC2, Inferentia, Traninium, Habana Gaudi, FPGA, Elastic inference

AWS SDK for .NET

AWS ではアプリケーションにサービスを組み込むために AWS SDK を提供しています。
AWS SDK は様々な言語をサポートしていますが、.NET もサポートされています。

AWS SDK を使うことで .NET に簡単に AWS のサービス・機能を組み込むことが出来るか説明されています。
WebAPI のペイロードや仕様を知る必要もなく .NET のクラスで利用が可能です。
また、利用には NuGet パッケージの追加とクライアントクラスの利用、オペレーション実行してレスポンスを取得、と一貫した実装パターンになっている点も強調されています。

いくつかの AI サービスの紹介と実装デモ

ここからは実際にいくつかの AI サービスを .NET アプリケーションに組み込みます。
このセッションでは以下の AI サービスが取り上げられています。

  • Amazon Comprehend
  • Amazon Translate
  • Amazon Textract
  • Amazon Rekognition

それぞれのサービスについて最初に軽く説明し、そして .NET アプリケーションでの実装方法の説明と動作確認を繰り返しています。

Amazon Comprehend

Amazon Comprehend ではアプリケーションにエンティティ抽出機能を追加しています。
NuGet で AWSSDK Comprehend パッケージを追加し、ASP.NET Core の DIコンテナを使ってサービスを追加しています。

Amazon Translate

先程 Comprehend でテキストからのエンティティ抽出機能を追加しましたが、ここでは Amazon Translate の機能を追加することで、英語へ翻訳する機能を追加しています。

こちらも利用方法は先程と同じです。
NuGet パッケージの追加と .NET 上でのサービスの追加と利用だけです。
とても簡単に機能を追加しています。

Amazon Textract

Amazon Textranct を使うことで、ASP.NET アプリケーション上へアップロードしたドキュメントファイルからテキストを抽出しています。

これまでとやはり実装の流れは同じですが、メソッド利用時には .NET の MemoryStream をインプットとしており、普段 .NET の実装に慣れている方には馴染み易い方法になっています。

Amazon Rekognition

ここでは ID カードと写真を比較し、受験者が同一人物であるかを Rekognition を使って判断するデモを挙げています。

実際の事例

最後に、実際の事例についても紹介されていました。

モノリスな .NET Framework レガシーアプリケーションで住宅ローン申請プロセスに AI 機能を組み込む例です。
ブログで Textract と Comprehend を使用してドキュメントを処理する方法を紹介しています。

まとめ

.NET アプリケーションにどれだけ簡単に AWS の AI サービスを組み込むことが出来るかを学ぶためのセッションという形でした。

それぞれのサービスで何が出来るかについて詳しく解説されているわけでもないのですが、かなり .NET での実装部分にフォーカスしている点が印象でした。
冒頭少し触れましたが、これまで .NET アプリケーションの開発を行ってきたがまだ AI サービスについて触れていない方にとってとても良いセッションだと思います。