【速報】Amazon Bedrockでリランクができるようになりました。

宇宙最速（？）はこちら

https://x.com/minorun365/status/1863278429069558255

とりあえずやってみました。

## テストデータ

BedrockのFAQから3件持ってきました。

https://aws.amazon.com/jp/bedrock/faqs/

Q:Amazon Bedrock とは何ですか?
<details><summary>答え</summary>

A:Amazon Bedrock は、業界をリードする種々の基盤モデル (FM) を提供し、生成 AI アプリケーションの構築に必要な幅広い機能を備えたフルマネージドサービスです。セキュリティ、プライバシー、責任ある AI により開発を簡素化します。Amazon Bedrock の包括的な機能を使用すると、さまざまな人気の FM を実験すること、微調整や検索拡張生成 (RAG) などの手法を用いて、データを利用してそれらの FM をプライベートにカスタマイズすること、旅行の予約や保険金請求の処理から広告キャンペーンの作成や在庫管理まで、複雑なビジネスタスクを実行するマネージドエージェントを作成することができます。これらを実行するためにコードを記述する必要はありません。Amazon Bedrock はサーバーレスであるため、インフラストラクチャを管理する必要がありません。また、使い慣れた AWS サービスを使用して、生成 AI 機能をアプリケーションに安全に統合してデプロイできます。

</details>

Q: Amazon Bedrock ではどの FM を利用できますか?

<details><summary>答え</summary>
A: Amazon Bedrock をご利用のお客様は、現在使用可能な最先端の FM の中からお選びいただけます。これには以下の言語モデルと埋め込みモデルが含まれます。
</details>


Q: Amazon Bedrock の使用を開始するにはどうすればよいですか?
<details><summary>答え</summary>
A: Amazon Bedrock のサーバーレスエクスペリエンスにより、すぐに使い始めることができます。AWS マネジメントコンソールで Amazon Bedrock に移動し、プレイグラウンドで FM をお試しください。エージェントを作成し、コンソールでテストすることもできます。ユースケースを特定したら、インフラストラクチャを管理することなく、AWS ツールを使用して FM をアプリケーションに簡単に統合できます。
</details>

:::note
答え3件をドキュメントとして与えて、質問をインプットにして一番近いと判定したものを出力します。
:::

## Amazon Rerank 1.0

モデルIDは「amazon.rerank-v1:0」です。

```python
import json

import boto3

client = boto3.Session(region_name="us-west-2").client("bedrock-runtime")

questions = [
    "Amazon Bedrock とは何ですか?",
    "Amazon Bedrock ではどの FM を利用できますか? ",
    "Amazon Bedrock の使用を開始するにはどうすればよいですか?",
]
documents = [
    "Amazon Bedrock は、業界をリードする種々の基盤モデル (FM) を提供し、生成 AI アプリケーションの構築に必要な幅広い機能を備えたフルマネージドサービスです。セキュリティ、プライバシー、責任ある AI により開発を簡素化します。Amazon Bedrock の包括的な機能を使用すると、さまざまな人気の FM を実験すること、微調整や検索拡張生成 (RAG) などの手法を用いて、データを利用してそれらの FM をプライベートにカスタマイズすること、旅行の予約や保険金請求の処理から広告キャンペーンの作成や在庫管理まで、複雑なビジネスタスクを実行するマネージドエージェントを作成することができます。これらを実行するためにコードを記述する必要はありません。Amazon Bedrock はサーバーレスであるため、インフラストラクチャを管理する必要がありません。また、使い慣れた AWS サービスを使用して、生成 AI 機能をアプリケーションに安全に統合してデプロイできます。"
    "Amazon Bedrock をご利用のお客様は、現在使用可能な最先端の FM の中からお選びいただけます。これには以下の言語モデルと埋め込みモデルが含まれます。",
    "Amazon Bedrock のサーバーレスエクスペリエンスにより、すぐに使い始めることができます。AWS マネジメントコンソールで Amazon Bedrock に移動し、プレイグラウンドで FM をお試しください。エージェントを作成し、コンソールでテストすることもできます。ユースケースを特定したら、インフラストラクチャを管理することなく、AWS ツールを使用して FM をアプリケーションに簡単に統合できます。",
]

for query in questions:

    response = client.invoke_model(
        modelId="amazon.rerank-v1:0",
        body=json.dumps(
            {
                "query": query,
                "documents": documents,
                "top_n": 3,
            }
        ),
    )

    response_body = json.loads(response.get("body").read())

    index = response_body["results"][0]["index"]
    relevance_score = response_body["results"][0]["relevance_score"]

    answer = documents[index]

    print("---")
    print(f"Q: {query}")
    print(f"A: {answer}")
    print(f"スコア: {relevance_score}")
```

```
---
Q: Amazon Bedrock とは何ですか?
A: Amazon Bedrock は、業界をリードする種々の基盤モデル (FM) を提供し、生成 AI アプリケーションの構築に必要な幅広い機能を備えたフルマネージドサービスです。セキュリティ、プライバシー、責任ある AI により開発を簡素化します。Amazon Bedrock の包括的な機能を使用すると、さまざまな人気の FM を実験すること、微調整や検索拡張生成 (RAG) などの手法を用いて、データを利用してそれらの FM をプライベートにカスタマイズすること、旅行の予約や保険金請求の処理から広告キャンペーンの作成や在庫管理まで、複雑なビジネスタスクを実行するマネージドエージェントを作成することができます。これらを実行するためにコードを記述する必要はありません。Amazon Bedrock はサーバーレスであるため、インフラストラクチャを管理する必要がありません。また、使い慣れた AWS サービスを使用して、生成 AI 機能をアプリケーションに安全に統合してデプロイできます。Amazon Bedrock をご利用のお客様は、現在使用可能な最先端の FM の中からお選びいただけます。これには以下の言語モデルと埋め込みモデルが含まれます。
スコア: 0.9732915354985551
---
Q: Amazon Bedrock ではどの FM を利用できますか? 
A: Amazon Bedrock は、業界をリードする種々の基盤モデル (FM) を提供し、生成 AI アプリケーションの構築に必要な幅広い機能を備えたフルマネージドサービスです。セキュリティ、プライバシー、責任ある AI により開発を簡素化します。Amazon Bedrock の包括的な機能を使用すると、さまざまな人気の FM を実験すること、微調整や検索拡張生成 (RAG) などの手法を用いて、データを利用してそれらの FM をプライベートにカスタマイズすること、旅行の予約や保険金請求の処理から広告キャンペーンの作成や在庫管理まで、複雑なビジネスタスクを実行するマネージドエージェントを作成することができます。これらを実行するためにコードを記述する必要はありません。Amazon Bedrock はサーバーレスであるため、インフラストラクチャを管理する必要がありません。また、使い慣れた AWS サービスを使用して、生成 AI 機能をアプリケーションに安全に統合してデプロイできます。Amazon Bedrock をご利用のお客様は、現在使用可能な最先端の FM の中からお選びいただけます。これには以下の言語モデルと埋め込みモデルが含まれます。
スコア: 0.993149519973355
---
Q: Amazon Bedrock の使用を開始するにはどうすればよいですか?
A: Amazon Bedrock のサーバーレスエクスペリエンスにより、すぐに使い始めることができます。AWS マネジメントコンソールで Amazon Bedrock に移動し、プレイグラウンドで FM をお試しください。エージェントを作成し、コンソールでテストすることもできます。ユースケースを特定したら、インフラストラクチャを管理することなく、AWS ツールを使用して FM をアプリケーションに簡単に統合できます。
スコア: 0.9046505351008906
```

2問目が間違っているので、3問中2問正解

## Cohere Rerank 3.5

Cohere社提供APIでは、「rerank-english-v3.0」「rerank-multilingual-v3.0」の二種類あります。（3.5は見つからない？）

Bedrockで提供されるモデルはマルチリンガルと記載があります。

> Multi-lingual, languages including but not limited to: Arabic, Chinese, English, French, German, Hindi, Japanese, Korean, Portuguese, Russian, and Spanish

（もしかしたらBedrockがフライング？）


モデルIDは「cohere.rerank-v3-5:0」です。


:::note
:::

```python
import json

import boto3

client = boto3.Session(region_name="us-west-2").client("bedrock-runtime")

questions = [
    "Amazon Bedrock とは何ですか?",
    "Amazon Bedrock ではどの FM を利用できますか? ",
    "Amazon Bedrock の使用を開始するにはどうすればよいですか?",
]
documents = [
    "Amazon Bedrock は、業界をリードする種々の基盤モデル (FM) を提供し、生成 AI アプリケーションの構築に必要な幅広い機能を備えたフルマネージドサービスです。セキュリティ、プライバシー、責任ある AI により開発を簡素化します。Amazon Bedrock の包括的な機能を使用すると、さまざまな人気の FM を実験すること、微調整や検索拡張生成 (RAG) などの手法を用いて、データを利用してそれらの FM をプライベートにカスタマイズすること、旅行の予約や保険金請求の処理から広告キャンペーンの作成や在庫管理まで、複雑なビジネスタスクを実行するマネージドエージェントを作成することができます。これらを実行するためにコードを記述する必要はありません。Amazon Bedrock はサーバーレスであるため、インフラストラクチャを管理する必要がありません。また、使い慣れた AWS サービスを使用して、生成 AI 機能をアプリケーションに安全に統合してデプロイできます。"
    "Amazon Bedrock をご利用のお客様は、現在使用可能な最先端の FM の中からお選びいただけます。これには以下の言語モデルと埋め込みモデルが含まれます。",
    "Amazon Bedrock のサーバーレスエクスペリエンスにより、すぐに使い始めることができます。AWS マネジメントコンソールで Amazon Bedrock に移動し、プレイグラウンドで FM をお試しください。エージェントを作成し、コンソールでテストすることもできます。ユースケースを特定したら、インフラストラクチャを管理することなく、AWS ツールを使用して FM をアプリケーションに簡単に統合できます。",
]

for query in questions:
    response = client.invoke_model(
        modelId="cohere.rerank-v3-5:0",
        body=json.dumps(
            {"query": query, "documents": documents, "top_n": 3, "api_version": 2}
        ),
    )

    response_body = json.loads(response.get("body").read())

    index = response_body["results"][0]["index"]
    relevance_score = response_body["results"][0]["relevance_score"]

    answer = documents[index]

    print("---")
    print(f"Q: {query}")
    print(f"A: {answer}")
    print(f"スコア: {relevance_score}")
```


```
---
Q: Amazon Bedrock とは何ですか?
A: Amazon Bedrock は、業界をリードする種々の基盤モデル (FM) を提供し、生成 AI アプリケーションの構築に必要な幅広い機能を備えたフルマネージドサービスです。セキュリティ、プライバシー、責任ある AI により開発を簡素化します。Amazon Bedrock の包括的な機能を使用すると、さまざまな人気の FM を実験すること、微調整や検索拡張生成 (RAG) などの手法を用いて、データを利用してそれらの FM をプライベートにカスタマイズすること、旅行の予約や保険金請求の処理から広告キャンペーンの作成や在庫管理まで、複雑なビジネスタスクを実行するマネージドエージェントを作成することができます。これらを実行するためにコードを記述する必要はありません。Amazon Bedrock はサーバーレスであるため、インフラストラクチャを管理する必要がありません。また、使い慣れた AWS サービスを使用して、生成 AI 機能をアプリケーションに安全に統合してデプロイできます。Amazon Bedrock をご利用のお客様は、現在使用可能な最先端の FM の中からお選びいただけます。これには以下の言語モデルと埋め込みモデルが含まれます。
スコア: 0.91362286
---
Q: Amazon Bedrock ではどの FM を利用できますか? 
A: Amazon Bedrock は、業界をリードする種々の基盤モデル (FM) を提供し、生成 AI アプリケーションの構築に必要な幅広い機能を備えたフルマネージドサービスです。セキュリティ、プライバシー、責任ある AI により開発を簡素化します。Amazon Bedrock の包括的な機能を使用すると、さまざまな人気の FM を実験すること、微調整や検索拡張生成 (RAG) などの手法を用いて、データを利用してそれらの FM をプライベートにカスタマイズすること、旅行の予約や保険金請求の処理から広告キャンペーンの作成や在庫管理まで、複雑なビジネスタスクを実行するマネージドエージェントを作成することができます。これらを実行するためにコードを記述する必要はありません。Amazon Bedrock はサーバーレスであるため、インフラストラクチャを管理する必要がありません。また、使い慣れた AWS サービスを使用して、生成 AI 機能をアプリケーションに安全に統合してデプロイできます。Amazon Bedrock をご利用のお客様は、現在使用可能な最先端の FM の中からお選びいただけます。これには以下の言語モデルと埋め込みモデルが含まれます。
スコア: 0.85967577
---
Q: Amazon Bedrock の使用を開始するにはどうすればよいですか?
A: Amazon Bedrock のサーバーレスエクスペリエンスにより、すぐに使い始めることができます。AWS マネジメントコンソールで Amazon Bedrock に移動し、プレイグラウンドで FM をお試しください。エージェントを作成し、コンソールでテストすることもできます。ユースケースを特定したら、インフラストラクチャを管理することなく、AWS ツールを使用して FM をアプリケーションに簡単に統合できます。
スコア: 0.8732259
```

こちらも2問目が間違っているので、3問中2問正解。

---

問題が難しかったのかな？

ちなみにBodyの形式はほぼ同じで微妙に異なります。