/aws-ml-jp

Primary LanguageJupyter NotebookMIT No AttributionMIT-0

AWS ML JP

AWS で機械学習をはじめる方法を学ぶことができるリポジトリです。

📚 リポジトリの構成

  • ai-services
    • AWS の AI サービスの使い方を学ぶためのコンテンツ。
  • sagemaker
    • 機械学習モデルの開発効率化やパイプライン化を検討している方が、 Amazon SageMaker をどう使えば実現できるか学ぶためのコンテンツ。
  • frameworks
    • すでに TensorFlow や PyTorch で開発している方が、モデルを SageMaker 上で学習、推論させるための移行方法を学ぶためのコンテンツ。
    • aws-neuron AWSが設計した機械学習アクセラレーター AWS Trainium、AWS Inferentia を活用する方法を学ぶためのコンテンツ。
  • tasks
    • 画像のセグメンテーションや物体検知、自然言語処理のQAや要約など、個別具体的なタスクを SageMaker でどのように解けるか学ぶためのコンテンツ。
  • solutions
    • 製造業での異常検知モニタリングやコールセンターの問合せ分析など、特定の業務プロセスを効率化/差別化したい方が、 SageMaker と他のサービスを組み合わせどのようにソリューションを構築できるか学ぶためのコンテンツ。

🍔 AWSの機械学習サービス

AWS の機械学習サービスは AI ServicesML ServicesML Frameworks/Infrastructure の 3 層構成になっています。リポジトリの構成はサービスの構成を踏襲しています。

AWS ML Service Overview

  • AI Services
  • 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 で作成されています。コンテンツを動かすため、次の準備をしておいてください。セットアップの詳細は、コンテンツ本体の記載も参照してください。

🎥 学習コンテンツ

AI Service

Amazon SageMaker

AI/ML の BlackBelt シリーズである AI/ML DarkPart で SageMaker の使い方を解説しています! そもそも機械学習のプロジェクトはどうやって始めればいいのかに疑問をお持ちの方は、 AI/ML LightPart の動画や ML Enablement Workshop の資料をご参考ください。

No Process Title Content Video
1 Train Amazon SageMaker Training で機械学習のモデル開発を楽にする - YouTube
2 Train Amazon SageMaker Training ハンズオン編 Jupyter Notebook YouTube
3 Train Amazon SageMaker による実験管理 Jupyter Notebook YouTube
4 Deploy Amazon SageMaker 推論 Part1 推論の頻出課題とSageMakerによる解決方法 - YouTube
5 Deploy Amazon SageMaker 推論 Part2すぐにプロダクション利用できる!モデルをデプロイして推論する方法 Jupyter Notebook YouTube
6 Deploy Amazon SageMaker 推論 Part3(前編)もう悩まない!機械学習モデルのデプロイパターンと戦略 - YouTube
7 Deploy Amazon SageMaker 推論 Part3(後編)もう悩まない!機械学習モデルのデプロイパターンと戦略 - YouTube
8 Monitor Amazon SageMaker モニタリング Part1 - YouTube
9 Monitor Amazon SageMaker モニタリング Part2 Jupyter Notebook YouTube
10 Monitor Amazon SageMaker モニタリング Part3 Jupyter Notebook YouTube

Amazon SageMakerの概要 では Amazon SageMaker の全体像と動画で解説しているコードも含めたコンテンツの詳細を確認できます。

📝 実践コンテンツ

AWS で機械学習を実践する時の参考となるサンプルコードなどを紹介します。

※本サンプルコードは MIT-0 で公開していますが、サンプルコードで使用されるモデルやデータセットはそれぞれライセンスが付与されています。サンプルコードを参考に独自の実装をする場合、用途がモデルやデータセットのライセンスに違反しないか別途確認してください。

Amazon SageMaker

Amazon SageMaker で機械学習の構築、学習、デプロイをスケールする。

📯 MLOps

🚚 ML Frameworks

機械学習フレームワークの実装を SageMaker へ移行する。

Tasks

AWS で画像処理や自然言語処理などの機械学習のタスクを解く方法を解説します。

👁 画像処理

💬 自然言語処理

🔈 音声処理

📄 テーブルデータ

🤖 生成系 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 の基盤モデルである StableLMOpenCALM をインストラクションチューニングする方法を解説します。対応しているモデルとサンプルコードはフォルダ内の README.md を参照してください。 OpenCALM については 日本語大規模言語モデル OpenCALM の知識でクイズ王に挑戦する をご参考ください。
LangChain Inference LangChain から SageMaker でホスティングした text-to-text の基盤モデルを扱うサンプルです。

Solutions

SageMaker と他のサービスを組み合わせ、業務プロセスの効率化や差別化を行うためのソリューションを格納/紹介します。

  • JP RAG SOLUTION
  • コールセンターのリアルタイム会話分析
    • コールセンターで会話の文字起こし、翻訳、感情分析、会話内容の要約、オペレーターへのアドバイスをリアルタイムで行うソリューションです。文字起こしは Amazon Transcribe 、翻訳は Amazon Translate 、 感情分析は Amazon Comprehend 、 要約は Amazon SageMaker 、 アドバイスは Amazon LexAmazon Kendra で実装しています。
  • Simple Lex Kendra JP
    • 情報システム部門のヘルプデスクへの問い合わせ件数を削減するため、問い合わせを受け付けるチャットボットを設置するソリューションです。社内文書の検索を行う Amazon Kendra と問い合わせを受け付けるチャットボットの Amazon Lex v2 を組み合わせて実装しています。 AWS CDK で構成されているため、シンプルにデプロイ可能です。
    • SBI 生命様のコールセンターでの導入事例
  • レビューコメント分析ダッシュボード
    • 自然言語処理でレビューを分析した結果を Amazon Quicksight でダッシュボードとして表示するソリューションです。オープンソースの形態素解析ツールである GiNZA を用いて時系列のレビュー数に加え頻出単語・係り受け関係を参照できます。ブログ記事では、評価の低い DVD に対し 「まだ」「届く」の発生が多いことから発送遅延が原因ではないかといった分析例を示しています。

Contribution

本リポジトリへの Contribution を歓迎します! Contribution の方法は CONTRIBUTING をご参照ください。

License

This library is licensed under the MIT-0 License. See the LICENSE file.