[Amazon Bedrock] 新しいLLM「Llama 2」が利用可能になりました

待望?のLlama2がやってきた!
2023.11.14

みなさん、こんにちは!
福岡オフィスの青柳です。

Amazon Bedrockで、新たな基礎モデル (FM) (一般的に言うところのLLM) が利用可能になりました。

Llama 2 Chat 13B foundation model from Meta is now available in Amazon Bedrock

Meta社が開発した「Llama 2」です。
待望していた方も多いのではないでしょうか?

さっそく使ってみました。

BedrockでLlama 2を利用可能にする

Llama 2は、現在 (2023.11.14) のところ「バージニア北部」「オレゴン」の2リージョンでのみ利用可能となっています。

マネジメントコンソールでAmazon Bedrockを開いて、バージニア北部リージョンを選択します。

メニューから「Model access」を開くと、「Meta」が提供するモデル「Llama 2 Chat 13B」が新たに追加されていることが確認できました。

(実は、同じタイミングで「Cohere」のFMもいくつか追加されてます。詳細は公式リリースを参照 Cohere’s Command Light, Embed English, and multilingual models now available in Amazon Bedrock)

「Manage model access」からモデルを有効化することで利用可能になります。(手順は下記ブログを参照)

マネコンから試してみる

マネジメントコンソールのプレイグラウンドから試してみます。

私が試した範囲では、回答が英語で返ってきたり、日本語で返ってきたりしました。

日本語で返ってきた際は、ところどころ文字化けしてしまいました。

うーむ、Web UIの日本語対応の問題なのか、はたして・・・

Lambdaから呼び出してみる

今度は、Lambdaから呼び出してみます。

ランタイムはPython (3.11) を使用します。

現時点 (2023.11.14) では、Lambda標準で搭載されているboto3ライブラリのバージョンがAmazon Bedrockに対応していないため、Lambdaレイヤーを使った対応が必要になります。(下記ブログ参照)

LambdaレイヤーやIAMロールの準備ができましたら、関数コードを入力して実行してみます。

lambda_function.py

import boto3
import json

bedrock_runtime = boto3.client('bedrock-runtime', region_name='us-east-1')

def lambda_handler(event, context):
    # プロンプト
    prompt = 'AWSが開催するre:Inventについて教えてください。2023年の開催予定はどのようになっていますか?'

    # 各種パラメーターの指定
    modelId = 'meta.llama2-13b-chat-v1'
    accept = '*/*'
    contentType = 'application/json'

    # リクエストBODYの指定
    body = json.dumps({
        "prompt": prompt,
		"temperature": 0.5,
		"top_p": 0.9,
		"max_gen_len": 512,
    })

    # Bedrock APIの呼び出し
    response = bedrock_runtime.invoke_model(
    	modelId=modelId,
    	accept=accept,
    	contentType=contentType,
        body=body,
    )

    # APIレスポンスからBODYを取り出す
    response_body = json.loads(response.get('body').read())

    # レスポンスBODYから応答テキストを取り出す
    outputText = response_body.get('completion')
    print(outputText)

実行すると、以下のような回答が返ってきました。

AWS re:Inventは、Amazon Web Services(AWS)の主要な年間開催イベントです。このイベントでは、AWSの新しいプラットフォーム、サービス、およびツールについての最新情報を学ぶことができます。

2023年のre:Inventの開催予定は以下のとおりです。

* 2023年11月27日-12月1日:Las Vegas Convention Center(LVCC)での主要イベント
* 2023年11月26日-12月1日:AWS Pop-Up Lofts(単独の会場)でのワークショップ、トークン、およびデモンストレーション

主要イベントでは、AWSの新しいプラットフォーム、サービス、およびツールについての keynote スピーチ、パネル ディスカッション、ワークショップ、およびデモンストレーションが行われます。また、AWSのパートナーや顧客からの成功ストーリーも発表されます。

AWS Pop-Up Loftsでは、AWSのエキスパートが各種トピックについてのワークショップやデモンストレーションを行います。ここでは、AWSの新しいプラットフォームやサービスについての詳細な情報を入手することができます。

re:Invent 2023では、AWSの新しいプラットフォームやサービスについての情報を入

途中で切れちゃいましたが、日本語が文字化けせずに表示されました。

内容は・・・日付等は一応合っているようですね。
(正確な内容については公式情報でご確認ください)

モデル「AI21Labs Jurassic」や「Anthropic Claude」を呼び出す際のコードから大きく変更せずに、Llama 2を呼び出すことができました。

Llama 2の料金

Llama 2の料金は、AWS公式サイトで確認できます。 (日本語ページではまだLlama 2が掲載されていませんでしたので、英語ページでご確認ください)

https://aws.amazon.com/bedrock/pricing/

  • オンデマンド料金
    • 入力トークン1000個あたりの料金: $0.00075
    • 出力トークン1000個あたりの料金: $0.001
  • プロビジョンドスループット料金
    • 1か月契約の1モデルユニット・1時間あたりの料金: $21.20
    • 6か月契約の1モデルユニット・1時間あたりの料金: $13.20

様々なLLMの種類がありますので一概には言えませんが、比較的手頃な価格になっているのではないでしょうか。

(参考までに、Anthropic Claudeの料金は、入力・出力がそれぞれ $0.01102、$0.03268 となっています)

おわりに

今回は、とりあえず「Llama 2を使ってみた!」という感じで速報をお届けしました。

生成精度などについては検証できませんでしたが、これからいろいろと試してみたいと思います。