使用AWS re:Post即您表示您同意 AWS re:Post 使用条款

如何解决 Amazon Bedrock 中的验证异常?

2 分钟阅读
0

我想对基础模型中推理参数的验证异常进行故障排除。

简短描述

推理参数可帮助您调整 Amazon Bedrock 提供的大型语言模型的行为,以获得预期的输出。当您在使用错误推理参数或相应值的基础模型上运行 InvokeModelInvokeModelWithResponseStream API 时,会出现验证错误。当您为一个模型使用推理参数时,如果模型的 API 参数不相同,也会发生此错误。

解决方法

Anthropic Claude 3 模型的推理参数名称不正确

当您加入 Anthropic Claude 3 模型的 top_n 参数时,会出现验证异常错误。此参数是该模型的错误推理参数名称:

错误: “ValidationException: An error occurred (ValidationException) when calling the InvokeModel operation:
Malformed input request: #: subject must not be valid against schema {"required":["messages"]}#:
extraneous key [top_n] is not permitted, please reformat your input and try again.”
(ValidationException:调用 InvokeModel 操作时出现错误 (ValidationException):输入请求 # 格式错误:主题不得符合模式 {"required":["messages"]}#:不允许使用外来密钥 [top_n],请重新调整输入格式并重试。)

推理参数不正确的示例代码:


        # Invoke Claude 3 with the text prompt
        model_id = "anthropic.claude-3-sonnet-20240229-v1:0"
        try:
            response = client.invoke_model(
                modelId=model_id,
                body=json.dumps(
                    {
                        "anthropic_version": "bedrock-2023-05-31",
                        "max_tokens": 1024,
                        "top_n": 1 ,
                        "messages": [
                            {
                                "role": "user",
                                "content": [{"type": "text", "text":<prompt>}],
                            }]}))

为避免此错误,请确保从以下有效的推理参数中进行选择:

  • **max_tokens:**停止前生成的最大令牌数
  • **temperature:**注入响应中的随机性程度
  • **top_p:**模型通过设置模型为下一个令牌考虑的最可能候选者的百分比来生成的文本的多样性。
  • **top_k:**模型为下一个令牌考虑的最有可能的候选人数量。
  • **stop_sequences:**导致模型停止生成的自定义文本序列。
  • **prompt:**提供上下文和说明的系统提示。

有关详细信息,请参阅 Anthropic Claude Messages API

mistral-7b 模型的温度推断值不正确

当 mistral-7b 模型收到错误的 temperature 推断参数值时,会出现验证异常错误:

错误: “ValidationException: An error occurred (ValidationException) when calling the InvokeModel operation:
Malformed input request: #/temperature: 2.0 is not less or equal to 1.0, please reformat your input
and try again”
(ValidationException:调用 InvokeModel 操作时出现错误 (ValidationException):输入请求 #/temperature 格式错误:2.0 大于 1.0,请重新调整您的输入格式并重试)

参数值不正确的示例代码:

# Invoke minstral-7b with the text prompt
model_id = "mistral.mistral-7b-instruct-v0:2"
body = {
    "prompt": <prompt>,
    "max_tokens": 200,
    "temperature": 2.0
}
response = client.invoke_model(modelId=model_id, body=json.dumps(body))

temperature 推理参数控制模型预测的随机性。它的范围为 0-1。temperature 的值 2.0 不在此范围内,会产生错误。有关详细信息,请参阅 Mistral AI 模型

其他模型

有关 Amazon Bedrock 上模型推理参数的详细信息,请参阅基础模型的推理参数
**注意:**嵌入式模型没有可调整的推理参数。

AWS 官方
AWS 官方已更新 7 个月前