Nasazení rodinných modelů Jamba od AI21 pomocí Azure AI Studia

Důležité

Položky označené (Preview) v tomto článku jsou aktuálně 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í Azure AI Studia 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.

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.

Důležité

Modely, které jsou ve verzi Preview, jsou na kartách modelu v katalogu modelů označené jako náhled .

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.

  • Centrum AI Studio. Nabídka nasazení bezserverového modelu rozhraní API pro modely rodiny Jamba je dostupná 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 demonstrují nasazení AI21 Jamba 1.5 Large nebo AI21 Jamba 1.5 Mini modely. 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 model AI21 Jamba 1.5 Large AI21 nebo AI21 Jamba 1.5 Mini AI21 Jamba Instruct otevřete jeho stránku Podrobností.

  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 model AI21 Jamba 1.5 Large AI21 nebo AI21 Jamba 1.5 Mini 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 modely rodiny AI21-Jamba, 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>.

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 Informace o nákladech a kvótách pro Jamba Instruct nasazené 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. 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 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 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í 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-1.5-large nebo jamba-1.5-minijamba-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.
tools array[tool] N "" Seznam tools modelu může volat. V současné době se jako nástroj podporují jenom funkce. Pomocí tohoto příkazu můžete poskytnout seznam funkcí, pro které může model generovat vstupy JSON. Podporuje se maximálně 128 funkcí.
response_format object N
null
"" Nastavení pro { "type": "json_object" } povolení režimu JSON, který zaručuje, že zpráva, kterou model vygeneruje, je platný JSON.
documents array[document] N "" Seznamrelevantních documents V podstatě funguje jako rozšíření výzvy s možností přidat metadata. každý dokument je slovník.

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.

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

  • type (povinné; str) – typ nástroje. V současné době se podporuje jenom funkce.
  • function (povinné; objekt) – podrobnosti funkce.
    • name (povinné; str) – název funkce, která se má volat.
    • description (volitelné; str) – popis toho, co funkce dělá.
    • parameters (volitelné; objekt) – Parametry, které funkce přijme, jsou popsány jako objekt schématu JSON.

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

  • id (volitelné; str) – jedinečný identifikátor. budou propojeny s citacemi. maximálně 128 znaků.
  • content (povinné; str) - obsah dokumentu
  • metadata (volitelné; pole Metadata)
    • key (povinné; str) – typ metadat, například author, date, url atd. Mělo by to být věci, kterým model rozumí.
    • value (povinné; str) - hodnota metadat

Příklad požadavku

Příklad Jamba 1,5 velký a Jamba 1.5 mini

{
   "model":"jamba-1.5-large",  <jamba-1.5-large|jamba-1.5-mini>
   "messages":[
      {
         "role":"user",
         "content":"I need help with your product. Can you please assist?"
      }
   ],
   "temperature":1,
   "top_p":1,
   "n":1,
   "stop":"\n",
   "stream":false
}

Příklad Jamba 1.5 large a Jamba 1.5 mini s dokumenty

{
   "model":"jamba-1.5-large",  <jamba-1.5-large|jamba-1.5-mini>
   "messages":[
      {
         "role":"system",
         "content":'''<documents>
          # Documents

          You can use the following documents for reference:

          ## Document ID: 0
          Text: Harry Potter is a series of seven fantasy novels written by British author J. K. Rowling.

          ## Document ID: 1
          Text: The Great Gatsby is a novel by American writer F. Scott Fitzgerald.
          </documents>'''},

       {
           "role":"user",
           "content":"Who wrote Harry Potter?"
       }
   ],
   "temperature":0.4,
   "top_p":1,
   "n":1,
   "stop":"\n",
   "stream":false
}

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.
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 message odpovědi obsahuje modelem vygenerovanou odpověď. Objekt má následující pole:

Klíč Typ Popis
role string Role autora této zprávy
content string or null Obsah zprávy.
tool_calls array or null Nástroj volá volání vygenerovaná modelem.

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

Klíč Typ Popis
id string ID volání nástroje.
type string Typ nástroje. V současné době se podporuje pouze function .
function object Funkce, kterou model volal.

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

Klíč Typ Popis
name string Název funkce, která se má volat.
arguments string Argumenty pro volání funkce s vygenerovaným modelem ve formátu JSON.

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.