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.
Textvervollständigung mit Mistral AI
Mit der Textvervollständigungs-API von Mistral AI können Sie Text mit einem Modell von Mistral AI generieren.
Mit InvokeModel oder InvokeModelWithResponseStream (Streaming) nehmen Sie Inferenzanforderungen an Modelle von Mistral AI vor.
Modelle von Mistral AI sind unter der Apache-2.0-Lizenz verfügbar. Weitere Informationen zur Verwendung von Modellen von Mistral AI finden Sie in der Dokumentation für Mistral AI.
Unterstützte Modelle
Sie können die folgenden Modelle von Mistral AI 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 unter Unterstützte Basismodelle in Amazon Bedrock.
Anforderung und Antwort
- Request
-
Die Modelle von Mistral AI 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) Der Prompt, den Sie an das Modell übergeben möchten, wie in folgendem Beispiel gezeigt.
<s>[INST] What is your favourite condiment? [/INST]
Das folgende Beispiel zeigt die Formatierung eines Prompts für Multi-Turn-Konversationen.
<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 Token [INST]...[/INST], der Text außerhalb entspricht der Rolle des Assistenten. Der Anfang und das Ende einer Zeichenfolge werden durch die Token <s> (Anfang der Zeichenfolge) und </s> (Ende der Zeichenfolge) dargestellt. Informationen zum Senden eines Chat-Prompts im richtigen Format finden Sie in der Dokumentation für Mistral AI unter Chat-Vorlage.
Die folgenden Parameter sind optional.
-
max_tokens – Geben Sie die maximale Anzahl von Token an, die in der generierten Antwort verwendet werden soll. Das Modell kürzt die Antwort, sobald der generierte Text den Wert überschreitet max_tokens.
| 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
|
-
temperature – Steuert die Zufälligkeit der vom Modell getroffenen Vorhersagen. Weitere Informationen finden Sie unter So 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 Diversität des Texts, den das Modell generiert, indem der Prozentsatz der wahrscheinlichsten Kandidaten festgelegt wird, die das Modell für das nächste Token in Erwägung zieht. Weitere Informationen finden Sie unter So 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 – Die Anzahl der wahrscheinlichsten Kandidaten, die das Modell für das nächste Token in Erwägung zieht. Weitere Informationen finden Sie unter So 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:
Codebeispiel
Dieses Beispiel zeigt, wie das Modell Mistral 7B Instruct 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()