View a markdown version of this page

Invocación del modelo importado - Amazon Bedrock

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Invocación del modelo importado

El trabajo de importación del modelo puede tardar varios minutos en importar el modelo después de enviar la CreateModelImportJob solicitud. Puedes comprobar el estado de tu trabajo de importación en la consola o llamando a la GetModelImportJob operación y marcando el Status campo de la respuesta. El trabajo de importación está completo si el estado del modelo es Completado.

Una vez que el modelo importado esté disponible en Amazon Bedrock, podrá utilizar el modelo con un rendimiento bajo demanda enviando InvokeModel o InvokeModelWithResponseStream solicitando llamadas de inferencia al modelo. Para obtener más información, consulte Envía un solo mensaje con InvokeModel.

Para interactuar con el modelo importado mediante el formato de mensajes, puede llamar al Converse o a las operaciones. ConverseStream Para obtener más información, consulte Uso de Converse API.

nota

La API de Converse no es compatible con los Qwen2.5 modelos Qwen2-VL, Qwen2.5-VL, yGPT-OSS.

Soporte de API mejorado: varios formatos de API

A partir del 17 de noviembre de 2025, Amazon Bedrock Custom Model Import admite formatos de OpenAI-compatible API completos, lo que proporciona flexibilidad a la hora de integrar e implementar los modelos personalizados. Todos los modelos importados después del 11 de noviembre de 2025 se beneficiarán automáticamente de estas capacidades mejoradas sin necesidad de configuración adicional.

La importación de modelos personalizados ahora admite tres formatos de API:

  • BedrockCompletion (Texto): compatible con los flujos de trabajo actuales de Bedrock

  • OpenAICompletion (texto): compatibilidad con el esquema de OpenAI Completion

  • OpenAIChatCompletion (Texto e imágenes): compatibilidad total con esquemas conversacionales

Estas capacidades mejoradas incluyen salidas estructuradas para aplicar esquemas y patrones JSON, una mayor compatibilidad visual con el procesamiento de múltiples imágenes, probabilidades de registro para obtener información sobre la confianza de los modelos y funciones de llamada de herramientas para modelos. GPT-OSS

Para obtener documentación de referencia detallada sobre la API, consulta la documentación oficial de OpenAI:

  • Finalización: API de finalización de OpenAI

  • ChatCompletion: API de chat de OpenAI

Ejemplos de formatos de API

Los siguientes ejemplos muestran cómo usar cada uno de los cuatro formatos de API compatibles con los modelos importados.

BedrockCompletion

BedrockCompletionEl formato es compatible con los flujos de trabajo actuales de Bedrock y admite solicitudes de inferencia basadas en texto.

Ejemplo de solicitud:

import json import boto3 client = boto3.client('bedrock-runtime', region_name='us-east-1') payload = { "prompt": "How is the rainbow formed?", "max_gen_len": 100, "temperature": 0.5 } response = client.invoke_model( modelId='your-model-arn', body=json.dumps(payload), accept='application/json', contentType='application/json' ) response_body = json.loads(response['body'].read())

Ejemplo de respuesta:

{ "generation": " – A scientific explanation\nA rainbow is a beautiful natural phenomenon that occurs when sunlight passes through water droplets in the air. It is formed through a process called refraction, which is the bending of light as it passes from one medium to another.\nHere's a step-by-step explanation of how a rainbow is formed:\n1. Sunlight enters the Earth's atmosphere: The first step in forming a rainbow is for sunlight to enter the Earth's atmosphere. This sunlight is made up of a spectrum of", "prompt_token_count": 7, "generation_token_count": 100, "stop_reason": "length", "logprobs": null }

BedrockCompletion admite salidas estructuradas utilizando response_format parámetros con y tipos. json_object json_schema

OpenAICompletion

El formato OpenAICompletion proporciona compatibilidad con el esquema de finalización de OpenAI. Para usar este formato, incluya el parámetro en lugar demax_tokens. max_gen_len

Ejemplo de solicitud:

import json import boto3 client = boto3.client('bedrock-runtime', region_name='us-east-1') payload = { "prompt": "How is the rainbow formed?", "max_tokens": 100, "temperature": 0.5 } response = client.invoke_model( modelId='your-model-arn', body=json.dumps(payload), accept='application/json', contentType='application/json' ) response_body = json.loads(response['body'].read())

Ejemplo de respuesta:

{ "id": "cmpl-b09d5810bd64428f8a853be71c31f912", "object": "text_completion", "created": 1763166682, "choices": [ { "index": 0, "text": " The formation of a rainbow is a complex process that involves the interaction of sunlight with water droplets in the air. Here's a simplified explanation: 1. Sunlight enters the Earth's atmosphere and is refracted, or bent, as it passes through the air. 2. When sunlight encounters a water droplet, such as a cloud, mist, or fog, it is refracted again and split into its individual colors, a process known as dispersion. 3. The refracted and", "finish_reason": "length" } ], "usage": { "prompt_tokens": 7, "total_tokens": 107, "completion_tokens": 100 } }

OpenAICompletion admite todas las capacidades de salida estructuradasjson, incluidas, regexchoice, y grammar las restricciones mediante el uso del structured_outputs parámetro.

OpenAIChatCompletion

OpenAIChatCompletionEl formato proporciona una compatibilidad total con los esquemas conversacionales y admite entradas de texto e imágenes.

Ejemplo de solicitud:

import json import boto3 client = boto3.client('bedrock-runtime', region_name='us-east-1') payload = { "messages": [ { "role": "user", "content": "How is the rainbow formed?" } ], "max_tokens": 100, "temperature": 0.5 } response = client.invoke_model( modelId='your-model-arn', body=json.dumps(payload), accept='application/json', contentType='application/json' ) response_body = json.loads(response['body'].read())

Ejemplo de respuesta:

{ "id": "chatcmpl-1d84ce1d3d61418e8c6d1973f87173db", "object": "chat.completion", "created": 1763166683, "choices": [ { "index": 0, "message": { "role": "assistant", "content": "A rainbow is a beautiful natural phenomenon that occurs when sunlight passes through water droplets in the air. The process of forming a rainbow involves several steps:\n\n1. **Sunlight**: The first requirement for a rainbow is sunlight. The sun should be shining brightly, but not directly overhead.\n2. **Water droplets**: The second requirement is water droplets in the air..." }, "finish_reason": "length" } ], "usage": { "prompt_tokens": 41, "completion_tokens": 100, "total_tokens": 141 } }

OpenAIChatCompletion admite salidas estructuradas utilizando ambos response_format structured_outputs parámetros. Para mejorar la visión, incluya imágenes en la matriz de contenido con datos de imagen codificados en base64.

nota

Para usar el ChatCompletion formato, la plantilla de chat debe formar parte del. tokenizer_config.json Custom Model Import no aplicará ninguna plantilla de chat predeterminada a la solicitud.

Necesitará el ARN del modelo para realizar llamadas de inferencia al modelo que acaba de importar. Después de completar correctamente el trabajo de importación y de que el modelo importado esté activo, puede obtener el ARN del modelo importado en la consola o enviando una ListImportedModels solicitud.

Cuando invoca su modelo importado utilizando InvokeModel o InvokeModelWithStream, su solicitud se entrega en cinco minutos o podría recibir una excepción ModelNotReadyException. Para entenderlo ModelNotReadyException, sigue los pasos que se indican en la siguiente sección para ModelNotreadyException gestionarlo.

Preguntas frecuentes

P: ¿Qué formato de API debo usar?

R: Para obtener la máxima compatibilidad con varios SDK, recomendamos usar OpenAICompletion o OpenAIChatCompletion formatos, ya que proporcionan OpenAI-compatible esquemas que son ampliamente compatibles en diferentes herramientas y bibliotecas.

P: ¿La importación de modelos personalizados GPT-OSS de Amazon Bedrock es compatible con la API Converse?

R: No. GPT-OSSlos modelos de importación de modelos personalizados basados en modelos no son compatibles con la API o ConverseStream API de Converse. Debes usar la InvokeModel API con OpenAI-compatible esquemas cuando trabajes con modelos personalizados GPT-OSS basados.

P: ¿Qué modelos admiten la llamada a herramientas?

R: Los modelos personalizados GPT-OSS basados en herramientas admiten las capacidades de llamada. La llamada de herramientas permite la llamada de funciones para flujos de trabajo complejos.

P: ¿Qué pasa con los modelos importados antes del 11 de noviembre de 2025?

R: Los modelos importados antes del 11 de noviembre de 2025 siguen funcionando como están con sus formatos y capacidades de API existentes.

P: ¿Qué pasa con generation_config.json los OpenAI-based modelos?

R: Es fundamental que incluya el generation_config.json archivo correcto al importar OpenAI-based modelos comoGPT-OSS. Debe usar el archivo de configuración actualizado (actualizado el 13 de agosto de 2024) disponible en https://huggingface.co/openai/gpt-oss-20b/blob/main/generation_config.json. La configuración actualizada incluye tres identificadores de fin de secuencia ([200002, 199999, 200012]), mientras que las versiones anteriores solo incluían dos identificadores ([200002, 199999]). El uso de un generation_config.json archivo desactualizado provocará errores de tiempo de ejecución durante la invocación del modelo. Este archivo es esencial para el correcto comportamiento del modelo y debe incluirse en las importaciones de OpenAI-based modelos.

Manipulación ModelNotReadyException

Amazon Bedrock Custom Model Import optimiza el uso del hardware al eliminar los modelos que no están activos. Si intenta invocar un modelo que se ha eliminado, recibirá una excepción ModelNotReadyException. Una vez eliminado el modelo e invocado el modelo por primera vez, Importación de modelos personalizados empezará a restaurar el modelo. El tiempo de restauración depende del tamaño de la flota bajo demanda y del tamaño del modelo.

Si su solicitud InvokeModel o InvokeModelWithStream devuelve ModelNotReadyException, siga los pasos para gestionar la excepción.

  1. Configure los reintentos.

    De forma predeterminada, la solicitud se reintenta automáticamente con un retroceso exponencial. Puede configurar el número máximo de reintentos.

    En el siguiente ejemplo se muestra cómo configurar el reintento. Sustituya y ${region-name}${model-arn}, 10 con su región, el modelo de ARN y el número máximo de intentos.

    import json import boto3 from botocore.config import Config REGION_NAME = ${region-name} MODEL_ID= '${model-arn}' config = Config( retries={ 'total_max_attempts': 10, //customizable 'mode': 'standard' } ) message = "Hello" session = boto3.session.Session() br_runtime = session.client(service_name = 'bedrock-runtime', region_name=REGION_NAME, config=config) try: invoke_response = br_runtime.invoke_model(modelId=MODEL_ID, body=json.dumps({'prompt': message}), accept="application/json", contentType="application/json") invoke_response["body"] = json.loads(invoke_response["body"].read().decode("utf-8")) print(json.dumps(invoke_response, indent=4)) except Exception as e: print(e) print(e.__repr__())
  2. Supervise los códigos de respuesta durante los reintentos

    Cada reintento inicia el proceso de restauración del modelo. El tiempo de restauración depende del tamaño de la flota bajo demanda y del modelo. Supervise los códigos de respuesta mientras se lleva a cabo el proceso de restauración.

    Si los reintentos fallan de manera constante, continúe con los siguientes pasos.

  3. Compruebe que el modelo se ha importado correctamente

    Puedes comprobar si el modelo se importó correctamente comprobando el estado del trabajo de importación en la consola o llamando a la GetModelImportJob operación. Consulte el campo Status de la respuesta. El trabajo de importación se ha realizado correctamente si el estado del modelo es Completado.

  4. Contacto Soporte para una investigación más profunda

    Abra un ticket con Soporte Para obtener más información, consulte Creación de casos de soporte.

    Incluya los detalles pertinentes, como el ID del modelo y las marcas horarias, en el ticket de soporte.