LoginSignup
29
17

高速&格安なのに賢いClaude 3 Haikuが登場!Bedrockにも来ました

Last updated at Posted at 2024-03-14

GPTの対抗馬Claudeの軽量モデルが登場!

日本時間2024/3/14(木)未明、Anthropic社の生成AIモデルであるClaude 3シリーズのラインナップの一つ「Haiku」がリリースされました。

Claude 3には高性能順にOpus、Sonnet、Haikuの3種類のモデルがあります。
詳細は以下の記事もご参照ください。

公式情報まとめ

  • 価格が安い:最上位モデルOpusの60分の1の単価!
  • レスポンスが速い
  • マルチモーダル対応(テキスト+画像の入力が可能)

スクリーン ショット 2024-03-14 に 13.41.16 午後.png
(Claude公式サイトより)

OpenAIのGPT-4 Turboが 入力: $10 / Mtok、出力: $30 / Mtok なので、Haikuの安さが際立っていますね。

Anthropic公式から触ってみる

公式Webチャットアプリ「Claude.ai」でProプラン(月額20ドル)に加入していればすぐに試すことができます。

テキストボックスにプロンプトを入力すると、送信先のモデルを選べるようになっています。

スクリーン ショット 2024-03-14 に 13.50.19 午後.png

また、HaikuはClaude公式のAPIとしても即日提供開始されています。

AWSのBedrockから触ってみる

AWSの生成AIサービスAmazon BedrockにもHaikuが同時登場しています。

公式リリースでは米国西部(オレゴン)リージョンで利用可能とありますが、日本時間3/14昼時点で実機を確認すると米国東部(バージニア)リージョンでも確認できました。

AWSマネジメントコンソール(GUI)

まずはAWSアカウントにサインインし、Amazon Bedrock > モデルアクセス からバージニア北部リージョンのClaude 3 Haikuを有効化します。

スクリーン ショット 2024-03-14 に 13.54.23 午後.png

少し待つとすぐ利用可能になります。

チャットのプレイグラウンドにアクセスすると、画像を添付しての質問も可能です!

スクリーン ショット 2024-03-14 に 14.07.39 午後.png

API利用(AWS SDK for Python)

基本的にClaude 3 Sonnet on Bedrockと同様のコードで利用可能です。
HaikuのモデルIDは anthropic.claude-3-haiku-20240307-v1:0 となります。

開発環境としてお手軽なAWS Cloud9を利用してみます。
まずAWS SDK for Python(Boto3)とLangChainをアップデートしておきます。

Cloud 9
pip install -U boto3 langchain

LangChain等のフレームワークを使わず、素のAWS SDK for PythonでHaikuを動かすコード例は以下です。AWSブログを参考にしています。

haiku.py
import boto3
import json

bedrock_runtime = boto3.client(service_name='bedrock-runtime')

prompt_config = {
    "anthropic_version": "bedrock-2023-05-31",
    "max_tokens": 4096,
    "messages": [
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "日本の総理大臣は?"},
            ],
        }
    ],
}

body = json.dumps(prompt_config)

modelId = "anthropic.claude-3-haiku-20240307-v1:0"
accept = "application/json"
contentType = "application/json"

response = bedrock_runtime.invoke_model(
    body=body, modelId=modelId, accept=accept, contentType=contentType
)
response_body = json.loads(response.get("body").read())

results = response_body.get("content")[0].get("text")
print(results)

出力例。爆速でレスポンスが返ってきました!

Cloud 9
minorun365:~/environment $ python3 haiku.py 
現在の日本の総理大臣は岸田文雄氏です。

岸田文雄氏は2021年10月4日に自民党総裁に選出され、同日の国会で第100代内閣総理大臣に就任しました。

岸田前総理の前は、2020年9月16日から2021年10月4日まで菅義偉氏が総理大臣を務めていました。

このように、日本の総理大臣は定期的に交代しており、直近の歴代総理大臣は以下の通りです。

- 第99代:菅義偉(2020年9月~2021年10月)
- 第100代:岸田文雄(2021年10月~現在)

LangChainでBedrockのClaude 3系を動かすには、LLMモジュールの代わりにChatモジュールの「BedrockChat」を利用します。

haiku-kangchain.py
from langchain_community.chat_models import BedrockChat
from langchain.schema import HumanMessage

chat = BedrockChat(
    region_name = "us-east-1",
    model_id="anthropic.claude-3-haiku-20240307-v1:0"
)

result = chat(
    [
        HumanMessage(content="日本の総理大臣は?"),
    ]
)

print(result.content)

出力例。爆速でレスポンスが返ってきました!

Cloud 9
minorun365:~/environment $ python3 haiku-langchain.py 
/home/ec2-user/.local/lib/python3.9/site-packages/langchain_core/_api/deprecation.py:117: LangChainDeprecationWarning: The function `__call__` was deprecated in LangChain 0.1.7 and will be removed in 0.2.0. Use invoke instead.
  warn_deprecated(
現在の日本の総理大臣は岸田文雄(きしだ ふみお)さんです。

岸田文雄さんは2021年10月に就任しました。主な経歴は以下の通りです:

- 1957年生まれ、宮城県出身
- 自民党所属の政治家
- 1993年に衆議院議員に初当選
- 2008年から2012年まで外務大臣を務めた
- 2012年から2017年まで政調会長を務めた
- 2021年10月4日に第100代総理大臣に就任

岸田総理は、新型コロナウイルス対策や経済政策、安全保障強化など、様々な課題に取り組んでいます。任期は通常4年ですが、総理大臣の交代は政局の動向により随時あり得ます。

※現状、LangChainを用いるとDeprecatedの警告が出てしまうようです。LangChainのGitHub上で日々Issueがやり取りされています。

また、画像をBase64エンコードした文字列を含めることで、API経由でマルチモーダル入力にも対応しています。

以下の記事を参照のうえ、ぜひ試してみてください!

29
17
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
29
17