Jak wdrożyć modele Mistral za pomocą usługi Azure Machine Learning Studio
Z tego artykułu dowiesz się, jak za pomocą usługi Azure Machine Learning Studio wdrożyć rodzinę modeli Mistral jako bezserwerowe interfejsy API z rozliczeniami opartymi na tokenach płatności zgodnie z rzeczywistym użyciem.
Mistral AI oferuje dwie kategorie modeli w usłudze Azure Machine Learning Studio. Te modele są dostępne w katalogu modeli.
- Modele Premium: Mistral Large (2402), Mistral Large (2407), Mistral Small i Ministral-3B.
- Otwarte modele: Mistral Nemo, Mixtral-8x7B-Instruct-v01, Mixtral-8x7B-v01, Mistral-7B-Instruct-v01 i Mistral-7B-v01.
Wszystkie modele Premium i Mistral Nemo (otwarty model) można wdrożyć jako bezserwerowe interfejsy API z rozliczeniami opartymi na tokenach płatności zgodnie z rzeczywistym użyciem. Inne otwarte modele można wdrożyć w zarządzanych obliczeniach we własnej subskrypcji platformy Azure.
Rodzinę modeli Mistral można przeglądać w katalogu modeli, filtrując kolekcję Mistral.
Mistralna rodzina modeli
Mistral Large to najbardziej zaawansowany model dużego języka (LLM, Large Language Model) mistral AI. Można go używać w dowolnym zadaniu opartym na języku, dzięki swoim najnowocześniejszemu rozumowaniu i możliwościom wiedzy. Dostępne są dwa warianty wersji modelu Mistral Large:
- Mistral Large (2402)
- Mistral Large (2407)
Ponadto niektóre atrybuty Mistral Large (2402) obejmują:
- Specjalizowała się w RAG. Kluczowe informacje nie są tracone w środku długich okien kontekstowych (do 32 K tokenów).
- Silne w kodowaniu. Generowanie, przeglądanie i komentarze kodu. Obsługuje wszystkie języki kodowania podstawowego.
- Wiele języków wg projektu. Najlepszy występ w klasie w języku francuskim, niemieckim, hiszpańskim i włoskim - oprócz języka angielskiego. Obsługiwane są dziesiątki innych języków.
- Zgodność ze odpowiedzialną sztuczną inteligencją. Wydajne zabezpieczenia pieczone w modelu i dodatkową warstwę bezpieczeństwa z opcją
safe_mode
.
Atrybuty Mistral Large (2407) obejmują:
- Wiele języków wg projektu. Obsługuje dziesiątki języków, w tym angielski, francuski, niemiecki, hiszpański i włoski.
- Biegłość w kodowaniu. Trenowane na ponad 80 językach kodowania, w tym Python, Java, C, C++, JavaScript i Bash. Szkolił się również na bardziej konkretnych językach, takich jak Swift i Fortran.
- Skoncentrowane na agencie. Posiada możliwości agentów z natywnym wywoływaniem funkcji i wyprowadzania danych wyjściowych JSON.
- Zaawansowane w rozumowaniu. Przedstawia najnowocześniejsze możliwości matematyczne i rozumowania.
Ważne
Ta funkcja jest obecnie 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ą być nieobsługiwane lub ograniczone.
Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.
Wdrażanie mistralnej rodziny modeli jako bezserwerowego interfejsu API
Niektóre modele w katalogu modeli można wdrożyć jako bezserwerowy interfejs API z rozliczeniami płatności zgodnie z rzeczywistym użyciem. Tego rodzaju wdrożenie umożliwia korzystanie z modeli jako interfejsu API bez hostowania ich w ramach subskrypcji, przy jednoczesnym zachowaniu bezpieczeństwa i zgodności przedsiębiorstwa, których potrzebują organizacje. Ta opcja wdrożenia nie wymaga limitu przydziału z subskrypcji.
Mistral Large (2402), Mistral Large (2407), Mistral Small i Mistral Nemo można wdrożyć jako bezserwerowy interfejs API z rozliczeniami płatności zgodnie z rzeczywistym użyciem i oferowane przez Mistral AI za pośrednictwem witryny Microsoft Azure Marketplace. Mistral AI może zmienić lub zaktualizować warunki użytkowania i ceny tych modeli.
Wymagania wstępne
Subskrypcja platformy Azure z prawidłową formą płatności. Subskrypcje platformy Azure w wersji bezpłatnej lub próbnej nie będą działać. Jeśli nie masz subskrypcji platformy Azure, utwórz płatne konto platformy Azure, aby rozpocząć.
Obszar roboczy usługi Azure Machine Learning. Jeśli nie masz obszaru roboczego, wykonaj kroki opisane w artykule Szybki start: tworzenie zasobów obszaru roboczego, aby je utworzyć. Oferta wdrażania modelu bezserwerowego interfejsu API dla kwalifikujących się modeli w rodzinie Mistral jest dostępna tylko w obszarach roboczych utworzonych w następujących regionach:
- East US
- Wschodnie stany USA 2
- Północno-środkowe stany USA
- South Central US
- Zachodnie stany USA
- Zachodnie stany USA 3
- Szwecja Środkowa
Aby uzyskać listę regionów dostępnych dla każdego z modeli obsługujących wdrożenia punktów końcowych bezserwerowego interfejsu API, zobacz Dostępność regionów dla modeli w punktach końcowych bezserwerowego interfejsu API
Kontrola dostępu na podstawie ról platformy Azure (Azure RBAC): jest używana do udzielania dostępu do operacji w usłudze Azure Machine Learning. Aby wykonać kroki opisane w tym artykule, konto użytkownika musi mieć przypisaną rolę dewelopera usługi Azure AI w grupie zasobów. Aby uzyskać więcej informacji na temat uprawnień, zobacz Zarządzanie dostępem do obszaru roboczego usługi Azure Machine Learning.
Tworzenie nowego wdrożenia
Poniższe kroki pokazują wdrożenie mistral large (2402), ale można użyć tych samych kroków, aby wdrożyć Mistral Nemo lub dowolny z modeli Mistral w warstwie Premium, zastępując nazwę modelu.
Aby utworzyć wdrożenie:
Przejdź do usługi Azure Machine Learning Studio.
Wybierz obszar roboczy, w którym chcesz wdrożyć model. Aby korzystać z oferty wdrażania modelu bezserwerowego interfejsu API, obszar roboczy musi należeć do jednego z regionów wymienionych w wymaganiach wstępnych.
Wybierz model, który chcesz wdrożyć, na przykład model Mistral Large (2402) z wykazu modeli.
Możesz też zainicjować wdrożenie, przechodząc do obszaru roboczego i wybierając pozycję Punkty końcowe Bezserwerowe>>punkty końcowe Utwórz.
Na stronie przeglądu modelu w katalogu modeli wybierz pozycję Wdróż , aby otworzyć okno wdrażania bezserwerowego interfejsu API dla modelu.
Zaznacz pole wyboru, aby potwierdzić zasady zakupu firmy Microsoft.
W kreatorze wdrażania wybierz link do warunków użytkowania witryny Azure Marketplace, aby dowiedzieć się więcej o warunkach użytkowania.
Możesz również wybrać kartę Cennik i terminy , aby dowiedzieć się więcej o cenach dla wybranego modelu.
Jeśli po raz pierwszy wdrażasz model w obszarze roboczym, musisz zasubskrybować obszar roboczy dla konkretnej oferty (na przykład Mistral Large (2402)). Ten krok wymaga, aby Twoje konto ma uprawnienia roli dewelopera usługi Azure AI w grupie zasobów, zgodnie z wymaganiami wstępnymi. Każdy obszar roboczy ma własną subskrypcję konkretnej oferty witryny Azure Marketplace, która umożliwia kontrolowanie i monitorowanie wydatków. Wybierz pozycję Subskrybuj i Wdróż. Obecnie można mieć tylko jedno wdrożenie dla każdego modelu w obszarze roboczym.
Po zasubskrybowaniu obszaru roboczego dla określonej oferty witryny Azure Marketplace kolejne wdrożenia tej samej oferty w tym samym obszarze roboczym nie wymagają ponownego subskrybowania. Jeśli ten scenariusz dotyczy Ciebie, zobaczysz opcję Kontynuuj, aby wdrożyć , aby wybrać.
Nadaj wdrożeniu nazwę. Ta nazwa staje się częścią adresu URL interfejsu API wdrażania. Ten adres URL musi być unikatowy w każdym regionie świadczenia usługi Azure.
Wybierz Wdróż. Poczekaj na zakończenie wdrożenia i nastąpi przekierowanie do strony bezserwerowych punktów końcowych.
Wybierz punkt końcowy, aby otworzyć stronę Szczegóły.
Wybierz kartę Test , aby rozpocząć interakcję z modelem.
Zawsze możesz znaleźć szczegóły, adres URL i klucze dostępu punktu końcowego, przechodząc do punktów końcowych obszaru roboczego>Bezserwerowych punktów końcowych.>
Aby dowiedzieć się więcej o rozliczeniach modeli Mistral wdrożonych jako bezserwerowy interfejs API z rozliczeniami opartymi na tokenach zgodnie z rzeczywistym użyciem, zobacz Zagadnienia dotyczące kosztów i przydziałów dla rodziny mistral modeli wdrożonych jako usługa.
Korzystanie z rodziny Mistral modeli jako usługi
Modele mistralne można używać przy użyciu interfejsu API czatu.
- W obszarze roboczym wybierz pozycję Punkty końcowe>Bezserwerowe punkty końcowe.
- Znajdź i wybierz utworzone wdrożenie.
- Skopiuj docelowy adres URL i wartości tokenu klucza.
- Utwórz żądanie interfejsu API przy użyciu interfejsu API wnioskowania modelu azure AI na trasie
/chat/completions
i natywnego interfejsu API czatu Mistral w systemie/v1/chat/completions
.
Aby uzyskać więcej informacji na temat korzystania z interfejsów API, zobacz sekcję referencyjną.
Dokumentacja rodziny Mistral modeli wdrożonych jako usługa
Modele Mistral akceptują zarówno interfejs API wnioskowania modelu platformy Azure AI na trasie /chat/completions
, jak i natywny interfejs API Mistral Chat w /v1/chat/completions
.
Interfejs API wnioskowania modelu Azure AI
Schemat interfejsu API wnioskowania modelu platformy Azure AI można znaleźć w artykule dotyczącym uzupełniania czatów, a specyfikację interfejsu OpenAPI można uzyskać z samego punktu końcowego.
Mistral Chat API
Użyj metody POST
, aby wysłać żądanie do /v1/chat/completions
trasy:
Zażądaj
POST /v1/chat/completions HTTP/1.1
Host: <DEPLOYMENT_URI>
Authorization: Bearer <TOKEN>
Content-type: application/json
Schemat żądania
Payload to ciąg sformatowany w formacie JSON zawierający następujące parametry:
Klucz | Typ | Domyślny | opis |
---|---|---|---|
messages |
string |
Brak wartości domyślnej. Tę wartość należy określić. | Komunikat lub historia komunikatów do użycia w celu wyświetlenia monitu o model. |
stream |
boolean |
False |
Przesyłanie strumieniowe umożliwia wysyłanie wygenerowanych tokenów jako zdarzeń wysyłanych tylko do serwera, gdy staną się dostępne. |
max_tokens |
integer |
8192 |
Maksymalna liczba tokenów do wygenerowania w zakończeniu. Liczba tokenów monitu plus max_tokens nie może przekraczać długości kontekstu modelu. |
top_p |
float |
1 |
Alternatywą dla próbkowania z temperaturą, nazywaną próbkowaniem jądra, gdzie model uwzględnia wyniki tokenów z masą top_p prawdopodobieństwa. Dlatego 0,1 oznacza, że uwzględniane są tylko tokeny składające się z pierwszej masy prawdopodobieństwa o 10%. Ogólnie zalecamy zmianę top_p wartości lub temperature , ale nie obie. |
temperature |
float |
1 |
Temperatura próbkowania do użycia z zakresu od 0 do 2. Wyższe wartości oznaczają, że próbki modelu są bardziej szeroko rozpowszechniane tokenów. Zero oznacza chciwość próbkowania. Zalecamy zmianę tego parametru lub top_p parametru , ale nie obu tych parametrów. |
ignore_eos |
boolean |
False |
Czy zignorować token EOS i kontynuować generowanie tokenów po wygenerowaniu tokenu EOS. |
safe_prompt |
boolean |
False |
Czy wstrzyknąć monit o bezpieczeństwo przed wszystkimi konwersacjami. |
Obiekt messages
ma następujące pola:
Klucz | Type | Wartość |
---|---|---|
content |
string |
Zawartość wiadomości. Zawartość jest wymagana dla wszystkich wiadomości. |
role |
string |
Rola autora wiadomości. system Jeden z , user lub assistant . |
Przykład żądania
Treść
{
"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,
}
Schemat odpowiedzi
Ładunek odpowiedzi to słownik z następującymi polami.
Klucz | Type | Opis |
---|---|---|
id |
string |
Unikatowy identyfikator ukończenia. |
choices |
array |
Lista uzupełniania wybiera model wygenerowany dla komunikatów wejściowych. |
created |
integer |
Sygnatura czasowa systemu Unix (w sekundach) czasu utworzenia ukończenia. |
model |
string |
Model_id używany do ukończenia. |
object |
string |
Typ obiektu, który jest zawsze chat.completion . |
usage |
object |
Statystyki użycia dla żądania ukończenia. |
Napiwek
W trybie przesyłania strumieniowego dla każdego fragmentu odpowiedzi finish_reason
jest zawsze null
, z wyjątkiem ostatniego, który jest przerywany przez ładunek [DONE]
. W każdym choices
obiekcie klucz dla messages
elementu jest zmieniany przez delta
.
Obiekt choices
jest słownikiem z następującymi polami.
Klucz | Type | Opis |
---|---|---|
index |
integer |
Indeks wyboru. Jeśli best_of wartość 1, indeks w tej tablicy może nie być w kolejności i może nie być wartością 0 n-1 .> |
messages lub delta |
string |
Wynik ukończenia czatu w messages obiekcie. Gdy używany jest tryb przesyłania strumieniowego, delta używany jest klucz. |
finish_reason |
string |
Przyczyna zatrzymania generowania tokenów przez model: - stop : model osiąga naturalny punkt zatrzymania lub podaną sekwencję zatrzymania. - length : jeśli osiągnięto maksymalną liczbę tokenów. - content_filter : Kiedy RAI moderuje i CMP wymusza moderowanie - content_filter_error : błąd podczas moderowania i nie był w stanie podjąć decyzji w sprawie odpowiedzi - null : Odpowiedź interfejsu API jest nadal w toku lub niekompletna. |
logprobs |
object |
Prawdopodobieństwo dziennika wygenerowanych tokenów w tekście wyjściowym. |
Obiekt usage
jest słownikiem z następującymi polami.
Klucz | Type | Wartość |
---|---|---|
prompt_tokens |
integer |
Liczba tokenów w wierszu polecenia. |
completion_tokens |
integer |
Liczba tokenów wygenerowanych w zakończeniu. |
total_tokens |
integer |
Łączna liczba tokenów. |
Obiekt logprobs
jest słownikiem z następującymi polami:
Klucz | Type | Wartość |
---|---|---|
text_offsets |
array dla integers |
Pozycja lub indeks każdego tokenu w danych wyjściowych ukończenia. |
token_logprobs |
array dla float |
Wybrane logprobs ze słownika w top_logprobs tablicy. |
tokens |
array dla string |
Wybrane tokeny. |
top_logprobs |
array dla dictionary |
Tablica słownika. W każdym słowniku kluczem jest token, a wartość jest sondą. |
Przykład odpowiedzi
Poniższy kod JSON to przykładowa odpowiedź:
{
"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
}
}
Więcej przykładów wnioskowania
Przykładowy typ | Przykładowy notes |
---|---|
Interfejs wiersza polecenia przy użyciu narzędzi CURL i żądań internetowych języka Python | webrequests.ipynb |
Zestaw OPENAI SDK (eksperymentalny) | openaisdk.ipynb |
LangChain | langchain.ipynb |
Mistral AI | mistralai.ipynb |
LiteLLM | litellm.ipynb |
Koszt i przydziały
Zagadnienia dotyczące kosztów i przydziałów dla rodziny Mistral modeli wdrożonych jako usługa
Modele mistralne wdrożone jako usługa są oferowane przez mistral AI za pośrednictwem witryny Azure Marketplace i zintegrowane z usługą Azure Machine Learning Studio do użycia. Cennik witryny Azure Marketplace można uzyskać podczas wdrażania modeli.
Za każdym razem, gdy obszar roboczy subskrybuje daną ofertę modelu z witryny Azure Marketplace, tworzony jest nowy zasób w celu śledzenia kosztów związanych z jego zużyciem. Ten sam zasób służy do śledzenia kosztów skojarzonych z wnioskowaniem; jednak w ramach śledzenia każdego scenariusza można niezależnie śledzić wiele mierników.
Aby uzyskać więcej informacji na temat śledzenia kosztów, zobacz Monitorowanie kosztów modeli oferowanych w witrynie Azure Marketplace.
Limit przydziału jest zarządzany na wdrożenie. Każde wdrożenie ma limit szybkości wynoszący 200 000 tokenów na minutę i 1000 żądań interfejsu API na minutę. Obecnie jednak ograniczamy jedno wdrożenie na model na obszar roboczy. Skontaktuj się z pomocą techniczną platformy Microsoft Azure, jeśli bieżące limity szybkości nie są wystarczające dla Twoich scenariuszy.
Filtrowanie zawartości
Modele wdrożone jako usługa z płatnością zgodnie z rzeczywistym użyciem są chronione przez bezpieczeństwo zawartości usługi Azure AI. Po włączeniu bezpieczeństwa zawartości sztucznej inteligencji platformy Azure zarówno monit, jak i ukończenie przechodzą przez zespół modeli klasyfikacji mających na celu wykrywanie i zapobieganie wyjściu szkodliwej zawartości. System filtrowania zawartości (wersja zapoznawcza) wykrywa i podejmuje działania dotyczące określonych kategorii potencjalnie szkodliwej zawartości zarówno w monitach wejściowych, jak i w przypadku uzupełniania danych wyjściowych. Dowiedz się więcej o bezpieczeństwie zawartości usługi Azure AI.