はじめに
AWS Summit Japan 2024の開催が近づいていますね!!
今年は次の時代を創り出すキー・テクノロジーとして生成AIが取り上げられることになっており、注目トピックスになっていますね!基調講演以外のセッションも生成AI関連の話を取り上げられる方が大変多いようです。
今回、2024年3月にGAになったNew Relic AI Monitoringで話題のAmazon Bedrockをモデルとして利用したAIアプリケーションを観測してみます。New Relic AI Monitoringを利用することで、AIアプリケーションから呼び出しているAmazon Bedrockのパフォーマンスや品質を観測できるようになります。
ハンズオンを通して確認してみましょう。
このアップデートの詳細はこちら
New Relic アップデート(2024年3月)
New Relic アップデート一覧
まずは無料サインアップしよう
New Relicには、無料で利用できるフリープランがあります。New Relicは利用ユーザー数と転送データ量がライセンスの構成要素ですが、全機能使い放題のユーザー1名と100GBのデータ転送が無料で使用できます。登録フォームへの入力だけですぐに使えるので、アカウントを持ってない方はまずアカウントを作成しましょう!
フリープランのサインアップフォームに氏名などの必要事項を入力するだけですぐに利用開始できます。早速アクセスして登録してみましょう。
https://newrelic.com/jp/sign-up-japan
試してみよう
前提条件
- Amazon Bedrockが利用できること
- IAMユーザーにAmazon Bedrockを利用できる権限があること
- New Relicのアカウントがあること
- python,pip,gitが使える環境
利用するアプリケーション
今回はNew Relicが用意したAmazon BedrockやOpenAIなどのAI基盤をNew Relic AI Monitoringで観測できるサンプルアプリケーションを利用します。
nr-openai-observability
Amazon Bedrock 設定
まずはAmazon Bedrockを利用できるようにAWS コンソールで設定しましょう。
Amazon BedrockをAWS コンソールで選択します。サンプルアプリケーションがus-east-1のBedrockを利用する形になっているため、us-east-1に設定します。
「使用を開始」をクリックします。
「モデルアクセスを管理」をクリックします。
「Enable all models」を選択、ガイドに沿って、Submitをクリックします。
「モデルアクセス」でベースモデルへのアクセスが付与されたことを確認します。
Amazon Bedrockの使用準備は以上になります。
アプリケーション実行環境の用意
アプリケーションの実行環境をセットアップ
今回はAmazon Linux 2023でアプリケーションの実行環境を用意します。
本記事ではEC2の作成の流れは割愛します。EC2はインターネットに出れるネットワークに配置してください。
EC2にSSHでログインして、pipとgitをインストールします。
$ sudo yum install -y python-pip git
「nr-openai-observability」を/home/ec2-user/以下にCloneします。
$ git clone https://github.com/newrelic/nr-openai-observability.git
アプリケーションのルートディレクトリに移動します。
$ cd nr-openai-observability/
Bedrockのサンプルアプリが使えるブランチにチェックアウトします。
$ git checkout -b demo origin/staging
branch 'demo' set up to track 'origin/staging'.
Switched to a new branch 'demo'
必要なモジュールをインストールします。
pip install nr-openai-observability boto3
New Relic APM エージェントをインストールする
nr-openai-observabilityのアプリケーションからAmazon Bedrockのモデルの呼び出し状況や、アプリケーションのパフォーマンスやエラーなどの状態を計測するために、PythonのAPM エージェントをインストールします。
New Relicの管理サイトにログインして、Add Data -> AI Monitoring -> Amazon Bedrockを選択します。
「Begin installation」を選択します。
Pythonを選択します。
On a host(package manager)を選択します。
「Create a new key」を選択して、後で使用するlicense keyをコピーして控えておきます。
license keyを控えたら、次のページに進みます。
EC2にPython エージェントをインストールします。
pip install newrelic
アプリケーションの名前を入力し、アプリケーションのディレクトリに配置するPython エージェントの設定ファイルをコピーしますして、アプリケーションのルートディレクトリにnewrelic.iniというファイル名で保存します。
/home/ec2-user/nr-openai-observability/newrelic.ini
サンプルアプリケーションを修正しないと実行時にエラーがでるため、一部修正します。
vim /home/ec2-user/nr-openai-observability/examples/bedrock_example.py
monitor.initialization()にアプリケーション名を入力します。
monitor.initialization("bedrock-demo")
アプリケーション実行前に各種環境変数を設定します。
export NEW_RELIC_LICENSE_KEY=New Relic license key
export NEW_RELIC_APP_NAME=bedrock-demo
export AWS_ACCESS_KEY_ID=AWSアクセスキー
export AWS_SECRET_ACCESS_KEY=AWSシークレットキー
サンプルアプリケーションを実行します。
NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-program python3 examples/bedrock_example.py
実行時のコンソールの出力例です。New Relicにデータがレポートされていること、Amazon Bedrockを実行した結果が出力されます。
「Test connection」をクリックして、Python agentのStatusがSuccessfulになることを確認します。
データを確認
New Relicの管理サイトで入ってきているアプリケーションのデータを確認してみます。
All Capabilities-> AI Monitoringをクリックします。
アプリケーション名をクリックします。
「AI Responses」をクリックすると、アプリケーションからAmazon Bedrockを呼び出したリクエスト数や平均レスポンスタイム、トークンの利用状況などを確認することが可能です。
「Responses」に記録されたリクエストをクリックすると、Amazon Bedrockの処理の詳細を確認することが可能です。
どんな質問に対して回答を返しているのかまで確認できます。
回答文に機密情報が含まれる場合、New Relicに取り込まないようにすることが可能です。設定については以下Qiita記事を参考にしてください。
まとめ
本記事では、Amazon Bedrockを利用したAIアプリケーションのパフォーマンスやAmazon Bedrockのモデルの利用状況などをNew Relic AI Monitoringで観測できる流れをハンズオン形式で紹介させていただきました。
自社でAIを使ったソリューションを開発、運用し始めている方が増えている中で、開発しているAIアプリのレスポンスタイムや品質の管理をどうするか課題をお持ちの方が多いかと思います。New Relic AI Monitoringを使うことで、AIアプリケーションから呼び出しているAIモデル基盤のパフォーマンスや品質を簡単に観測できるようになります!
New Relicの無料アカウントの無料枠内で試せますので、是非ハンズオンを実施して使用感をご確認ください!!
このアップデートの詳細はこちら
New Relic アップデート(2024年3月)
New Relic アップデート一覧
無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!
New Relic株式会社のQiita Organizationでは、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。