0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】Amazon BedrockのモデルをJupyter Notebook + VSCodeで呼び出す

Last updated at Posted at 2025-03-14

はじめに

Amazon Bedrockとは、生成AIの基盤モデルが利用できる、AWSのサービスです。

本記事では、VSCodeを用いて、Jupyter NotebookでBedrockが提供するLLMを呼び出します。
割と初心者向けです。

前提条件

  • AWSのアカウントを作成済み
  • 以下がインストール済み
    • AWS CLI
    • python 3系
    • VSCode

Bedrockによる生成AIの利用には、料金が発生します。詳しくはこちら

1. IAMユーザーに許可を追加

本記事の手順を行うために、Bedrockへのアクセス権限を持ったIAMユーザーが必要です。

AWSマネジメントコンソールなどで、任意のIAMユーザーにAmazonBedrockFullAccessというポリシーをアタッチします。(ユーザーがない場合は作成して下さい。)

2. AWSの認証情報を設定

IAMユーザーの認証情報を、ローカルの環境に設定します。既に設定済みの場合は3.の手順へ。

まず、IAMユーザーのアクセスキーを作成します。

  • ユーザー詳細ページから作成可能です

    シークレットアクセスキーは最後のステップの確認画面でしか取得できません。どこかにメモしておきましょう。

次に、以下のコマンドで認証情報を設定します。

aws configure
  • 公式ドキュメントにあるように、ダイアログで先程作成したアクセスキーの値を入力します
    • リージョンや出力フォーマットの設定値はお好みでどうぞ
  • --profileオプションでプロファイル名を指定して設定できます(指定しない場合はdefault
  • 設定ファイルが、~/.aws/またはC:\Users\USERNAME\.aws\フォルダ内に作成されます

3. 基盤モデルへのアクセスを有効化

Bedrockでは、使用するモデルへのアクセスを予め有効化しておく必要があります。

  1. マネジメントコンソールの「Amazon Bedrock」を開く1

  2. サイドメニューから「モデルアクセス」を選択

  3. 特定のモデルを有効にする」ボタンを押す

  4. 有効化したいモデルにチェックを入れて、ページ下部の「次へ」ボタンを押す

    • 今回はAmazonの"Titan Text G1 - Express"を選択します2

    リージョンによって選択できるモデルの種類が異なります

  5. 確認画面で「送信」ボタンを押す

送信されたリクエストが通ると、モデルの「アクセスのステータス」が「アクセスが付与されました」になり、有効化が確認できます。

4. 実行ファイルの作成と環境構築

では、コードを実装するJupyter Notebookファイルの作成と、実行に必要な環境の設定をVSCodeで行います。

ファイルの作成

適当なフォルダの配下に、Notebookファイルを作成します。

mkdir bedrock
cd bedrock
touch sample.ipynb

上記のフォルダをVSCodeで開きます。

VSCodeの拡張機能のインストール

必要なVSCodeの拡張機能をインストールしましょう。

  1. Jupyter
  2. Python

以下の表示になるはずです。

仮想環境の作成

Jupyter Notebookのコードを実行するには、Jupyterカーネルが必要です。今回は、現在のワークスペースにPythonの仮想環境を作成し、それをカーネルとして選択します。

  1. Notebookファイルの右上にある「カーネルの選択」を押す
  2. 表示されたポップアップで、次のように選択する
    • Python環境」>「+ Python 環境の作成」>「Venv
  3. すると、ローカルにインストールされているPythonの一覧が表示されるので、使用するバージョンのPythonを選択する

以上の手順が終わると、ワークスペースの中に.venvフォルダが作成され、その仮想環境がNotebookファイルのカーネルとして選択されています。
この方法ではワークスペースごとに仮想環境が用意されるため、プロジェクトごとに環境を分けることができます。

これで、Jupyter Notebookファイルを実行する準備が整いました。

5. LLMモデルを呼び出すコードの実装

上記手順で作成したNotebookファイルに、SDKを用いてBedrockのLLMを呼び出すコードを実装していきます。

まず、最初のセルを追加してSDK用のライブラリをインストールします。

sample.ipynb
%pip install boto3

以下のコードで、BedrockのAPIを呼び出す用のクライアントを作成します。

sample.ipynb
import boto3

bedrock_client = boto3.client('bedrock-runtime')

実行すると、AWSのデフォルトのプロファイルのリージョン設定が読み込まれます。

設定に失敗していると、NoRegionErrorもしくは、InvalidRegionErrorになります

デフォルト以外のプロファイルを指定したい場合

環境変数AWS_PROFILEに、プロファイル名を設定する必要があります。
Notebookファイルに環境変数を設定するには、pythonライブラリのpython-dotenvを使うのが良いでしょう。

  1. .envファイルをルートフォルダに作成

    .env
    AWS_PROFILE=your-profile    
    

  2. Notebookファイルでライブラリのインストール

    sample.ipynb
    %pip install python-dotenv
    

  3. コード内で.envファイルを読み込む

    sample.ipynb
    import os
    
    %load_ext dotenv
    %dotenv
    
    # 環境変数を表示
    print(os.environ.get('AWS_PROFILE'))
    

  4. 上記コードの後にクライアントを作成すれば、自動的に環境変数が読まれ、指定したプロファイルの情報が利用される

もちろん、セル内で直接環境変数を指定してもよい


続いて、以下がBedrockのモデルの呼び出しに必要な引数の設定です。input_textがLLMに送られるユーザーの入力になります。

sample.ipynb
import json

input_text = """
    AWSのSDKとは何ですか?
"""

body = json.dumps({
    "inputText": input_text, 
    "textGenerationConfig": {
        "maxTokenCount": 8192,
        "stopSequences": [],
        "temperature": 0,
        "topP": 1
    }
})

modelId = 'amazon.titan-text-express-v1'
accept = 'application/json'
contentType = 'application/json'

そして、invoke_modelメソッドを用いてモデルに回答を生成させましょう。

sample.ipynb
response = bedrock_client.invoke_model(
    body = body,
    modelId = modelId,
    accept = accept,
    contentType = contentType
)

AWSの認証情報の設定が間違っていると、上のコードの実行が失敗します。

成功したら、LLMモデルが生成した回答を表示してみましょう。

sample.ipynb
response_body = json.loads(response.get('body').read())
outputText = response_body.get('results')[0].get('outputText')

print(outputText)
結果
AWSのSDKとは、AWSのサービスを簡単に利用できるようにするためのソフトウェア開発キットです。AWSのSDKには、さまざまな言語に対応したライブラリやツールが含まれており、これらのライブラリやツールを使用することで、AWSのサービスを簡単に利用することができます。AWSのSDKは、AWSのサービスをより効率的に利用するために開発されたものであり、開発者にとって非常に便利なツールです。

Bedrockのモデルを呼び出すことができました。

おわり

本記事では、VSCodeを使ってJupyter Notebookの環境を作成し、Bedrockのモデルを呼び出すコードを実行してみました。
ぜひ入力する質問を変えてみたりして、生成AIで遊んでみて下さい。

参考リンク

  1. 基盤モデルへのアクセスの変更は、マネジメントコンソール上でのみ可能(参考

  2. Amazon Titanシリーズのモデルのアクセスは、一度許可すると取り消しできません
    (アクセス許可を削除するタイミングはないとは思いますが)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?