Freigeben über


Bereitstellen von Mistral-Modellen mit Azure Machine Learning Studio

In diesem Artikel erfahren Sie, wie Sie Azure Machine Learning Studio zum Bereitstellen der Mistral-Modellfamilie als serverlose APIs mit Abrechnung mit nutzungsbasierter Bezahlung verwenden.

Mistral AI bietet zwei Kategorien von Modellen in Azure Machine Learning Studio: Diese Modelle sind im Modellkatalog verfügbar:

  • Premium-Modelle: Mistral Large (2402), Mistral Large (2407), Mistral Small und Ministral-3B.
  • Offene Modelle: Mistral Nemo, Mixtral-8x7B-Instruct-v01, Mixtral-8x7B-v01, Mistral-7B-Instruct-v01 und Mistral-7B-v01

Alle Premium-Modelle und Mistral Nemo (offenes Modell) können als serverlose APIs mit tokenbasierter Abrechnung bei nutzungsbasierter Bezahlung bereitgestellt werden. Die anderen offenen Modelle können für verwaltete Computeressourcen in Ihrem eigenen Azure-Abonnement bereitgestellt werden.

Sie können die Mistral-Modellfamilie im Modellkatalog durchsuchen, indem Sie nach der Mistral-Sammlung filtern.

Mistral-Modellfamilie

Mistral Large ist das fortschrittlichste Large Language Model (LLM) von Mistral AI. Dank ihrer hochmodernen Begründungs- und Wissensfunktionen kann sie für jede sprachbasierte Aufgabe verwendet werden. Es gibt zwei Varianten für die Modellversion „Mistral Large“:

  • Mistral Large (2402)
  • Mistral Large (2407)

Außerdem gehören zu den Eigenschaften von Mistral Large (2402) u. a. folgende:

  • Spezialisiert auf RAG. Wichtige Informationen gehen in der Mitte langer Kontextfenster (bis zu 32.000 Token) nicht verloren.
  • Stark in der Codierung. Codegenerierung, Überprüfung und Kommentierung. Unterstützt alle gängigen Programmiersprachen.
  • Hat ein mehrsprachiges Design. Erstklassige Leistung in Französisch, Deutsch, Spanisch und Italienisch - zusätzlich zu Englisch. Dutzende anderer Sprachen werden unterstützt.
  • Konform mit verantwortungsvoller KI Effiziente Schutzschienen, die per Baking in das Modell integriert wurden, und eine weitere Sicherheitsschicht mit der Option safe_mode.

Eigenschaften von Mistral Large (2407) sind u. a.:

  • Mehrsprachiges Design. Unterstützt Dutzende von Sprachen, darunter Englisch, Französisch, Deutsch, Spanisch und Italienisch.
  • Kompetent im Codieren. Wurde mit mehr als 80 Codierungssprachen trainiert, einschließlich Python, Java, C, C++, JavaScript und Bash. Außerdem wurde das Modell mit spezifischeren Sprachen wie Swift und Fortran trainiert.
  • Agent-zentriert. Verfügt über Agent-Funktionen mit nativen Funktionsaufrufen und JSON-Ausgaben.
  • Fortgeschrittene Schlussfolgerungen. Bietet modernste mathematische Funktionen und Schlussfolgerungsfunktionen.

Wichtig

Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar.

Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.

Bereitstellen einer Mistral-Modellfamilie als serverlose API

Bestimmte Modelle im Modellkatalog können als serverlose API mit Abrechnung mit nutzungsbasierter Bezahlung bereitgestellt werden. Diese Art von Bereitstellung bietet eine Möglichkeit, Modelle als API zu nutzen, ohne sie in Ihrem Abonnement zu hosten, während die Unternehmenssicherheit und Compliance beibehalten werden, die Organisationen benötigen. Für diese Bereitstellungsoption ist kein Kontingent aus Ihrem Abonnement erforderlich.

Mistral Large (2402), Mistral Large (2407), Mistral Small und Mistral Nemo können als serverlose API mit Abrechnung mit nutzungsbasierter Bezahlung bereitgestellt werden und werden von Mistral AI über den Microsoft Azure Marketplace angeboten. Mistral KI kann die Nutzungsbedingungen und Preise für diese Modelle ändern oder aktualisieren.

Voraussetzungen

  • Ein Azure-Abonnement mit einer gültigen Zahlungsmethode. Kostenlose Versionen oder Testversionen von Azure-Abonnements funktionieren nicht. Wenn Sie noch kein Azure-Abonnement haben, erstellen Sie zunächst ein kostenpflichtiges Azure-Konto.

  • Ein Azure Machine Learning-Arbeitsbereich. Wenn kein Arbeitsbereich vorliegt, führen Sie die Schritte unter Schnellstart: Erstellen von Arbeitsbereichsressourcen aus, um einen zu erstellen. Das Angebot für die Modellimplementierung für serverlose API für geeignete Modelle der Mistral-Familie ist nur in Arbeitsbereichen verfügbar, die in den folgenden Regionen erstellt wurden:

    • East US
    • USA (Ost) 2
    • USA Nord Mitte
    • USA Süd Mitte
    • USA (Westen)
    • USA, Westen 3
    • Schweden, Mitte

    Eine Liste der Regionen, die für jedes der Modelle verfügbar sind, die Bereitstellungen mit serverlosen API-Endpunkten unterstützen, finden Sie unter Verfügbarkeit von Regionen für Modelle in serverlosen API-Endpunkten.

  • Die rollenbasierte Zugriffssteuerung in Azure (Azure RBAC) wird verwendet, um Zugriff auf Vorgänge in Azure Machine Learning zu gewähren. Um die Schritte in diesem Artikel auszuführen, muss Ihrem Benutzerkonto die Azure KI-Entwicklerrolle in der Ressourcengruppe zugewiesen sein. Weitere Informationen zu Berechtigungen finden Sie unter Verwalten des Zugriffs auf einen Azure Machine Learning-Arbeitsbereich.

Erstellen einer neuen Bereitstellung

Die folgenden Schritte veranschaulichen die Bereitstellung von Mistral Large (2402), Sie können dieselben Schritte aber auch zum Bereitstellen von Mistral Nemo oder jedes beliebigen Mistral-Premium-Modells verwenden, indem Sie den Modellnamen ersetzen.

So erstellen Sie eine Bereitstellung

  1. Navigieren Sie zu Azure Machine Learning Studio.

  2. Wählen Sie den Arbeitsbereich aus, in dem Sie Ihr Modell bereitstellen möchten. Um das Angebot für die Modellimplementierung für serverlose APIs zu verwenden, muss Ihr Arbeitsbereich zu einer der Regionen gehören, die unter Voraussetzungen aufgeführt sind.

  3. Wählen Sie im Modellkatalog das Modell aus, das Sie bereitstellen möchten, z. B. das Modell „Mistral Large (2402)“.

    Alternativ können Sie die Bereitstellung initiieren, indem Sie zu Ihrem Arbeitsbereich wechseln und Endpunkte>Serverlose Endpunkte>Erstellen auswählen.

  4. Wählen Sie auf der Übersichtsseite des Modells im Modellkatalog die Option Bereitstellen aus, um das Fenster für die Bereitstellung als serverlose API zu öffnen.

  5. Aktivieren Sie das Kontrollkästchen, um die Microsoft-Einkaufsrichtlinie zu bestätigen.

    Ein Screenshot, der zeigt, wie Sie ein Modell als serverlose API bereitstellen.

  6. Wählen Sie im Bereitstellungsassistenten den Link zu Azure Marketplace-Nutzungsbedingungen aus, um mehr über die Nutzungsbedingungen zu erfahren.

  7. Sie können auch die Registerkarte Preise und Nutzungsbedingungen auswählen, um mehr über die Preise für das ausgewählte Modell zu erfahren.

  8. Wenn Sie das Modell zum ersten Mal im Arbeitsbereich bereitstellen, müssen Sie Ihren Arbeitsbereich für das jeweilige Angebot (z. B. Mistral Large (2402)) im Azure Marketplace abonnieren. Dieser Schritt erfordert, dass Ihr Konto über die Azure KI-Entwicklerrolle für die Ressourcengruppe verfügt, wie in den Voraussetzungen aufgeführt. Jeder Arbeitsbereich verfügt über ein eigenes Abonnement für das jeweilige Azure Marketplace-Angebot, wodurch Sie die Ausgaben steuern und überwachen können. Wählen Sie Abonnieren und bereitstellen aus. Derzeit können Sie nur eine Bereitstellung für jedes Modell innerhalb eines Arbeitsbereichs haben.

  9. Sobald Sie den Arbeitsbereich für das jeweilige Azure Marketplace-Angebot abonniert haben, müssen nachfolgende Bereitstellungen des gleichen Angebots im gleichen Arbeitsbereich nicht mehr abonniert werden. Wenn dieses Szenario für Sie gilt, wird die Option Weiter zur Bereitstellung zum Auswählen angezeigt.

    Screenshot zeigt einen Arbeitsbereich, das bereits für das Angebot abonniert ist.

  10. Geben Sie der Bereitstellung einen Namen. Dieser Name wird Teil der Bereitstellungs-API-URL. Diese URL muss in jeder Azure-Region eindeutig sein.

    Ein Screenshot zeigt, wie der Name der Bereitstellung angegeben wird, die Sie erstellen möchten.

  11. Klicken Sie auf Bereitstellen. Warten Sie, bis die Bereitstellung abgeschlossen ist, und Sie werden zur Seite mit serverlosen Endpunkten umgeleitet.

  12. Wählen Sie den Endpunkt aus, um seine Detailseite zu öffnen.

  13. Wählen Sie die Registerkarte Testen aus, um mit der Interaktion mit dem Modell zu beginnen.

  14. Die Details, die URL und die Zugriffsschlüssel des Endpunkts finden Sie unter Arbeitsbereich>Endpunkte>Serverlose Endpunkte.

Informationen zur Abrechnung für Mistral-Modelle, die als serverlose API mit tokenbasierter Abrechnung mit nutzungsbasierter Bezahlung bereitgestellt werden, finden Sie unter Überlegungen zu Kosten und Kontingenten für die Mistral-Modellfamilie, die als Dienst bereitgestellt werden.

Nutzen der Mistral-Modellfamilie als Dienst

Sie können Mistral-Modelle mithilfe der Chat-API nutzen.

  1. Wählen Sie im Arbeitsbereich die Optionen Endpunkte>Serverlose Endpunkte aus.
  2. Suchen Sie die von Ihnen erstellte Bereitstellung, und wählen Sie sie aus.
  3. Kopieren Sie die Ziel-URL und die Tokenwerte für den Schlüssel.
  4. Stellen Sie eine API-Anforderung entweder mithilfe der Azure KI Model Inference API auf der Route /chat/completions und der nativen Mistral Chat API auf /v1/chat/completions.

Weitere Informationen zur Verwendung der APIs finden Sie im Abschnitt Referenz.

Referenz für die Mistral-Modellfamilie bei der Bereitstellung als Dienst

Mistral-Modelle akzeptieren sowohl die Azure KI-Modellrückschluss-API auf der Route /chat/completions als auch die native Mistral Chat-API auf /v1/chat/completions.

Azure KI-Modellrückschluss-API

Das Azure KI-Modellrückschluss-API-Schema finden Sie im Artikel Referenz für Chat-Fertigstellungen und unter OpenAPI-Spezifikation kann vom Endpunkt selbst abgerufen werden.

Mistral Chat-API

Verwenden Sie die Methode POST, um die Anforderung an die /v1/chat/completions-Route zu senden:

Anforderung

POST /v1/chat/completions HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json

Anforderungsschema

Die Nutzlast ist eine JSON-formatierte Zeichenfolge mit den folgenden Parametern:

Schlüssel Typ Standard Beschreibung
messages string Keine Standardeinstellung. Dieser Wert muss angegeben werden. Die Nachricht oder der Verlauf von Nachrichten, die bzw. der als Prompt für das Modell fungieren soll.
stream boolean False Beim Streaming können die generierten Token immer dann als vom Server gesendete Ereignisse (nur Daten) gesendet werden, wenn sie verfügbar sind.
max_tokens integer 8192 Die maximale Anzahl von Token, die in der Vervollständigung generiert werden. Die Tokenanzahl Ihres Prompts plus max_tokens darf die Kontextlänge des Modells nicht überschreiten.
top_p float 1 Eine Alternative zur Stichprobenentnahme mit Temperatur, die sogenannte Kernstichprobenentnahme, bei dem das Modell die Ergebnisse der Token mit der Wahrscheinlichkeitsmasse top_p berücksichtigt. Daher bedeutet 0,1, dass nur die Token berücksichtigt werden, die die oberen 10 % der Wahrscheinlichkeitsmasse umfassen. Wir empfehlen im Allgemeinen, top_p oder temperature zu ändern, aber nicht beides.
temperature float 1 Die zu verwendende Temperatur für die Stichprobenentnahme zwischen 0 und 2. Je höher der Wert, desto breiter die Stichprobenentnahme für die Tokenverteilung. Null bedeutet eine „gierige“ Stichprobenentnahme. Es wird empfohlen, diesen Parameter oder top_p zu ändern, aber nicht beide.
ignore_eos boolean False Gibt an, ob das EOS-Token ignoriert und die Generierung von Token fortgesetzt werden soll, nachdem das EOS-Token generiert wurde.
safe_prompt boolean False Gibt an, ob vor allen Unterhaltungen eine Sicherheitsaufforderung eingefügt werden soll.

Das messages-Objekt weist die folgenden Felder auf:

Schlüssel type Wert
content string Der Inhalt der Nachricht. Inhalt ist für alle Nachrichten erforderlich.
role string Die Rolle des Erstellers oder der Erstellerin der Nachricht. Einer der folgenden Werte: system, user oder assistant.

Anforderungsbeispiel

Text

{
    "messages":
    [
        { 
        "role": "system", 
        "content": "You are a helpful assistant that translates English to Italian."
        },
        {
        "role": "user", 
        "content": "Translate the following sentence from English to Italian: I love programming."
        }
    ],
    "temperature": 0.8,
    "max_tokens": 512,
}

Antwortschema

Die Antwortnutzlast ist ein Wörterbuch mit den folgenden Feldern:

Schlüssel type Beschreibung
id string Eindeutiger Bezeichner für die Vervollständigung
choices array Die Liste der Vervollständigungsoptionen, die das Modell für die Eingabenachrichten generiert hat
created integer Der Unix-Zeitstempel (in Sekunden) des Zeitpunkts, zu dem die Vervollständigung erstellt wurde
model string Die für die Vervollständigung verwendete Modell-ID (model_id)
object string Der Objekttyp, der immer chat.completion ist.
usage object Nutzungsstatistiken für die Vervollständigungsanforderung

Tipp

Im Streamingmodus ist finish_reason für jeden Antwortblock immer null, mit Ausnahme des letzten, der durch die Nutzlast [DONE] beendet wird. In jedem choices-Objekt wird der Schlüssel für messages durch delta geändert.

Das choices-Objekt ist ein Wörterbuch mit den folgenden Feldern:

Schlüssel type Beschreibung
index integer Auswahlindex. Bei best_of> 1 hat der Index in diesem Array möglicherweise nicht die richtige Reihenfolge und ist u. U. nicht 0 bis n-1.
messages oder delta string Ergebnis der Chatvervollständigung im messages-Objekt. Wenn der Streamingmodus verwendet wird, wird der Schlüssel delta verwendet.
finish_reason string Der Grund, warum das Modell das Generieren von Token beendet hat:
- stop: Das Modell trifft auf einen natürlichen Beendigungspunkt oder auf eine bereitgestellte Beendigungssequenz.
- length: Die maximale Anzahl von Token wurde erreicht.
- content_filter: RAI führt die Moderation aus, und CMP erzwingt die Moderation.
- content_filter_error: Fehler während der Moderation. Es konnte keine Entscheidung über die Antwort getroffen werden.
- null: Die API-Antwort wird noch ausgeführt oder ist unvollständig.
logprobs object Die logarithmierten Wahrscheinlichkeiten der generierten Token im Ausgabetext

Das usage-Objekt ist ein Wörterbuch mit den folgenden Feldern:

Schlüssel type Wert
prompt_tokens integer Anzahl der Token im Prompt.
completion_tokens integer Die Anzahl der Token, die in der Vervollständigung generiert werden
total_tokens integer Token insgesamt

Das logprobs-Objekt ist ein Wörterbuch mit den folgenden Feldern:

Schlüssel type Wert
text_offsets array von integers Die Position oder der Index der einzelnen Token in der Vervollständigungsausgabe.
token_logprobs array von float Ausgewählte logprobs-Werte aus dem Wörterbuch im Array top_logprobs
tokens array von string Ausgewählte Token
top_logprobs array von dictionary Array des Wörterbuchs. In jedem Wörterbuch ist der Schlüssel das Token, und der Wert ist die Wahrscheinlichkeit.

Beispielantwort

Der folgende JSON-Code ist eine Beispielantwort:

{
    "id": "12345678-1234-1234-1234-abcdefghijkl",
    "object": "chat.completion",
    "created": 2012359,
    "model": "",
    "choices": [
        {
            "index": 0,
            "finish_reason": "stop",
            "message": {
                "role": "assistant",
                "content": "Sure, I\'d be happy to help! The translation of ""I love programming"" from English to Italian is:\n\n""Amo la programmazione.""\n\nHere\'s a breakdown of the translation:\n\n* ""I love"" in English becomes ""Amo"" in Italian.\n* ""programming"" in English becomes ""la programmazione"" in Italian.\n\nI hope that helps! Let me know if you have any other sentences you\'d like me to translate."
            }
        }
    ],
    "usage": {
        "prompt_tokens": 10,
        "total_tokens": 40,
        "completion_tokens": 30
    }
}

Modellrückschluss: Beispiele

Beispieltyp Beispielnotebook
CLI mit CURL- und Python-Webanforderungen webrequests.ipynb
OpenAI SDK (experimentell) openaisdk.ipynb
LangChain langchain.ipynb
Mistral AI mistralai.ipynb
LiteLLM litellm.ipynb

Kosten und Kontingente

Kosten- und Kontingentüberlegungen zur Mistral-Modellfamilie bei der Bereitstellung als Dienst

Mistral-Modelle, die als Dienst bereitgestellt werden, werden von Mistral AI über den Azure Marketplace angeboten und zur Verwendung in Azure Machine Learning Studio integriert. Sie finden Azure Marketplace-Preise bei der Bereitstellung der Modelle.

Jedes Mal, wenn ein Arbeitsbereich ein bestimmtes Modellangebot aus dem Azure Marketplace abonniert, wird eine neue Ressource erstellt, um die mit der Nutzung verbundenen Kosten nachzuverfolgen. Die gleiche Ressource wird zum Nachverfolgen der Kosten im Zusammenhang mit Rückschluss verwendet. Es stehen jedoch mehrere Verbrauchseinheiten zur Verfügung, um die einzelnen Szenarien unabhängig voneinander nachzuverfolgen.

Weitere Informationen zum Nachverfolgen von Kosten finden Sie unter Überwachen der Kosten für Modelle, die über den Azure Marketplace angeboten werden.

Das Kontingent wird pro Bereitstellung verwaltet. Jede Bereitstellung hat eine Rate von 200.000 Token pro Minute und 1.000 API-Anforderungen pro Minute. Derzeit wird jedoch eine Bereitstellung pro Modell und Arbeitsbereich beschränkt. Wenden Sie sich an den Microsoft Azure-Support, wenn die aktuellen Ratenbegrenzungen für Ihre Szenarien nicht ausreichen.

Inhaltsfilterung

Modelle, die als Dienst mit nutzungsbasierter Bezahlung bereitgestellt werden, werden durch Azure KI Inhaltssicherheit geschützt. Wenn Azure KI Inhaltssicherheit aktiviert ist, durchlaufen sowohl Prompt als auch Vervollständigung ein Ensemble von Klassifizierungsmodellen, das darauf abzielt, die Ausgabe schädlicher Inhalte zu erkennen und zu verhindern. Das System zur Inhaltsfilterung (Vorschau) erkennt bestimmte Kategorien potenziell schädlicher Inhalte sowohl in Eingabeprompts als auch in Ausgabevervollständigungen und ergreift entsprechende Maßnahmen. Erfahren Sie mehr über Azure KI Inhaltssicherheit.