Amazon Web Services ブログ

Amazon Nova 理解モデルにおけるパフォーマンスの最適化

Amazon Nova は、Amazon Bedrock で利用できる、最先端のインテリジェンスと業界をリードするコストパフォーマンスを実現する新世代の基盤モデルで、4 つの理解モデル、2 つのクリエイティブコンテンツ生成モデル、1 つの Speech-to-Speech モデルが含まれます。Amazon Nova 理解モデルは、テキスト、画像、動画入力を受け入れてテキスト出力を生成するモデルで、機能、品質、スピード、コストについて幅広い選択肢を提供します。

この記事では 、Amazon Nova 理解モデルのプロンプトエンジニアリングのベストプラクティスに従って、パフォーマンスを最適化する方法を紹介します。

Amazon Nova 理解モデルの特徴

Amazon Nova モデルには様々なニーズに合うように設計された 4 つの理解モデルが含まれています。

  • Amazon Nova Micro – 非常に低コストで最小レイテンシーのレスポンスを提供するテキストのみのモデルです。
  • Amazon Nova Lite – 非常に低コストのマルチモーダルモデルで、画像、動画、テキストの入力を高速で処理できます。
  • Amazon Nova Pro – 幅広いタスクの精度、速度、コストを最適に組み合わせた、高性能のマルチモーダルモデルです。
  • Amazon Nova Premier – 複雑なタスクに最適なマルチモーダルモデルであり、コスト効率の高いアプリケーション向けのカスタムモデルを蒸留するための教師にもなります。

各モデルの料金の詳細については、Amazon Bedrock の料金ページをご覧ください。

Amazon Nova 理解モデルのプロンプトエンジニアリング

モデルを効果的に導いて品質の精度を向上させるため、明確な指示で構造化されたプロンプトを反復的に改善することが重要です。ユースケースに最適なプロンプトを開発できるように、次の要素を検討することをお勧めします。

  • プロンプトのユースケースの定義する
    • タスク – モデルが具体的に何をするか
    • ロール – モデルが想定すべきロール
    • 応答スタイル – 出力の構造やトーン
    • 指示 – モデルが順守すべきガイドライン
  • 思考連鎖を利用するか
    • モデルの応答を制限する明確で強い指示を与える
    • Step-by-Step で考えることで構造的思考を促す
  • フォーマットと構造
    • ##Task##、##Context##、##Example## のように、区切り文字を使用してプロンプトのセクションを分ける
    • JSON、YAML、Markdown などの出力形式を指定する
    • DO、DO NOT、MUST など、強い指示や制限を使用する
    • 事前入力(prefill)して、前書きを省略したり指定した形式で出力することを誘導する

Amazon Nova 理解モデルのプロンプト例

議事録を要約する以下の例を考えてみましょう。ベストプラクティスに従って Amazon Nova Pro のプロンプトは以下のシステムプロンプトから始まります。ここでは temperature を 0.2、topP を 0.9 にしています。

あなたは会議議事録の分析と要約に長けた経験豊富なエグゼクティブアシスタントです。あなたの主な責任は、複雑な議論を明確で実行可能な要約にまとめることです。
以下の指示に従ってください。
##INSTRUCTIONS##
1. ##NOTES## にある会議議事録を読んで理解してください
2. すべての出力を ##OUTPUTS## というセクションにマークダウン形式で入れてください。
3. 会議議事録を 5 文以内に要約してください。これを「全体概要」というセクションに入れてください。
4. 特定の人向けのアクションアイテムと、完了する必要があるものを数値で挙げてください。このリストを「アクションアイテム」というセクションに入れてください。
5. 該当する場合は、次回の会議でさらに詳しく議論する必要があるトピックをリストアップしてください。これを「次回の会議のトピック」というセクションに入れてください。

ユーザプロンプトには、以下の SF 風の架空の議事録を用意しました。最後に ##OUTPUTS## という文字列を事前入力して、前書きの省略とマークダウン形式での出力を誘導しています。

##NOTES##
ミーティング開催日:2050 年 3 月 5 日
ミーティング時間:午後 2 時
場所:銀河間本部会議室 3B
出席者:
- キャプテン・スターダスト
- ドクター・クェーサー
- レディ・ネビュラ
- サー・スーパーノヴァ
- ミス・コメット
午後 2 時 5 分にキャプテン・スターダストが招集したミーティング
1. 最新のチームメンバー、コメットさんの紹介
2. プラネット・ゾグへの最近のミッションについての議論
- キャプテン・スターダスト:「全体的には成功だったが、ゾギアンとのコミュニケーションは難しかった。私たちは語学力を向上させる必要があります。」
- クエーサー博士:「同感です。すぐにゾギアン-英語辞書の作成に取り掛かります。」
- レディ・ネビュラ:「ゾギアンの料理は文字通りこの世のものとは思えませんでした!船でゾギアンのフードナイトをすることを検討すべきだ。」
3. セクター7における宇宙海賊問題への取り組み
- サー・スーパーノバ:「この海賊に対処するには、もっと良い戦略が必要だ。彼らは今月、すでに 3 隻の貨物船を略奪しました。」
- キャプテン・スターダスト:「その地域でのパトロールを増やすことについて、スタービーム提督と話そう。
- クエーサー博士:「船が海賊に発見されないようにするのに役立つ新しいクローキング技術の開発に取り組んできました。プロトタイプを完成させるにはあと数週間かかります。」
4. 毎年恒例の銀河間ベイクオフのレビュー
- レディ・ネビュラ:「私たちのチームがコンペティションで2位になったことを報告できてうれしいです!私たちのマーシャン・マッド・パイは大ヒットでした!
- コメットさん:「来年は1位を目指しましょう。ジュピターゼリーの秘密のレシピがあって、それが勝つかもしれないと思う。
5. 次回のチャリティ募金活動の計画
- キャプテン・スターダスト:「インターギャラクティック・チャリティ・バザーのブースには、クリエイティブなアイディアが必要です。」
- サー・スーパーノバ:「『ダンク・ザ・エイリアン』のゲームはいかがですか?エイリアンの格好をしたボランティアに水風船を投げてもらうこともできます。」
- クエーサー博士:「勝者には賞品がもらえる『あの星の名前』トリビアゲームを作れるよ。」
- レディ・ネビュラ:「皆さん、素晴らしいアイディアですね。物資を集めてゲームの準備を始めましょう。」
6. 今後のチームビルディング・リトリート
- コメットさん:「ムーン・リゾート・アンド・スパでのチームビルディング・リトリートを提案したいです。最近のミッションを終えて、絆を深め、リラックスする絶好の機会です。」
- キャプテン・スターダスト:「素晴らしいアイディアですね。予算を確認して、実現できるか見てみます。」
7. 次回の会議の議題項目
- ゾギアン英語辞典の最新情報 (クエーサー博士)
- クローキング技術の進捗報告 (クエーサー博士)
- セクター 7 (キャプテン・スターダスト) でのパトロール強化の結果
- 銀河間チャリティーバザーの最終準備 (全て)
会議は午後 3 時 15 分に延期されました。次回の会議は、2050 年 3 月 19 日午後2時に会議室3Bで開催される予定です。
銀河間本部。
##OUTPUTS##

以下は Amazon Nova Pro の出力になります。マークダウン形式で出力され、各アクションアイテムの明確な担当者も特定しています。

### 全体概要
会議では、新しいチームメンバーの紹介、プラネット・ゾグへのミッションの議論、宇宙海賊問題への取り組み、銀河間ベイクオフのレビュー、チャリティ募金活動の計画、チームビルディング・リトリート、そして次回の会議の議題項目について話し合われました。

### アクションアイテム
1. クエーサー博士:ゾギアン-英語辞書の作成を開始する。
2. キャプテン・スターダスト:スタービーム提督とセクター7でのパトロール増加について話し合う。
3. クエーサー博士:新しいクローキング技術のプロトタイプを完成させる。
4. 全員:銀河間チャリティーバザーのブースのための物資を集める。
5. キャプテン・スターダスト:ムーン・リゾート・アンド・スパでのチームビルディング・リトリートの実現可能性と予算を確認する。

### 次回の会議のトピック
1. ゾギアン英語辞典の最新情報 (クエーサー博士)
2. クローキング技術の進捗報告 (クエーサー博士)
3. セクター 7 でのパトロール強化の結果 (キャプテン・スターダスト)
4. 銀河間チャリティーバザーの最終準備 (全て)

Function calling

生成 AI エージェントの台頭により Tool use(function calling) は大規模言語モデル(LLM)にとって最も重要な機能のひとつとなりました。ジョブに適したツールを低レイテンシーで正しく選択するモデルの能力が、エージェントを使ったシステムの成功と失敗の分かれ目になる場合があります。

Amazon Nova 理解モデルの Tool use は構造化された API の呼び出しをサポートしており、ツール設定スキーマによるツールの選択をサポートしています。また、これらのツールをいつ発動させるか、させないかを決定するメカニズムも提供しています。

以下の例では、 ツール設定スキーマを渡してツールを呼び出しています。Amazon Nova 理解モデルではツールを呼び出す際に Greedy Decoding を使用するように、temperaturetopPtopK を 1 に設定することが推奨されています。Converse API を使用する場合は、temperaturetopP は、inferenceConfig 属性で指定し、topKadditionalModelRequestFields 属性で指定します。これによりモデルはツールの選択において最高の精度を持つようになります。Greedy Decoding パラメータやその他のツールの使用例については、Tool use (function calling) with Amazon Nova で詳しく説明されています。

tool_config = {
    "tools": [{
        "toolSpec": {
            "name": "get_recipe",
            "description": "構造化されたレシピ生成システム",
            "inputSchema": {
                "json": {
                    "type": "object",
                    "properties": {
                        "recipe": {
                            "type": "object",
                            "properties": {
                                "name": {"type": "string"},
                                "ingredients": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "item": {"type": "string"},
                                            "amount": {"type": "number"},
                                            "unit": {"type": "string"}
                                        }
                                    }
                                },
                                "instructions": {
                                    "type": "array",
                                    "items": {"type": "string"}
                                }
                            },
                            "required": ["name", "ingredients", "instructions"]
                        }
                    }
                }
            }
        }
    }]
}

input_text = "チョコレートラバケーキのレシピを教えてください"
messages = [{
    "role": "user",
    "content": [{"text": input_text}]
}]

# 推論パラメーターを指定
inf_params = {"topP": 1, "temperature": 1}

# additionalModelRequestFields でモデル固有の推論パラメータ (topK=1) を指定 
response = client.converse(
    modelId="us.amazon.nova-lite-v1:0",
    messages=messages,
    toolConfig=tool_config,
    inferenceConfig=inf_params,
    additionalModelRequestFields={"inferenceConfig": {"topK": 1}}
)

まとめ

Amazon Nova 理解モデルは、Amazon Bedrock で利用可能な高性能かつコスト効率に優れた次世代基盤モデルです。4 つの理解モデルは、機能、品質、スピード、コストに応じて選択できます。Amazon Nova 理解モデルのパフォーマンスを最適化するには、明確な指示で構造化されたプロンプトを反復的に改善すること、Tool use において Greedy Decoding を使用する設定を行うことが推奨されます。また、これらの手法を活用することでより安価なモデルでも十分なパフォーマンスを発揮しコスト最適化に寄与する可能性があります。