Mistral AITextvervollständigung - Amazon Bedrock

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Mistral AITextvervollständigung

Mit der Mistral AI Textvervollständigungs-API können Sie Text mit einem Modell generieren. Mistral AI

Sie stellen Inferenzanfragen an Mistral AI Modelle mit InvokeModeloder InvokeModelWithResponseStream(Streaming).

Mistral AIModelle sind unter der Apache 2.0-Lizenz verfügbar. Weitere Informationen zur Verwendung von Mistral AI Modellen finden Sie in der Mistral AIDokumentation.

Unterstützte Modelle

Sie können die folgenden Mistral AI Modelle verwenden.

  • Mistral 7B Instruct

  • Mixtral 8X7B Instruct

  • Mistral Large

  • Mistral Small

Sie benötigen die Modell-ID für das Modell, das Sie verwenden möchten. Informationen zum Abrufen der Modell-ID finden Sie unterUnterstützte Basismodelle in Amazon Bedrock.

Anforderung und Antwort

Request

Die Mistral AI Modelle haben die folgenden Inferenzparameter.

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

Die folgenden Parameter sind erforderlich.

  • prompt — (Erforderlich) Die Aufforderung, die Sie an das Modell übergeben möchten, wie im folgenden Beispiel gezeigt.

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

    Das folgende Beispiel zeigt, wie eine Multi-Turn-Eingabeaufforderung formatiert wird.

    <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]

    Der Text für die Benutzerrolle befindet sich innerhalb der [INST]...[/INST] Token, der Text außerhalb der Rolle des Assistenten. Der Anfang und das Ende einer Zeichenfolge werden durch die Tokens <s> (Anfang der Zeichenfolge) und </s> (Ende der Zeichenfolge) dargestellt. Informationen zum Senden einer Chat-Aufforderung im richtigen Format finden Sie in der Mistral AI Dokumentation unter Chat-Vorlage.

Die folgenden Parameter sind optional.

  • max_tokens — Geben Sie die maximale Anzahl von Tokens an, die in der generierten Antwort verwendet werden sollen. Das Modell kürzt die Antwort, sobald der generierte Text den Wert max_tokens überschreitet.

    Standard Minimum Maximum

    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

  • stop — Eine Liste von Stoppsequenzen, die, wenn sie vom Modell generiert werden, verhindern, dass das Modell weitere Ausgaben generiert.

    Standard Minimum Maximum

    0

    0

    10

  • Temperatur — Steuert die Zufälligkeit der vom Modell getroffenen Vorhersagen. Weitere Informationen finden Sie unter Beeinflussen Sie die Antwortgenerierung mit Inferenzparametern.

    Standard Minimum Maximum

    Mistral 7B Instruct— 0,5

    Mixtral 8X7B Instruct— 0,5

    Mistral Large— 0,7

    Mistral Small— 0,7

    0

    1

  • top_p — Steuert die Textvielfalt, die das Modell generiert, indem der Prozentsatz der wahrscheinlichsten Kandidaten festgelegt wird, die das Modell für das nächste Token berücksichtigt. Weitere Informationen finden Sie unter Beeinflussen Sie die Antwortgenerierung mit Inferenzparametern.

    Standard Minimum Maximum

    Mistral 7B Instruct— 0,9

    Mixtral 8X7B Instruct— 0,9

    Mistral Large— 1

    Mistral Small— 1

    0

    1

  • top_k — Steuert die Anzahl der wahrscheinlichsten Kandidaten, die das Modell für das nächste Token berücksichtigt. Weitere Informationen finden Sie unter Beeinflussen Sie die Antwortgenerierung mit Inferenzparametern.

    Standard Minimum Maximum

    Mistral 7B Instruct— 50

    Mixtral 8X7B Instruct— 50

    Mistral Large— deaktiviert

    Mistral Small— deaktiviert

    1

    200

Response

Die body-Antwort eines Aufrufs von InvokeModel lautet wie folgt:

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

Die body-Antwort enthält folgende mögliche Felder:

  • Ausgänge — Eine Liste der Ausgaben des Modells. Jede Ausgabe hat die folgenden Felder.

    • text — Der Text, den das Modell generiert hat.

    • stop_reason — Der Grund, warum die Antwort keinen Text mehr generiert hat. Die möglichen Werte sind:

      • Stopp – Das Modell hat die Textgenerierung für die Eingabeaufforderung abgeschlossen. Das Modell wird beendet, weil kein Inhalt mehr generiert werden muss oder wenn das Modell eine der Stoppsequenzen generiert, die Sie im stop Anforderungsparameter definieren.

      • Länge – Die Länge der Token für den generierten Text überschreitet den Wert von max_tokens im Aufruf von InvokeModel (InvokeModelWithResponseStream, wenn Sie die Ausgabe streamen). Die Antwort wird auf max_tokens Token gekürzt.

Codebeispiel

Dieses Beispiel zeigt, wie das Mistral 7B Instruct Modell aufgerufen wird.

# 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()