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í:
Přihlaste se k Azure AI Studiu.
Na levém bočním panelu vyberte Katalog modelů.
Vyhledejte a vyberte model
AI21 Jamba 1.5 Large
AI21 neboAI21 Jamba 1.5 Mini
AI21 Jamba Instruct
otevřete jeho stránku Podrobností.Výběrem možnosti Nasadit otevřete okno nasazení bezserverového rozhraní API pro model.
Případně můžete zahájit nasazení spuštěním projektu v AI Studiu.
Na levém bočním panelu projektu vyberte Nasazení komponent>.
Vyberte + Vytvořit nasazení.
Vyhledejte a vyberte model
AI21 Jamba 1.5 Large
AI21 neboAI21 Jamba 1.5 Mini
AI21 Jamba Instruct
otevřete stránku Podrobnosti modelu.Výběrem možnosti Potvrdit otevřete okno nasazení bezserverového rozhraní API pro model.
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 .
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í.
Vyberte kartu Ceny a podmínky a seznamte se s cenami pro vybraný model.
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í.
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í .
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á.
Vyberte Nasadit. Počkejte, až bude nasazení připravené a budete přesměrováni na stránku Nasazení.
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.
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:
Na stránce přehledu projektu přejděte na levý boční panel a vyberte Nasazení součástí>.
Vyhledejte a vyberte nasazení, které jste vytvořili.
Zkopírujte cílovou adresu URL a hodnotu klíče.
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í aassistant
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-mini 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. |
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émsystem
řádku, mají přednost před pokyny k zobrazení výzvysystem
.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 dokumentumetadata
(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á delta a 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.