Awesome
AWS ML JP
AWS で機械学習をはじめる方法を学ぶことができるリポジトリです。
:books: リポジトリの構成
ai-services
- AWS の AI サービスの使い方を学ぶためのコンテンツ。
sagemaker
- 機械学習モデルの開発効率化やパイプライン化を検討している方が、 Amazon SageMaker をどう使えば実現できるか学ぶためのコンテンツ。
frameworks
- すでに TensorFlow や PyTorch で開発している方が、モデルを SageMaker 上で学習、推論させるための移行方法を学ぶためのコンテンツ。
aws-neuron
AWSが設計した機械学習アクセラレーター AWS Trainium、AWS Inferentia を活用する方法を学ぶためのコンテンツ。
tasks
- 画像のセグメンテーションや物体検知、自然言語処理のQAや要約など、個別具体的なタスクを SageMaker でどのように解けるか学ぶためのコンテンツ。
solutions
- 製造業での異常検知モニタリングやコールセンターの問合せ分析など、特定の業務プロセスを効率化/差別化したい方が、 SageMaker と他のサービスを組み合わせどのようにソリューションを構築できるか学ぶためのコンテンツ。
:hamburger: AWSの機械学習サービス
AWS の機械学習サービスは AI Services 、 ML Services 、 ML Frameworks/Infrastructure の 3 層構成になっています。リポジトリの構成はサービスの構成を踏襲しています。
- AI Services
- アプリケーション開発者の方がWeb API形式で簡単に機械学習機能を扱えるサービスです。代表的なサービスを以下に 2 つ紹介しますが、 20 を超える AI サービスを提供しています。
- Amazon Personalize は推薦機能が実装できるサービス (BASE様の事例)
- Amazon Rekognition は顔やブランドロゴの検出といった画像認識機能を実装できるサービス(千株式会社様の顔検索事例, TRUSTDOCK 社の本人確認事例)です。
- ML Servies
- データサイエンティストの方が機械学習モデルを開発する時、前処理、計算資源の調達、学習結果の管理やモデルのデプロイなど面倒な作業を代行するとともにスケールしやすくするサービスです。
- Amazon SageMaker は機械学習モデル開発を行うための統合開発環境で、 JupyterLab をベースにした環境からデータの前処理、学習、デプロイなどに必要なサービスを簡単に呼び出せます(三菱 UFJ 様の事例、 Denso 様の事例、 SyntheticGestalt(創薬)、)。
- Amazon SageMaker Studio Lab は無料で利用できるエントリー版ですが、 GPU やストレージなど機械学習の学びから価値検証に十分なスペックを備えています。
- Amazon SageMaker Canvas は機械学習の専門知識がない業務部門の方でも表計算ソフトの延長線の感覚で機械学習モデルの構築と予測が行えるサービスです。
- ML Frameworks/Infrastructure
- データサイエンティストの方が機械学習モデルを開発する時、利用したい機械学習フレームワークやデバイスに合わせた環境をセットアップしやすくするサービスです。
- AWS Deep Learning Containers は各種フレームワークごとに最適化されたコンテナイメージで学習・推論が高速化されます。
- AWS Inferentia は推論 (MoneyForward 様の事例 )、 AWS Trainium は学習にそれぞれ特化したチップで、高スループットかつ高コスト効率な推論、学習を可能にします。
✏️ 学習の準備
本リポジトリのコンテンツは主に Jupyter Notebook で作成されています。コンテンツを動かすため、次の準備をしておいてください。セットアップの詳細は、コンテンツ本体の記載も参照してください。
- AWS アカウントの作成
- SageMaker Studio Domainの作成
- S3 bucketの作成
- IAM ユーザー、ロールの作成
- 必要に応じ、コンテンツで動かすサービスにとって適切なユーザー、ロールを作成します。
🎥 学習コンテンツ
AI Service
- Amazon Forecast
- Amazon Personalize
Amazon SageMaker
AI/ML の BlackBelt シリーズである AI/ML DarkPart で SageMaker の使い方を解説しています! そもそも機械学習のプロジェクトはどうやって始めればいいのかに疑問をお持ちの方は、 AI/ML LightPart の動画や ML Enablement Workshop の資料をご参考ください。
Amazon SageMakerの概要 では Amazon SageMaker の全体像と動画で解説しているコードも含めたコンテンツの詳細を確認できます。
📝 実践コンテンツ
AWS で機械学習を実践する時の参考となるサンプルコードなどを紹介します。
※本サンプルコードは MIT-0 で公開していますが、サンプルコードで使用されるモデルやデータセットはそれぞれライセンスが付与されています。サンプルコードを参考に独自の実装をする場合、用途がモデルやデータセットのライセンスに違反しないか別途確認してください。
Amazon SageMaker
Amazon SageMaker で機械学習の構築、学習、デプロイをスケールする。
📯 MLOps
- Amazon SageMaker Neo で学習したモデルをコンパイルし、 AWS IoT Greengrass V2 でエッジにデプロイする
- Amazon SageMaker Pipelines で離反予測を題材にモデルの学習・評価・更新プロセスを構築する
- Amazon SageMaker Processing と AWS Step Functions でモデルの学習・評価・更新プロセスを構築する
- Amazon SageMaker Processing と AWS Step Functions でモデルの学習・評価・更新プロセスを構築する (Studio 版 )
🚚 ML Frameworks
機械学習フレームワークの実装を SageMaker へ移行する。
- PyTorch
- TensorFlow
Tasks
AWS で画像処理や自然言語処理などの機械学習のタスクを解く方法を解説します。
👁 画像処理
- 物体検知
- 画像分類
- OCR
💬 自然言語処理
🔈 音声処理
- 自動発話認識
📄 テーブルデータ
🤖 生成系 AI
text-to-image
サンプルコード | 詳細 |
---|---|
Stable Diffusion Web UI | Stable Diffusion の GUI として人気の AUTOMATIC1111/stable-diffusion-webui を EC2 インスタンスに立てて利用できるようにする CloudFormation です。モデルのトレーニングに bmaltais/kohya_ss、GUI ベースのファイル操作に filebrowser/filebrowser を立ち上げる構成も含まれています。SageMaker JumpStart を利用した Fine Tuning については たった数枚の画像で Stable Diffusion をファインチューニングできる効率的な Amazon SageMaker JumpStart の使い方 をご参照ください。 |
Inpainting | 画像の一部を生成した画像で差し替えるサンプルです。差し替える箇所 ( マスク ) の作成には CLIPSeg を使用しています。詳細は Stable Diffusion で画像の部分的な差し替えを行う環境を、 Amazon SageMaker JumpStart で簡単に構築する をご参照ください。 |
text-to-text
サンプルコード | 詳細 |
---|---|
Instruction Tuning | text-to-text の基盤モデルである StableLM や OpenCALM をインストラクションチューニングする方法を解説します。対応しているモデルとサンプルコードはフォルダ内の README.md を参照してください。 OpenCALM については 日本語大規模言語モデル OpenCALM の知識でクイズ王に挑戦する をご参考ください。 |
LangChain Inference | LangChain から SageMaker でホスティングした text-to-text の基盤モデルを扱うサンプルです。 |
Solutions
SageMaker と他のサービスを組み合わせ、業務プロセスの効率化や差別化を行うためのソリューションを格納/紹介します。
- JP RAG SOLUTION
- カスタマーサポートなどで生成系 AI を利用する場合、自然な応答による顧客体験の改善が期待できるものの、誤った発言 ( ハルシネーション ) が発生する恐れがあります。生成元のドキュメントを指定することで誤った発言を抑止することができ、検索エンジンから生成系 AI にドキュメントを与え生成する仕組みを RAG と呼びます。本ソリューションでは、検索エンジンとして
Amazon Kendra
、生成系 AI としてAnthropic Claude
/rinna/japanese-gpt-neox-3.6b-instruction-ppo
を用いて RAG を実現します。 - 参考記事: 高精度な生成系 AI アプリケーションを Amazon Kendra、LangChain、大規模言語モデルを使って作る
- カスタマーサポートなどで生成系 AI を利用する場合、自然な応答による顧客体験の改善が期待できるものの、誤った発言 ( ハルシネーション ) が発生する恐れがあります。生成元のドキュメントを指定することで誤った発言を抑止することができ、検索エンジンから生成系 AI にドキュメントを与え生成する仕組みを RAG と呼びます。本ソリューションでは、検索エンジンとして
- コールセンターのリアルタイム会話分析
- コールセンターで会話の文字起こし、翻訳、感情分析、会話内容の要約、オペレーターへのアドバイスをリアルタイムで行うソリューションです。文字起こしは
Amazon Transcribe
、翻訳はAmazon Translate
、 感情分析はAmazon Comprehend
、 要約はAmazon SageMaker
、 アドバイスはAmazon Lex
とAmazon Kendra
で実装しています。
- コールセンターで会話の文字起こし、翻訳、感情分析、会話内容の要約、オペレーターへのアドバイスをリアルタイムで行うソリューションです。文字起こしは
- Simple Lex Kendra JP
- 情報システム部門のヘルプデスクへの問い合わせ件数を削減するため、問い合わせを受け付けるチャットボットを設置するソリューションです。社内文書の検索を行う
Amazon Kendra
と問い合わせを受け付けるチャットボットのAmazon Lex v2
を組み合わせて実装しています。AWS CDK
で構成されているため、シンプルにデプロイ可能です。 - SBI 生命様のコールセンターでの導入事例
- 情報システム部門のヘルプデスクへの問い合わせ件数を削減するため、問い合わせを受け付けるチャットボットを設置するソリューションです。社内文書の検索を行う
- レビューコメント分析ダッシュボード
Contribution
本リポジトリへの Contribution を歓迎します! Contribution の方法は CONTRIBUTING をご参照ください。
License
This library is licensed under the MIT-0 License. See the LICENSE file.