Sdílet prostřednictvím


Nasazení rodinných modelů AI21 s využitím studio Azure Machine Learning

Důležité

Tato funkce je v současné době ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučujeme ji pro produkční úlohy. Některé funkce se nemusí podporovat nebo mohou mít omezené možnosti.

Další informace najdete v dodatečných podmínkách použití pro verze Preview v Microsoft Azure.

V tomto článku se dozvíte, jak pomocí studio Azure Machine Learning nasadit modely rodiny Jamba AI21 jako bezserverové rozhraní API s průběžnými platbami.

Modely rodiny Jamba jsou modelem Mamba založeným na produkčním prostředí Mamba pro velké jazykové modely (LLM), které využívají hybridní architekturu Mamba-Transformer AI21. Jedná se o instrukční verzi modelu SSM (Hybrid Structured State Space Model) AI21. Modely rodiny Jamba jsou vytvořeny pro spolehlivé komerční použití s ohledem na kvalitu a výkon.

Tip

Podívejte se na naše oznámení o modelech rodiny Jamba od AI21, které jsou teď k dispozici v katalogu modelů Azure AI prostřednictvím blogu AI21 a blogu Microsoft Tech Community.

Nasazení modelů rodiny Jamba jako bezserverového rozhraní API

Některé modely v katalogu modelů je možné nasadit jako bezserverové rozhraní API s fakturací s průběžnými platbami, což poskytuje způsob, jak je využívat jako rozhraní API bez hostování ve vašem předplatném a současně zajistit, aby organizace v podnikovém zabezpečení a dodržování předpisů potřebovaly. Tato možnost nasazení nevyžaduje kvótu z vašeho předplatného.

Model AI21-Jamba 1.5 Large nasazený jako bezserverové rozhraní API s průběžnými platbami nabízí AI21 prostřednictvím Microsoft Azure Marketplace. AI21 může změnit nebo aktualizovat podmínky použití a ceny tohoto modelu.

Pokud chcete začít používat Jamba 1.5 s velkými nasazenými jako bezserverové rozhraní API, prozkoumejte naše integrace s LangChain, LiteLLM, OpenAI a rozhraním Azure API.

Požadavky

  • Předplatné Azure s platným způsobem platby. Bezplatná nebo zkušební předplatná Azure nebudou fungovat. Pokud nemáte předplatné Azure, vytvořte si placený účet Azure, abyste mohli začít.

  • Pracovní prostor Azure Machine Learning a výpočetní instance. Pokud tyto možnosti nemáte, vytvořte je pomocí kroků v rychlém startu : Vytvoření článku o prostředcích pracovního prostoru. Nabídka nasazení bezserverového modelu rozhraní API pro řadu modelů Jamba je k dispozici pouze u pracovních prostorů vytvořených v těchto oblastech:

    • East US
    • USA – východ 2
    • USA – středosever
    • Středojižní USA
    • USA – západ
    • USA – západ 3
    • Švédsko – střed

    Seznam oblastí dostupných pro každý z modelů podporujících nasazení koncových bodů bez serveru najdete v tématu Dostupnost oblastí pro modely v koncových bodech bezserverového rozhraní API.

  • Řízení přístupu na základě role v Azure (Azure RBAC) slouží k udělení přístupu k operacím ve službě Azure Machine Learning. Pokud chcete provést kroky v tomto článku, musí mít váš uživatelský účet přiřazenou roli vlastníka nebo přispěvatele pro dané předplatné Azure. Případně můžete svému účtu přiřadit vlastní roli, která má následující oprávnění:

    • V předplatném Azure – pokud chcete přihlásit pracovní prostor k odběru nabídky Azure Marketplace, jednou pro každý pracovní prostor pro každou nabídku:

      • Microsoft.MarketplaceOrdering/agreements/offers/plans/read
      • Microsoft.MarketplaceOrdering/agreements/offers/plans/sign/action
      • Microsoft.MarketplaceOrdering/offerTypes/publishers/offers/plans/agreements/read
      • Microsoft.Marketplace/offerTypes/publishers/offers/plans/agreements/read
      • Microsoft.SaaS/register/action
    • Ve skupině prostředků – vytvoření a použití prostředku SaaS:

      • Microsoft.SaaS/resources/read
      • Microsoft.SaaS/resources/write
    • V pracovním prostoru – nasazení koncových bodů (role datového vědce Azure Machine Learning už tato oprávnění obsahuje):

      • Microsoft.MachineLearningServices/workspaces/marketplaceModelSubscriptions/*
      • Microsoft.MachineLearningServices/workspaces/serverlessEndpoints/*

    Další informace o oprávněních najdete v tématu Správa přístupu k pracovnímu prostoru Azure Machine Learning.

Vytvoření nového nasazení

Tyto kroky demonstrují nasazení AI21 Jamba 1.5 Large nebo AI21 Jamba 1.5 Mini modely. Vytvoření nasazení:

  1. Přejděte na studio Azure Machine Learning.

  2. Vyberte pracovní prostor, ve kterém chcete modely nasadit. Pokud chcete použít nabídku nasazení modelu bezserverového rozhraní API, musí váš pracovní prostor patřit do jedné z podporovaných oblastí uvedených v požadavcích.

  3. Vyhledejte a vyberte model AI21, například AI21 Jamba 1.5 Large nebo AI21 Jamba 1.5 Mini AI21 Jamba Instruct z katalogu modelů.

    Případně můžete zahájit nasazení tak, že přejdete do pracovního prostoru a vyberete Koncové body bezserverové>koncové body>Vytvořit.

  4. Na stránce přehledu modelu v katalogu modelů vyberte Nasadit a pak bezserverové rozhraní API s azure AI Content Safety.

  5. V průvodci nasazením vyberte odkaz na podmínky Azure Marketplace, kde najdete další informace o podmínkách použití.

  6. Můžete také vybrat kartu Podrobnosti nabídky Marketplace, kde se dozvíte o cenách vybraného modelu.

  7. Pokud model nasazujete v pracovním prostoru poprvé, musíte se přihlásit k odběru pracovního prostoru pro konkrétní nabídku z Azure Marketplace. Tento krok vyžaduje, aby váš účet má oprávnění předplatného Azure a oprávnění skupiny prostředků uvedená v požadavcích. Každý pracovní prostor má vlastní předplatné konkrétní nabídky Azure Marketplace, která umožňuje řídit a monitorovat útratu. Vyberte Přihlášení k odběru a nasazení. V současné době můžete mít v rámci pracovního prostoru pouze jedno nasazení pro každý model.

  8. Jakmile si zaregistrujete pracovní prostor pro konkrétní nabídku Azure Marketplace, následná nasazení stejné nabídky ve stejném pracovním prostoru nevyžadují opětovné přihlášení k odběru. Proto nemusíte mít oprávnění na úrovni předplatného pro následná nasazení. Pokud se tento scénář týká vás, vyberte Pokračovat k nasazení.

  9. Pojmenujte nasazení. Tento název se stane součástí adresy URL rozhraní API nasazení. Tato adresa URL musí být v každé oblasti Azure jedinečná.

  10. Vyberte Nasadit. Počkejte, až se nasazení dokončí, a budete přesměrováni na stránku bezserverových koncových bodů.

  11. Výběrem koncového bodu otevřete stránku s podrobnostmi.

  12. Vyberte kartu Test a začněte s modelem pracovat.

  13. Můžete si také poznamenat cílovou adresu URL a tajný klíč pro volání nasazení a generování dokončení.

  14. Podrobnosti koncového bodu, adresu URL a přístupové klíče můžete kdykoli najít tak, že přejdete na koncové body bezserverové>koncové body pracovního prostoru.>

Další informace o fakturaci modelů rodiny AI21-Jamba nasazených jako bezserverové rozhraní API s fakturací založenými na tokenech s průběžnými platbami najdete v tématu Náklady a aspekty kvót pro řadu modelů Jamba nasazených jako bezserverové rozhraní API.

Využívání modelů rodiny Jamba jako bezserverového rozhraní API

Modely rodiny Jamba můžete využívat následujícím způsobem:

  1. V pracovním prostoru vyberte koncové body bez serveru koncové body>.
  2. Vyhledejte a vyberte nasazení, které jste vytvořili.
  3. Zkopírujte cílovou adresu URL a hodnoty tokenu klíče.
  4. Vytvořte požadavek rozhraní API pomocí rozhraní API pro odvozování modelů Azure AI na trase /chat/completions nebo klienta Azure AI21 na platformě /v1/chat/completions.

Další informace o používání rozhraní API najdete v referenční části.

Referenční informace o modelech rodiny Jamba nasazených jako bezserverové rozhraní API

Modely rodiny Jamba přijímají obě tato rozhraní API:

  • Rozhraní API pro odvozování modelů Azure AI [rozhraní API pro odvozování modelů Azure AI] na trase /chat/completions pro vícenásobný chat nebo jednopovědové odpovědi na otázky. Toto rozhraní API je podporované, protože modely rodiny Jamba jsou vyladěné pro dokončení chatu.
  • Klient Azure AI21 Další informace o volaném koncovém bodu REST najdete v dokumentaci REST k AI21.

Rozhraní API pro odvozování modelů Azure AI

Schéma rozhraní API pro odvozování modelů Azure AI najdete v referenčních informacích k článku o dokončování chatuspecifikaci OpenAPI lze získat ze samotného koncového bodu.

Jednoúčelový a vícenásobný chat má stejný formát požadavků a odpovědí, s tím rozdílem, že odpovídání na otázky (jednoúčelové) zahrnuje v žádosti jenom jednu uživatelskou zprávu, zatímco vícenásobný chat vyžaduje, abyste v každé žádosti odeslali celou historii zpráv chatu.

Ve vícenásobné konverzaci má vlákno zprávy následující atributy:

  • Zahrnuje všechny zprávy od uživatele a modelu seřazené od nejstarších po nejnovější.
  • Zprávy se střídají mezi user zprávami rolí a assistant mezi zprávami rolí
  • Volitelně vlákno zprávy začíná systémovou zprávou, která poskytuje kontext.

Následující pseudokód je příkladem zásobníku zpráv pro čtvrté volání v žádosti chatu, která obsahuje počáteční systémovou zprávu.

[
    {"role": "system", "message": "Some contextual information here"},
    {"role": "user", "message": "User message 1"},
    {"role": "assistant", "message": "System response 1"},
    {"role": "user", "message": "User message 2"},
    {"role": "assistant"; "message": "System response 2"},
    {"role": "user", "message": "User message 3"},
    {"role": "assistant", "message": "System response 3"},
    {"role": "user", "message": "User message 4"}
]

Klient Azure AI21

Pomocí metody POST odešlete požadavek na trasu /v1/chat/completions :

Požádat

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

Schéma požadavku

Datová část je formátovaný řetězec JSON obsahující následující parametry:

Klíč Typ Povinné nebo výchozí Povolené hodnoty Popis
model string Y jamba-instructnebo AI21 Jamba 1.5 LargeAI21 Jamba 1.5 Mini
messages list[object] Y Seznam objektů, jeden na zprávu, od nejstaršího po nejnovější Nejstarší zprávou může být role system. Všechny pozdější zprávy se musí střídat mezi rolemi uživatele a asistenta. Podívejte se na definici objektu zprávy níže.
max_tokens integer N
4096
0 – 4096 Maximální počettokench Nejlepší způsob, jak omezit délku výstupu, je obvykle poskytnutím limitu délky v příkazovém řádku systému (například "omezit odpovědi na tři věty").
temperature float N
1
0.0 – 2.0 Kolik variant se má zadat v každé odpovědi. Nastavení této hodnoty na 0 zaručuje stejnou odpověď na stejnou otázku pokaždé. Nastavení vyšší hodnoty podporuje větší variaci. Upraví distribuci, ze které se vzorkují tokeny. Doporučujeme toto nebo top_p, ale ne obojí.
top_p float N
1
0 <hodnota<=1,0 Omezte fond dalších tokenů v každém kroku na horní N percentil možných tokenů, kde 1,0 znamená fond všech možných tokenů a 0,01 znamená fond pouze nejpravděpodobnějších dalších tokenů.
stop string NEBO list[string] N
"" Řetězec nebo seznam řetězců obsahujících slova, ve kterých má rozhraní API přestat generovat výstup. Newlines are allowed as "\n". Vrácený text nebude obsahovat sekvenci zastavení.
n integer N
1
1 – 16 Kolikodpovědích S dětským hřištěm Azure AI Studio pracujeme n=1 na více odezvách na dětském hřišti.
stream boolean N
False
True NEBO False Jestli chcete povolit streamování. Pokud je hodnota true, vrátí se výsledky po jednom tokenu. Pokud je nastavená hodnota true, n musí být nastavená hodnota 1, která se nastaví automaticky.

Objekt messages má následující pole:

  • role: [řetězec, povinný] Autor nebo účel zprávy. Jedna z následujících hodnot:
    • user: Vstup poskytnutý uživatelem. Všechny zde uvedené pokyny, které jsou v konfliktu s pokyny uvedené v příkazovém system řádku, mají přednost před pokyny k zobrazení výzvy system .
    • assistant: Odpověď vygenerovaná modelem.
    • system: Počáteční pokyny k poskytnutí obecných pokynů k tónu a hlasu vygenerované zprávy. Počáteční systémová zpráva je volitelná, ale doporučuje se poskytnout pokyny k tónu chatu. Například "Jste užitečný chatbot s pozadím ve vědách země a okouzlující francouzský přízvuk."
  • content: [řetězec, povinné] Obsah zprávy.

Příklad požadavku

Příklad s jedním otočením

{
    "model": "jamba-instruct",
    "messages": [
    {
      "role":"user",
      "content":"Who was the first emperor of rome?"}
  ],
    "temperature": 0.8,
    "max_tokens": 512
}

Příklad chatu (čtvrtý požadavek obsahující odpověď třetího uživatele)

{
  "model": "jamba-instruct",
  "messages": [
     {"role": "system",
      "content": "You are a helpful genie just released from a bottle. You start the conversation with 'Thank you for freeing me! I grant you one wish.'"},
     {"role":"user",
      "content":"I want a new car"},
     {"role":"assistant",
      "content":"🚗 Great choice, I can definitely help you with that! Before I grant your wish, can you tell me what kind of car you're looking for?"},
     {"role":"user",
      "content":"A corvette"},
     {"role":"assistant",
      "content":"Great choice! What color and year?"},
     {"role":"user",
      "content":"1963 black split window Corvette"}
  ],
  "n":3
}

Schéma odpovědi

Odpověď mírně závisí na tom, jestli se výsledek streamuje, nebo ne.

Ve výsledku, který není streamovaný, se všechny odpovědi doručují společně v jedné odpovědi, která obsahuje usage také vlastnost.

Ve výsledku streamovaného datového proudu

  • Každá odpověď obsahuje v choices poli jeden token.
  • Struktura objektu choices se liší.
  • Pouze poslední odpověď obsahuje usage objekt.
  • Celá odpověď je zabalena do objektu data .
  • Poslední objekt odpovědi je data: [DONE].

Datová část odpovědi je slovník s následujícími poli.

Klíč Typ Popis
id string Jedinečný identifikátor požadavku.
model string Název použitého modelu
choices list[object] Text odpovědi vygenerovaný modelem. V případě odpovědi, která není streamovaná, se jedná o seznam s položkami n . V případě odpovědi na streamování se jedná o jeden objekt obsahující jeden token. Podívejte se na popis objektu níže.
created integer Časové razítko unixu (v sekundách) doby vytvoření dokončení.
object string Typ objektu, který je vždy chat.completion.
usage object Statistiky využití žádosti o dokončení Podrobnosti najdete níže.

Objekt choices odpovědi obsahuje modelem vygenerovanou odpověď. Objekt má následující pole:

Klíč Typ Popis
index integer Index zprávy založený na nule v seznamu zpráv. Nemusí odpovídat pozici v seznamu. U streamovaných zpráv je to vždy nula.
message NEBO delta object Vygenerovaná zpráva (nebo token v odpovědi streamování) Stejný typ objektu, jak je popsáno v požadavku se dvěma změnami:
- V odpovědi bez streamování se tento objekt nazývá message.
- V odpovědi na streamování se volá deltaa obsahuje buď message nebo role ale nikdy obojí.
finish_reason string Důvod, proč model přestal generovat tokeny:
- stop: Model dosáhl přirozeného bodu zastavení nebo zadané sekvence zastavení.
- length: Byl dosažen maximální počet tokenů.
- content_filter: Vygenerovaná odpověď porušila zodpovědnou zásadu AI.
- null: Pouze streamování. V odpovědi na streamování budou všechny odpovědi s výjimkou poslední .null

Objekt usage odpovědi obsahuje následující pole.

Klíč Typ Hodnota
prompt_tokens integer Počet tokenů v příkazovém řádku Všimněte si, že počet tokenů výzvy zahrnuje dodatečné tokeny přidané systémem pro formátování seznamu výzev do jednoho řetězce podle požadavků modelu. Počet nadbytečných tokenů je obvykle úměrný počtu zpráv ve vlákně a měl by být relativně malý.
completion_tokens integer Počet tokenů vygenerovaných v dokončení
total_tokens integer Celkový počet tokenů

Příklad odpovědi bez streamování

{
  "id":"cmpl-524c73beb8714d878e18c3b5abd09f2a",
  "choices":[
    {
      "index":0,
      "message":{
        "role":"assistant",
        "content":"The human nose can detect over 1 trillion different scents, making it one of the most sensitive smell organs in the animal kingdom."
      },
      "finishReason":"stop"
    }
  ],
  "created": 1717487036,
  "usage":{
    "promptTokens":116,
    "completionTokens":30,
    "totalTokens":146
  }
}

Příklad odpovědi streamování

data: {"id": "cmpl-8e8b2f6556f94714b0cd5cfe3eeb45fc", "choices": [{"index": 0, "delta": {"role": "assistant"}, "created": 1717487336, "finish_reason": null}]}
data: {"id": "cmpl-8e8b2f6556f94714b0cd5cfe3eeb45fc", "choices": [{"index": 0, "delta": {"content": ""}, "created": 1717487336, "finish_reason": null}]}
data: {"id": "cmpl-8e8b2f6556f94714b0cd5cfe3eeb45fc", "choices": [{"index": 0, "delta": {"content": " The"}, "created": 1717487336, "finish_reason": null}]}
data: {"id": "cmpl-8e8b2f6556f94714b0cd5cfe3eeb45fc", "choices": [{"index": 0, "delta": {"content": " first e"}, "created": 1717487336, "finish_reason": null}]}
data: {"id": "cmpl-8e8b2f6556f94714b0cd5cfe3eeb45fc", "choices": [{"index": 0, "delta": {"content": "mpe"}, "created": 1717487336, "finish_reason": null}]}
... 115 responses omitted for sanity ...
data: {"id": "cmpl-8e8b2f6556f94714b0cd5cfe3eeb45fc", "choices": [{"index": 0, "delta": {"content": "me"}, "created": 1717487336, "finish_reason": null}]}
data: {"id": "cmpl-8e8b2f6556f94714b0cd5cfe3eeb45fc", "choices": [{"index": 0, "delta": {"content": "."}, "created": 1717487336,"finish_reason": "stop"}], "usage": {"prompt_tokens": 107, "completion_tokens": 121, "total_tokens": 228}}
data: [DONE]

Náklady a kvóty

Důležité informace o nákladech a kvótách pro modely rodiny Jamba nasazené jako bezserverové rozhraní API

Modely rodiny Jamba se nasazují jako bezserverové rozhraní API a nabízí AI21 prostřednictvím Azure Marketplace a je integrovaná se sadou Azure AI Studio pro použití. Ceny na Azure Marketplace najdete při nasazování nebo dolaďování modelů.

Pokaždé, když si pracovní prostor předplatí danou nabídku modelu z Azure Marketplace, vytvoří se nový zdroj pro sledování nákladů spojených s jeho spotřebou. Ke sledování nákladů spojených s odvozováním a dolaďováním se používá stejný zdroj, nicméně ke sledování každého scénáře je k dispozici více měřidel nezávisle.

Další informace o sledování nákladů naleznete v části Sledování nákladů na modely nabízené prostřednictvím služby Azure Marketplace.

Kvóta se spravuje podle nasazení. Každé nasazení má limit rychlosti 200 000 tokenů za minutu a 1 000 požadavků rozhraní API za minutu. V současné době ale omezujeme jedno nasazení na model na jeden projekt. Pokud aktuální limity sazeb pro vaše scénáře nestačí, obraťte se na podporu Microsoft Azure.

Filtrování obsahu

Modely nasazené jako bezserverové rozhraní API jsou chráněné zabezpečením obsahu Azure AI. S povolenou bezpečností obsahu Azure AI prochází výzva i dokončení souborem klasifikačních modelů určených k detekci a zabránění výstupu škodlivého obsahu. Systém filtrování obsahu (Preview) detekuje a provádí akce s konkrétními kategoriemi potenciálně škodlivého obsahu ve vstupních výzev i dokončení výstupu. Přečtěte si další informace o bezpečnosti obsahu Azure AI.