Distribuera Mistral-modeller med Azure Machine Learning-studio
I den här artikeln får du lära dig hur du använder Azure Machine Learning-studio för att distribuera Mistral-serien med modeller som serverlösa API:er med tokenbaserad betalning per användning.
Mistral AI erbjuder två kategorier av modeller i Azure Machine Learning-studio. Dessa modeller är tillgängliga i modellkatalogen.
- Premiummodeller: Mistral Large (2402), Mistral Large (2407), Mistral Small och Ministral-3B.
- Öppna modeller: Mistral Nemo, Mixtral-8x7B-Instruct-v01, Mixtral-8x7B-v01, Mistral-7B-Instruct-v01 och Mistral-7B-v01.
Alla premiummodeller och Mistral Nemo (en öppen modell) kan distribueras som serverlösa API:er med betala per användning-tokenbaserad fakturering. De andra öppna modellerna kan distribueras till hanterade beräkningar i din egen Azure-prenumeration.
Du kan bläddra i Mistral-serien med modeller i modellkatalogen genom att filtrera på Mistral-samlingen.
Mistralfamilj av modeller
Mistral Large är Mistral AI:s mest avancerade storspråksmodell (LLM). Den kan användas på valfri språkbaserad uppgift tack vare dess toppmoderna resonemang och kunskapsfunktioner. Det finns två tillgängliga varianter för Mistral Large-modellversionen:
- Mistral Large (2402)
- Mistral Large (2407)
Dessutom omfattar vissa attribut för Mistral Large (2402):
- Specialiserad på RAG. Viktig information går inte förlorad mitt i långa kontextfönster (upp till 32 K-token).
- Stark i kodning. Kodgenerering, granskning och kommentarer. Stöder alla vanliga kodningsspråk.
- Flerspråkiga efter design. Bästa prestanda i klassen på franska, tyska, spanska och italienska - förutom engelska. Dussintals andra språk stöds.
- Ansvarsfull AI-kompatibel. Effektiva skyddsräcken bakade i modellen och extra säkerhetsskikt med
safe_mode
alternativet.
Och attribut för Mistral Large (2407) inkluderar:
- Flerspråkiga efter design. Stöder dussintals språk, inklusive engelska, franska, tyska, spanska och italienska.
- God kodning. Tränat på fler än 80 kodningsspråk, inklusive Python, Java, C, C++, JavaScript och Bash. Har även tränat på mer specifika språk som Swift och Fortran.
- Agentcentrerad. Har agentiska funktioner med inbyggt funktionsanrop och JSON-utdata.
- Avancerat i resonemang. Visar toppmoderna matematiska funktioner och resonemangsfunktioner.
Viktigt!
Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan ett serviceavtal och vi rekommenderar det inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade.
Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.
Distribuera Mistral-serien med modeller som ett serverlöst API
Vissa modeller i modellkatalogen kan distribueras som ett serverlöst API med betala per användning-fakturering. Den här typen av distribution ger ett sätt att använda modeller som ett API utan att vara värd för dem i din prenumeration, samtidigt som den företagssäkerhet och efterlevnad som organisationer behöver bevaras. Det här distributionsalternativet kräver inte kvot från din prenumeration.
Mistral Large (2402), Mistral Large (2407), Mistral Small och Mistral Nemo kan distribueras som ett serverlöst API med betala per användning-fakturering och erbjuds av Mistral AI via Microsoft Azure Marketplace. Mistral AI kan ändra eller uppdatera användningsvillkoren och prissättningen för dessa modeller.
Förutsättningar
En Azure-prenumeration med en giltig betalningsmetod. Kostnadsfria azure-prenumerationer eller utvärderingsprenumerationer fungerar inte. Om du inte har en Azure-prenumeration skapar du ett betalt Azure-konto för att börja.
En Azure Machine Learning-arbetsyta. Om du inte har någon arbetsyta använder du stegen i artikeln Snabbstart: Skapa arbetsyteresurser för att skapa en. Det serverlösa API-modelldistributionserbjudandet för berättigade modeller i Mistral-serien är endast tillgängligt på arbetsytor som skapats i dessa regioner:
- East US
- USA, östra 2
- USA, norra centrala
- USA, södra centrala
- USA, västra
- USA, västra 3
- Sverige, centrala
En lista över regioner som är tillgängliga för var och en av modellerna som stöder serverlösa API-slutpunktsdistributioner finns i Regiontillgänglighet för modeller i serverlösa API-slutpunkter
Rollbaserade åtkomstkontroller i Azure (Azure RBAC) används för att bevilja åtkomst till åtgärder i Azure Machine Learning. Om du vill utföra stegen i den här artikeln måste ditt användarkonto tilldelas rollen Azure AI Developer i resursgruppen. Mer information om behörigheter finns i Hantera åtkomst till en Azure Machine Learning-arbetsyta.
Skapa en ny distribution
Följande steg visar distributionen av Mistral Large (2402), men du kan använda samma steg för att distribuera Mistral Nemo eller någon av Premium Mistral-modellerna genom att ersätta modellnamnet.
Så här skapar du en distribution:
Gå till Azure Machine Learning-studio.
Välj den arbetsyta där du vill distribuera din modell. Om du vill använda det serverlösa API-modelldistributionserbjudandet måste din arbetsyta tillhöra någon av de regioner som anges i förhandskraven.
Välj den modell som du vill distribuera, till exempel Modellen Mistral Large (2402) från modellkatalogen.
Du kan också initiera distributionen genom att gå till din arbetsyta och välja Slutpunkter>Serverlösa slutpunkter>Skapa.
På modellens översiktssida i modellkatalogen väljer du Distribuera för att öppna ett serverlöst API-distributionsfönster för modellen.
Markera kryssrutan för att bekräfta Microsofts inköpsprincip.
I distributionsguiden väljer du länken till Azure Marketplace-villkor för att lära dig mer om användningsvillkoren.
Du kan också välja fliken Priser och villkor för att lära dig mer om priser för den valda modellen.
Om det här är första gången du distribuerar modellen på arbetsytan måste du prenumerera på din arbetsyta för det specifika erbjudandet (till exempel Mistral Large (2402)). Det här steget kräver att ditt konto har behörigheter för Azure AI Developer-rollen för resursgruppen enligt kraven. Varje arbetsyta har en egen prenumeration på det specifika Azure Marketplace-erbjudandet, vilket gör att du kan styra och övervaka utgifter. Välj Prenumerera och Distribuera. För närvarande kan du bara ha en distribution för varje modell på en arbetsyta.
När du prenumererar på arbetsytan för det specifika Azure Marketplace-erbjudandet behöver efterföljande distributioner av samma erbjudande på samma arbetsyta inte prenumerera igen. Om det här scenariot gäller för dig visas alternativet Fortsätt att distribuera för att välja.
Ge distributionen ett namn. Det här namnet blir en del av URL:en för distributions-API:et. Den här URL:en måste vara unik i varje Azure-region.
Välj distribuera. Vänta tills distributionen är klar och du omdirigeras till sidan serverlösa slutpunkter.
Välj slutpunkten för att öppna sidan Information.
Välj fliken Test för att börja interagera med modellen.
Du kan alltid hitta slutpunktens information, URL och åtkomstnycklar genom att navigera till Serverlösa slutpunkter för arbetsyteslutpunkter>>.
Mer information om fakturering för Mistral-modeller som distribuerats som ett serverlöst API med tokenbaserad betalning per användning finns i Kostnads- och kvotöverväganden för Mistral-serien med modeller som distribueras som en tjänst.
Använda mistralfamiljen av modeller som en tjänst
Du kan använda Mistral-modeller med hjälp av chatt-API:et.
- På arbetsytan väljer du Slutpunkter>Serverlösa slutpunkter.
- Leta upp och välj den distribution som du skapade.
- Kopiera mål-URL:en och nyckeltokensvärden.
- Gör en API-begäran med hjälp av antingen Azure AI Model Inference-API :et på vägen
/chat/completions
och det interna Mistral Chat-API: et på/v1/chat/completions
.
Mer information om hur du använder API:erna finns i referensavsnittet.
Referens för Mistral-serien med modeller som distribuerats som en tjänst
Mistral-modeller accepterar både Azure AI Model Inference-API :et på vägen /chat/completions
och det ursprungliga Mistral Chat-API:et på /v1/chat/completions
.
API:et för Azure AI-modellslutsatsdragning
Schemat API för Azure AI Model Inference finns i artikeln referens för Chattslutföranden och en OpenAPI-specifikation kan hämtas från själva slutpunkten.
Mistral Chat API
Använd metoden POST
för att skicka begäran till /v1/chat/completions
vägen:
Begär
POST /v1/chat/completions HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json
Schema för begäran
Payload är en JSON-formaterad sträng som innehåller följande parametrar:
Nyckel | Typ | Standardvärde | beskrivning |
---|---|---|---|
messages |
string |
Ingen standard. Det här värdet måste anges. | Meddelandet eller historiken för meddelanden som ska användas för att fråga modellen. |
stream |
boolean |
False |
Direktuppspelning gör att de genererade token kan skickas som databaserade serverutskickade händelser när de blir tillgängliga. |
max_tokens |
integer |
8192 |
Det maximala antalet token som ska genereras i slutförandet. Tokenantalet för din fråga plus max_tokens får inte överskrida modellens kontextlängd. |
top_p |
float |
1 |
Ett alternativ till sampling med temperatur, som kallas kärnsampling, där modellen tar hänsyn till resultatet av tokens med top_p sannolikhetsmassa. Så 0,1 innebär att endast token som består av den översta 10 % sannolikhetsmassan beaktas. Vi rekommenderar vanligtvis att du top_p ändrar eller temperature , men inte båda. |
temperature |
float |
1 |
Provtagningstemperaturen som ska användas, mellan 0 och 2. Högre värden innebär att modellexemplen i större utsträckning distribuerar token. Noll betyder girig sampling. Vi rekommenderar att du ändrar den här parametern eller top_p , men inte båda. |
ignore_eos |
boolean |
False |
Om du vill ignorera EOS-token och fortsätta generera token när EOS-token har genererats. |
safe_prompt |
boolean |
False |
Om du vill mata in en säkerhetsfråga före alla konversationer. |
Objektet messages
har följande fält:
Nyckel | Type | Värde |
---|---|---|
content |
string |
Innehållet i meddelandet. Innehåll krävs för alla meddelanden. |
role |
string |
Rollen som meddelandets författare. En av system , user eller assistant . |
Exempel på begäran
Brödtext
{
"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,
}
Svarsschema
Svarsnyttolasten är en ordlista med följande fält.
Nyckel | Typ | Beskrivning |
---|---|---|
id |
string |
En unik identifierare för slutförandet. |
choices |
array |
Listan över slutförandeval som modellen genererade för indatameddelandena. |
created |
integer |
Unix-tidsstämpeln (i sekunder) för när slutförandet skapades. |
model |
string |
Den model_id som används för slutförande. |
object |
string |
Objekttypen, som alltid chat.completion är . |
usage |
object |
Användningsstatistik för slutförandebegäran. |
Dricks
I strömningsläget är för varje segment av svar finish_reason
alltid null
, förutom från den sista som avslutas med en nyttolast [DONE]
. I varje choices
objekt ändras nyckeln för messages
av delta
.
Objektet choices
är en ordlista med följande fält.
Nyckel | Typ | Beskrivning |
---|---|---|
index |
integer |
Valindex. När best_of > 1 kanske indexet i den här matrisen inte är i ordning och kanske inte är 0 till n-1 . |
messages eller delta |
string |
Chattens slutförande resulterar i messages objekt. När strömningsläget används delta används nyckeln. |
finish_reason |
string |
Anledningen till att modellen slutade generera token: - stop : modellen träffade en naturlig stopppunkt eller en angivet stoppsekvens. - length : om maximalt antal token har nåtts. - content_filter : När RAI modereras och CMP tvingar moderering - content_filter_error : ett fel under modereringen och kunde inte fatta beslut om svaret - null : API-svaret pågår fortfarande eller är ofullständigt. |
logprobs |
object |
Loggannolikorna för de genererade token i utdatatexten. |
Objektet usage
är en ordlista med följande fält.
Nyckel | Type | Värde |
---|---|---|
prompt_tokens |
integer |
Antal token i prompten. |
completion_tokens |
integer |
Antal token som genererats i slutförandet. |
total_tokens |
integer |
Totalt antal token. |
Objektet logprobs
är en ordlista med följande fält:
Nyckel | Type | Värde |
---|---|---|
text_offsets |
array av integers |
Positionen eller indexet för varje token i slutförandeutdata. |
token_logprobs |
array av float |
Markerad logprobs från ordlistan i top_logprobs matrisen. |
tokens |
array av string |
Valda token. |
top_logprobs |
array av dictionary |
Matris med ordlista. I varje ordlista är nyckeln token och värdet är prob. |
Svarsexempel
Följande JSON är ett exempelsvar:
{
"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
}
}
Fler slutsatsdragningsexempel
Exempeltyp | Exempelnotebook |
---|---|
CLI med curl- och Python-webbbegäranden | webrequests.ipynb |
OpenAI SDK (experimentell) | openaisdk.ipynb |
LangChain | langchain.ipynb |
Mistral AI | mistralai.ipynb |
LiteLLM | litellm.ipynb |
Kostnad och kvoter
Kostnads- och kvotöverväganden för Mistral-serien med modeller som distribueras som en tjänst
Mistral-modeller som distribueras som en tjänst erbjuds av Mistral AI via Azure Marketplace och integreras med Azure Machine Learning-studio för användning. Du hittar priser för Azure Marketplace när du distribuerar modellerna.
Varje gång en arbetsyta prenumererar på ett visst modellerbjudande från Azure Marketplace skapas en ny resurs för att spåra de kostnader som är kopplade till förbrukningen. Samma resurs används för att spåra kostnader som är associerade med slutsatsdragning. Flera mätare är dock tillgängliga för att spåra varje scenario oberoende av varandra.
Mer information om hur du spårar kostnader finns i Övervaka kostnader för modeller som erbjuds via Azure Marketplace.
Kvot hanteras per distribution. Varje distribution har en hastighetsgräns på 200 000 token per minut och 1 000 API-begäranden per minut. För närvarande begränsar vi dock en distribution per modell per arbetsyta. Kontakta Microsoft Azure Support om de aktuella hastighetsgränserna inte räcker för dina scenarier.
Innehållsfiltrering
Modeller som distribueras som en tjänst med betala per användning skyddas av Azure AI-innehållssäkerhet. Med Azure AI-innehållssäkerhet aktiverat passerar både prompten och slutförandet genom en uppsättning klassificeringsmodeller som syftar till att identifiera och förhindra utdata från skadligt innehåll. Systemet för innehållsfiltrering (förhandsversion) identifierar och vidtar åtgärder för specifika kategorier av potentiellt skadligt innehåll i både inkommande prompter och slutföranden av utdata. Läs mer om Azure AI Content Safety.