[アップデート] Amazon Nova Premier が Amazon Bedrock で利用可能になりました

[アップデート] Amazon Nova Premier が Amazon Bedrock で利用可能になりました

Clock Icon2025.05.01

こんにちは!クラウド事業本部コンサルティング部のたかくに(@takakuni_)です。

Amazon Nova Premier が Amazon Bedrock で利用可能になりました。

https://aws.amazon.com/blogs/aws/amazon-nova-premier-our-most-capable-model-for-complex-tasks-and-teacher-for-model-distillation/

Amazon Nova Premier

Amazon Nova Premier は re:Invent 2024 で発表された Amazon から提供される LLM です。Amazon Nova シリーズにおいて、もっとも高性能なマルチモーダルモデルとして紹介されました。

2025年初頭の提供開始を目指しているとアナウンスがあり、本日から一般提供が開始されました。

Amazon Nova Premier – Our most capable multimodal model for complex reasoning tasks and for use as the best teacher for distilling custom models. Amazon Nova Premier is still in training. We’re targeting availability in early 2025.

https://aws.amazon.com/blogs/aws/introducing-amazon-nova-frontier-intelligence-and-industry-leading-price-performance/

AWS Blog では 17 のベンチマークで測定し、Amazon Nova Pro と比較して高い精度であることがわかります。

image.png

トークン数/言語

Amazon Nova の紹介ページを見てみます。トークン数は 1M(100万)トークン、言語は 200 種類以上の言語に対応しています。

Max tokens: 1M
Languages: 200+ languages
Fine-tuning supported: No. Amazon Nova Premier can be a
teacher for model distillation.

https://aws.amazon.com/ai/generative-ai/nova/?nc1=h_ls

入力モダリティはテキスト、画像、動画で、出力はテキストのようです。いくつかコンテキスト長が短くなったモデル ID も見かけられます。(amazon.nova-premier-v1:0:mm って何なのでしょうか)

~ $ aws bedrock list-foundation-models --by-provider amazon | jq '.modelSummaries[] | select(.modelName == "Nova Premier")'
{
  "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-premier-v1:0:8k",
  "modelId": "amazon.nova-premier-v1:0:8k",
  "modelName": "Nova Premier",
  "providerName": "Amazon",
  "inputModalities": [
    "TEXT",
    "IMAGE",
    "VIDEO"
  ],
  "outputModalities": [
    "TEXT"
  ],
  "responseStreamingSupported": true,
  "customizationsSupported": [],
  "inferenceTypesSupported": [],
  "modelLifecycle": {
    "status": "ACTIVE"
  }
}
{
  "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-premier-v1:0:20k",
  "modelId": "amazon.nova-premier-v1:0:20k",
  "modelName": "Nova Premier",
  "providerName": "Amazon",
  "inputModalities": [
    "TEXT",
    "IMAGE",
    "VIDEO"
  ],
  "outputModalities": [
    "TEXT"
  ],
  "responseStreamingSupported": true,
  "customizationsSupported": [],
  "inferenceTypesSupported": [],
  "modelLifecycle": {
    "status": "ACTIVE"
  }
}
{
  "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-premier-v1:0:1000k",
  "modelId": "amazon.nova-premier-v1:0:1000k",
  "modelName": "Nova Premier",
  "providerName": "Amazon",
  "inputModalities": [
    "TEXT",
    "IMAGE",
    "VIDEO"
  ],
  "outputModalities": [
    "TEXT"
  ],
  "responseStreamingSupported": true,
  "customizationsSupported": [],
  "inferenceTypesSupported": [],
  "modelLifecycle": {
    "status": "ACTIVE"
  }
}
{
  "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-premier-v1:0:mm",
  "modelId": "amazon.nova-premier-v1:0:mm",
  "modelName": "Nova Premier",
  "providerName": "Amazon",
  "inputModalities": [
    "TEXT",
    "IMAGE",
    "VIDEO"
  ],
  "outputModalities": [
    "TEXT"
  ],
  "responseStreamingSupported": true,
  "customizationsSupported": [],
  "inferenceTypesSupported": [],
  "modelLifecycle": {
    "status": "ACTIVE"
  }
}
{
  "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/amazon.nova-premier-v1:0",
  "modelId": "amazon.nova-premier-v1:0",
  "modelName": "Nova Premier",
  "providerName": "Amazon",
  "inputModalities": [
    "TEXT",
    "IMAGE",
    "VIDEO"
  ],
  "outputModalities": [
    "TEXT"
  ],
  "responseStreamingSupported": true,
  "customizationsSupported": [],
  "inferenceTypesSupported": [
    "INFERENCE_PROFILE"
  ],
  "modelLifecycle": {
    "status": "ACTIVE"
  }
}

Amazon Bedrock との統合

続いて、 Amazon Bedrock との統合に触れていきます。

AWS Blog から、リージョンはバージニア北部、オハイオ、オレゴンから推論プロファイル経由でクロスリージョン推論を行うタイプでサポートされています。

Nova Premier is available in Amazon Bedrock in the US East (N. Virginia), US East (Ohio), and US West (Oregon) AWS Regions today via cross-Region inference. With Amazon Bedrock, you only pay for what you use. For more information, visit Amazon Bedrock pricing.

Amazon Nova Premier: Our most capable model for complex tasks and teacher for model distillation | AWS News Blog

機能別

Model support by feature をみてみましたが、Amazon Nova Premier の情報は掲載されていませんでした。

更新あり次第、私の方も更新します。

2025-05-01 at 09.35.10-Model support by feature - Amazon Bedrock.png

コスト

最後にコストです。オンデマンドで次の価格帯でした。

Amazon Nova Pro と比較すると高めに見えてしまいますね。回答精度や速度に期待です。

オレゴンリージョン

モデル名 1,000 入力トークン 1,000 出力トークン
Amazon Nova Premier $0.0025 $0.0125
Amazon Nova Pro $0.0008 $0.0032

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

やってみる

それでは Amazon Nova Premier を動かしてみましょう。

今回はオレゴンリージョンを利用します。まずはモデルの有効化から行います。

2025-05-01 at 09.43.28-Manage model access  Amazon Bedrock  us-west-2.png

マネジメントコンソールで会話してみました。非常にレスポンススピードが高速ですね。

2025-05-01 at 09.45.37-Chat  Text Playground  Amazon Bedrock  us-west-2.png

続いて API 経由です。AWS Blog に書いてあるサンプルコードを一部改修して、やりとりしてみます。

converse.py
import boto3
import json

AWS_REGION = "us-west-2"
MODEL_ID = "us.amazon.nova-premier-v1:0"

bedrock_runtime = boto3.client('bedrock-runtime', region_name=AWS_REGION)
messages = [
    {
        "role": "user",
        "content": [
            {
                "text": "AIアプリケーションにおけるベクターデータベースと従来のリレーショナルデータベースの違いを説明してください"
            }
        ]
    }
]

response = bedrock_runtime.converse(
    modelId=MODEL_ID,
    messages=messages
)

response_text = response["output"]["message"]["content"][-1]["text"]

print(response_text)

うまく、結果が返ってきていますね。

takakuni@Mac % python converse.py 
ベクターデータベースと従来のリレーショナルデータベースは、それぞれ異なる目的と特徴を持っており、AIアプリケーションにおいても異なる役割を果たします。

### リレーショナルデータベース

**特徴**
1. **構造化データの管理**: リレーショナルデータベースは、テーブル、行、列の形式でデータを格納します。各テーブルは特定のスキーマに従います。
2. **SQLクエリ**: データの操作には、主にSQL (Structured Query Language) を使用します。
3. **ACID特性**: 原子性 (Atomicity)、一貫性 (Consistency)、独立性 (Isolation)、永続性 (Durability) を保証します。
4. **トランザクション管理**: 複数の操作を一貫のトランザクションとして扱い、データの整合性を保ちます。

**AIアプリケーションでの利用**
- 構造化されたデータ(例:ユーザー情報、取引履歴)の管理に適しています。
- データの一貫性と整合性が求められる場合に有効です。

### ベクターデータベース

**特徴**
1. **高次元ベクトルの格納**: ベクターデータベースは、高次元のベクトルデータ(例:画像やテキストからの特徴ベクトル)を効率的に格納・検索できます。
2. **類似性検索**: ベクトル間の類似性を計算し、類似したベクトルを高速に検索できます。
3. **柔軟なスキーマ**: リレーショナルデータベースほど厳密なスキーマを必要としません。
4. **特殊なインデックス構造**: 高次元ベクトルの検索を効率化するための特殊なインデックス構造(例:KD木、Ball Tree、HNSW (Hierarchical Navigable Small World) グラフ)を使用します。

**AIアプリケーションでの利用**
- 画像検索、音声認識、自然言語処理など、ベクトル表現されたデータを扱う場合に適しています。
- 類似性検索やパターン認識が必要な場合に有効です。

### 比較

| 項目               | リレーショナルデータベース                  | ベクターデータベース                      |
|--------------------|--------------------------------------------|--------------------------------------------|
| データ構造         | テーブル、行、列                           | 高次元ベクトル                             |
| クエリ言語         | SQL                                        | 専用のクエリ言語やAPI                      |
| データの種類       | 構造化データ                               | 非構造化データ、ベクトルデータ             |
| 検索方法           | 正確一致検索                               | 類似性検索                                 |
| トランザクション管理 | サポートあり                              | サポートなしまたは限定的                  |
| スケーラビリティ   | 垂直スケーリングが一般的                   | 水平スケーリングが一般的                   |

### まとめ

リレーショナルデータベースは、構造化されたデータの一貫性と整合性を重視するアプリケーションに適しており、ベクターデータベースは、高次元ベクトルデータの類似性検索を必要とするAIアプリケーションに適しています。AIアプリケーションでは、両者の特性を理解し、適切に選択することが重要です。場合によっては、両者を組み合わせて使用することも効果的です。

続いて、ストリーム処理を実装してみます。

converse.py
import boto3
import json
from botocore.exceptions import ClientError

AWS_REGION = "us-west-2"
MODEL_ID = "us.amazon.nova-premier-v1:0"

bedrock_runtime = boto3.client('bedrock-runtime', region_name=AWS_REGION)
messages = [
    {
        "role": "user",
        "content": [
            {
                "text": "AIアプリケーションにおけるベクターデータベースと従来のリレーショナルデータベースの違いを説明してください"
            }
        ]
    }
]

try:
    streaming_response = bedrock_runtime.converse_stream(
        modelId=MODEL_ID,
        messages=messages
    )

    # Extract and print the streamed response text in real-time.
    for chunk in streaming_response["stream"]:
        if "contentBlockDelta" in chunk:
            text = chunk["contentBlockDelta"]["delta"]["text"]
            print(text, end="")

except (ClientError, Exception) as e:
    print(f"ERROR: Can't invoke '{MODEL_ID}'. Reason: {e}")
    exit(1)

問題なく処理できていますね。

2025-05-01 at 09.57.20-converse_stream.py — tts.gif

最後に MODEL_IDamazon.nova-premier-v1:0:mm に変更してみました。

converse.py
import boto3
import json
from botocore.exceptions import ClientError

AWS_REGION = "us-west-2"
- MODEL_ID = "us.amazon.nova-premier-v1:0"
+ MODEL_ID = "amazon.nova-premier-v1:0:mm"

bedrock_runtime = boto3.client('bedrock-runtime', region_name=AWS_REGION)
messages = [
    {
        "role": "user",
        "content": [
            {
                "text": "AIアプリケーションにおけるベクターデータベースと従来のリレーショナルデータベースの違いを説明してください"
            }
        ]
    }
]

try:
    streaming_response = bedrock_runtime.converse_stream(
        modelId=MODEL_ID,
        messages=messages
    )

    # Extract and print the streamed response text in real-time.
    for chunk in streaming_response["stream"]:
        if "contentBlockDelta" in chunk:
            text = chunk["contentBlockDelta"]["delta"]["text"]
            print(text, end="")

except (ClientError, Exception) as e:
    print(f"ERROR: Can't invoke '{MODEL_ID}'. Reason: {e}")
    exit(1)

推論プロファイル経由ではないからなのか、モデル ID が見つからないと怒られてしまいました。

takakuni@ python converse_stream.py
ERROR: Can't invoke 'amazon.nova-premier-v1:0:mm'. Reason: An error occurred (ResourceNotFoundException) when calling the ConverseStream operation: Model not found.

まとめ

以上、「Amazon Nova Premier が Amazon Bedrock で利用可能になりました。」でした。

ついに Premier が出てましたね。応答のスピード感もストレスなく使えていたので、ガンガン使ってみたいと思いました。

クラウド事業本部コンサルティング部のたかくに(@takakuni_)でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.