LLMOps s tokem výzvy a GitHubem

Velké jazykové operace neboli LLMOps se staly základním kamenem efektivního inženýrství výzvy a vývoje a nasazení aplikací s využitím LLM. Vzhledem k tomu, že poptávka po aplikacích s infuzí LLM stále roste, organizace potřebují soudržný a zjednodušený proces pro správu jejich kompletního životního cyklu.

Azure Machine Učení umožňuje integraci s GitHubem k automatizaci životního cyklu vývoje aplikací s sadou LLM s využitím toku výzvy.

Azure Machine Učení Prompt Flow poskytuje zjednodušený a strukturovaný přístup k vývoji aplikací s sadou LLM. Jeho dobře definovaný proces a životní cyklus vás provede procesem sestavování, testování, optimalizace a nasazování toků, což vede k vytváření plně funkčních řešení s využitím LLM.

Funkce toku výzvy LLMOps

LLMOps s tokem výzvy je šablona LLMOps a pokyny, které vám pomůžou sestavovat aplikace s využitím toku výzvy. Má následující funkce:

  • Centralizované hostování kódu: Toto úložiště podporuje hostování kódu pro více toků na základě toku výzvy a poskytuje jediné úložiště pro všechny vaše toky. Tuto platformu si můžete představit jako jedno úložiště, kde se nachází veškerý kód toku výzvy. Je to 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ý umožňuje hladký přechod z místního experimentování do produkčního nasazení. Screenshot of pipeline.

  • Experimentování variant a hyperparametrů: Experimentujte s několika variantami a hyperparametry, které snadno vyhodnocují varianty toku. Varianty a hyperparametry jsou jako složky v receptu. Tato platforma umožňuje experimentovat s různými kombinacemi variant napříč několika uzly v toku.

  • Několik cílů nasazení: Úložiště podporuje nasazení toků do služeb Aplikace Azure Services, Kubernetes a spravovaných výpočetních prostředků Azure založených na konfiguraci, která zajišťuje, aby se vaše toky mohly podle potřeby škálovat. Generuje také image Dockeru s využitím modulu runtime Flow a vašich toků pro nasazení na jakoukoli cílovou platformu a operační systém podporující Docker. Screenshot of endpoints.

  • Nasazení A/B: Bezproblémová implementace nasazení A/B, která umožňují snadno porovnat různé verze toku. Stejně jako u tradičního testování A/B pro weby tato platforma usnadňuje nasazení A/B pro tok výzvy. To znamená, že můžete snadno porovnat různé verze toku v reálném prostředí a určit, který z těchto možností je nejlepší. Screenshot of deployments.

  • Relace datových sad a toků M:N: Pro každý standardní a vyhodnocovací tok se přizpůsobí více datovým sadám, což zajišťuje všestrannost při testování a hodnocení toku. Platforma je navržená tak, aby vyhovovala více datovým sadám pro každý tok.

  • Podmíněná registrace dat a modelu: Platforma vytvoří novou verzi datové sady v Azure Machine Učení Datový prostředek a toky v registru modelů pouze v případě, že dojde ke změně, nikoli jinak.

  • Komplexní vytváření sestav: Generování podrobných sestav pro každou konfiguraci varianty, které vám umožní činit informovaná rozhodnutí. Poskytuje podrobné shromažďování metrik, hromadná spuštění experimentu a variant pro všechna spuštění a experimenty, což umožňuje rozhodování na základě dat ve formátu CSV a také soubory HTML. Screenshot of flow variants report.Screenshot of metrics report.

Další funkce pro přizpůsobení:

  • Nabízí BYOF (přineste si vlastní toky). Kompletní platforma pro vývoj více případů použití souvisejících s aplikacemi s využitím LLM.

  • Nabízí vývoj založený na konfiguraci. Není nutné psát rozsáhlé kotlové desky kód.

  • Poskytuje spouštění výzev k experimentování i hodnocení místně i v cloudu.

  • Poskytuje poznámkové bloky pro místní vyhodnocení výzev. Poskytuje knihovnu funkcí pro místní experimentování.

  • Testování koncových bodů v rámci kanálu po nasazení za účelem kontroly dostupnosti a připravenosti

  • Poskytuje volitelnou smyčku human-in-loop k ověření výzev metrik před nasazením.

LLMOps s tokem výzvy poskytuje možnosti pro jednoduché i složité aplikace s sadou LLM. Je zcela přizpůsobitelný potřebám aplikace.

Fáze LLMOps

Životní cyklus 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 možnosti.

  • 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.

Díky dodržování této strukturované metodologie vám Prompt Flow umožňuje 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 LLMOps formalizuje tuto strukturovanou metodologii pomocí přístupu založeného na kódu a pomáhá vytvářet aplikace s využitím toku výzvy pomocí nástrojů a procesů relevantních pro Prompt Flow. Nabízí celou řadu funkcí, včetně centralizovaného hostování kódu, správy životního cyklu, experimentování variant a hyperparametrů, nasazení A/B, vytváření sestav pro všechna spuštění a experimenty a další.

Úložiště pro tento článek je k dispozici v LLMOps s šablonou toku výzvy.

Tok procesu LLMOps

Screenshot of LLMOps prompt flow Process.

  1. Toto je fáze inicializace. V této části se vyvíjejí toky, data jsou připravená a kurátorovaná a konfigurační soubory související s LLMOps se aktualizují.
  2. Po místním vývoji pomocí editoru Visual Studio Code spolu s rozšířením Prompt Flow se vytvoří žádost o přijetí změn z větve funkcí do vývojové větve. Výsledkem je spuštění kanálu ověření sestavení. Provede také toky experimentování.
  3. Žádost o přijetí změn se schválí ručně a kód se sloučí s vývojovou větví.
  4. Po sloučení žádosti o přijetí změn do vývojové větve se spustí kanál CI pro vývojové prostředí. Provede toky experimentování i vyhodnocení postupně a kromě dalších kroků v kanálu zaregistruje toky ve službě Azure Machine Učení Registry.
  5. Po dokončení spuštění kanálu CI trigger CD zajistí spuštění kanálu CD, který nasadí standardní tok z Azure Machine Učení Registry jako koncový bod Azure Machine Učení online a provede integrační a orientační testy nasazeného toku.
  6. 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 na větev vydané verze.
  7. Žá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 spustí kanál CI pro prod prostředí. Provede toky experimentování i vyhodnocení postupně a kromě dalších kroků v kanálu zaregistruje toky ve službě Azure Machine Učení Registry.
  8. Po dokončení spuštění kanálu CI trigger CD zajistí spuštění kanálu CD, který nasadí standardní tok z Azure Machine Učení Registry jako koncový bod Azure Machine Učení online a provede integrační a orientační testy nasazeného toku.

Odsud se můžete seznámit s LLMOps s tokem výzvy pomocí kompletních ukázek, které jsme uvedli, které vám pomůžou sestavovat aplikace s využitím toku výzvy a GitHubu. Jejím primárním cílem je poskytnout pomoc při vývoji takových aplikací a využít možnosti příkazového toku a LLMOps.

Tip

Doporučujeme vám pochopit, jak integrovat LLMOps s tokem výzvy.

Důležité

Tok výzvy je aktuálně ve verzi Public Preview. Tato verze Preview je poskytována bez smlouvy o úrovni služeb a nedoporučuje se 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.

Požadavky

  • Předplatné Azure. Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet. Vyzkoušejte bezplatnou nebo placenou verzi služby Azure Machine Učení.
  • Pracovní prostor služby Azure Machine Learning.
  • Git běží na místním počítači.
  • GitHub jako úložiště správy zdrojového kódu

Poznámka:

Vyžaduje se Git verze 2.27 nebo novější. Další informace o instalaci příkazu Git najdete v části https://git-scm.com/downloads a výběru operačního systému.

Důležité

Příkazy rozhraní příkazového řádku v tomto článku byly testovány pomocí bashe. Pokud používáte jiné prostředí, může dojít k chybám.

Nastavení toku výzvy

Služba Prompt Flow používá prostředek připojení k připojení ke koncovým bodům, jako jsou Azure OpenAI, OpenAI nebo Azure AI Search, a ke spouštění toků používá modul runtime. Tyto prostředky by se měly vytvořit před spuštěním toků v toku výzvy.

Nastavení připojení pro tok výzvy

Připojení můžete vytvořit prostřednictvím uživatelského rozhraní portálu toku výzvy nebo pomocí rozhraní REST API. Pokud chcete vytvořit připojení pro tok výzvy, postupujte podle pokynů .

Kliknutím na odkaz se dozvíte více o připojeních.

Poznámka:

Ukázkové toky používají připojení a připojení s názvem "aoai", aby je bylo možné spustit.

Nastavení výpočetního prostředí a modulu runtime pro tok výzvy

Modul runtime je možné vytvořit prostřednictvím uživatelského rozhraní portálu toku výzvy nebo pomocí rozhraní REST API. Postupujte podle pokynů k nastavení výpočetních prostředků a modulu runtime pro tok výzvy.

Kliknutím na odkaz se dozvíte více o modulu runtime.

Poznámka:

Stejný název modulu runtime by měl být použit v souboru LLMOps_config.json vysvětlen později.

Nastavení úložiště GitHub

Pro nastavení procesu LLMOps pomocí úložiště GitHub je potřeba provést několik kroků.

Vytvoření forku a konfigurace úložiště

Postupujte podle pokynů k vytvoření rozvětvovaného úložiště ve vaší organizaci GitHubu. Toto úložiště používá dvě větve – main a development pro povýšení kódu a spouštění kanálů místo změn kódu v nich.

Nastavení ověřování mezi GitHubem a Azure

Postupujte podle pokynů pro použití dříve vytvořeného instančního objektu a nastavte ověřování mezi úložištěm GitHub a službami Azure.

Tento krok nakonfiguruje tajný klíč GitHubu, který ukládá informace instančního objektu. Pracovní postupy v úložišti mohou číst informace o připojení pomocí názvu tajného kódu. To pomáhá nakonfigurovat kroky pracovního postupu GitHubu pro automatické připojení k Azure.

Klonování úložiště

Postupujte podle pokynů a vytvořte nové místní úložiště.

To nám pomůže vytvořit novou větev funkcí z vývojové větve a začlenit změny.

Testování kanálů

Pokud chcete kanály otestovat, postupujte podle pokynů . Postup je následující:

  1. Vytvořte žádost o přijetí změn (žádost o přijetí změn) z větve funkcí na vývojovou větev.
  2. Kanál žádosti o přijetí změn by se měl spustit automaticky v důsledku konfigurace zásad větve.
  3. Žádost o přijetí změn se pak sloučí s vývojovou větví.
  4. Spustí se přidružený kanál dev. Výsledkem bude úplné spuštění CI a CD a výsledkem bude zřizování nebo aktualizace stávajících koncových bodů azure machine Učení.

Výstupy testu by se měly podobat těm, které jsou tady uvedené.

Místní spuštění

Pokud chcete využít možnosti místního spuštění, postupujte takto:

  1. Naklonujte úložiště: Začněte klonováním úložiště šablony z jeho úložiště GitHub.
git clone https://github.com/microsoft/llmops-promptflow-template.git
  1. Nastavení souboru env: vytvořte soubor .env na nejvyšší úrovni složky a zadejte informace o uvedených položkách. Podle potřeby přidejte libovolný počet názvů připojení. Všechny příklady toku v tomto úložišti používají připojení AzureOpenAI s názvem aoai. Přidejte čáru aoai={"api_key": "","api_base": "","api_type": "azure","api_version": "2023-03-15-preview"} s aktualizovanými hodnotami pro api_key a api_base. Pokud se ve vašich tocích používají další připojení s různými názvy, měli byste je odpovídajícím způsobem přidat. V současné době tok s AzureOpenAI jako poskytovatelem jako podporovaným.

experiment_name=
connection_name_1={ "api_key": "","api_base": "","api_type": "azure","api_version": "2023-03-15-preview"}
connection_name_2={ "api_key": "","api_base": "","api_type": "azure","api_version": "2023-03-15-preview"}
  1. 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

  1. Přineste nebo napište své toky do šablony na základě dokumentace.

  2. Napište skripty Pythonu podobné zadaným příkladům ve složce local_execution.

Další kroky