Amazon Bedrock を使用してテキストを生成するときに、読み取りタイムアウトエラーが発生しないようにしたいです。
簡単な説明
Amazon Bedrock の大規模言語モデルを使用してテキストを生成すると、読み取りタイムアウトエラーが発生することがあります。これらのエラーは、Python boto3 クライアントが大規模言語モデルにクエリを実行したが、botocore でのデフォルトの読み取りタイムアウト期間内に応答を受け取らなかった場合に発生します。読み取りタイムアウトエラーを解決するには、読み取りタイムアウトを増やします
解決策
クライアントの読み取りタイムアウト値を増やすコード例を次に示します。
from boto3 import client
from botocore.config import Config
config = Config(read_timeout=1000)
client = client(service_name='bedrock-runtime',
config=config)
LangChain などのサードパーティライブラリを使用する場合は、まず、botocore の設定で boto3 クライアントをインスタンス化します。次に、これをクライアントパラメータとして呼び出し可能なモデルクラスに渡します。
boto3 クライアントをサードパーティのライブラリに渡すときの、読み取りタイムアウト値を増やすためのサンプルコード。
from boto3 import client
from botocore.config import Config
from langchain_community.llms import Bedrock
config = Config(read_timeout=1000)
client = client(service_name='bedrock-runtime',
config=config)
llm = Bedrock(model_id="anthropic.claude-v2:1",
client=client)
上記の例は、読み取りタイムアウトを 1000 秒に設定していることを示しています。読み取りタイムアウト期間は、botocore が読み取りタイムアウト例外をスローする前にサーバーからの応答を待つ時間を指定します。
注: Anthropic Claude Opus などの大規模モデルでは、応答が返されるまでに 60 秒よりも長くかかることがあります。
ベストプラクティス
読み取りタイムアウトは、クエリが完了するのに十分な長さに設定します。1000 秒などの大きな値から始めて、タイムアウトエラーが発生しなくなるまでこの時間を調整します。