はじめに
AWS は様々な AI サービスを提供しています
そして、それらのサービスはブラウザから簡単に試せるようになっています
サービス | 機能 | お試し記事 | Elixir 実装例 |
---|---|---|---|
Transcribe | 音声の文字起こし(音声認識) | 参照 | 参照 |
Polly | 文書の読み上げ(音声合成) | 参照 | 参照 |
Lex | チャットボット | 参照 | Coming Soon... |
Translate | 翻訳 | 参照 | 参照 |
Rekognition | 画像認識 顔認識 |
参照 参照 |
参照 |
Textract | 画像からの表データ読込 | 参照 | 参照 |
Bedrock | 生成AIによるチャット、画像生成 | 参照 | 参照 |
本記事では AWS の生成AIサービス Bedrock をブラウザから試してみます
Amazon Bedrock とは
Amazon Bedrock は 各種 AI 企業が構築した生成 AI モデル(FM = Foundation Model = 基盤モデル)をカスタマイズしたり、アプリケーションから簡単に呼び出せるようにしたサービスです
Amazon Bedrock の使い途(ユースケース)
Amazon Bedrock は 2023年12月現在、以下の基盤モデルを選択可能になっています
プロバイダー (基盤モデルの提供元) |
基盤モデル | 用途 | 東京リージョン |
---|---|---|---|
AI21 Labs | Jurassic-2 Ultra | テキスト | - |
AI21 Labs | Jurassic-2 Mid | テキスト | - |
Amazon | Titan Embeddings G1 - Text | ベクトル化 | OK |
Amazon | Titan Text G1 - Lite | テキスト | - |
Amazon | Titan Text G1 - Express | テキスト | OK |
Amazon | Titan Image Generator G1 | 画像 | - |
Amazon | Titan Multimodal Embeddings G1 | ベクトル化 | - |
Anthropic | Claude | テキスト | - |
Anthropic | Claude Instant | テキスト | OK |
Cohere | Command | テキスト | - |
Cohere | Command Light | テキスト | - |
Cohere | Embed English | ベクトル化 | - |
Cohere | Embed Multilingual | ベクトル化 | - |
Meta | Llama 2 Chat 13B | テキスト | - |
Meta | Llama 2 Chat 70B | テキスト | - |
Meta | Llama 2 13B | テキスト | - |
Meta | Llama 2 70B | テキスト | - |
Stability AI | SDXL 0.8 | 画像 | - |
Stability AI | SDXL 1.0 | 画像 | - |
東京リージョン列が「OK」になっているもののみ、東京リージョンから使用可能です
もし「海外のデータセンターを使ってはならない」というような要件がある場合には注意しましょう
また、プロバイダー毎に契約内容に違いがある点も注意しましょう
他の生成 AI サービスと違って、多くのプロバイダー、モデルを選択できることが強みですね
また、当然 AWS 上でシステムを組んでいる場合、他サービスよりも連携しやすいことも魅力です
Amazon Bedrock は以下のような用途に使用可能です
- 生成 AI とのチャット
- 生成 AI による画像生成
- 生成 AI による全文検索
同じチャットであっても、ユーザーから一律同じ項目の回答が欲しい場合には Lex を使いましょう
Amazon Bedrock の料金
AWS の料金は基本的に従量課金制です
Bedrock ではプロバイダー、モデル毎に料金が変わります
テキストのモデルでは入出力のトークン数(単語単位)、画像モデルでは生成した画像のサイズ、枚数、品質で課金されます
Amazon Titan バージニア北部リージョンの場合
- Titan Text – Lite
- $0.0003 / 1,000 入力トークン
- $0.0004 / 1,000 出力トークン
- Titan Text – Express
- $0.0008 / 1,000 入力トークン
- $0.0016 / 1,000 出力トークン
- Titan Image Generator (標準品質)
- 512 * 512: $0.008 / 枚
- 1024 * 1024: $0.01 / 枚
- Titan Image Generator (高品質)
- 512 * 512: $0.01 / 枚
- 1024 * 1024: $0.012 / 枚
後で紹介する Anthropic の Claude の場合は以下のようになっています
- Claude Instant
- $0.00163 / 1,000 入力トークン
- $0.00551 / 1,000 出力トークン
- Claude
- $0.00800 / 1,000 入力トークン
- $0.02400 / 1,000 出力トークン
Amazon Titan より高額にはなりますが、日本語にも対応しているのが強力です
また、 Bedrock では上記のような「オンデマンド」(使った分だけ)の課金方法以外に、「プロビジョンド」(一定の性能で使った時間分)の課金が可能になっています(一部の基盤モデルが対応)
「プロビジョンド」の場合、1時間、1モデルユニット(1分あたりの入出力トークン数制限)あたり以下のような金額になります
モデル名 | 期間を定めない | 1ヶ月契約 | 6ヶ月契約 |
---|---|---|---|
Titan Text Lite | $7.10 | $6.40 | $5.10 |
Titan Text Express | $20.50 | $18.40 | $14.80 |
Titan Image Generator | 非対応 | $16.20 | $13.00 |
Claude Instant | 非対応 | $39.60 | $22.00 |
Claude | 非対応 | $63.00 | $35.00 |
当然、使用期間を長く契約した方がお得です
¥150/$ で30日間24時間使用した場合、日本円では以下のような金額になります
モデル名 | 期間を定めない | 1ヶ月契約 | 6ヶ月契約 |
---|---|---|---|
Titan Text Lite | ¥766,800 | ¥691,200 | ¥550,800 |
Titan Text Express | ¥2,214,000 | ¥1,987,200 | ¥1,598,400 |
Titan Image Generator | 非対応 | ¥1,749,600 | ¥1,404,000 |
Claude Instant | 非対応 | ¥4,276,800 | ¥2,376,000 |
Claude | 非対応 | ¥6,804,000 | ¥3,780,000 |
1ヶ月で数十万円、数百万円になるため、契約時には注意しましょう
利用者、利用頻度が多い場合は「プロビジョンド」を選択した方が安くなるかもしれません
また、この記事では扱いませんが、モデルを自前データでカスタマイズすることも可能です
残念ながら、 Bedrock には無料利用枠が存在しません
注意しながら使いましょう
アカウント作成
Amazon Bedrock を使うためには、 AWS のアカウント作成が必要です
以下の公式手順に従って、アカウントを作成してください
クレジットカードと電話番号が必要になります
予めご用意ください
ブラウザからの文書分析
Amazon Bedrock への移動
AWS のマネジメントコンソールにログインすると、以下のような画面が表示されます
この画面から最近使ったサービスなどにアクセスできるようになっています
上メニューにある検索ボックスに bed
と入力してみましょう
サービスの候補として Amazon Bedrock が表示されます
Amazon Bedrock をクリックしましょう
以下のような画面が表示されます
リージョンの変更
左メニューから Model access を開いたとき、東京リージョンでは3種類しか基盤モデルが存在しません
画像生成なども実行したいので、バージニア北部リージョンに変更しましょう
右上の「東京」をクリックして出てくるドロップダウンから「バージニア北部」を選択します
バージニア北部では全てのモデルが選択可能です
モデルアクセスの要求
最初の状態ではどのモデルも使えない状態です
モデルアクセスを要求し、使えるようにします
本記事では Amazon 提供のモデルについてアクセスを要求します
Base Models 一覧の右上にある Manage model access をクリックします
各モデルの右端にある「EULA」は「End-User License Agreement = 使用許諾契約」です
クリックすると、個別の契約内容が確認できます
Amazon 提供のモデル場合、以下のような文言が表示されます
Your use of this Service is governed by the terms of the AWS Customer Agreement
(h9ps://aws.amazon.com/agreement) or other agreement with AWS governing your use of AWS
services, including specific terms that apply to this Service set forth in Service Terms
(h9p://aws.amazon.com/serviceterms).
AWS の規約に準じている、というような事が書かれています
契約内容を確認してから、使用したいモデルにチェックを付けます
画像では Titan Text G1 - Lite
を選択していますが、 Lite だとチャットができなかったので Titan Text G1 - Express
を選択しまししょう
モデルによっては詳細な利用目的の入力を要求されます
最下部 Request model access をクリックします
Amazon 提供モデルの場合、すぐに使用できるようになります
生成 AI をプレイグラウンドから試す
画像生成
左メニュー「Playgrounds」の「Image」をクリックします
画像生成のプレイグラウンド(遊び場 = 試しに使って結果を見る事ができる場所)が表示されます
左上「Select model」をクリックし、使用するモデルを選択します
Titan Image generator による画像生成の準備ができました
「Generate」(生成)モードで左下にテキストを入力し「Run」をクリックすると、数分で画像が生成されます
以下の例は「Greetings Bumble Bee」=「挨拶する熊ん蜂」です
残念ながら日本語は正しく認識してくれません
日本語から画像生成したい場合は Translate と組み合わせましょう
「Edit」(編集)モードで画像の一部を編集してみます
適当な画像をアップロードし、編集したい部分を紫色の枠で指定します
編集の内容を入力して「Run」をクリックすると、結果が表示されます
私の顔を女性にしてみました
Negative Prompt に「Glasses」と入力して、メガネはかけないようにします
テキスト
生成 AI によるテキスト生成を試します
左メニュー「Playgrounds」の「Text」をクリックします
「Select model」をクリックします
「Amazon」|>「Titan Text G1 - Express v1」|>「On-demand」と選択し、「Apply」をクリックします
残念ながら Titan は日本語に対応していないので、英語で語りかけてみましょう
日本語を使いたい場合、後述する Anthropic の Claude を使います
下のテキスト入力に言葉を入れて「Run」をクリックすると、答えてくれます
Elixir でのナップサック問題の解法を教えてくれました
チャット
生成 AI とのチャットを試します
左メニュー「Playgrounds」の「Chat」をクリックします
「Select model」をクリックします
「Amazon」|>「Titan Text G1 - Express v1」|>「On-demand」と選択し、「Apply」をクリックします
下のテキスト入力に質問を入れて「Run」をクリックすると、答えてくれます
りんごの美味しい食べ方を教えてくれました
日本語チャット
日本語を使いたい場合、 Anthropic の Claude を使用します
左メニューから「Model access」を開き、「Manage model access」をクリックしましょう
デフォルトでは左側のチェックボックスが押せないようになっています
「Submit use case details」=「用途の詳細を提出する」をクリックすると以下のような入力フォームが表示されるので、自分の会社名、Webサイト、業種、対象ユーザー、利用目的を入力して「Submit」をクリックします
すると、チェックボックスが入力可能になるのでチェックして最下部の「Save changes」をクリックします
選択したモデルが「In Progress」の状態に変化します
しばらくすると、「Access granted」の状態になり、使用可能になります
左メニューから「Playgrounds」の「Chat」を開きましょう
「Select model」を開いて、「Anthropic」の「Claude 2.1」を選んで「Apply」をクリックします
ちゃんと「銀河鉄道の夜」について日本語で受け答えしてくれました
Elixir による実装
以下の記事で Elixir というプログラミング言語から Bedrock を呼び出し、 チャットや画像生成を実行しています
API の呼び出し方は共通なので、多言語での実装にも参考になると思います
是非、見てください
(そしてあわよくば Elixir の世界へ)
まとめ
Amazon Bedrock を使って生成 AI による画像生成やチャットを試す事ができました
今後もプロバイダーやモデルが増えていくと思われるので、楽しみですね