Megosztás a következőn keresztül:


Az AI21 Jamba-Instruct modelljének üzembe helyezése az Azure Machine Learning Studióval

Ebből a cikkből megtudhatja, hogyan helyezheti üzembe az AI21 Jamba-Instruct modelljét kiszolgáló nélküli API-ként, használatalapú számlázással az Azure Machine Learning Studióval.

A Jamba Instruct modell az AI21 éles üzemű Mamba-alapú nagyméretű nyelvi modellje (LLM), amely az AI21 hibrid Mamba-Transformer architektúráját használja. Ez az AI21 hibrid strukturált állapottérmodelljének (SSM) jambamodelljének utasításra hangolt verziója. A Jamba Instruct modell megbízható kereskedelmi használatra készült a minőség és a teljesítmény szempontjából.

Fontos

Ez a funkció jelenleg nyilvános előzetes verzióban érhető el. Ez az előzetes verzió szolgáltatásszintű szerződés nélkül érhető el, és éles számítási feladatokhoz nem javasoljuk. Előfordulhat, hogy néhány funkció nem támogatott, vagy korlátozott képességekkel rendelkezik.

További információ: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

A Jamba Instruct-modell üzembe helyezése kiszolgáló nélküli API-ként

A modellkatalógus egyes modelljei üzembe helyezhetők kiszolgáló nélküli API-ként használatalapú fizetéses számlázással, amely lehetővé teszi, hogy api-ként használhassa őket anélkül, hogy az előfizetésében üzemeltetné őket, miközben a vállalati biztonsági és megfelelőségi szervezeteknek szükségük van rájuk. Ez az üzembe helyezési beállítás nem igényel kvótát az előfizetésből.

A kiszolgáló nélküli API-ként üzembe helyezett AI21-Jamba-Instruct modellt használatalapú fizetéses számlázással az AI21 kínálja a Microsoft Azure Marketplace-en keresztül. Az AI21 módosíthatja vagy frissítheti a modell használati feltételeit és díjszabását.

A Kiszolgáló nélküli API-ként üzembe helyezett Jamba Instruct használatának megkezdéséhez tekintse meg a LangChain, a LiteLLM, az OpenAI és az Azure API integrációját.

Tipp.

Az AI21 Jamba-Instruct modelljéről szóló közleményeinket az AI21 blogján és a Microsoft Tech Community Blogon tekinthetjük meg, amely most érhető el az Azure AI-modellkatalógusban.

Előfeltételek

  • Érvényes fizetési móddal rendelkező Azure-előfizetés. Az ingyenes vagy próbaverziós Azure-előfizetések nem működnek. Ha nem rendelkezik Azure-előfizetéssel, hozzon létre egy fizetős Azure-fiókot .

  • Egy Azure Machine Learning-munkaterület és egy számítási példány. Ha nem rendelkezik ezekkel, a gyorsútmutató lépéseit követve hozza létre a munkaterület erőforrásait ismertető cikket. A Jamba Instruct kiszolgáló nélküli API-modell üzembehelyezési ajánlata csak az ezekben a régiókban létrehozott munkaterületekkel érhető el:

    • USA keleti régiója
    • USA 2. keleti régiója
    • USA északi középső régiója
    • USA déli középső régiója
    • USA nyugati régiója
    • USA 3. nyugati régiója
    • Közép-Svédország

    A kiszolgáló nélküli API-végpontok üzembe helyezését támogató egyes modellekhez elérhető régiók listáját a kiszolgáló nélküli API-végpontok modelljeinek Régiónkénti rendelkezésre állása című témakörben találja.

  • Az Azure-beli szerepköralapú hozzáférés-vezérlések (Azure RBAC) az Azure gépi tanulás műveleteihez való hozzáférést biztosítják. A jelen cikkben ismertetett lépések végrehajtásához a felhasználói fiókjához az Azure-előfizetés tulajdonosi vagy közreműködői szerepkört kell hozzárendelni. Másik lehetőségként a fiókhoz a következő engedélyekkel rendelkező egyéni szerepkör rendelhető hozzá:

    • Az Azure-előfizetésben – a munkaterületnek az Azure Marketplace-ajánlatra való előfizetése érdekében, munkaterületenként egyszer, ajánlatonként:

      • 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
    • Az erőforráscsoporton – az SaaS-erőforrás létrehozása és használata érdekében:

      • Microsoft.SaaS/resources/read
      • Microsoft.SaaS/resources/write
    • A munkaterületen – végpontok üzembe helyezése érdekében (az Azure gépi tanulás adattudós szerepkör már tartalmazza ezeket az engedélyeket):

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

    Az engedélyekről további információt az Azure gépi tanulás munkaterülethez való hozzáférés kezelése témakörnél talál.

Új üzembe helyezés létrehozása

Ezek a lépések bemutatják az AI21-Jamba-Instruct üzembe helyezését. Üzembe helyezés létrehozása:

  1. Nyissa meg az Azure Machine Learning Studiót.

  2. Válassza ki azt a munkaterületet, amelyben üzembe szeretné helyezni a modelleket. A kiszolgáló nélküli API-modell üzembe helyezési ajánlatának használatához a munkaterületnek az USA 2 . keleti régiójához vagy Svédország középső régiójához kell tartoznia.

  3. Válassza ki az üzembe helyezni kívánt modellt a modellkatalógusból.

    Másik lehetőségként elindíthatja az üzembe helyezést a munkaterületre lépve, és válassza a Kiszolgáló nélküli végpontok>>létrehozása lehetőséget.

  4. A modellkatalógus áttekintési lapján válassza az Üzembe helyezés , majd a Kiszolgáló nélküli API és az Azure AI Content Safety lehetőséget.

  5. Az üzembe helyezési varázslóban válassza az Azure Marketplace-feltételekre mutató hivatkozást, hogy többet tudjon meg a használati feltételekről.

  6. A Marketplace ajánlat részletei lapjára kattintva megismerheti a kiválasztott modell díjszabását.

  7. Ha ez az első alkalom, hogy üzembe helyezi a modellt a munkaterületen, elő kell fizetnie a munkaterületet az Adott ajánlatra az Azure Marketplace-ről. Ehhez a lépéshez a fióknak rendelkeznie kell az Előfeltételek között felsorolt Azure-előfizetési engedélyekkel és erőforráscsoport-engedélyekkel. Minden munkaterület saját előfizetéssel rendelkezik az adott Azure Marketplace-ajánlathoz, amely lehetővé teszi a kiadások szabályozását és monitorozását. Válassza a Feliratkozás és üzembe helyezés lehetőséget. Jelenleg egy munkaterületen belül minden modellhez csak egy üzemelő példány lehet.

  8. Miután regisztrálja a munkaterületet az adott Azure Marketplace-ajánlatra, ugyanazon ajánlat későbbi üzembe helyezése ugyanazon a munkaterületen nem igényel újra előfizetést. Ezért nem kell előfizetési szintű engedélyekkel rendelkeznie a későbbi üzembe helyezésekhez. Ha ez a forgatókönyv vonatkozik Önre, válassza a Tovább telepítendő lehetőséget.

  9. Adjon nevet az üzembe helyezésnek. Ez a név az üzembehelyezési API URL-címének részévé válik. Ennek az URL-címnek minden Azure-régióban egyedinek kell lennie.

  10. Válassza az Üzembe helyezés lehetőséget. Várja meg, amíg az üzembe helyezés befejeződik, és a rendszer átirányítja a kiszolgáló nélküli végpontok lapjára.

  11. Válassza ki a végpontot a Részletek lap megnyitásához.

  12. Válassza a Teszt fület a modell használatához.

  13. A cél URL-címét és titkos kulcsát is feljegyzheti az üzembe helyezés meghívásához és a befejezések létrehozásához.

  14. A Végpontok kiszolgáló nélküli végpontjaira>lépve> mindig megtalálhatja a végpont részleteit, URL-címét és hozzáférési kulcsait.

A kiszolgáló nélküli API-ként üzembe helyezett Jamba-modellek számlázásának megismeréséhez tekintse meg a kiszolgáló nélküli API-ként üzembe helyezett Jamba Instruct költség- és kvótaalapú szempontjait.

A Jamba Instruct szolgáltatásként való felhasználása

A Jamba Instruct-modelleket az alábbiak szerint használhatja fel:

  1. A munkaterületen válassza a Kiszolgáló nélküli végpontok>végpontokat.
  2. Keresse meg és válassza ki a létrehozott üzembe helyezést.
  3. Másolja ki a cél URL-címét és a kulcsjogkivonat értékeit.
  4. Hozzon létre egy API-kérést az útvonalOn található Azure AI-modell következtetési API-jával vagy az AI21 Azure-ügyfélprogramjával/v1/chat/completions./chat/completions

Az API-k használatával kapcsolatos további információkért tekintse meg a referenciaszakaszt.

A kiszolgáló nélküli API-ként üzembe helyezett Jamba Instruct referenciája

A Jamba Instruct modellek mindkét API-t elfogadják:

  • Az Azure AI-modell következtetési API [Azure AI Model Inference API] az útvonalon /chat/completions többfordulós csevegéshez vagy egyfordulós kérdés megválaszolásához. Ez az API támogatott, mert a Jamba Instruct finomhangolt a csevegés befejezéséhez.
  • Az AI21 Azure-ügyfele. A meghívandó REST-végpontról további információt az AI21 REST-dokumentációjában talál.

Azure AI-modell következtetési API

Az Azure AI-modell következtetési API sémája megtalálható a Csevegésbefejezések referenciája című cikkben, és OpenAPI-specifikáció is beszerezhető magáról a végpontról.

Az egyfordulós és a többfordulós csevegésnek ugyanaz a kérés- és válaszformátuma, kivéve, hogy a kérdések megválaszolása (egyfordulós) csak egyetlen felhasználói üzenetet tartalmaz a kérésben, míg a többfordulós csevegéshez minden kérésben el kell küldenie a teljes csevegőüzenet-előzményt.

Többfordulós csevegés esetén az üzenetszál a következő attribútumokkal rendelkezik:

  • Tartalmazza a felhasználótól és a modelltől érkező összes üzenetet, amely a legrégebbitől a legújabbig van rendelve.
  • Üzenetek váltakozása a assistant szerepkörüzenetek között user
  • Ha szeretné, az üzenetszál egy rendszerüzenettel kezdődik, amely kontextust biztosít.

Az alábbi pszeudokód egy kezdeti rendszerüzenetet tartalmazó csevegési kérés negyedik hívásának üzenetveremét szemlélteti.

[
    {"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"}
]

Az AI21 Azure-ügyfele

A metódus POST használatával küldje el a kérést az /v1/chat/completions útvonalra:

Kérelem

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

Séma kérése

A hasznos adat egy JSON formátumú sztring, amely a következő paramétereket tartalmazza:

Kulcs Típus Kötelező/Alapértelmezett Megengedett értékek Leírás
model string I Kell jamba-instruct
messages list[object] I Az objektumok listája üzenetenként, a legrégebbitől a legújabbig. A legrégebbi üzenet lehet a szerepkör system. Minden későbbi üzenetnek váltania kell a felhasználói és a segédszerepkörök között. Lásd az alábbi üzenetobjektum-definíciót.
max_tokens integer N
4096
0 – 4096 Az egyes generált válaszüzenetekhez engedélyezhető jogkivonatok maximális száma. Általában a kimeneti hossz korlátozásának legjobb módja a rendszerkérésben megadott hosszkorlát (például "a válaszok korlátozása három mondatra")
temperature float N
1
0.0 – 2.0 Mennyi variációt kell megadni az egyes válaszokban. Ha ezt az értéket 0 értékre állítja, minden alkalommal ugyanazt a választ adja ugyanarra a kérdésre. A magasabb érték beállítása több variációt ösztönöz. Módosítja a jogkivonatok mintáinak eloszlását. Javasoljuk, hogy módosítsa ezt vagy top_p, de mindkettőt nem.
top_p float N
1
0 <value<=1.0 A következő tokenek készletének korlátozása minden lépésben a lehetséges tokenek felső N percentilisére, ahol az 1.0 az összes lehetséges jogkivonat készletét jelenti, a 0.01 pedig csak a legvalószínűbb következő tokenek készletét jelenti.
stop string VAGY list[string] N
"" Sztring vagy azon sztringek listája, amelyekben az API-nak le kell állítania a kimenet generálását. Az új vonalak "\n" néven engedélyezettek. A visszaadott szöveg nem tartalmazza a leállítási sorrendet.
n integer N
1
1 – 16 Hány választ kell generálni az egyes kérdésekhez. Az Azure AI Studio játszóterével, n=1 a többválaszos játszótéren dolgozunk.
stream boolean N
False
True VAGY False Engedélyezi-e a streamelést. Ha igaz, az eredmények egyszerre egy jogkivonatot adnak vissza. Ha igaz értékre van állítva, n akkor 1-nek kell lennie, amely automatikusan be van állítva.

Az messages objektum a következő mezőket tartalmazza:

  • role: [sztring, kötelező] Az üzenet szerzője vagy célja. Az alábbi értékek egyike:
    • user: A felhasználó által megadott bemenet. Az itt megadott utasítások, amelyek ütköznek a system parancssorban megadott utasításokkal, elsőbbséget élveznek a parancssori system utasításokkal szemben.
    • assistant: A modell által generált válasz.
    • system: Kezdeti utasítások a generált üzenet hangjának és hangjának általános útmutatásához. A kezdeti rendszerüzenet nem kötelező, de ajánlott útmutatást adni a csevegés hangneméhez. Például: "Ön egy hasznos csevegőrobot, amely rendelkezik földtudományi háttérrel és bájos francia akcentussal."
  • content: [sztring, kötelező] Az üzenet tartalma.

Példa kérése

Egyfordulós példa

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

Csevegési példa (harmadik felhasználói választ tartalmazó negyedik kérés)

{
  "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
}

Válaszséma

A válasz kissé attól függ, hogy az eredmény streamelt-e vagy sem.

Nem streamelt eredmény esetén minden válasz egyetlen válaszban érkezik, amely egy tulajdonságot usage is tartalmaz.

Streamelt eredményben

  • Minden válasz egyetlen jogkivonatot tartalmaz a choices mezőben.
  • Az choices objektumstruktúra más.
  • Csak az utolsó válasz tartalmaz objektumot usage .
  • A teljes válasz egy data objektumba van csomagolva.
  • A végső válaszobjektum a következő data: [DONE]: .

A válasz hasznos adatai egy szótár, amely a következő mezőket tartalmazza.

Kulcs Típus Leírás
id string A kérés egyedi azonosítója.
model string A használt modell neve.
choices list[object] A modell által létrehozott válaszszöveg. Nem streamelt válasz esetén ez egy elemeket tartalmazó n lista. Streamelési válasz esetén egyetlen objektum, amely egyetlen jogkivonatot tartalmaz. Tekintse meg az alábbi objektumleírást.
created integer A befejezés létrehozásának unix-időbélyege (másodpercben).
object string Az objektum típusa, amely mindig chat.completion.
usage object A befejezési kérelem használati statisztikái. Részletekért lásd alább.

A choices válaszobjektum a modell által létrehozott választ tartalmazza. Az objektum a következő mezőket tartalmazza:

Kulcs Típus Leírás
index integer Az üzenet nulla alapú indexe az üzenetek listájában. Lehet, hogy nem felel meg a listában szereplő pozíciónak. Streamelt üzenetek esetén ez mindig nulla.
message VAGY delta object A létrehozott üzenet (vagy a streamelési válasz jogkivonata). Ugyanaz az objektumtípus, mint a kérelemben leírt két módosítással:
- A nem streamelt válaszban ezt az objektumot nevezzük message.
- Streamelési válasz esetén a rendszer meghívja delta, és mindkettőt message tartalmazza, de role nem mindkettőt.
finish_reason string Az ok, amiért a modell leállította a jogkivonatok előállítását:
- stop: A modell egy természetes leállítási pontot vagy egy megadott leállítási sorozatot ért el.
- length: Elérte a jogkivonatok maximális számát.
- content_filter: A létrehozott válasz megsértett egy felelős AI-szabályzatot.
- null: Csak streamelés. Streamelési válasz esetén az utolsó kivételével minden válasz a következő lesz null.

A usage válaszobjektum a következő mezőket tartalmazza.

Kulcs Típus Érték
prompt_tokens integer A jogkivonatok száma a parancssorban. Vegye figyelembe, hogy a parancssori jogkivonatok száma további jogkivonatokat is tartalmaz, amelyeket a rendszer hozzáadott a parancssori lista egyetlen sztringbe való formázásához a modell által megkövetelt módon. A további jogkivonatok száma általában arányos a szálban lévő üzenetek számával, és viszonylag kicsinek kell lennie.
completion_tokens integer A befejezéskor létrehozott jogkivonatok száma.
total_tokens integer Összes jogkivonat.

Nem streamelt válasz példa

{
  "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élda streamelési válaszra

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]

Költség és kvóták

A kiszolgáló nélküli API-ként üzembe helyezett Jamba Instruct költség- és kvótaalapú szempontjai

A kiszolgáló nélküli API-ként üzembe helyezett Jamba-modelleket az AI21 kínálja az Azure Marketplace-en keresztül, és integrálva van az Azure Machine Learning Studióval használat céljából. Az Azure Marketplace díjszabását a modellek üzembe helyezésekor vagy finomhangolásakor találja.

Minden alkalommal, amikor egy munkaterület előfizet egy adott modellajánlatra az Azure Marketplace-ről, egy új erőforrás jön létre a használathoz kapcsolódó költségek nyomon követéséhez. Ugyanazt az erőforrást használja a következtetéshez és finomhangoláshoz kapcsolódó költségek nyomon követésére; azonban több mérőeszköz is rendelkezésre áll az egyes forgatókönyvek egymástól függetlenül történő nyomon követéséhez.

A költségek nyomon követéséről további információt az Azure Marketplace-en kínált modellek költségeinek monitorozása című témakörben talál.

A kvóta kezelése üzemelő példányonként történik. Minden üzemelő példányhoz 200 000 token/perc sebességkorlát és percenként 1000 API-kérés tartozik. Jelenleg azonban modellenként és projektenként csak egy telepítésre van lehetőség. Lépjen kapcsolatba a Microsoft Azure ügyfélszolgálatával, ha az aktuális díjszabási korlátok nem elegendőek az Ön forgatókönyveihez.

Tartalomszűrés

A kiszolgáló nélküli API-ként üzembe helyezett modelleket az Azure AI tartalombiztonsága védi. Ha az Azure AI-tartalombiztonság engedélyezve van, a kérés és a befejezés is olyan besorolási modellek együttesén megy keresztül, amelyek célja a káros tartalmak kimenetének észlelése és megakadályozása. A tartalomszűrési rendszer észleli és műveletet hajt végre a potenciálisan káros tartalmak meghatározott kategóriáiban mind a bemeneti kérésekben, mind a kimeneti befejezésekben. További információ az Azure AI Content Safetyről.