Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne
Elementy oznaczone jako (wersja zapoznawcza) w tym artykule są aktualnie dostępne w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest udostępniana bez umowy dotyczącej poziomu usług i nie zalecamy korzystania z niej w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą nie być obsługiwane lub mogą mieć ograniczone możliwości. Aby uzyskać więcej informacji, zobacz Warunki dodatkowe korzystania z testowych wersji Microsoft Azure.
W tym artykule poznasz modele rozmów Mistral-7B i Mixtral oraz sposób ich używania. Mistral AI oferuje dwie kategorie modeli, a mianowicie:
- Modele Premium: Obejmują one modele Mistral Large, Mistral Small, Mistral-OCR-2503, Mistral Medium 3 (25.05) i Ministral 3B i są dostępne jako bezserwerowy interfejs API z rozliczaniem według rzeczywistego użycia.
- Otwarte modele: należą do nich Codestral i Mistral Nemo (dostępne jako wdrożenia bezserwerowego interfejsu API) oraz Mixtral-8x7B-Instruct-v01, Mixtral-8x7B-v01, Mistral-7B-Instruct-v01 i Mistral-7B-v01 (które są dostępne do pobrania i uruchomienia w samodzielnie zarządzanych punktach końcowych).
Ważne
Modele, które są w wersji zapoznawczej, są oznaczone jako wersja zapoznawcza na kartach modeli w wykazie modeli.
Modele rozmów Mistral-7B i Mixtral
Modele rozmów Mistral-7B i Mixtral obejmują następujące modele:
Mistral-7B-Poinstruuj duży model językowy (LLM) jest instrukcją, dostrojoną wersję Mistral-7B, model transformatora z następującymi opcjami architektury:
- Uwagę grupowanej kwerendy
- Uwagę okna przesuwanego
- Tokenizator BPE typu byte-fallback
Są dostępne następujące modele:
Wskazówka
Ponadto program MistralAI obsługuje korzystanie z dostosowanego interfejsu API do użycia z określonymi funkcjami modelu. Aby użyć interfejsu API specyficznego dla dostawcy modelu, zapoznaj się z dokumentacją programu MistralAI lub zapoznaj się z sekcją przykłady wnioskowania, aby zapoznać się z przykładami kodu.
Wymagania wstępne
Aby używać modeli rozmów Mistral-7B i Mixtral z usługą Azure AI Foundry, potrzebne są następujące wymagania wstępne:
Wdrożenie modelu
Wdrażanie w zarządzanym samodzielnie zarządzanym środowisku obliczeniowym
Modele czatów Mistral-7B i Mixtral można wdrożyć w naszym rozwiązaniu do wnioskowania zarządzanego przez siebie, co pozwala dostosować i kontrolować wszystkie szczegóły dotyczące sposobu obsługi modelu.
W przypadku wdrożenia w zarządzanym samodzielnie zarządzanym środowisku obliczeniowym musisz mieć wystarczający limit przydziału w ramach subskrypcji. Jeśli nie masz wystarczającego limitu przydziału, możesz użyć naszego tymczasowego dostępu do limitu przydziału, wybierając opcję Chcę użyć udostępnionego limitu przydziału i potwierdzam, że ten punkt końcowy zostanie usunięty w ciągu 168 godzin.
Zainstalowany pakiet wnioskowania
Przewidywania z tego modelu można używać przy użyciu azure-ai-inference
pakietu w języku Python. Aby zainstalować ten pakiet, potrzebne są następujące wymagania wstępne:
- Zainstalowano środowisko Python w wersji 3.8 lub nowszej, w tym narzędzie.
- Adres URL punktu końcowego. Aby utworzyć bibliotekę klienta, należy przekazać adres URL punktu końcowego. Adres URL punktu końcowego ma postać
https://your-host-name.your-azure-region.inference.ai.azure.com
, gdzieyour-host-name
jest unikatową nazwą hosta wdrożenia modelu iyour-azure-region
regionem świadczenia usługi Azure, w którym wdrożono model (na przykład eastus2). - W zależności od preferencji wdrażania modelu i uwierzytelniania potrzebny jest klucz do uwierzytelniania względem usługi lub poświadczeń identyfikatora Entra firmy Microsoft. Klucz jest ciągiem 32-znakowym.
Po spełnieniu tych wymagań wstępnych zainstaluj pakiet wnioskowania usługi Azure AI za pomocą następującego polecenia:
pip install azure-ai-inference
Dowiedz się więcej na temat pakietu wnioskowania i dokumentacji dotyczącej wnioskowania na platformie Azure.
Praca z ukończeniami czatu
W tej sekcji użyjesz interfejsu API wnioskowania modelu AI platformy Azure z modelem uzupełniania czatów na potrzeby czatu.
Wskazówka
Interfejs API wnioskowania modelu umożliwia komunikację z większością modeli wdrożonych w portalu Azure AI Foundry przy użyciu tego samego kodu i struktury, w tym modeli czatów Mistral-7B i Mixtral.
Tworzenie klienta do korzystania z modelu
Najpierw utwórz klienta, aby korzystać z modelu. Następujący kod używa adresu URL punktu końcowego i klucza, które są przechowywane w zmiennych środowiskowych.
import os
from azure.ai.inference import ChatCompletionsClient
from azure.core.credentials import AzureKeyCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=AzureKeyCredential(os.environ["AZURE_INFERENCE_CREDENTIAL"]),
)
Podczas wdrażania modelu w własnym punkcie końcowym online z obsługą identyfikatora Entra firmy Microsoft możesz użyć następującego fragmentu kodu, aby utworzyć klienta.
import os
from azure.ai.inference import ChatCompletionsClient
from azure.identity import DefaultAzureCredential
client = ChatCompletionsClient(
endpoint=os.environ["AZURE_INFERENCE_ENDPOINT"],
credential=DefaultAzureCredential(),
)
Uzyskiwanie możliwości modelu
Trasa /info
zwraca informacje o modelu wdrożonym w punkcie końcowym. Zwróć informacje o modelu, wywołując następującą metodę:
model_info = client.get_model_info()
Odpowiedź jest następująca:
print("Model name:", model_info.model_name)
print("Model type:", model_info.model_type)
print("Model provider name:", model_info.model_provider_name)
Model name: mistralai-Mistral-7B-Instruct-v01
Model type: chat-completions
Model provider name: MistralAI
Tworzenie żądania ukończenia czatu
W poniższym przykładzie pokazano, jak utworzyć podstawowe żądanie ukończenia czatu do modelu.
from azure.ai.inference.models import SystemMessage, UserMessage
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
)
Uwaga / Notatka
mistralai-Mistral-7B-Instruct-v01, mistralai-Mistral-7B-Instruct-v02 i mistralai-Mixtral-8x22B-Instruct-v0-1 nie obsługują komunikatów systemowych (role="system"
). W przypadku korzystania z interfejsu API wnioskowania modelu komunikaty systemowe są tłumaczone na komunikaty użytkowników, co jest najbliższą dostępną funkcją. To tłumaczenie jest oferowane dla wygody, ale ważne jest, aby sprawdzić, czy model postępuje zgodnie z instrukcjami zawartymi w komunikacie systemowym z odpowiednim poziomem pewności.
Odpowiedź jest następująca, gdzie można zobaczyć statystyki wykorzystania modelu.
print("Response:", response.choices[0].message.content)
print("Model:", response.model)
print("Usage:")
print("\tPrompt tokens:", response.usage.prompt_tokens)
print("\tTotal tokens:", response.usage.total_tokens)
print("\tCompletion tokens:", response.usage.completion_tokens)
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: mistralai-Mistral-7B-Instruct-v01
Usage:
Prompt tokens: 19
Total tokens: 91
Completion tokens: 72
Sprawdź sekcję usage
w odpowiedzi, aby zobaczyć liczbę tokenów używanych dla monitu, łączną liczbę wygenerowanych tokenów oraz liczbę tokenów używanych do ukończenia.
Oglądaj treści na żywo
Domyślnie interfejs API uzupełniania zwraca całą wygenerowaną zawartość w pojedynczej odpowiedzi. Jeśli generujesz długie uzupełnienia, oczekiwanie na odpowiedź może potrwać wiele sekund.
Możesz przesyłać strumieniowo zawartość, aby uzyskać ją w miarę jej generowania. Zawartość strumieniowa umożliwia rozpoczęcie przetwarzania ukończenia w miarę dostępności zawartości. Ten tryb zwraca obiekt, który przesyła strumieniowo odpowiedź jako zdarzenia wysyłane przez serwer (tylko dane). Wyodrębnij fragmenty z pola delta, a nie z pola komunikatu.
result = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
temperature=0,
top_p=1,
max_tokens=2048,
stream=True,
)
Aby strumieniowo przesyłać uzupełnienia, ustaw stream=True
podczas wywoływania modelu.
Aby zwizualizować dane wyjściowe, zdefiniuj funkcję pomocnika, aby wydrukować strumień.
def print_stream(result):
"""
Prints the chat completion with streaming.
"""
import time
for update in result:
if update.choices:
print(update.choices[0].delta.content, end="")
Możesz zwizualizować sposób generowania zawartości przez przesyłanie strumieniowe:
print_stream(result)
Poznaj więcej parametrów obsługiwanych przez klienta wnioskowania
Zapoznaj się z innymi parametrami, które można określić w kliencie wnioskowania. Aby uzyskać pełną listę wszystkich obsługiwanych parametrów i odpowiedniej dokumentacji, zobacz Dokumentację interfejsu API wnioskowania modelu.
from azure.ai.inference.models import ChatCompletionsResponseFormatText
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
presence_penalty=0.1,
frequency_penalty=0.8,
max_tokens=2048,
stop=["<|endoftext|>"],
temperature=0,
top_p=1,
response_format={ "type": ChatCompletionsResponseFormatText() },
)
Ostrzeżenie
Modele mistralne nie obsługują formatowania danych wyjściowych JSON (response_format = { "type": "json_object" }
). Zawsze możesz monitować model o wygenerowanie danych wyjściowych JSON. Jednak takie dane wyjściowe nie mają gwarancji, że są prawidłowe dane JSON.
Jeśli chcesz przekazać parametr, który nie znajduje się na liście obsługiwanych parametrów, możesz przekazać go do modelu bazowego przy użyciu dodatkowych parametrów. Zobacz Przekazywanie dodatkowych parametrów do modelu.
Przekazywanie dodatkowych parametrów do modelu
Interfejs API wnioskowania modelu umożliwia przekazywanie dodatkowych parametrów do modelu. Poniższy przykład kodu pokazuje, jak przekazać dodatkowy parametr logprobs
do modelu.
Przed przekazaniem dodatkowych parametrów do interfejsu API wnioskowania modelu upewnij się, że model obsługuje te dodatkowe parametry. Po wysłaniu żądania do modelu bazowego nagłówek extra-parameters
jest przekazywany do modelu z wartością pass-through
. Ta wartość informuje punkt końcowy o przekazaniu dodatkowych parametrów do modelu. Użycie dodatkowych parametrów w modelu nie gwarantuje, że model faktycznie je obsłuży. Przeczytaj dokumentację modelu, aby dowiedzieć się, które dodatkowe parametry są obsługiwane.
response = client.complete(
messages=[
SystemMessage(content="You are a helpful assistant."),
UserMessage(content="How many languages are in the world?"),
],
model_extras={
"logprobs": True
}
)
Następujące dodatkowe parametry można przekazać do modeli rozmów Mistral-7B i Mixtral:
Nazwa | Opis | Typ |
---|---|---|
logit_bias |
Akceptuje obiekt JSON mapujący tokeny (określone przez ich identyfikator tokenu w tokenizatorze) na skojarzoną wartość stronniczą z zakresu od -100 do 100. Matematycznie stronniczy jest dodawany do logitów wygenerowanych przez model przed próbkowaniem. Dokładny efekt różni się w zależności od modelu, ale wartości z zakresu od -1 do 1 powinny zmniejszyć lub zwiększyć prawdopodobieństwo wyboru; wartości takie jak -100 lub 100 powinny spowodować zakaz lub wyłączny wybór odpowiedniego tokenu. | float |
logprobs |
Czy zwracać logarytmiczne prawdopodobieństwa dla tokenów wyjściowych, czy nie. Jeśli true, zwraca logarytmiczne prawdopodobieństwa każdego tokenu wyjściowego zwróconego w content elementu message . |
int |
top_logprobs |
Liczba całkowita z zakresu od 0 do 20 określająca liczbę najbardziej prawdopodobnych tokenów do zwrócenia na każdej pozycji, z których każdy ma skojarzone logarytmiczne prawdopodobieństwo.
logprobs musi być ustawione na true , jeśli ten parametr jest używany. |
float |
n |
Ile opcji ukończenia czatu ma być generowanych dla każdej wiadomości wejściowej. Opłaty są naliczane na podstawie liczby wygenerowanych tokenów we wszystkich wyborach. | int |
Modele rozmów Mistral-7B i Mixtral
Modele rozmów Mistral-7B i Mixtral obejmują następujące modele:
Mistral-7B-Poinstruuj duży model językowy (LLM) jest instrukcją, dostrojoną wersję Mistral-7B, model transformatora z następującymi opcjami architektury:
- Uwagę grupowanej kwerendy
- Uwagę okna przesuwanego
- Tokenizator BPE typu byte-fallback
Są dostępne następujące modele:
Wskazówka
Ponadto program MistralAI obsługuje korzystanie z dostosowanego interfejsu API do użycia z określonymi funkcjami modelu. Aby użyć interfejsu API specyficznego dla dostawcy modelu, zapoznaj się z dokumentacją programu MistralAI lub zapoznaj się z sekcją przykłady wnioskowania, aby zapoznać się z przykładami kodu.
Wymagania wstępne
Aby używać modeli rozmów Mistral-7B i Mixtral z usługą Azure AI Foundry, potrzebne są następujące wymagania wstępne:
Wdrożenie modelu
Wdrażanie w zarządzanym samodzielnie zarządzanym środowisku obliczeniowym
Modele czatów Mistral-7B i Mixtral można wdrożyć w naszym rozwiązaniu do wnioskowania zarządzanego przez siebie, co pozwala dostosować i kontrolować wszystkie szczegóły dotyczące sposobu obsługi modelu.
W przypadku wdrożenia w zarządzanym samodzielnie zarządzanym środowisku obliczeniowym musisz mieć wystarczający limit przydziału w ramach subskrypcji. Jeśli nie masz wystarczającego limitu przydziału, możesz użyć naszego tymczasowego dostępu do limitu przydziału, wybierając opcję Chcę użyć udostępnionego limitu przydziału i potwierdzam, że ten punkt końcowy zostanie usunięty w ciągu 168 godzin.
Zainstalowany pakiet wnioskowania
Przewidywania z tego modelu można używać przy użyciu @azure-rest/ai-inference
pakietu z pliku npm
. Aby zainstalować ten pakiet, potrzebne są następujące wymagania wstępne:
- Wersje LTS programu z programem
Node.js
npm
. - Adres URL punktu końcowego. Aby utworzyć bibliotekę klienta, należy przekazać adres URL punktu końcowego. Adres URL punktu końcowego ma postać
https://your-host-name.your-azure-region.inference.ai.azure.com
, gdzieyour-host-name
jest unikatową nazwą hosta wdrożenia modelu iyour-azure-region
regionem świadczenia usługi Azure, w którym wdrożono model (na przykład eastus2). - W zależności od preferencji wdrażania modelu i uwierzytelniania potrzebny jest klucz do uwierzytelniania względem usługi lub poświadczeń identyfikatora Entra firmy Microsoft. Klucz jest ciągiem 32-znakowym.
Po spełnieniu tych wymagań wstępnych zainstaluj bibliotekę wnioskowania platformy Azure dla języka JavaScript za pomocą następującego polecenia:
npm install @azure-rest/ai-inference
Praca z ukończeniami czatu
W tej sekcji użyjesz interfejsu API wnioskowania modelu AI platformy Azure z modelem uzupełniania czatów na potrzeby czatu.
Wskazówka
Interfejs API wnioskowania modelu umożliwia komunikację z większością modeli wdrożonych w portalu Azure AI Foundry przy użyciu tego samego kodu i struktury, w tym modeli czatów Mistral-7B i Mixtral.
Tworzenie klienta do korzystania z modelu
Najpierw utwórz klienta, aby korzystać z modelu. Następujący kod używa adresu URL punktu końcowego i klucza, które są przechowywane w zmiennych środowiskowych.
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { AzureKeyCredential } from "@azure/core-auth";
const client = new ModelClient(
process.env.AZURE_INFERENCE_ENDPOINT,
new AzureKeyCredential(process.env.AZURE_INFERENCE_CREDENTIAL)
);
Podczas wdrażania modelu w własnym punkcie końcowym online z obsługą identyfikatora Entra firmy Microsoft możesz użyć następującego fragmentu kodu, aby utworzyć klienta.
import ModelClient from "@azure-rest/ai-inference";
import { isUnexpected } from "@azure-rest/ai-inference";
import { DefaultAzureCredential } from "@azure/identity";
const client = new ModelClient(
process.env.AZURE_INFERENCE_ENDPOINT,
new DefaultAzureCredential()
);
Uzyskiwanie możliwości modelu
Trasa /info
zwraca informacje o modelu wdrożonym w punkcie końcowym. Zwróć informacje o modelu, wywołując następującą metodę:
var model_info = await client.path("/info").get()
Odpowiedź jest następująca:
console.log("Model name: ", model_info.body.model_name)
console.log("Model type: ", model_info.body.model_type)
console.log("Model provider name: ", model_info.body.model_provider_name)
Model name: mistralai-Mistral-7B-Instruct-v01
Model type: chat-completions
Model provider name: MistralAI
Tworzenie żądania ukończenia czatu
W poniższym przykładzie pokazano, jak utworzyć podstawowe żądanie ukończenia czatu do modelu.
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "How many languages are in the world?" },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
}
});
Uwaga / Notatka
mistralai-Mistral-7B-Instruct-v01, mistralai-Mistral-7B-Instruct-v02 i mistralai-Mixtral-8x22B-Instruct-v0-1 nie obsługują komunikatów systemowych (role="system"
). W przypadku korzystania z interfejsu API wnioskowania modelu komunikaty systemowe są tłumaczone na komunikaty użytkowników, co jest najbliższą dostępną funkcją. To tłumaczenie jest oferowane dla wygody, ale ważne jest, aby sprawdzić, czy model postępuje zgodnie z instrukcjami zawartymi w komunikacie systemowym z odpowiednim poziomem pewności.
Odpowiedź jest następująca, gdzie można zobaczyć statystyki wykorzystania modelu.
if (isUnexpected(response)) {
throw response.body.error;
}
console.log("Response: ", response.body.choices[0].message.content);
console.log("Model: ", response.body.model);
console.log("Usage:");
console.log("\tPrompt tokens:", response.body.usage.prompt_tokens);
console.log("\tTotal tokens:", response.body.usage.total_tokens);
console.log("\tCompletion tokens:", response.body.usage.completion_tokens);
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: mistralai-Mistral-7B-Instruct-v01
Usage:
Prompt tokens: 19
Total tokens: 91
Completion tokens: 72
Sprawdź sekcję usage
w odpowiedzi, aby zobaczyć liczbę tokenów używanych dla monitu, łączną liczbę wygenerowanych tokenów oraz liczbę tokenów używanych do ukończenia.
Oglądaj treści na żywo
Domyślnie interfejs API uzupełniania zwraca całą wygenerowaną zawartość w pojedynczej odpowiedzi. Jeśli generujesz długie uzupełnienia, oczekiwanie na odpowiedź może potrwać wiele sekund.
Możesz przesyłać strumieniowo zawartość, aby uzyskać ją w miarę jej generowania. Zawartość strumieniowa umożliwia rozpoczęcie przetwarzania ukończenia w miarę dostępności zawartości. Ten tryb zwraca obiekt, który przesyła strumieniowo odpowiedź jako zdarzenia wysyłane przez serwer (tylko dane). Wyodrębnij fragmenty z pola delta, a nie z pola komunikatu.
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "How many languages are in the world?" },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
}
}).asNodeStream();
Aby przesyłać uzupełnienia strumieniowo, użyj .asNodeStream()
przy wywoływaniu modelu.
Możesz zwizualizować sposób generowania zawartości przez przesyłanie strumieniowe:
var stream = response.body;
if (!stream) {
stream.destroy();
throw new Error(`Failed to get chat completions with status: ${response.status}`);
}
if (response.status !== "200") {
throw new Error(`Failed to get chat completions: ${response.body.error}`);
}
var sses = createSseStream(stream);
for await (const event of sses) {
if (event.data === "[DONE]") {
return;
}
for (const choice of (JSON.parse(event.data)).choices) {
console.log(choice.delta?.content ?? "");
}
}
Poznaj więcej parametrów obsługiwanych przez klienta wnioskowania
Zapoznaj się z innymi parametrami, które można określić w kliencie wnioskowania. Aby uzyskać pełną listę wszystkich obsługiwanych parametrów i odpowiedniej dokumentacji, zobacz Dokumentację interfejsu API wnioskowania modelu.
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "How many languages are in the world?" },
];
var response = await client.path("/chat/completions").post({
body: {
messages: messages,
presence_penalty: "0.1",
frequency_penalty: "0.8",
max_tokens: 2048,
stop: ["<|endoftext|>"],
temperature: 0,
top_p: 1,
response_format: { type: "text" },
}
});
Ostrzeżenie
Modele mistralne nie obsługują formatowania danych wyjściowych JSON (response_format = { "type": "json_object" }
). Zawsze możesz monitować model o wygenerowanie danych wyjściowych JSON. Jednak takie dane wyjściowe nie mają gwarancji, że są prawidłowe dane JSON.
Jeśli chcesz przekazać parametr, który nie znajduje się na liście obsługiwanych parametrów, możesz przekazać go do modelu bazowego przy użyciu dodatkowych parametrów. Zobacz Przekazywanie dodatkowych parametrów do modelu.
Przekazywanie dodatkowych parametrów do modelu
Interfejs API wnioskowania modelu umożliwia przekazywanie dodatkowych parametrów do modelu. Poniższy przykład kodu pokazuje, jak przekazać dodatkowy parametr logprobs
do modelu.
Przed przekazaniem dodatkowych parametrów do interfejsu API wnioskowania modelu upewnij się, że model obsługuje te dodatkowe parametry. Po wysłaniu żądania do modelu bazowego nagłówek extra-parameters
jest przekazywany do modelu z wartością pass-through
. Ta wartość informuje punkt końcowy o przekazaniu dodatkowych parametrów do modelu. Użycie dodatkowych parametrów w modelu nie gwarantuje, że model faktycznie je obsłuży. Przeczytaj dokumentację modelu, aby dowiedzieć się, które dodatkowe parametry są obsługiwane.
var messages = [
{ role: "system", content: "You are a helpful assistant" },
{ role: "user", content: "How many languages are in the world?" },
];
var response = await client.path("/chat/completions").post({
headers: {
"extra-params": "pass-through"
},
body: {
messages: messages,
logprobs: true
}
});
Następujące dodatkowe parametry można przekazać do modeli rozmów Mistral-7B i Mixtral:
Nazwa | Opis | Typ |
---|---|---|
logit_bias |
Akceptuje obiekt JSON mapujący tokeny (określone przez ich identyfikator tokenu w tokenizatorze) na skojarzoną wartość stronniczą z zakresu od -100 do 100. Matematycznie stronniczy jest dodawany do logitów wygenerowanych przez model przed próbkowaniem. Dokładny efekt różni się w zależności od modelu, ale wartości z zakresu od -1 do 1 powinny zmniejszyć lub zwiększyć prawdopodobieństwo wyboru; wartości takie jak -100 lub 100 powinny spowodować zakaz lub wyłączny wybór odpowiedniego tokenu. | float |
logprobs |
Czy zwracać logarytmiczne prawdopodobieństwa dla tokenów wyjściowych, czy nie. Jeśli true, zwraca logarytmiczne prawdopodobieństwa każdego tokenu wyjściowego zwróconego w content elementu message . |
int |
top_logprobs |
Liczba całkowita z zakresu od 0 do 20 określająca liczbę najbardziej prawdopodobnych tokenów do zwrócenia na każdej pozycji, z których każdy ma skojarzone logarytmiczne prawdopodobieństwo.
logprobs musi być ustawione na true , jeśli ten parametr jest używany. |
float |
n |
Ile opcji ukończenia czatu ma być generowanych dla każdej wiadomości wejściowej. Opłaty są naliczane na podstawie liczby wygenerowanych tokenów we wszystkich wyborach. | int |
Modele rozmów Mistral-7B i Mixtral
Modele rozmów Mistral-7B i Mixtral obejmują następujące modele:
Mistral-7B-Poinstruuj duży model językowy (LLM) jest instrukcją, dostrojoną wersję Mistral-7B, model transformatora z następującymi opcjami architektury:
- Uwagę grupowanej kwerendy
- Uwagę okna przesuwanego
- Tokenizator BPE typu byte-fallback
Są dostępne następujące modele:
Wskazówka
Ponadto program MistralAI obsługuje korzystanie z dostosowanego interfejsu API do użycia z określonymi funkcjami modelu. Aby użyć interfejsu API specyficznego dla dostawcy modelu, zapoznaj się z dokumentacją programu MistralAI lub zapoznaj się z sekcją przykłady wnioskowania, aby zapoznać się z przykładami kodu.
Wymagania wstępne
Aby używać modeli rozmów Mistral-7B i Mixtral z usługą Azure AI Foundry, potrzebne są następujące wymagania wstępne:
Wdrożenie modelu
Wdrażanie w zarządzanym samodzielnie zarządzanym środowisku obliczeniowym
Modele czatów Mistral-7B i Mixtral można wdrożyć w naszym rozwiązaniu do wnioskowania zarządzanego przez siebie, co pozwala dostosować i kontrolować wszystkie szczegóły dotyczące sposobu obsługi modelu.
W przypadku wdrożenia w zarządzanym samodzielnie zarządzanym środowisku obliczeniowym musisz mieć wystarczający limit przydziału w ramach subskrypcji. Jeśli nie masz wystarczającego limitu przydziału, możesz użyć naszego tymczasowego dostępu do limitu przydziału, wybierając opcję Chcę użyć udostępnionego limitu przydziału i potwierdzam, że ten punkt końcowy zostanie usunięty w ciągu 168 godzin.
Zainstalowany pakiet wnioskowania
Przewidywania z tego modelu można używać przy użyciu Azure.AI.Inference
pakietu z pakietu NuGet. Aby zainstalować ten pakiet, potrzebne są następujące wymagania wstępne:
- Adres URL punktu końcowego. Aby utworzyć bibliotekę klienta, należy przekazać adres URL punktu końcowego. Adres URL punktu końcowego ma postać
https://your-host-name.your-azure-region.inference.ai.azure.com
, gdzieyour-host-name
jest unikatową nazwą hosta wdrożenia modelu iyour-azure-region
regionem świadczenia usługi Azure, w którym wdrożono model (na przykład eastus2). - W zależności od preferencji wdrażania modelu i uwierzytelniania potrzebny jest klucz do uwierzytelniania względem usługi lub poświadczeń identyfikatora Entra firmy Microsoft. Klucz jest ciągiem 32-znakowym.
Po spełnieniu tych wymagań wstępnych zainstaluj bibliotekę wnioskowania usługi Azure AI przy użyciu następującego polecenia:
dotnet add package Azure.AI.Inference --prerelease
Możesz również uwierzytelnić się za pomocą identyfikatora Entra firmy Microsoft (dawniej Azure Active Directory). Aby użyć dostawców poświadczeń dostarczanych z zestawem Azure SDK, zainstaluj Azure.Identity
pakiet:
dotnet add package Azure.Identity
Zaimportuj następujące przestrzenie nazw:
using Azure;
using Azure.Identity;
using Azure.AI.Inference;
W tym przykładzie są również używane następujące przestrzenie nazw, ale mogą nie zawsze być potrzebne:
using System.Text.Json;
using System.Text.Json.Serialization;
using System.Reflection;
Praca z ukończeniami czatu
W tej sekcji użyjesz interfejsu API wnioskowania modelu AI platformy Azure z modelem uzupełniania czatów na potrzeby czatu.
Wskazówka
Interfejs API wnioskowania modelu umożliwia komunikację z większością modeli wdrożonych w portalu Azure AI Foundry przy użyciu tego samego kodu i struktury, w tym modeli czatów Mistral-7B i Mixtral.
Tworzenie klienta do korzystania z modelu
Najpierw utwórz klienta, aby korzystać z modelu. Następujący kod używa adresu URL punktu końcowego i klucza, które są przechowywane w zmiennych środowiskowych.
ChatCompletionsClient client = new ChatCompletionsClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
new AzureKeyCredential(Environment.GetEnvironmentVariable("AZURE_INFERENCE_CREDENTIAL"))
);
Podczas wdrażania modelu w własnym punkcie końcowym online z obsługą identyfikatora Entra firmy Microsoft możesz użyć następującego fragmentu kodu, aby utworzyć klienta.
client = new ChatCompletionsClient(
new Uri(Environment.GetEnvironmentVariable("AZURE_INFERENCE_ENDPOINT")),
new DefaultAzureCredential(includeInteractiveCredentials: true)
);
Uzyskiwanie możliwości modelu
Trasa /info
zwraca informacje o modelu wdrożonym w punkcie końcowym. Zwróć informacje o modelu, wywołując następującą metodę:
Response<ModelInfo> modelInfo = client.GetModelInfo();
Odpowiedź jest następująca:
Console.WriteLine($"Model name: {modelInfo.Value.ModelName}");
Console.WriteLine($"Model type: {modelInfo.Value.ModelType}");
Console.WriteLine($"Model provider name: {modelInfo.Value.ModelProviderName}");
Model name: mistralai-Mistral-7B-Instruct-v01
Model type: chat-completions
Model provider name: MistralAI
Tworzenie żądania ukończenia czatu
W poniższym przykładzie pokazano, jak utworzyć podstawowe żądanie ukończenia czatu do modelu.
ChatCompletionsOptions requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many languages are in the world?")
},
};
Response<ChatCompletions> response = client.Complete(requestOptions);
Uwaga / Notatka
mistralai-Mistral-7B-Instruct-v01, mistralai-Mistral-7B-Instruct-v02 i mistralai-Mixtral-8x22B-Instruct-v0-1 nie obsługują komunikatów systemowych (role="system"
). W przypadku korzystania z interfejsu API wnioskowania modelu komunikaty systemowe są tłumaczone na komunikaty użytkowników, co jest najbliższą dostępną funkcją. To tłumaczenie jest oferowane dla wygody, ale ważne jest, aby sprawdzić, czy model postępuje zgodnie z instrukcjami zawartymi w komunikacie systemowym z odpowiednim poziomem pewności.
Odpowiedź jest następująca, gdzie można zobaczyć statystyki wykorzystania modelu.
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");
Console.WriteLine($"Model: {response.Value.Model}");
Console.WriteLine("Usage:");
Console.WriteLine($"\tPrompt tokens: {response.Value.Usage.PromptTokens}");
Console.WriteLine($"\tTotal tokens: {response.Value.Usage.TotalTokens}");
Console.WriteLine($"\tCompletion tokens: {response.Value.Usage.CompletionTokens}");
Response: As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.
Model: mistralai-Mistral-7B-Instruct-v01
Usage:
Prompt tokens: 19
Total tokens: 91
Completion tokens: 72
Sprawdź sekcję usage
w odpowiedzi, aby zobaczyć liczbę tokenów używanych dla monitu, łączną liczbę wygenerowanych tokenów oraz liczbę tokenów używanych do ukończenia.
Oglądaj treści na żywo
Domyślnie interfejs API uzupełniania zwraca całą wygenerowaną zawartość w pojedynczej odpowiedzi. Jeśli generujesz długie uzupełnienia, oczekiwanie na odpowiedź może potrwać wiele sekund.
Możesz przesyłać strumieniowo zawartość, aby uzyskać ją w miarę jej generowania. Zawartość strumieniowa umożliwia rozpoczęcie przetwarzania ukończenia w miarę dostępności zawartości. Ten tryb zwraca obiekt, który przesyła strumieniowo odpowiedź jako zdarzenia wysyłane przez serwer (tylko dane). Wyodrębnij fragmenty z pola delta, a nie z pola komunikatu.
static async Task StreamMessageAsync(ChatCompletionsClient client)
{
ChatCompletionsOptions requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many languages are in the world? Write an essay about it.")
},
MaxTokens=4096
};
StreamingResponse<StreamingChatCompletionsUpdate> streamResponse = await client.CompleteStreamingAsync(requestOptions);
await PrintStream(streamResponse);
}
Aby strumieniowo przesyłać uzupełnienia, użyj metody CompleteStreamingAsync
podczas wywoływania modelu. Zwróć uwagę, że w tym przykładzie wywołanie jest opakowane w metodę asynchroniczną.
Aby zwizualizować dane wyjściowe, zdefiniuj metodę asynchroniczną, aby wyświetlić strumień w konsoli.
static async Task PrintStream(StreamingResponse<StreamingChatCompletionsUpdate> response)
{
await foreach (StreamingChatCompletionsUpdate chatUpdate in response)
{
if (chatUpdate.Role.HasValue)
{
Console.Write($"{chatUpdate.Role.Value.ToString().ToUpperInvariant()}: ");
}
if (!string.IsNullOrEmpty(chatUpdate.ContentUpdate))
{
Console.Write(chatUpdate.ContentUpdate);
}
}
}
Możesz zwizualizować sposób generowania zawartości przez przesyłanie strumieniowe:
StreamMessageAsync(client).GetAwaiter().GetResult();
Poznaj więcej parametrów obsługiwanych przez klienta wnioskowania
Zapoznaj się z innymi parametrami, które można określić w kliencie wnioskowania. Aby uzyskać pełną listę wszystkich obsługiwanych parametrów i odpowiedniej dokumentacji, zobacz Dokumentację interfejsu API wnioskowania modelu.
requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many languages are in the world?")
},
PresencePenalty = 0.1f,
FrequencyPenalty = 0.8f,
MaxTokens = 2048,
StopSequences = { "<|endoftext|>" },
Temperature = 0,
NucleusSamplingFactor = 1,
ResponseFormat = new ChatCompletionsResponseFormatText()
};
response = client.Complete(requestOptions);
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");
Ostrzeżenie
Modele mistralne nie obsługują formatowania danych wyjściowych JSON (response_format = { "type": "json_object" }
). Zawsze możesz monitować model o wygenerowanie danych wyjściowych JSON. Jednak takie dane wyjściowe nie mają gwarancji, że są prawidłowe dane JSON.
Jeśli chcesz przekazać parametr, który nie znajduje się na liście obsługiwanych parametrów, możesz przekazać go do modelu bazowego przy użyciu dodatkowych parametrów. Zobacz Przekazywanie dodatkowych parametrów do modelu.
Przekazywanie dodatkowych parametrów do modelu
Interfejs API wnioskowania modelu umożliwia przekazywanie dodatkowych parametrów do modelu. Poniższy przykład kodu pokazuje, jak przekazać dodatkowy parametr logprobs
do modelu.
Przed przekazaniem dodatkowych parametrów do interfejsu API wnioskowania modelu upewnij się, że model obsługuje te dodatkowe parametry. Po wysłaniu żądania do modelu bazowego nagłówek extra-parameters
jest przekazywany do modelu z wartością pass-through
. Ta wartość informuje punkt końcowy o przekazaniu dodatkowych parametrów do modelu. Użycie dodatkowych parametrów w modelu nie gwarantuje, że model faktycznie je obsłuży. Przeczytaj dokumentację modelu, aby dowiedzieć się, które dodatkowe parametry są obsługiwane.
requestOptions = new ChatCompletionsOptions()
{
Messages = {
new ChatRequestSystemMessage("You are a helpful assistant."),
new ChatRequestUserMessage("How many languages are in the world?")
},
AdditionalProperties = { { "logprobs", BinaryData.FromString("true") } },
};
response = client.Complete(requestOptions, extraParams: ExtraParameters.PassThrough);
Console.WriteLine($"Response: {response.Value.Choices[0].Message.Content}");
Następujące dodatkowe parametry można przekazać do modeli rozmów Mistral-7B i Mixtral:
Nazwa | Opis | Typ |
---|---|---|
logit_bias |
Akceptuje obiekt JSON mapujący tokeny (określone przez ich identyfikator tokenu w tokenizatorze) na skojarzoną wartość stronniczą z zakresu od -100 do 100. Matematycznie stronniczy jest dodawany do logitów wygenerowanych przez model przed próbkowaniem. Dokładny efekt różni się w zależności od modelu, ale wartości z zakresu od -1 do 1 powinny zmniejszyć lub zwiększyć prawdopodobieństwo wyboru; wartości takie jak -100 lub 100 powinny spowodować zakaz lub wyłączny wybór odpowiedniego tokenu. | float |
logprobs |
Czy zwracać logarytmiczne prawdopodobieństwa dla tokenów wyjściowych, czy nie. Jeśli true, zwraca logarytmiczne prawdopodobieństwa każdego tokenu wyjściowego zwróconego w content elementu message . |
int |
top_logprobs |
Liczba całkowita z zakresu od 0 do 20 określająca liczbę najbardziej prawdopodobnych tokenów do zwrócenia na każdej pozycji, z których każdy ma skojarzone logarytmiczne prawdopodobieństwo.
logprobs musi być ustawione na true , jeśli ten parametr jest używany. |
float |
n |
Ile opcji ukończenia czatu ma być generowanych dla każdej wiadomości wejściowej. Opłaty są naliczane na podstawie liczby wygenerowanych tokenów we wszystkich wyborach. | int |
Modele rozmów Mistral-7B i Mixtral
Modele rozmów Mistral-7B i Mixtral obejmują następujące modele:
Mistral-7B-Poinstruuj duży model językowy (LLM) jest instrukcją, dostrojoną wersję Mistral-7B, model transformatora z następującymi opcjami architektury:
- Uwagę grupowanej kwerendy
- Uwagę okna przesuwanego
- Tokenizator BPE typu byte-fallback
Są dostępne następujące modele:
Wskazówka
Ponadto program MistralAI obsługuje korzystanie z dostosowanego interfejsu API do użycia z określonymi funkcjami modelu. Aby użyć interfejsu API specyficznego dla dostawcy modelu, zapoznaj się z dokumentacją programu MistralAI lub zapoznaj się z sekcją przykłady wnioskowania, aby zapoznać się z przykładami kodu.
Wymagania wstępne
Aby używać modeli rozmów Mistral-7B i Mixtral z usługą Azure AI Foundry, potrzebne są następujące wymagania wstępne:
Wdrożenie modelu
Wdrażanie w zarządzanym samodzielnie zarządzanym środowisku obliczeniowym
Modele czatów Mistral-7B i Mixtral można wdrożyć w naszym rozwiązaniu do wnioskowania zarządzanego przez siebie, co pozwala dostosować i kontrolować wszystkie szczegóły dotyczące sposobu obsługi modelu.
W przypadku wdrożenia w zarządzanym samodzielnie zarządzanym środowisku obliczeniowym musisz mieć wystarczający limit przydziału w ramach subskrypcji. Jeśli nie masz wystarczającego limitu przydziału, możesz użyć naszego tymczasowego dostępu do limitu przydziału, wybierając opcję Chcę użyć udostępnionego limitu przydziału i potwierdzam, że ten punkt końcowy zostanie usunięty w ciągu 168 godzin.
Klient REST
Modele wdrożone za pomocą interfejsu API wnioskowania modelu mogą być używane przy użyciu dowolnego klienta REST. Do korzystania z klienta REST potrzebne są następujące wymagania wstępne:
- Aby utworzyć żądania, należy przekazać adres URL punktu końcowego. Adres URL punktu końcowego ma postać
https://your-host-name.your-azure-region.inference.ai.azure.com
, gdzie twój-region-azure-region'' to region świadczenia usługi Azure, w którymyour-host-name`` is your unique model deployment host name and
wdrożono model (na przykład eastus2). - W zależności od preferencji wdrażania modelu i uwierzytelniania potrzebny jest klucz do uwierzytelniania względem usługi lub poświadczeń identyfikatora Entra firmy Microsoft. Klucz jest ciągiem 32-znakowym.
Praca z ukończeniami czatu
W tej sekcji użyjesz interfejsu API wnioskowania modelu AI platformy Azure z modelem uzupełniania czatów na potrzeby czatu.
Wskazówka
Interfejs API wnioskowania modelu umożliwia komunikację z większością modeli wdrożonych w portalu Azure AI Foundry przy użyciu tego samego kodu i struktury, w tym modeli czatów Mistral-7B i Mixtral.
Tworzenie klienta do korzystania z modelu
Najpierw utwórz klienta, aby korzystać z modelu. Następujący kod używa adresu URL punktu końcowego i klucza, które są przechowywane w zmiennych środowiskowych.
Podczas wdrażania modelu w własnym punkcie końcowym online z obsługą identyfikatora Entra firmy Microsoft możesz użyć następującego fragmentu kodu, aby utworzyć klienta.
Uzyskiwanie możliwości modelu
Trasa /info
zwraca informacje o modelu wdrożonym w punkcie końcowym. Zwróć informacje o modelu, wywołując następującą metodę:
GET /info HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
Odpowiedź jest następująca:
{
"model_name": "mistralai-Mistral-7B-Instruct-v01",
"model_type": "chat-completions",
"model_provider_name": "MistralAI"
}
Tworzenie żądania ukończenia czatu
W poniższym przykładzie pokazano, jak utworzyć podstawowe żądanie ukończenia czatu do modelu.
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
]
}
Uwaga / Notatka
mistralai-Mistral-7B-Instruct-v01, mistralai-Mistral-7B-Instruct-v02 i mistralai-Mixtral-8x22B-Instruct-v0-1 nie obsługują komunikatów systemowych (role="system"
). W przypadku korzystania z interfejsu API wnioskowania modelu komunikaty systemowe są tłumaczone na komunikaty użytkowników, co jest najbliższą dostępną funkcją. To tłumaczenie jest oferowane dla wygody, ale ważne jest, aby sprawdzić, czy model postępuje zgodnie z instrukcjami zawartymi w komunikacie systemowym z odpowiednim poziomem pewności.
Odpowiedź jest następująca, gdzie można zobaczyć statystyki wykorzystania modelu.
{
"id": "0a1234b5de6789f01gh2i345j6789klm",
"object": "chat.completion",
"created": 1718726686,
"model": "mistralai-Mistral-7B-Instruct-v01",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.",
"tool_calls": null
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 19,
"total_tokens": 91,
"completion_tokens": 72
}
}
Sprawdź sekcję usage
w odpowiedzi, aby zobaczyć liczbę tokenów używanych dla monitu, łączną liczbę wygenerowanych tokenów oraz liczbę tokenów używanych do ukończenia.
Oglądaj treści na żywo
Domyślnie interfejs API uzupełniania zwraca całą wygenerowaną zawartość w pojedynczej odpowiedzi. Jeśli generujesz długie uzupełnienia, oczekiwanie na odpowiedź może potrwać wiele sekund.
Możesz przesyłać strumieniowo zawartość, aby uzyskać ją w miarę jej generowania. Zawartość strumieniowa umożliwia rozpoczęcie przetwarzania ukończenia w miarę dostępności zawartości. Ten tryb zwraca obiekt, który przesyła strumieniowo odpowiedź jako zdarzenia wysyłane przez serwer (tylko dane). Wyodrębnij fragmenty z pola delta, a nie z pola komunikatu.
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
],
"stream": true,
"temperature": 0,
"top_p": 1,
"max_tokens": 2048
}
Możesz zwizualizować sposób generowania zawartości przez przesyłanie strumieniowe:
{
"id": "23b54589eba14564ad8a2e6978775a39",
"object": "chat.completion.chunk",
"created": 1718726371,
"model": "mistralai-Mistral-7B-Instruct-v01",
"choices": [
{
"index": 0,
"delta": {
"role": "assistant",
"content": ""
},
"finish_reason": null,
"logprobs": null
}
]
}
Ostatni komunikat w strumieniu ma ustawioną wartość finish_reason
, co wskazuje przyczynę zatrzymania procesu generowania.
{
"id": "23b54589eba14564ad8a2e6978775a39",
"object": "chat.completion.chunk",
"created": 1718726371,
"model": "mistralai-Mistral-7B-Instruct-v01",
"choices": [
{
"index": 0,
"delta": {
"content": ""
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 19,
"total_tokens": 91,
"completion_tokens": 72
}
}
Poznaj więcej parametrów obsługiwanych przez klienta wnioskowania
Zapoznaj się z innymi parametrami, które można określić w kliencie wnioskowania. Aby uzyskać pełną listę wszystkich obsługiwanych parametrów i odpowiedniej dokumentacji, zobacz Dokumentację interfejsu API wnioskowania modelu.
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
],
"presence_penalty": 0.1,
"frequency_penalty": 0.8,
"max_tokens": 2048,
"stop": ["<|endoftext|>"],
"temperature" :0,
"top_p": 1,
"response_format": { "type": "text" }
}
{
"id": "0a1234b5de6789f01gh2i345j6789klm",
"object": "chat.completion",
"created": 1718726686,
"model": "mistralai-Mistral-7B-Instruct-v01",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "As of now, it's estimated that there are about 7,000 languages spoken around the world. However, this number can vary as some languages become extinct and new ones develop. It's also important to note that the number of speakers can greatly vary between languages, with some having millions of speakers and others only a few hundred.",
"tool_calls": null
},
"finish_reason": "stop",
"logprobs": null
}
],
"usage": {
"prompt_tokens": 19,
"total_tokens": 91,
"completion_tokens": 72
}
}
Ostrzeżenie
Modele mistralne nie obsługują formatowania danych wyjściowych JSON (response_format = { "type": "json_object" }
). Zawsze możesz monitować model o wygenerowanie danych wyjściowych JSON. Jednak takie dane wyjściowe nie mają gwarancji, że są prawidłowe dane JSON.
Jeśli chcesz przekazać parametr, który nie znajduje się na liście obsługiwanych parametrów, możesz przekazać go do modelu bazowego przy użyciu dodatkowych parametrów. Zobacz Przekazywanie dodatkowych parametrów do modelu.
Przekazywanie dodatkowych parametrów do modelu
Interfejs API wnioskowania modelu umożliwia przekazywanie dodatkowych parametrów do modelu. Poniższy przykład kodu pokazuje, jak przekazać dodatkowy parametr logprobs
do modelu.
Przed przekazaniem dodatkowych parametrów do interfejsu API wnioskowania modelu upewnij się, że model obsługuje te dodatkowe parametry. Po wysłaniu żądania do modelu bazowego nagłówek extra-parameters
jest przekazywany do modelu z wartością pass-through
. Ta wartość informuje punkt końcowy o przekazaniu dodatkowych parametrów do modelu. Użycie dodatkowych parametrów w modelu nie gwarantuje, że model faktycznie je obsłuży. Przeczytaj dokumentację modelu, aby dowiedzieć się, które dodatkowe parametry są obsługiwane.
POST /chat/completions HTTP/1.1
Host: <ENDPOINT_URI>
Authorization: Bearer <TOKEN>
Content-Type: application/json
extra-parameters: pass-through
{
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "How many languages are in the world?"
}
],
"logprobs": true
}
Następujące dodatkowe parametry można przekazać do modeli rozmów Mistral-7B i Mixtral:
Nazwa | Opis | Typ |
---|---|---|
logit_bias |
Akceptuje obiekt JSON mapujący tokeny (określone przez ich identyfikator tokenu w tokenizatorze) na skojarzoną wartość stronniczą z zakresu od -100 do 100. Matematycznie stronniczy jest dodawany do logitów wygenerowanych przez model przed próbkowaniem. Dokładny efekt różni się w zależności od modelu, ale wartości z zakresu od -1 do 1 powinny zmniejszyć lub zwiększyć prawdopodobieństwo wyboru; wartości takie jak -100 lub 100 powinny spowodować zakaz lub wyłączny wybór odpowiedniego tokenu. | float |
logprobs |
Czy zwracać logarytmiczne prawdopodobieństwa dla tokenów wyjściowych, czy nie. Jeśli true, zwraca logarytmiczne prawdopodobieństwa każdego tokenu wyjściowego zwróconego w content elementu message . |
int |
top_logprobs |
Liczba całkowita z zakresu od 0 do 20 określająca liczbę najbardziej prawdopodobnych tokenów do zwrócenia na każdej pozycji, z których każdy ma skojarzone logarytmiczne prawdopodobieństwo.
logprobs musi być ustawione na true , jeśli ten parametr jest używany. |
float |
n |
Ile opcji ukończenia czatu ma być generowanych dla każdej wiadomości wejściowej. Opłaty są naliczane na podstawie liczby wygenerowanych tokenów we wszystkich wyborach. | int |
Więcej przykładów wnioskowania
Aby uzyskać więcej przykładów używania modeli Mistral, zobacz następujące przykłady i samouczki:
Opis | Język | Przykład |
---|---|---|
Żądanie CURL | Bash | Łącze |
Pakiet wnioskowania sztucznej inteligencji platformy Azure dla języka C# | C# | Łącze |
Pakiet wnioskowania usługi Azure AI dla języka JavaScript | JavaScript | Łącze |
Pakiet wnioskowania usługi Azure AI dla języka Python | Pyton | Łącze |
Żądania internetowe języka Python | Pyton | Łącze |
OpenAI SDK (eksperymentalny) | Pyton | Łącze |
LangChain | Pyton | Łącze |
Mistral Sztuczna Inteligencja | Pyton | Łącze |
LiteLLM | Pyton | Łącze |
Zagadnienia dotyczące kosztów i limitów przydziału dla modeli Mistral wdrożonych w zarządzanych obliczeniach
Modele mistralne wdrożone w zarządzanych obliczeniach są rozliczane na podstawie godzin podstawowych skojarzonego wystąpienia obliczeniowego. Koszt wystąpienia obliczeniowego zależy od rozmiaru wystąpienia, liczby uruchomionych wystąpień i czasu trwania przebiegu.
Dobrym rozwiązaniem jest rozpoczęcie od niewielkiej liczby wystąpień i skalowanie w górę zgodnie z potrzebami. Koszt wystąpienia obliczeniowego można monitorować w witrynie Azure Portal.
Treści powiązane
- API wnioskowania modelu
- Wdrażanie modeli jako bezserwerowych interfejsów API
- Korzystanie z bezserwerowych punktów końcowych interfejsu API z innego projektu lub centrum rozwiązania Azure AI Foundry
- Dostępność regionów dla modeli w bezserwerowym interfejsie API
- Planowanie kosztów i zarządzanie nimi (marketplace)