Sdílet prostřednictvím


Nasazení modelu Jamba-Instruct od AI21 pomocí Azure AI Studia

Důležité

Některé funkce popsané v tomto článku můžou být dostupné jenom ve verzi 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í Azure AI Studia nasadit model Jamba-Instruct od AI21 jako bezserverové rozhraní API s průběžnými platbami.

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

Nasazení modelu Jamba Instruct 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-Instruct 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 Instruct nasazené jako bezserverové rozhraní API, prozkoumejte naše integrace s LangChain, LiteLLM, OpenAI a rozhraním Azure API.

Tip

Podívejte se na naše oznámení modelu Jamba-Instruct AI21, který je k dispozici v katalogu modelů Azure AI prostřednictvím blogu AI21 a blogu Microsoft Tech Community.

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.

  • Centrum AI Studio. Nabídka nasazení modelu bezserverového rozhraní API pro Jamba Instruct je k dispozici pouze u center 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.

  • Projekt Azure AI Studio.

  • Řízení přístupu na základě role v Azure (Azure RBAC) se používá k udělení přístupu k operacím v Azure AI Studiu. 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ředplatit projekt AI Studio k nabídce Azure Marketplace, jednou pro každý projekt na jednu 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 projektu AI Studio – nasazení koncových bodů (role Vývojáře Azure AI už obsahuje tato oprávnění):

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

    Další informace o oprávněních najdete v tématu Řízení přístupu na základě role v nástroji Azure AI Studio.

Vytvoření nového nasazení

Tyto kroky ukazují nasazení AI21-Jamba-Instruct. Vytvoření nasazení:

  1. Přihlaste se k Azure AI Studiu.
  2. Na levém bočním panelu vyberte Katalog modelů.
  3. Vyhledejte a vyberte AI21-Jamba-Instruct k otevření stránky Podrobnosti.
  4. Výběrem možnosti Nasadit otevřete okno nasazení bezserverového rozhraní API pro model.
  5. Případně můžete zahájit nasazení spuštěním projektu v AI Studiu.
    1. Na levém bočním panelu projektu vyberte Nasazení komponent>.
    2. Vyberte + Vytvořit nasazení.
    3. Vyhledejte a vyberte AI21-Jamba-Instruct. otevřete stránku Podrobnosti modelu.
    4. Výběrem možnosti Potvrdit otevřete okno nasazení bezserverového rozhraní API pro model.
  6. Vyberte projekt, ve kterém chcete model nasadit. Pokud chcete nasadit model AI21-Jamba-Instruct, musí být váš projekt v jedné z oblastí uvedených v části Požadavky .
  7. V průvodci nasazením vyberte odkaz na podmínky Azure Marketplace, abyste se dozvěděli více o podmínkách použití.
  8. Vyberte kartu Ceny a podmínky a seznamte se s cenami pro vybraný model.
  9. Vyberte tlačítko Přihlásit se k odběru a nasazení . Pokud model nasazujete v projektu poprvé, musíte se přihlásit k odběru projektu pro konkrétní nabídku. Tento krok vyžaduje, aby váš účet má oprávnění předplatného Azure a oprávnění skupiny prostředků uvedená v části Požadavky. Každý projekt má vlastní předplatné konkrétní nabídky modelu Azure Marketplace, která umožňuje řídit a monitorovat útraty. V současné době můžete mít pro každý model v rámci projektu pouze jedno nasazení.
  10. Jakmile se přihlásíte k odběru projektu pro konkrétní nabídku Azure Marketplace, následná nasazení stejné nabídky ve stejném projektu nevyžadují opětovné přihlášení k odběru. Pokud se tento scénář týká vás, můžete vybrat možnost Pokračovat k nasazení .
  11. 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á.
  12. Vyberte Nasadit. Počkejte, až bude nasazení připravené a budete přesměrováni na stránku Nasazení.
  13. Vraťte se na stránku Nasazení, vyberte nasazení a poznamenejte si cílovou adresu URL koncového bodu a tajný klíč. Další informace o používání rozhraní API najdete v části Referenční informace.
  14. Podrobnosti o koncovém bodu, adresu URL a přístupové klíče můžete kdykoli najít tak, že přejdete na stránku přehledu projektu. Potom na levém bočním panelu projektu vyberte Nasazení komponent>.

Informace o fakturaci modelu AI21-Jamba-Instruct nasazeného jako bezserverové rozhraní API s fakturací založenými na tokenech s průběžnými platbami najdete v tématu Informace o nákladech a kvótách pro Jamba Instruct nasazené jako bezserverové rozhraní API.

Využití Jamba – instrukce jako bezserverového rozhraní API

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

  1. Na stránce přehledu projektu přejděte na levý boční panel a vyberte Nasazení součástí>.

  2. Vyhledejte a vyberte nasazení, které jste vytvořili.

  3. Zkopírujte cílovou adresu URL a hodnotu klíče.

  4. Vytvořte požadavek rozhraní API.

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

Referenční informace pro Jamba Instruct nasazené jako bezserverové rozhraní API

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

  • 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 Jamba Instruct je 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í chatu a specifikaci OpenAPI můžete 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 Musí být jamba-instruct
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 Jamba Instruct nasazené jako bezserverové rozhraní API

Model Jamba Instruct je nasazený 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 zjistí a provede 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.