GenAIOps s tokem výzvy a GitHubem
Vzhledem k tomu, že poptávka po aplikacích s využitím LLM roste, organizace potřebují ucelený a zjednodušený proces pro správu kompletního životního cyklu těchto aplikací. Operace generování umělé inteligence (GenAIOps), někdy označované jako LLMOps, je základním kamenem efektivního technického inženýrství a vývoje a nasazení aplikací s využitím LLM.
Tento článek ukazuje, jak azure Machine Learning umožňuje integraci s GitHubem, abyste automatizovali životní cyklus vývoje aplikací s sadou LLM pomocí toku výzvy. Tok výzvy poskytuje zjednodušený a strukturovaný přístup k vývoji aplikací s sadou LLM. Jeho dobře definovaný proces a životní cyklus vás provedou procesem sestavování, testování, optimalizace a nasazování toků, které vedou k vytváření plně funkčních řešení s využitím LLM.
Funkce toku výzvy GenAIOps
GenAIOps s tokem výzvy používá šablonu GenAIOps a pokyny, které vám pomůžou vytvářet aplikace s využitím toku výzvy. GenAIOps s tokem výzvy má možnosti pro jednoduché nebo složité aplikace s využitím LLM a je přizpůsobitelné potřebám aplikace.
GenAIOps s platformou toku výzvy poskytuje následující funkce:
Centralizované hostování kódu Úložiště podporuje hostování kódu pro několik toků výzvy a poskytuje jediné úložiště pro všechny vaše toky. Toto úložiště je jako knihovna pro vaše toky, což usnadňuje hledání, přístup a spolupráci na různých projektech.
Správa životního cyklu Každý tok má svůj vlastní životní cyklus, který poskytuje hladký přechod z místního experimentování na produkční nasazení.
Experimentování variant a hyperparametrů Varianty a hyperparametry jsou jako složky v receptu. Platforma umožňuje experimentovat s různými kombinacemi variant napříč několika uzly v toku. Můžete experimentovat s několika variantami a hyperparametry, abyste mohli snadno vyhodnotit varianty toku.
Více cílů nasazení Platforma generuje image Dockeru naplněné vaším tokem a výpočetní relací pro nasazení do libovolné cílové platformy a operačního systému, který podporuje Docker. Toky můžete nasadit do služby Aplikace Azure Services, Kubernetes a Azure Managed Computes a nakonfigurovat je tak, aby se škálovaly podle potřeby.
Nasazení A/B. GenAIOps s rychlým tokem bezproblémově implementuje nasazení A/B a umožňuje snadno porovnat různé verze toku. Tato platforma usnadňuje nasazení A/B pro tok výzvy stejným způsobem jako u tradičního testování webu A/B. Různé verze toku můžete snadno porovnat v nastavení reálného světa a určit, která verze funguje nejlépe.
Datová sada M:N pro vztahy toku GenAIOps s tokem výzvy umožňuje pro každý standardní a vyhodnocovací tok více datových sad, což umožňuje všestrannost při testování a hodnocení toku.
Podmíněná data a registrace modelu Platforma zaregistruje novou verzi datové sady pro datový prostředek Služby Azure Machine Learning a toky v registru modelů pouze v případě, že se v datové sadě změní.
Komplexní vytváření sestav. GenAIOps s tokem výzvy generuje podrobné sestavy pro každou konfiguraci varianty, což vám umožní činit informovaná rozhodnutí. Platforma poskytuje podrobné shromažďování metrik, experimenty a hromadná spuštění variant pro všechna spuštění a experimenty, což umožňuje rozhodování řízené daty pro soubory CSV i HTML.
GenAIOps s tokem výzvy poskytuje následující další funkce pro přizpůsobení:
- Funkce Bring-your-own-flow (BYOF) poskytuje kompletní platformu pro vývoj více případů použití souvisejících s aplikacemi s využitím LLM.
- Vývoj založený na konfiguraci znamená, že není potřeba psát rozsáhlý často používaný kód.
- Výzva k experimentování a vyhodnocení se spustí místně i v cloudu.
- Poznámkové bloky pro místní vyhodnocení výzvy poskytují knihovnu funkcí pro místní experimentování.
- Testování koncových bodů v kanálu po nasazení zkontroluje dostupnost a připravenost koncového bodu.
- Volitelné human-in-loop ověřuje metriky výzvy před nasazením.
Fáze GenAIOps
Životní cyklus GenAIOps se skládá ze čtyř různých fází:
Inicializace. Jasně definujte obchodní cíl, shromážděte relevantní vzorky dat, vytvořte základní strukturu výzvy a vytvořte tok, který vylepšuje jeho schopnosti.
Experimentování. Použijte tok na ukázková data, vyhodnoťte výkon výzvy a podle potřeby tok upřesněte. Průběžně iterujte, dokud nebudete spokojeni s výsledky.
Vyhodnocení a upřesnění Proveďte srovnávací testy výkonu toku pomocí větší datové sady, vyhodnoťte efektivitu výzvy a odpovídajícím způsobem upřesněte. Pokud výsledky splňují požadované standardy, přejděte k další fázi.
Nasazení: Optimalizujte tok pro efektivitu a efektivitu, nasaďte ho v produkčním prostředí, včetně nasazení A/B, monitorujte jeho výkon, shromážděte zpětnou vazbu uživatelů a využijte tyto informace k dalšímu vylepšení toku.
Dodržováním této strukturované metodologie vám tok umožní s jistotou vyvíjet, pečlivě testovat, doladit a nasazovat toky, což vede k vytváření robustních a sofistikovaných aplikací AI.
Šablona toku výzvy GenAIOps formalizuje tuto strukturovanou metodologii pomocí přístupu založeného na kódu a pomáhá vytvářet aplikace s využitím nástrojů toku výzvy a procesů a funkcí toku GenAIOps. Tato šablona je k dispozici v GenAIOps s šablonou toku výzvy.
Tok procesu GenAIOps
- Ve fázi inicializace budete vyvíjet toky, připravovat a kurátorovat data a aktualizovat konfigurační soubory související s GenAIOps.
- Po místním vývoji pomocí editoru Visual Studio Code s rozšířením Tok výzvy vytvoříte žádost o přijetí změn (PR) z větve funkcí do vývojové větve, která spustí kanál ověření sestavení a toky experimentování.
- Žádost o přijetí změn se schválí ručně a kód se sloučí s vývojovou větví.
- Po sloučení žádosti o přijetí změn do vývojové větve se spustí kanál kontinuální integrace (CI) pro vývojové prostředí. Kanál CI provádí experimentování i vyhodnocovací toky postupně a kromě dalších kroků v kanálu zaregistruje toky v registru Služby Azure Machine Learning.
- Po dokončení provádění kanálu CI spustí trigger průběžného nasazování (CD) kanál CD, který nasadí standardní tok z azure Machine Learning Registry jako online koncový bod služby Azure Machine Learning. Kanál pak spustí integrační a orientační testy nasazeného toku.
- Větev vydané verze se vytvoří z vývojové větve nebo se vytvoří žádost o přijetí změn z vývojové větve do větve vydané verze.
- Žádost o přijetí změn se schválí ručně a kód se sloučí do větve vydané verze. Po sloučení žádosti o přijetí změn do větve vydané verze se kanál CI pro produkční prostředí spustí. Kanál provádí experimentování i vyhodnocovací toky postupně a kromě dalších kroků v kanálu zaregistruje toky ve službě Azure Machine Learning Registry.
- Po dokončení provádění kanálu CI spustí trigger CD kanál CD, který nasadí standardní tok z azure Machine Learning Registry jako online koncový bod služby Azure Machine Learning. Kanál pak spustí integrační a orientační testy nasazeného toku.
Vytvoření toku výzvy GenAIOps
Zbývající část tohoto článku ukazuje, jak používat GenAIOps s tokem výzvy podle kompletní ukázky v GenAIOps s úložištěm šablon toku výzvy, které vám pomůžou sestavovat aplikace s využitím toku výzvy a GitHubu. Primárním cílem je poskytnout pomoc při vývoji těchto aplikací pomocí funkcí příkazového toku a GenAIOps.
Požadavky
- Předplatné Azure s bezplatnou nebo placenou verzí služby Azure Machine Learning
- Pracovní prostor služby Azure Machine Learning.
- Git verze 2.27 nebo novější běžící na místním počítači s možností vytvoření úložiště správy zdrojového kódu GitHubu
- Znalost integrace GenAIOps s tokem výzvy
Nastavení připojení toku výzvy
Tok výzvy používá prostředek připojení k připojení ke koncovým bodům Azure OpenAI, OpenAI nebo Azure AI Search. Připojení můžete vytvořit prostřednictvím uživatelského rozhraní portálu toku výzvy nebo pomocí rozhraní REST API. Další informace najdete v tématu Připojení v toku výzvy.
Pokud chcete vytvořit připojení, postupujte podle pokynů v tématu Nastavení připojení pro tok výzvy. Ukázkové toky používají připojení s názvem aoai
, takže dejte svému připojení tento název.
Nastavení výpočetní relace
Tok výzvy používá výpočetní relaci ke spuštění toku. Vytvořte a spusťte výpočetní relaci před spuštěním toku výzvy.
Nastavení úložiště GitHub
Pokud chcete vytvořit forkované úložiště ve vaší organizaci GitHubu, postupujte podle pokynů v tématu Nastavení úložiště GitHub. Toto úložiště používá dvě větve main
a development
pro zvýšení úrovně kódu a spuštění kanálu.
Pokud chcete vytvořit nové místní úložiště, postupujte podle pokynů v části Klonování úložiště. Tento klon vám pomůže vytvořit novou větev funkcí z vývojové větve a začlenit změny.
Nastavení ověřování mezi GitHubem a Azure
Tento proces nakonfiguruje tajný klíč GitHubu, který ukládá informace o instančním objektu. Pokud se chcete k Azure připojit automaticky, můžou pracovní postupy v úložišti číst informace o připojení pomocí názvu tajného kódu. Další informace najdete v tématu Použití GitHub Actions pro připojení k Azure.
- Podle pokynů v tématu Vytvoření instančního objektu Azure vytvořte instanční objekt.
- Instanční objekt použijte k nastavení ověřování mezi úložištěm GitHub a službami Azure podle pokynů v tématu Nastavení ověřování pomocí Azure a GitHubu.
Otestování kanálu
Pokud chcete kanály otestovat, postupujte podle pokynů v části Aktualizace testovacích dat. Celý proces zahrnuje následující kroky:
- Žádost o přijetí změn vytvoříte z větve funkcí do vývojové větve.
- Kanál žádosti o přijetí změn se spouští automaticky kvůli konfiguraci zásad větve.
- Žádost o přijetí změn se sloučí s vývojovou větví.
dev
Přidružený kanál se spustí, což vede k úplnému spuštění CI a CD a zřízení nebo aktualizaci koncových bodů služby Azure Machine Learning.
Výstupy by měly vypadat podobně jako v příkladech s příkazem příkazového řádku, vyhodnocením a scénářem nasazení.
Použití místního spuštění
Pokud chcete používat možnosti místního spouštění , postupujte podle těchto kroků.
Naklonujte úložiště následujícím způsobem:
git clone https://github.com/microsoft/genaiops-promptflow-template.git
Vytvořte soubor .env na nejvyšší úrovni složky. Přidejte řádky pro každé připojení a aktualizujte hodnoty zástupných symbolů. Příklady v ukázkovém úložišti používají připojení AzureOpenAI s názvem
aoai
a verzí2024-02-01
rozhraní API .aoai={ "api_key": "<api key>","api_base": "<api base or endpoint>","api_type": "azure","api_version": "2024-02-01"} <connection2>={ "api_key": "<api key>","api_base": "<api base or endpoint>","api_type": "<api type>","api_version": "<api_version>"}
Připravte místní prostředí Conda nebo virtuální prostředí k instalaci závislostí.
python -m pip install promptflow promptflow-tools promptflow-sdk jinja2 promptflow[azure] openai promptflow-sdk[builtins] python-dotenv
Přineste nebo napište své toky do šablony na základě pokynů v tématu Postup připojování nových toků.
Pište skripty Pythonu do složky local_execution podobně jako v uvedených příkladech.