Udostępnij za pośrednictwem


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:

  1. Przejdź do usługi Azure Machine Learning Studio.

  2. 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.

  3. 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.

  4. Na stronie przeglądu modelu w katalogu modeli wybierz pozycję Wdróż , aby otworzyć okno wdrażania bezserwerowego interfejsu API dla modelu.

  5. Zaznacz pole wyboru, aby potwierdzić zasady zakupu firmy Microsoft.

    Zrzut ekranu przedstawiający sposób wdrażania modelu jako bezserwerowego interfejsu API.

  6. W kreatorze wdrażania wybierz link do warunków użytkowania witryny Azure Marketplace, aby dowiedzieć się więcej o warunkach użytkowania.

  7. Możesz również wybrać kartę Cennik i terminy , aby dowiedzieć się więcej o cenach dla wybranego modelu.

  8. 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.

  9. 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ć.

    Zrzut ekranu przedstawiający obszar roboczy, który jest już subskrybowany do oferty.

  10. 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.

    Zrzut ekranu przedstawiający sposób wskazywania nazwy wdrożenia, które chcesz utworzyć.

  11. Wybierz Wdróż. Poczekaj na zakończenie wdrożenia i nastąpi przekierowanie do strony bezserwerowych punktów końcowych.

  12. Wybierz punkt końcowy, aby otworzyć stronę Szczegóły.

  13. Wybierz kartę Test , aby rozpocząć interakcję z modelem.

  14. 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.

  1. W obszarze roboczym wybierz pozycję Punkty końcowe>Bezserwerowe punkty końcowe.
  2. Znajdź i wybierz utworzone wdrożenie.
  3. Skopiuj docelowy adres URL i wartości tokenu klucza.
  4. 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_pparametru , 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. systemJeden z , userlub 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_ofwartość 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.