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


Alkalmazástervezés AI-számítási feladatokhoz az Azure-ban

Az AI-függvényekkel rendelkező alkalmazások létrehozásakor számos lehetőség közül választhat. Az egyedi funkcionális és nem funkcionális követelmények, például a használati eset a hagyományos gépi tanulás, a generatív, a determinisztikus vagy az AI-típusok kombinációja, segítenek leszűkíteni a tervezéssel kapcsolatos magas szintű döntéseket. Ezeket a lehetőségeket a magas szintű tervezési területekről az alacsonyabb szintű tervezési területekre való áttéréskor érdemes megfontolni.

A Első lépések című cikkben leírtak szerint az első fontos döntések egyike, hogy saját modellt hozzon létre vagy előre összeállított modellt használjon. Előre összeállított modell használata esetén vegye figyelembe az alábbi szempontokat:

  • Katalógusforrások. Fedezze fel az olyan adattárakat, mint a Hugging Face Model Hub, a TensorFlow Hub és a Azure AI Foundry portál modellkatalógusa, hogy előre betanított modelleket találjon. Ezek a platformok széles körű modellkatalógust biztosítanak a különböző feladatokhoz.

  • Licenc. Győződjön meg arról, hogy a modell licencfeltételei megfelelnek a biztonsági, megfelelőségi és alkalmazáscéloknak, különösen akkor, ha az alkalmazást el szeretné terjeszteni vagy más szolgáltatásokkal integrálni.

  • Fő összetevők. Tekintse meg a modell architektúráját, betanítási adatait, teljesítményét és licencelését annak megállapításához, hogy a modell megfelelően van-e hangolva a feladatához vagy tartományához.

Az üzemeltetési platform kiválasztásával kapcsolatos útmutatásért tekintse meg a modell üzemeltetési és következtetési platformjánakszempontjait.

Ez a cikk a technológia és a megközelítéssel kapcsolatos döntések során figyelembe veendő gyakori tervezési területeket és tényezőket ismerteti.

Ajánlások

Az alábbi táblázat összefoglalja a cikkben szereplő javaslatokat.

Ajánlás Leírás
Rangsorolja a polcon kívüli megoldásokat. Amikor gyakorlatias, használja a platformszolgáltatás (PaaS) megoldásait a számítási feladatok kezeléséhez. Ha lehetséges, használjon előre összeállított és előre betanított modelleket a számítási feladatok és üzemeltetési csapatok működési és fejlesztési terheinek minimalizálása érdekében.
Absztrakt függvények és képességek távol az ügyféltől. Az ügyfél lehető legkisebb terhelésének biztosítása érdekében a háttérszolgáltatásokat úgy tervezzük, hogy kezelni tudják az átfogó feladatokat, mint például a sebességkorlátozás és a feladatátvételi műveletek.
Az adattárakhoz való hozzáférés letiltása. Az AI-rendszerben lévő kódnak nem szabad közvetlenül hozzáférnie az adattárakhoz. Az összes adatkérés átirányítása EGY API-rétegen keresztül. Az API-kat kifejezetten a szükséges tevékenységhez kell felépíteni.
Különítsd el a modelleket. Az adattárakhoz hasonlóan egy API-réteg használatával is átjáróként működhet a modellhez érkező kérésekhez. Néhány PaaS-megoldás, például az Azure OpenAI Service és az Azure Machine Learning erre a célra SDK-t használ. Számos eszköz, például a parancssori folyamat, natív támogatást tartalmaz az API-k szolgáltatásba való propagálásához.
Az összetevőket egymástól függetlenül üzembe helyezhetővé kell tervezni. Az AI-modelleknek, az adatfolyamoknak, az előtérbeli összetevőknek és a mikroszolgáltatásoknak, például az adatok előfeldolgozásának, a funkciók kinyerésének és a következtetésnek egymástól függetlenül üzembe helyezhetőknek kell lenniük a számítási feladatok rugalmasságának, méretezhetőségének és működőképességének optimalizálása érdekében.

Összetevők tárolóba helyezése

Annak érdekében, hogy az önállóan üzembe helyezhető összetevők teljesen önállóak legyenek, és egyszerűsítse az üzembe helyezéseket, fontolja meg a tárolók telepítését a tervezési stratégia részeként. A következő összetevőket kell tárolóba helyezni:

  • Mikroszolgáltatások. Az egyes mikroszolgáltatásoknak, amelyek az alkalmazás bizonyos funkcióit kezelik, például az adatfeldolgozást, a modell következtetését és a felhasználói hitelesítést, tárolóba kell helyezni. Ez a megközelítés lehetővé teszi a független üzembe helyezést és skálázást, és hatékonyabb frissítéseket és karbantartást tesz lehetővé.

  • AI-modellek. Az AI-modellek tárolóba helyezése annak biztosítása érdekében, hogy az összes függőség, kódtár és konfiguráció össze legyen csomagolva. Ez a megközelítés elkülöníti a modellkörnyezetet a gazdarendszertől a verzióütközések elkerülése és a különböző üzemi környezetek konzisztens viselkedésének biztosítása érdekében.

  • adatfeldolgozási folyamatok. Minden olyan adatfeldolgozási feladatot, amely megelőzi vagy követi a modell következtetését, például az adattisztítást, az átalakítást és a funkciókinyerést, tárolóba kell helyezni. Ez a megközelítés növeli a reprodukálhatóságot, és leegyszerűsíti a függőségek kezelését.

  • infrastruktúra-szolgáltatások. Az infrastruktúra-támogatást nyújtó szolgáltatások, mint például az adatbázisok és a gyorsítótárazási rétegek, szintén profitálhatnak a konténerizációból. A szolgáltatások tárolóba helyezése segít fenntartani a verziók konzisztenciáját, és megkönnyíti ezeknek az összetevőknek a könnyebb skálázását és felügyeletét.

AI-összetevők együtt elhelyezése más számítási feladatok összetevőivel

Az AI-összetevők más számítási feladatokhoz való áthelyezésének több jó oka is van, de ehhez kompromisszumok is társulnak. Az összetevőket az alábbi okokból célszerű áthelyezni:

  • késleltetés érzékenység. Az AI-összetevőket helyezze el más szolgáltatásokkal, például API-üzemeltetéssel, amikor fontos az alacsony késleltetés. Ha például valós idejű következtetésre van szüksége a felhasználói élmény fokozása érdekében, az AI-modellek API-hoz közeli elhelyezése minimalizálhatja az eredmények lekéréséhez szükséges időt.

  • Adat közelsége. Ha az AI-modellek gyakori hozzáférést igényelnek bizonyos adathalmazokhoz, például egy keresési indexhez, ezeknek az összetevőknek a áthelyezése javíthatja a teljesítményt, és csökkentheti az adatátvitel többletterhelését a feldolgozás és a következtetés felgyorsítása érdekében.

  • erőforrás-kihasználtság. Ha egyes összetevőknek kiegészítő erőforrásigényük van, például a processzor és a memória, azok együttes elhelyezése optimalizálhatja az erőforrások kihasználtságát. Egy jelentős számítást igénylő modell például megoszthatja az erőforrásokat egy olyan szolgáltatással, amely alacsonyabb igényeket támaszt egyszerre.

Kompromisszum. Vannak kompromisszumok, amelyeket figyelembe kell venni, amikor eldönti, hogy összehelyezi-e az összetevőket. Előfordulhat, hogy nem tudja önállóan üzembe helyezni vagy méretezni az összetevőket. Az incidensek potenciális robbanási sugarának növelésével növelheti az üzemzavar kockázatát is.

Orchestrátorok használatának értékelése generatív MI-megoldásokban

A vezénylő úgy kezeli a munkafolyamatot, hogy koordinálja az AI-megoldás különböző összetevői közötti kommunikációt, amelyet egyébként nehéz lenne összetett számítási feladatokban kezelni. Javasoljuk, készítsen orchestrátort a terveibe, ha a számítási feladat rendelkezik az alábbi jellemzők valamelyikével:

  • összetett munkafolyamatok. A munkafolyamat több lépést is magában foglal, például az előfeldolgozást, a modellláncolást vagy az utófeldolgozást.

  • feltételes logikai. A döntéseket, például a különböző modellekhez való útválasztást dinamikusan kell meghozni a modell kimenetei alapján.

  • Skálázás és erőforrás-kezelés. A nagy mennyiségű alkalmazások erőforrás-lefoglalását igény szerinti modellméretezéssel kell kezelnie.

  • Állapotkezelés. Kezelnie kell a felhasználói interakciók állapotát és memóriáját.

  • Adatlekérés. Képesnek kell lennie a bővítési adatok lekérésére az indexből.

Több modell használatának szempontjai

Ha a munkaterhelés több modellt használ, egy orkesztrátor elengedhetetlen. A vezénylő a használati eset alapján irányítja az adatokat és a kérelmeket a megfelelő modellhez. Tervezze meg a modellek közötti adatfolyamot, biztosítva, hogy az egyik modell kimenetei bemenetként szolgálhatnak a másik számára. A tervezés adatátalakítást vagy bővítési folyamatokat is magában foglalhat.

Vezénylés és ügynökök

A generatív AI-számítási feladatok esetében érdemes megfontolni egy ügynökalapú, más néven ügynöki megközelítést a tervezéshez, hogy bővíthető legyen a vezénylés. Az ügynökök környezetfüggő funkciókat biztosítanak. Számos jellemzővel rendelkeznek a mikroszolgáltatásokkal, és egy vezénylővel együtt hajtanak végre feladatokat. A vezénylő hirdethet feladatokat egy ügynökök csoportjának, vagy az ügynökök regisztrálhatják képességeiket a vezénylőnél. Mindkét módszer lehetővé teszi, hogy a vezénylő dinamikusan határozza meg, hogyan bonthatja fel és irányíthatja a lekérdezést az ügynökök között.

A cselekvésközpontú megközelítések ideálisak, ha olyan közös felhasználói felülettel rendelkezik, amely több, folyamatosan fejlődő funkcióval bír, amelyek csatlakoztathatók a felhasználói élményhez annak érdekében, hogy idővel további készségekkel és alapvető adatokkal bővítsék a folyamatot.

A sok ügynökkel rendelkező összetett számítási feladatok esetében hatékonyabb, ha lehetővé teszi az ügynökök számára, hogy dinamikusan működjenek együtt ahelyett, hogy vezénylőt használnak a feladatok felosztására és hozzárendelésére.

A vezénylő és az ügynökök közötti kommunikációnak egy témakör-üzenetsor mintát kell követnie, ahol az ügynökök feliratkoznak egy témakörre, és a vezénylő feladatokat küld egy üzenetsoron keresztül.

Az agentikus megközelítés a legjobban vezénylési mintával működik, nem pedig koreográfiai mintát használva.

További információért lásd: Az orchestration platform szempontjai.

API-átjárók használatának értékelése

Az API-átjárók, mint például az Azure API Management, absztrahálják a funkciókat az API-któl, ami leválasztja a függőségeket a kérelmező szolgáltatás és az API között. Az API-átjárók a következő előnyöket biztosítják az AI-számítási feladatok számára:

  • Több mikroszolgáltatás. Az átjárók segítségével több AI-modellvégpontot is kezelhet, ha konzisztens szabályzatokat kell kikényszerítenie, például a sebességkorlátozást és a hitelesítést.

  • forgalomkezelés. Az átjárók a kérések kezelésével, a válaszok gyorsítótárazásával és a terhelések elosztásával segítenek a nagy forgalmú alkalmazások hatékony kezelésében.

  • Biztonsági. Az átjárók központosított hozzáférés-vezérlést, naplózást és fenyegetésvédelmet biztosítanak az átjáró mögötti API-k számára.

AI-alkalmazástervezési minták használata

Az AI-alkalmazások iparágában számos gyakori tervezési mintát alakítottak ki. Ezek használatával egyszerűsítheti a tervezést és a megvalósítást. Ezek a tervezési minták a következők:

  • Modellek összekapcsolása. Ez a tervezési minta magában foglalja több modell előrejelzéseinek kombinálását, hogy az egyes modellek gyengeségeinek mérséklésével javítsa a pontosságot és a robusztusságot.

  • Mikroszolgáltatások architektúrája. Az összetevők egymástól függetlenül üzembe helyezhető szolgáltatásokra való elkülönítése javítja a méretezhetőséget és a karbantarthatóságot. Lehetővé teszi, hogy a csapatok egyszerre dolgoznak az alkalmazás különböző részein.

  • eseményvezérelt architektúra. Az eseményekkel történő műveletindítás lehetővé teszi a független komponensek és a valós idejű feldolgozás alkalmazását, hogy a rendszer rugalmasabb és alkalmazkodóbb legyen az adatok változásaihoz.

RAG-minta és darabolási stratégiák

A Retrieval-Augmented generációs (RAG) minta egyesíti a generatív modelleket a lekérési rendszerekkel, ami lehetővé teszi, hogy a modell hozzáférjen a külső tudásbázisokhoz a jobb környezet és pontosság érdekében. A mintával kapcsolatos részletes útmutatásért tekintse meg a RAG-megoldás tervezése és fejlesztése cikksorozatot. Két RAG-módszer létezik:

  • Éppen időben. Ez a megközelítés dinamikusan lekéri a releváns információkat egy kérés időpontjában, hogy a legújabb adatok mindig használatban legyenek. Olyan forgatókönyvekben hasznos, amelyek valós idejű környezetet igényelnek, de késést okozhatnak.

  • előre kiszámított (gyorsítótárazott). Ez a módszer a lekérési eredmények gyorsítótárazásával csökkenti a válaszidőt az előre kiszámított adatok kiszolgálásával. Olyan nagy igényű forgatókönyvekhez használható, ahol konzisztens adatok tárolhatók. Előfordulhat, hogy az adatok nem a legfrissebb információkat tükrözik, ami relevanciaproblémákhoz vezethet.

RAG-minta használata esetén egy jól definiált adattömbezési stratégia kritikus fontosságú a számítási feladatok teljesítményhatékonyságának optimalizálásához. Kezdje a útmutatóval, amelyet a RAG-megoldás tervezése és fejlesztése sorozat biztosít. Íme néhány további javaslat, amelyeket érdemes megfontolni:

  • Dinamikus adattömb-stratégia implementálása, amely az adattípus, a lekérdezés összetettsége és a felhasználói követelmények alapján módosítja az adattömbök méretét. Ez javíthatja a lekérés hatékonyságát és a kontekstszerűség megőrzését.

  • Visszajelzési hurkok beépítésével finomíthatja a felbontási stratégiákat a teljesítményadatok alapján.

  • Az adattömbök adatvonalának megőrzése azokat az egyedi azonosítókat és metaadatokat használva történik, amelyek visszakapcsolnak az eredeti forráshoz. A letisztult életút dokumentációja segít annak biztosításában, hogy a felhasználók megértsék az adatok eredetét, átalakítását, és hogy azok hogyan járulnak hozzá a kimenethez.

Mikor érdemes tervezési mintákat használni?

Fontolja meg ezeket a tervezési mintákat, ha a használati eset megfelel a leírt feltételnek:

  • összetett munkafolyamatok. Ha összetett munkafolyamatokkal vagy több AI-modell közötti interakcióval rendelkezik, az olyan minták, mint a RAG vagy a mikroszolgáltatások segíthetnek az összetettség kezelésében és az összetevők közötti egyértelmű kommunikációban.

  • méretezhetőségi követelmények. Ha az alkalmazás iránti kereslet ingadozik, a mikroszolgáltatásokhoz hasonló minta lehetővé teszi, hogy az egyes összetevők egymástól függetlenül méretezhetők, hogy különböző terheléseket tudjanak elférni a rendszer általános teljesítményének befolyásolása nélkül.

  • adatvezérelt alkalmazások. Ha az alkalmazás átfogó adatkezelést igényel, az eseményvezérelt architektúra valós idejű válaszkészséget és hatékony adatfeldolgozást biztosít.

Feljegyzés

A kisebb alkalmazások vagy próbamodellek általában nem részesülnek előnyben ezekből a tervezési mintákból. Ezeket az alkalmazásokat az egyszerűség kedvéért kell megtervezni. Hasonlóképpen, ha erőforrásra (költségvetésre, időre vagy létszámra) vonatkozó korlátozásokkal rendelkezik, a később újrafoglalható egyszerű kialakítás használata jobb módszer, mint egy összetett tervezési minta bevezetése.

Válassza ki a megfelelő keretrendszereket és kódtárakat

A keretrendszerek és kódtárak kiválasztása szorosan összefonódik az alkalmazástervezéssel. Hatással vannak a teljesítményre, a méretezhetőségre és a karbantarthatóságra. A tervezési követelmények azonban korlátozhatják a keretrendszer választási lehetőségeit. A Szemantikus Kernel SDK használata például gyakran ösztönzi a mikroszolgáltatás-alapú kialakítást, amelyben minden ügynök vagy függvény a saját szolgáltatásában van beágyazva. A keretrendszerek és kódtárak kiválasztásakor vegye figyelembe ezeket a tényezőket:

  • alkalmazáskövetelmények. Az alkalmazás követelményei, például a valós idejű feldolgozás vagy a kötegelt feldolgozás, korlátozhatják a keretrendszer kiválasztását. Ha például az alkalmazás kis késést igényel, előfordulhat, hogy olyan keretrendszert kell használnia, amely aszinkron képességekkel rendelkezik.

  • Az integráció szükségletei. A kialakításhoz bizonyos integrációkra lehet szükség más rendszerekkel vagy szolgáltatásokkal. Ha egy keretrendszer nem támogatja a szükséges protokollokat vagy adatformátumokat, előfordulhat, hogy újra kell gondolnia a tervet, vagy másik keretrendszert kell választania.

  • Csapat szakértelme. A fejlesztői csapat készségkészlete korlátozhatja a keretrendszerek választási lehetőségeit. Egy kevésbé ismert keretrendszerre támaszkodó kialakítás megnövelheti a fejlesztési időt és a bonyolultságot, ezért érdemes lehet egy ismerősebb eszközt használnia.

Identitásokra, engedélyezésre és hozzáférésre vonatkozó stratégia tervezése

Általánosságban elmondható, hogy ugyanúgy kell megközelíteni az identitást, az engedélyezést és a hozzáférést, mint az alkalmazások tervezésekor. Ezeket a területeket a lehető legnagyobb mértékben egy identitásszolgáltatóval , például a Microsoft Entra ID-jával kell kezelnie. Számos AI-alkalmazás azonban egyedi kihívásokkal rendelkezik, amelyek különös figyelmet igényelnek. Néha nehéz vagy akár lehetetlen a hozzáférés-vezérlési listák (ACL-ek) megőrzése a rendszeren új fejlesztés nélkül.

Lásd a(z) útmutatót a biztonságos több-bérlős RAG-következtetési megoldás megtervezéséhez, hogy megtudja, hogyan adhat hozzá biztonság-trimmelő metaadatokat a dokumentumokhoz és szegmensekhez. Ez a vágás biztonsági csoportokon vagy hasonló szervezeti szerkezeteken alapulhat.

Fontolja meg a nem funkcionális követelményeket

Előfordulhat, hogy a számítási feladat nem funkcionális követelményekkel rendelkezik, amelyek kihívást jelentenek az AI-technológiákhoz kapcsolódó tényezők miatt. Az alábbiakban néhány gyakori nem funkcionális követelményt és azok kihívásait ismertetjük:

  • A modell-inferencia késleltetése / időtúllépések. Az AI-alkalmazások gyakran valós idejű vagy közel valós idejű válaszokat igényelnek. Az alacsony késés tervezése kulcsfontosságú. Ez magában foglalja a modellarchitektúra, az adatfeldolgozási folyamatok és a hardvererőforrások optimalizálását. A gyorsítótárazási stratégiák alkalmazása és a modellek hatékony betöltése szintén elengedhetetlen az időtúllépések elkerüléséhez és az időben adott válaszok biztosításához.

  • Tokenek vagy kérelmek áteresztőképességére vonatkozó korlátozások. Számos AI-szolgáltatás korlátozza a jogkivonatok számát vagy a kérések átviteli sebességét, különösen a felhőalapú modellek esetében. Ezeknek a korlátozásoknak a tervezése megköveteli a bemeneti méretek gondos kezelését, szükség esetén a kérelmek kötegezését, valamint a sebességkorlátozó vagy sorba állítási mechanizmusok implementálását a felhasználói elvárások kezelése és a szolgáltatáskimaradások megelőzése érdekében.

  • Költség- és költségvisszatérítési forgatókönyvek. A költségátláthatóság tervezése magában foglalja a használatkövetési és jelentéskészítési funkciók implementálását, amelyek megkönnyítik a költségtérítési modelleket. Ezek a funkciók lehetővé teszik a szervezetek számára, hogy pontosan lefoglalják a költségeket a részlegek között. A visszaterhelés-kezelést általában egy API átjáró kezeli, például Azure API Management.

Következő lépés