AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

Amazon Bedrock Converse APIでAn error occurred (ValidationException) when calling the Converse operation: The model returned the following errors: Input is too long for requested model.が発生する件

0

Amazon Bedrock Converse APIでファイルサイズの大きい(2MB程度)CSVファイルをdocumentとして読み込ませると、

ERROR: Can't invoke 'anthropic.claude-3-5-sonnet-20241022-v2:0'. Reason: An error occurred (ValidationException) when calling the Converse operation: The model returned the following errors: Input is too long for requested model.

のエラーが発生します。以下は作成したコードです。↓

import boto3
from botocore.exceptions import ClientError

client = boto3.client('bedrock-runtime', region_name='us-west-2')

with open('csv/report.csv', 'rb') as f:
    csv1 = f.read()

text = '2024年について教えて'
model_id = 'anthropic.claude-3-5-sonnet-20241022-v2:0'
conversation = [
    {
        'role': 'user',
        'content': [
            {
                'document': {
                    'name': 'csv1',
                    'format': 'csv',
                    'source': {'bytes': csv1},
                },
            },
            {'text': text},
        ],
    }
]

try:
    response = client.converse(
        modelId=model_id,
        messages=conversation,
        inferenceConfig={
            'maxTokens': 4096,
            'temperature': 0,
        },
    )

    print(response['output']['message']['content'][0]['text'])

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

こちらのサイト https://docs.aws.amazon.com/ja_jp/bedrock/latest/userguide/conversation-inference-call.html では

各ドキュメントのサイズは 4.5 MB 以下にする必要があります。

となっています。

リージョンをus-east-1やap-northeast-1に変えたり、モデルをClaude3 haikuに変えても同様のエラーが出ました。 CSVファイルのサイズを500KB未満にしてみたところ、エラーは出ませんでした。

何か解決法などはありますでしょうか?

質問済み 1ヶ月前143ビュー
1回答
1
承認された回答

このエラーは、入力が選択したモデルの最大許容トークン数を超えているために発生しています。Amazon Bedrock Converse APIには、各リクエストに対するトークン制限があり、これにはユーザーの入力(テキストやドキュメント)とモデルの出力の両方が含まれます。

解決策としては以下のアプローチが考えられます:

  1. CSVファイルの分割: 大きなCSVファイルを複数の小さなファイルに分割し、それぞれを別々のリクエストで処理する。

  2. データの前処理: CSVファイルから必要な情報のみを抽出し、より小さなデータセットを作成する。

  3. ファイルの要約: 大きなCSVファイルの内容を要約し、より小さなテキストとして送信する。

  4. チャンク処理: ファイルを小さなチャンクに分割し、複数のリクエストを使用して順次処理する。

  5. 異なるアプローチの検討: 大きなファイルを直接モデルに送信する代わりに、ファイルの内容に基づいて具体的な質問を作成し、それらの質問をモデルに送信する。

  6. 適切なモデルの選択: 一部のモデルは他のモデルよりも大きな入力を処理できる場合があるため、より大きな入力を処理できるモデルを選択する。

  7. トークン数の最適化: 不要なスペースや改行を削除するなど、入力のトークン数を減らす工夫をする。

これらの方法を組み合わせることで、大きなCSVファイルを効果的に処理できる可能性があります。ただし、具体的な実装方法はユースケースや処理するデータの性質によって異なる場合があります。
Sources
Using the Converse API - Amazon Bedrock
Carry out a conversation with the Converse API operations - Amazon Bedrock
Community | A Java developer's guide to Bedrock's new Converse API

profile picture
回答済み 1ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ