Mistral AIfinalización de texto - 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.

Mistral AIfinalización de texto

La API de finalización de Mistral AI texto le permite generar texto con un Mistral AI modelo.

Puede realizar solicitudes de inferencia a Mistral AI los modelos con InvokeModelo InvokeModelWithResponseStream (streaming).

Mistral AIlos modelos están disponibles bajo la licencia Apache 2.0. Para obtener más información sobre el uso de Mistral AI modelos, consulte la Mistral AIdocumentación.

Modelos compatibles

Puede utilizar los siguientes Mistral AI modelos.

  • Mistral 7B Instruct

  • Mixtral 8X7B Instruct

  • Mistral Large

  • Mistral Small

Necesitará el ID de modelo del modelo que desee utilizar. Para obtener el identificador del modelo, consulteModelo Amazon Bedrock IDs.

Solicitud y respuesta

Request

Los Mistral AI modelos tienen los siguientes parámetros de inferencia.

{ "prompt": string, "max_tokens" : int, "stop" : [string], "temperature": float, "top_p": float, "top_k": int }

Los siguientes parámetros son obligatorios.

  • prompt: (obligatorio) El mensaje que desea pasar al modelo, como se muestra en el siguiente ejemplo.

    <s>[INST] What is your favourite condiment? [/INST]

    En el siguiente ejemplo, se muestra cómo formatear una solicitud de varios giros.

    <s>[INST] What is your favourite condiment? [/INST] Well, I'm quite partial to a good squeeze of fresh lemon juice. It adds just the right amount of zesty flavour to whatever I'm cooking up in the kitchen!</s> [INST] Do you have mayonnaise recipes? [/INST]

    El texto del rol de usuario está dentro de los [INST]...[/INST] símbolos y el texto exterior corresponde al rol de asistente. El principio y el final de una cadena se representan mediante los símbolos <s> (principio de cadena) y </s> (final de cadena). Para obtener información sobre cómo enviar un mensaje de chat en el formato correcto, consulte la plantilla de chat en la Mistral AI documentación.

Los siguientes son parámetros opcionales.

  • max_tokens: especifique la cantidad máxima de tokens que se utilizarán en la respuesta generada. El modelo trunca la respuesta una vez que el texto generado excede max_tokens.

    Predeterminado Mínimo Máximo

    Mistral 7B Instruct— 512

    Mixtral 8X7B Instruct— 512

    Mistral Large— 8.192

    Mistral Small— 8.192

    1

    Mistral 7B Instruct— 8.192

    Mixtral 8X7B Instruct— 4.096

    Mistral Large— 8.192

    Mistral Small— 8.192

  • parada: lista de secuencias de parada que, si las genera el modelo, impiden que el modelo genere más resultados.

    Predeterminado Mínimo Máximo

    0

    0

    10

  • temperatura: controla la aleatoriedad de las predicciones realizadas por el modelo. Para obtener más información, consulte Influya en la generación de respuestas con parámetros de inferencia.

    Predeterminado Mínimo Máximo

    Mistral 7B Instruct— 0,5

    Mixtral 8X7B Instruct— 0,5

    Mistral Large— 0.7

    Mistral Small— 0.7

    0

    1

  • top_p: controla la diversidad de texto que genera el modelo al establecer el porcentaje de candidatos más probables que el modelo considera para el siguiente token. Para obtener más información, consulte Influya en la generación de respuestas con parámetros de inferencia.

    Predeterminado Mínimo Máximo

    Mistral 7B Instruct— 0.9

    Mixtral 8X7B Instruct— 0.9

    Mistral Large— 1

    Mistral Small— 1

    0

    1

  • top_k: controla el número de candidatos más probables que el modelo considera para el siguiente token. Para obtener más información, consulte Influya en la generación de respuestas con parámetros de inferencia.

    Predeterminado Mínimo Máximo

    Mistral 7B Instruct— 50

    Mixtral 8X7B Instruct— 50

    Mistral Large— deshabilitado

    Mistral Small— deshabilitado

    1

    200

Response

La respuesta body de una llamada a InvokeModel es la siguiente:

{ "outputs": [ { "text": string, "stop_reason": string } ] }

La respuesta body tiene los siguientes campos posibles:

  • salidas: lista de salidas del modelo. Cada salida tiene los siguientes campos.

    • texto: el texto que generó el modelo.

    • stop_reason: el motivo por el que la respuesta dejó de generar texto. Los valores posibles son los siguientes:

      • detener: el modelo ha terminado de generar texto para la solicitud de entrada. El modelo se detiene porque no tiene más contenido que generar o si genera una de las secuencias de paradas que usted define en el parámetro de stop solicitud.

      • longitud: la longitud de los símbolos del texto generado supera el valor de max_tokens en la llamada a InvokeModel (InvokeModelWithResponseStream, si está transmitiendo la salida). La respuesta se trunca en tokens max_tokens.

Ejemplo de código

En este ejemplo se muestra cómo llamar al Mistral 7B Instruct modelo.

# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 """ Shows how to generate text using a Mistral AI model. """ import json import logging import boto3 from botocore.exceptions import ClientError logger = logging.getLogger(__name__) logging.basicConfig(level=logging.INFO) def generate_text(model_id, body): """ Generate text using a Mistral AI model. Args: model_id (str): The model ID to use. body (str) : The request body to use. Returns: JSON: The response from the model. """ logger.info("Generating text with Mistral AI model %s", model_id) bedrock = boto3.client(service_name='bedrock-runtime') response = bedrock.invoke_model( body=body, modelId=model_id ) logger.info("Successfully generated text with Mistral AI model %s", model_id) return response def main(): """ Entrypoint for Mistral AI example. """ logging.basicConfig(level=logging.INFO, format="%(levelname)s: %(message)s") try: model_id = 'mistral.mistral-7b-instruct-v0:2' prompt = """<s>[INST] In Bash, how do I list all text files in the current directory (excluding subdirectories) that have been modified in the last month? [/INST]""" body = json.dumps({ "prompt": prompt, "max_tokens": 400, "temperature": 0.7, "top_p": 0.7, "top_k": 50 }) response = generate_text(model_id=model_id, body=body) response_body = json.loads(response.get('body').read()) outputs = response_body.get('outputs') for index, output in enumerate(outputs): print(f"Output {index + 1}\n----------") print(f"Text:\n{output['text']}\n") print(f"Stop reason: {output['stop_reason']}\n") except ClientError as err: message = err.response["Error"]["Message"] logger.error("A client error occurred: %s", message) print("A client error occured: " + format(message)) else: print(f"Finished generating text with Mistral AI model {model_id}.") if __name__ == "__main__": main()