このページの本文へ

FIXER Tech Blog - AI/Machine Learning

生成AI基盤のAmazon BedrockでTitan Embeddingsを試してみる

2023年10月18日 10時00分更新

文● 村上 滉樹/FIXER

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はFIXERが提供する「cloud.config Tech Blog」に掲載された「Amazon BedrockでAmazon Titan Embeddingsを試してみる」を再編集したものです。

 こんにちは、株式会社FIXERの村上です。

 2023年9月28日、ついにAmazon Bedrock(AWS 生成系AIサービス)が一般提供になりました🎉

Amazon Bedrock が一般利用可能に – 基盤モデルを利用した生成系 AI アプリケーションの構築とスケール

 今年の4月中旬に米国Amazonから発表があり、AWSパートナーなどの一部のIT企業でプライベートプレビューが開始されていました。それから5ヶ月余りの時を経て、一般利用提供(GA)として公開されました。

利用可能なAWSリージョン

 2023年9月29日時点で、以下の4つのリージョンが利用可能です。

・バージニア北部(us-east-1)
・オハイオ(us-east-2)
・オレゴン(us-west-2)
・シンガポール(ap-southeast-1)

 日本国内の東京リージョンや大阪リージョンはまだサポートされていません。バージニア北部とシンガポールを試してみましたが、バージニア北部の方が基盤モデルの申請が迅速に承認されたり、基盤モデルのバージョンがより新しい場合があり、現時点では開発や技術検証において、このバージニア北部の利用をお勧めします。

※2023/10/04 追記
・祝!Amazon Bedrock が東京リージョンに対応しました!

利用可能な基盤モデル

 2023年9月29日時点で、以下の5つのAIモデルを利用できます。

・AI21 Labs Jurassic-2(J2)
・Amazon Titan
・Anthropic Claude
・Cohere
・Stability AI

 利用するためには、リージョンごとで「Edit」から利用申請が必要です。

Amazon Bedrockの料金

1.モデルインファレンス料金:
・On Demand: 使用したモデルインファレンスに対して、利用した分だけの料金が発生します。時間ベースの契約は不要です。
・Provisioned Throughput: アプリケーションのパフォーマンス要件を満たすために、十分なスループットを提供するための時間ベースの契約があります。
2.カスタマイズ料金:
・Model customization (fine-tuning): カスタムモデルの作成や調整に関連する料金が発生します。

Amazon Bedrock Pricing

Titan Embeddings で埋め込みベクトルを生成してみた

 本ブログのハンズオンではモデルID「amazon.titan-embed-text-v1」を利用して、埋め込みベクトルを生成してみます。

 事前にいくつか環境設定が必要なので、紹介していきます。

1.環境設定
・AWSの認証情報をセットアップする
 AWSアクセスキーとシークレットアクセスキーを取得します。

 aws configure コマンド をターミナル等で実行します。
 必要なパラメータは以下のとおりです。適宜、プロファイル名を調整します。

・ハンズオンで使用するGitHubリポジトリをクローンする

・Python 3バージョン系 をインストールする(pip もインストールください!)

 本ブログでは、python@3.11/3.11.5 をインストールしています。
https://www.python.org/downloads/

・AWS SDK for Python(Boto3)をインストールする

 本ブログでは、AWS SDK(Boto3)は 1.28.57 をインストールしています。1.28.57 以上のバージョンが必要です。

・言語モデルを利用したアプリケーションを開発するためのフレームワーク(LangChain)をインストールする

・「Titan Embeddings G1 - Text」の利用申請を行う

 モデルアクセス の画面から「Titan Embeddings G1 - Text」をリクエストします。
 「Edit」からTitan Embeddings G1 - Textを申請ください。
 利用可能になると Access status が「Access granted」に更新されます。

2.いよいよ実践
・クローンしたリポジトリの直下にpythonファイルを配置します。コードは以下のとおりです。

 本ブログでは bedrock_api_request.py というファイルを配置しました。

・実行してみました。

 [0.015136719, -0.12890625, -0.17480469, -0.0859375, -0.390625, 0.052246094, ..., 0.109375]
と埋め込みベクトルが表示されました。

 私は見てもよく分かりませんが、生成できたので良しとします。

さいごに

 Amazon Bedrockが公開されたことで、国内の生成型AIをビジネスに取り入れるシーンが増加する可能性が高まっていますね!

 今後来るであろうVPCエンドポイントへの対応をしてもらえれば、閉域網の実現ができて、今後が楽しみですね!!

■参考サイト
Amazon Bedrock API Reference
Amazon BedrockのAPIをPythonアプリから呼んでみよう。LangChainにも挑戦!
Amazon BedrockをBoto3から使ってみた

村上 滉樹/FIXER
株式会社FIXER|名古屋事業所 所属
2020年4月 新卒入社
職業:Cloud Solution Engineer(主にインフラ)

好きなAWS/Azureサービス:AWS Fargate / App Service
最近 Kubernetes 学び始めました。

カテゴリートップへ

この連載の記事