AWS Bedrock 提供了对基础模型的访问,但输入和输出限制因模型而异。输入提示长度指的是您可以在单个请求中发送到模型的文本量,而输出长度决定了模型生成的文本量。 这些限制通常以 tokens(文本块,每个大约 4 个字符)定义。 例如,Anthropic 的 Claude 2.1 支持高达 100,000 个 tokens 的输入,而 Amazon Titan Text 的输入限制为 8,192 个 tokens。 输出限制通常可以通过 max_tokens
等参数进行调整,但默认设置为模型特定的上限(例如,Claude 的默认输出为 4,096 个 tokens)。 这些约束确保了性能和成本效益,因为较长的序列需要更多的计算资源。
要查找具体限制,请从 AWS Bedrock 文档开始。 每个模型的详细信息页面都会列出其 token 限制和配置选项。 例如,在 AWS 控制台中,导航到 Bedrock > 模型访问,选择一个模型,然后查看“模型详细信息”部分。 API 参考也包含此信息: InvokeModel
请求中的 modelId
参数对应于具有文档记录的约束的模型。 一些模型,例如 AI21 Labs 的 Jurassic-2,允许较短的输入(例如,8,192 个 tokens),但允许您通过 API 主体中的 maxTokens
调整输出长度。 始终验证您的用例是否需要拆分提示或截断输出来保持在界限内。 例如,如果使用 Claude 处理 120k 个 tokens 的文档,您需要将其分成 100k 个 tokens 的段。
开发人员应该以编程方式测试限制。 例如,使用适用于 Python 的 AWS SDK (boto3),使用超大提示调用 invoke_model
可能会返回 ValidationException
。 错误消息通常指定允许的 token 范围。 为避免意外,请使用 token 计数库(例如,Anthropic 的 claude-tokenizer
)预处理输入。 可以通过在请求中设置 max_tokens
等参数来管理输出限制,但超出模型的最大值将触发错误。 如果默认限制过于严格,请查看 AWS 支持选项;某些模型允许增加配额。 始终查看最新的文档,因为更新(例如 Claude 3 的 200k 个 tokens 输入)可能会更改这些阈值。