データサイエンスの学びを支援する Amazon SageMaker Studio Lab をグラレコで解説
Author : 久保 隆宏
builders.flash 読者のみなさん、こんにちは! DevRelの久保 隆宏と申します。4 月から新年度が始まりました。今年度は機械学習を勉強したい ! と考えている方もいらっしゃるのではないでしょうか。
本記事では機械学習を学ぶ時につまずきがちな環境構築の問題を解決する Amazon SageMaker Studio Lab をご紹介します。
2021 年のリリース後、Studio Lab は国内外の大学の授業や教材で幅広くご利用いただいています。現在 100 個近い GitHub リポジトリに Studio Lab ですぐ学べる Open in Studio Lab ボタンがつけられています。
引用 : 機械学習帳
(クリックすると拡大します)
引用 : ゼロから作るDeep Learning ❹ 強化学習編
(クリックすると拡大します)
Amazon SageMaker Studio Lab とは
Amazon SageMaker Studio Lab は、メールアドレスのみで利用できる無料の機械学習の実行環境です。複雑な環境設定が不要で、機械学習を学び始めた初学者の方でも容易にご利用いただけます。
クリックすると拡大します
Amazon SageMaker Studio Lab は、オープンソースの JupyterLab をベースにしています。
JupyterLab とは、非営利団体「Project Jupyter」により開発されているオープンソースです。Web ベースのインタラクティブなプログラム開発環境であり、Python 以外にも Java や Go など様々な言語をサポートしています。Markdown のドキュメント、プログラミングコード、プログラムの実行結果の 3 つを含む ”Notebook” をインタラクティブに作成できるのが最大の特徴です。
ちなみに、”Jupyter” のスペルは ”Jupiter (木星)” と間違えているわけではなく、Julia、Python、R の 3 つの言語に由来します (※)。様々な企業の方が Contributor として開発しており、AWS からも Brian Granger 氏が長期的な計画を立案する Steering Council に参加しています。
※ : 詳細は Jupyter Blog をご参照ください。「I Python, You R, We Julia」。
クリックすると拡大します
Amazon SageMaker Studio Lab が提供する機能
AWS は Amazon SageMaker をすでに提供していますが、SageMaker と Studio Lab は大きく 3 つの点で異なります。
1 点目はAWSアカウントが不要であること、2 点目は無料であること、3 点目は利用可能な機能です。
Studio Lab は機械学習の学びや検証を行うため、SageMaker は検証した後の本格的な機械学習モデルの開発と運用のため、と役割が異なります。Studio Lab にはもちろん SageMaker ほど豊富な機能はありませんが、学習に十分な機能とスペックを備えています。
ブラウザ上で実行できるため、利用するパソコンに特別なスペックは必要ありません。「GPU が搭載された開発用のパソコンをクラウド上に持てるサービス」というイメージです。開発用のパソコンと感じる理由は 3 つです。1 つめは静的ストレージがあること、2 つめはターミナルが使えること、3 つめは開発環境がカスタマイズできることです。
パソコンと同じように静的ストレージがあるため、ブラウザを落としても、CPU / GPU のセッションが切れても、作業内容はすべて保存されています。再度ブラウザでアクセスし、セッションを繋ぎ直せば終了時点の作業内容から再開できます。
JupyterLab をベースとしているため、Jupyter の Kernel がサポートしているプログラミング言語であれば基本的に動かすことができます。Python や R はもちろん、Rust や C++ なども動かせます。また Jupyter の拡張をインストールしてカスタマイズすることもできます。
クリックすると拡大します
Amazon SageMaker Studio Lab の利点
Amazon SageMaker Studio Lab を学習環境に採用することで 3 つの利点が得られ、環境構築の問題を解消できます。
1 つめは ベースとなる OS をそろえることができ、Windows / Mac / Linux など OS の違いを配慮する必要がなくなる点。2 つめは conda を使用して教材専用の仮想環境を構築できるためライブラリ間のバージョンがそろわないことで発生する問題をなくすことができる点。3 つめは一度構築した教材専用の環境が永続化され、学習中使い続けられる点です。
授業をする側の目線からは、「学習者に共通の実行環境を無料で配布できるサービス」といえます。condaは Python をはじめとしたプログラミング言語の環境構築に用いられるツールです (※)。conda を使用した仮想環境の構築は通常コマンドから行いますが、Studio Lab は環境を定義した yml ファイルを右クリックし、 “Build Conda Environment” を実行することで仮想環境を構築できます。コマンドに不慣れな学習者でも簡単に教材専用の環境を構築できます。
※ : Studio Lab では Anaconda ではなく mini-forge で conda を導入し、ライブラリは conda-forge からインストールするよう設定しています。そのため、Anaconda の商用ライセンスの影響は受けません。詳細は こちら をご覧ください。
※ : Studio Lab では Anaconda ではなく mini-forge で conda を導入し、ライブラリは conda-forge からインストールするよう設定しています。そのため、Anaconda の商用ライセンスの影響は受けません。詳細は こちら をご覧ください。
クリックすると拡大します
オープンソースの Jupyter Lab をベースにしているため、言語パックをインストールすることで日本語化することができます。
このように Studio Lab は学習者にとっては学びやすい、教材作成者にとっては教えやすい環境といえます。
クリックすると拡大します
Amazon SageMaker Studio Lab の使い方
それでは Studio Lab の使い方を見ていきましょう。
教材を作成されている方は、GitHub リポジトリに Open in Studio Lab ボタンをつけると、学習者の環境セットアップをより簡単にできます。複数の Jupyter Notebook で構成される教材は、リポジトリ全体を静的ストレージにダウンロードすることで一括して持ってくることができます。
Studio Lab に持ってきた後は、JupyterLab と同じように Notebook を実行することができます。詳細は こちら をご参考ください。
クリックすると拡大します
Open in Studio Lab ボタンは、README.md に次の記述を入れるだけで作成できます。your-org、your-repo-name、your-branch-name、path-to-your-notebook.ipynb は開きたい Jupyter Notebook に合わせて記載します。
[![Open in SageMaker Studio Lab](https://studiolab.sagemaker.aws/studiolab.svg)](https://studiolab.sagemaker.aws/import/github/<your-org>/<your-repo-name>/blob/<your-branch-name>/<path-to-your-notebook.ipynb>)
例えば、Studio Lab をご利用いただいている学習サイト「機械学習帳」にある Jupyter Notebook の URL は次のようになります。
https://github.com/chokkan/mlnote/blob/main/classification/01binary.ipynb
この時、各パラメーターの値は次のようになります。
パラメータ | 値 |
your-org | chokkan |
your-repo-name | mlnote |
your-branch-name | main |
path-to-your-notebook.ipynb | classification/01binary.ipynb |
Open in Studio Lab ボタンを設置いただいたリポジトリではいずれも GitHub の Star 数が増加しています。AWS としても、教えやすい、学びやすい教材をより広めることに貢献したいと考えています。
引用 : 機械学習帳 (東工大) の例。
Open in Studio Lab ボタンをマージした 12/5 以降に GitHub の Star が 1 週間で 92 から 131 へ上昇。
(クリックすると拡大します)
引用 : BERT による自然言語処理入門: Transformers を使った実践プログラミングの例。
Open in Studio Lab ボタンをマージした 3/4 以降に GitHub の Star が 105 から 113 に上昇。
(クリックすると拡大します)
Amazon SageMaker との連携
Amazon SageMaker Studio Lab は、Amazon SageMaker にプロジェクトをエクスポートすることができます。つまり、Studio Lab でデータサイエンスの学習からプロトタイピングまで行い、実用性が見込めた際には本格的なモデル開発や推論が可能な SageMaker に移行できるということです。
クリックすると拡大します
最後に、全体の図を見てみましょう。
まとめ
本記事では、Amazon SageMaker Studio Lab についてご紹介しました。
Studio Lab の登場で、AWS はデータサイエンスの学びから、クラウドを用いた MLOps の構築まで、機械学習プロジェクトの成長過程に長期間伴走できるようになりました。Studio Lab が、新年度より機械学習に取り組まれる方の入り口となれば幸いです。
Studio Lab の利用申請は下記のフォームからいつでも可能です。
現在多数の申し込みをいただいております。承認が遅い場合は、こちらの GitHub Issue のフォーム よりご連絡ください。
AWS グラレコ解説のその他の記事はこちら
- 選択
- 今話題のブロックチェーンをAWSで実現する仕組みをグラレコで解説 »
- サーバーレスって何が便利なの ? AWS でサーバーレスを構築するためのサービスをグラレコで解説 »
- 機械学習のワークフローってどうなっているの ? AWS の機械学習サービスをグラレコで解説 »
- 外部から AWS のバックエンドサービス利用を実現する仕組みをグラレコで解説 »
- AWS でデプロイの自動化を実現するベストプラクティスをグラレコで解説 »
- コンテナを使ってモノリスを分割する方法をグラレコで解説 »
- クラウドへ移行する理由とそのステップをグラレコで解説 »
- Windows ワークロードをクラウドへ移行するためのベストプラクティスをグラレコで解説 »
- サーバーレスのイベントバスって何 ? Amazon EventBridge をグラレコで解説 »
- サーバーレスで SaaS を構築する方法をグラレコで解説 »
- 「あなたへのおすすめ」はどう生成するの ? Amazon Personalize で簡単に実現する方法をグラレコで解説 »
- クラウド設計・運用のベストプラクティス集「AWS Well-Architectedフレームワーク」をグラレコで解説 »
- 特定の顧客セグメントにメッセージ送信。「Amazon Pinpoint」の仕組みをグラレコで解説 »
- アプリにユーザー認証機能を簡単に追加できる「Amazon Cognito」をグラレコで解説 »
- わずか数分で WordPress サイトを構築できる「Amazon Lightsail」をグラレコで解説 »
- 異なるアプリケーション同士の疎結合を実現。「Amazon SQS」をグラレコで解説 »
- Web アプリを高速に開発できる「AWS Amplify」をグラレコで解説 »
- 機械学習の知識ゼロでもテキストデータを分析。Amazon Comprehend をグラレコで解説 »
- ビジネスデータをまとめて可視化 & 分析。Amazon QuickSight をグラレコで解説
- 人工衛星の地上局を 1 分単位で利用。AWS Ground Station をグラレコで解説
- カオスエンジニアリングで本当にカオスにならないための進め方をグラレコで解説
- GraphQL API を簡単に作成 & 運用。AWS AppSync をグラレコで解説
- IoT 環境を必要な機能を選択するだけで構築。AWS IoT をグラレコで解説
- 高い可用性と耐久性のオブジェクトストレージ。Amazon S3 をグラレコで解説
- サーバーレスでイベント駆動型アプリケーションを実現。AWS Lambda をグラレコで解説
- データサイエンス教育の強い味方。Amazon SageMaker Studio Lab をグラレコで解説
- 高速で柔軟な NoSQL データベースサービス。Amazon DynamoDB をグラレコで解説
- リレーショナルデータベースを簡単・迅速に実現。Amazon RDS をグラレコで解説
- アプリのワークフローを視覚的に構成。 AWS Step Functions をグラレコで解説
- データ保護に使う暗号化キーを一元管理。AWS KMS をグラレコで解説
- アプリケーションへのトラフィックを効率的に負荷分散。Application Load Balancer をグラレコで解説
- AWS で簡単にコンテナアプリケーションを構築 ! Amazon ECS をグラレコで解説
- 大規模データセットも簡単クエリ! Amazon Athena をグラレコで解説
- キャッシュ機能でアプリの高速化を実現 ! Amazon ElastiCache をグラレコで解説
- 使い慣れたプログラミング言語でクラウド環境を構築 ! AWS CDK をグラレコで解説
- ストリーミングデータを簡単にキャプチャ、処理、保存 ! Amazon Kinesis Data Streams をグラレコで解説
- AWS で始める機械学習はじめの一歩 ! AWS の主要な AI/ML サービスをグラレコで解説
- リレーショナルデータベースをサーバーレス化 ! Amazon Aurora Serverless をグラレコで解説
- ML 駆動の検索エンジンで企業の情報管理を革新! Amazon Kendra をグラレコで解説
- オンプレミス、エッジ、どこでも楽々コンテナ管理 ! Amazon EKS Anywhere をグラレコで解説
- 生成 AI アプリケーション開発をもっと身近に、簡単に ! Amazon Bedrock をグラレコで解説
- わずか数クリックで多様な脅威を監視しクラウドを保護 ! 脅威検出サービス Amazon GuardDuty をグラレコで解説
- データの改ざん耐性と変更履歴の検証可能性を実現 ! 台帳データベース Amazon QLDB をグラレコで解説
- 生成 AI x クラウドがもたらす次世代のイノベーション ! AWS Summit Japan Day 1 基調講演をグラレコで解説
- ビジネス向け生成 AI アシスタント Amazon Q Business をグラレコで解説
- 生成 AI コーディングアシスタント Amazon Q Developer をグラレコで解説
- フロントエンドとバックエンドを統合開発 ! フルスタック TypeScript 開発環境 AWS Amplify Gen 2 をグラレコで解説
筆者プロフィール
久保 隆宏
アマゾン ウェブ サービス ジャパン合同会社
DevRel, Machine Learning
コンサルタント、機械学習エンジニア、プロダクトマネージャーを経て機械学習をプロダクトに活かすことに取り組んできました。DevRelでは機械学習領域での AWS 認知拡大に取り組んでいます。
趣味はランニングとテニス、ライブに行くことです。最近の情勢を受けライブハウスに行けないのが目下の悩みです。
現在、Machine Learning Product Manager について勉強中です。
イラスト作成者プロフィール
米倉 裕基
アマゾン ウェブ サービス ジャパン合同会社
テクニカルライター・イラストレーター
日英テクニカルライター・イラストレーター・ドキュメントエンジニアとして、各種エンジニア向け技術文書の制作を行ってきました。
趣味は娘に隠れてホラーゲームをプレイすることと、暗号通貨自動取引ボットの開発です。
現在、AWS や機械学習、ブロックチェーン関連の資格取得に向け勉強中です。
AWS を無料でお試しいただけます