SageMaker AI上のJupyter LabでAmazon Q DeveloperとGitHub Copilotを試してみる
はじめに
Google ColabにGeminiとの連携機能があります。
便利なのですが、ユーザーの入力データを開発者が閲覧できたり、機能向上に使われたりするみたいです。

加えて、個人的にSageMakerを使うことが多かったことから、SageMaker上のノートブックでGitHub Copilot等のAIチャットが使えたらいいなと思い、少し調べてみました。
設定手順
SageMaker Domain の作成
SageMaker AI>画面左側のメニュー>管理者設定>ドメイン>ドメインを作成


JupyterLab スペースとサンプルノートブックの作成
自動作成されたデフォルトユーザーでSageMaker Studioを起動します。
起動後、Want to take a quick tour?というモーダルが表示されるので、Skip Tour for nowを選択します。

画面左側のメニューのJupyterLabのマークを押下します。

Create JupyterLab Spaceを押下して、JupyterLabのスペースを作ります。

スペースを起動します。

JupyterLabを開きます。

ノートブックを1つ作成します。

カーネルの選択とノートブックのリネームをしておきます。


これで、ノートブックの表示までできました。
Amazon Q Developer(無料利用枠のみ)
Amazon Q Developerに入力した内容がサービス向上のために使用されないように、添付図のチェックを外します。
Settings>Setting Editor

画面左側のメニューのチャットのマークを押下します。

例えば、/askをつけて質問することができます。

Replace Sectionのボタンを押下するとコードがセルに自動で入力されます。
実行すると、グラフが表示されました。

ちなみに、歯車マークを押下すると、Amazon Q Developer以外に基盤モデルを指定することもできます。
Amazon Q Developerではなく、基盤モデルを選択してチャットボットと会話すると、有料になるので注意してください。


Bedrock経由でAnthropic社の基盤モデルを選択できますが、sonnet-3.5-v2までしか選択できないみたいです。


新規にチャットを作成すると、チャットボットの名前が、Amazon QからJupyternautに変わりました。

どうやら、画面左側のメニューのチャットのマークは、Jupyter AIというJupyterLabの拡張機能のようです。
開発は、AWS所属のProject Jupyter参加メンバーがやっているみたいです。
このJupyter AIでチャットボットとして使えるものの中の1つにAmazon Q Depeloperがあるみたいですね。
また、Jupyter AIはProject Jupyterの公式サブプロジェクトで、Project Jupyter全体と同じ原則に基づいて設計されているということが、開発者の1人であるJason Weill氏の記事に書かれています。
Jupyter AI is an official subproject of Project Jupyter and is available now as free, open source software.
We designed it based on the same principles that underlie all of Project Jupyter:...
Project Jupyterのデータプライバシーを見ると、Project Jupyterの開発者によって情報が収集されたり、開発者に情報が送信されたりすることはないようなので、Jupyter AIへの入力データが開発者に収集されるようなことはなさそうに思いました(間違ってたら教えてください)。
All software developed by the Jupyter Project, other than purpose-built telemetry libraries, is free of tracking code. When you install and deploy Jupyter software and libraries on your own computers and servers, no information is collected by or sent to Project Jupyter’s developers.
GitHub Copilot
ローカルPCのVSCode(GitHub Copilot設定済み)からSageMaker上のJupyterLab スペースに接続することができます。
これにより、ローカルPCのVSCodeのGitHub Copilotのチャット欄から、JupyterLabのコードを指定して質問したりできます。
ローカルPCのVSCodeには、AWS Toolkitをインストールしておきます。

SageMaker Domain内で使用するIAMロールを特定します。


許可>編集 で、特定したIAMロールのポリシーを以下の通り編集して保存します。
{
"Version": "2012-10-17",
"Statement": [
...,
{
"Action": [
"sagemaker:StartSession"
],
"Effect": "Allow",
"Resource": [
"arn:aws:sagemaker:ap-northeast-1:{your-account-id}:space/*"
]
}
]
}
SageMaker Studioでは、Remote accessをオンにして、スペースを起動します。
なお、インスタンスは、メモリが8GiB以上のものを選択しないとスペースを起動できません。

Open in VS Codeを押下すると、「Visual Studio Code.appを開きますか?」と表示されるので、Visual Studio Code.app を開くを押下します。
「'AWS Toolkit' 拡張機能がこの URI を開くことを許可しますか?」と表示されるので、開くを押下します。
先ほど作成したsample.ipynbを開くことができ、GitHub Copilotに質問したりできます。

おわりに
SageMaker上のノートブックでAmazon Q Developer(無料枠のみ)やGitHub Copilotを使用する手順をご紹介しました。
ちなみに、Amazon Q Developer Proを使うには、IdCの使用と別途設定が必要みたいなので、本記事では取り上げませんでした。
また、SageMaker AI上のJupyterLabでAmazon Q Developerを使用した時に、無料利用枠の1ユーザーあたりというのが何を指すのかがわかっていません(無料枠では、1ユーザーあたり50回質問できるみたいですが…ドメイン内のユーザープロファイル1つが1ユーザー?)。
ご存知の方がいらっしゃったら優しく教えてください。
ここまでご覧いただきありがとうございました。
NCDC株式会社( ncdc.co.jp/ )のエンジニアチームです。 募集中のエンジニアのポジションや、採用している技術スタックの紹介などはこちら( github.com/ncdcdev/recruitment )をご覧ください! ※エンジニア以外も記事を投稿することがあります
Discussion