Delen via


GenAIOps voor MLOps-beoefenaars

Dit artikel bevat richtlijnen voor workloadteams die bestaande MLOps-investeringen (Machine Learning Operations) hebben en die investeringen willen uitbreiden om generatieve AI in hun workload op te nemen. Als u een generatieve AI-workload wilt operationeel maken, moet u uw MLOps-investeringen uitbreiden met GenAIOps (GenAIOps, ook wel LLMOps genoemd). In dit artikel worden technische patronen beschreven die gebruikelijk zijn voor zowel traditionele machine learning- als generatieve AI-workloads en specifieke patronen voor generatieve AI. Het artikel helpt u te begrijpen waar u bestaande investeringen in operationalisatie kunt toepassen en waar u deze investeringen moet uitbreiden.

Generatieve AI-technische patronen

Generatieve AI-workloads verschillen op een aantal manieren van traditionele machine learning-workloads:

  • Focus op generatieve modellen. Traditionele machine learning-workloads zijn gericht op het trainen van nieuwe modellen die zijn getraind om specifieke taken uit te voeren. Generatieve AI-workloads verbruiken generatieve modellen die een breder scala aan gebruiksvoorbeelden kunnen aanpakken en in sommige gevallen multimodaal zijn.

  • Richt u op het uitbreiden van de modellen. De belangrijkste asset in traditionele machine learning is het geïmplementeerde model. Toegang tot het model wordt verstrekt aan clientcode in een of meer workloads, maar de workload maakt geen deel uit van het MLOps-proces. Met generatieve AI-oplossingen is een belangrijk facet van de oplossing de prompt die aan het generatieve model wordt geleverd. De prompt moet zijn samengesteld en kan gegevens uit een of meer gegevensarchieven bevatten. Het systeem dat de logica organiseert, de verschillende back-ends aanroept, de prompt genereert en aanroept naar het generatieve AI-model maakt deel uit van het generatieve AI-systeem dat u moet beheren met GenAIOps.

Hoewel sommige generatieve AI-oplossingen gebruikmaken van traditionele machine learning-procedures, zoals modeltraining en fine-tuning, introduceren ze allemaal nieuwe patronen die u moet standaardiseren. In deze sectie vindt u een overzicht van de drie algemene categorieën technische patronen voor generatieve AI-oplossingen:

  • Vooraf trainen en afstemmen
  • Prompt-engineering
  • Rag (Retrieval-augmented generation)

Taalmodellen trainen en verfijnen

Op dit moment maken veel generatieve AI-oplossingen gebruik van bestaande basistaalmodellen die niet hoeven te worden afgestemd voordat ze worden gebruikt. Sommige use cases kunnen echter profiteren van het verfijnen van een basismodel of het trainen van een nieuw generatief AI-model, zoals een klein taalmodel (SLM).

Het trainen van een nieuwe SLM en het verfijnen van een generatief basismodel zijn logisch dezelfde processen als het trainen van traditionele machine learning-modellen. Deze processen moeten gebruikmaken van uw bestaande MLOps-investeringen.

Prompt-engineering

Prompt-engineering bevat alle processen die betrokken zijn bij het genereren van een prompt die als invoer naar een generatief model wordt verzonden. Over het algemeen is er een orchestrator die een werkstroom beheert waarmee de prompt wordt gegenereerd. De orchestrator kan een willekeurig aantal gegevensarchieven aanroepen om informatie te verzamelen, zoals grondgegevens, en de vereiste logica toepassen om de meest effectieve prompt te genereren. De orchestrator wordt vervolgens geïmplementeerd als een API-eindpunt dat wordt geopend door clientcode in een intelligente toepassing.

In het volgende diagram wordt een architectuur voor prompt engineering getoond.

diagram dat een architectuur voor prompt engineering toont.

Deze categorie technische patronen kan veel gebruiksvoorbeelden aanpakken, waaronder:

  • Classificatie.
  • Vertaling.
  • Samenvatting.
  • Retrieval-geaugmenteerde generatie, die in de volgende sectie wordt besproken.

Ophalen-augmented generatie

Rag (Retrieval-augmented generation) is een architectuurpatroon dat gebruikmaakt van prompt engineering om domeinspecifieke gegevens op te nemen als grondgegevens voor een taalmodel. Het taalmodel wordt getraind op basis van een specifieke set gegevens. Uw workload vereist mogelijk redenering over gegevens die specifiek zijn voor uw bedrijf, klanten of domein. In RAG-oplossingen worden uw gegevens opgevraagd en worden de resultaten meestal via een orkestratielaag aan het taalmodel geleverd als onderdeel van de prompt.

Een veelvoorkomende RAG-implementatie is het opsplitsen van uw documenten in segmenten en opslaan in een vectorarchief, samen met metagegevens. Met vectorarchieven, zoals Azure AI Search, kunt u zowel tekst- als vector-overeenkomsten uitvoeren om contextafhankelijke resultaten te retourneren. RAG-oplossingen kunnen ook andere gegevensarchieven gebruiken om grondgegevens te retourneren.

In het volgende diagram ziet u een RAG-architectuur:

diagram met een RAG-architectuur.

MLOps uitbreiden voor generatieve AI-technische patronen

In deze sectie worden de volgende belangrijke aspecten van de binnen- en buitenste lusfasen voor de generatieve AI-technische patronen beschreven en wordt uitgelegd waar u uw bestaande MLOps-investeringen kunt toepassen en waar u ze moet uitbreiden:

DataOps

Zowel MLOps als GenAIOps passen de basisprincipes van DataOps toe om uitbreidbare en reproduceerbare werkstromen te maken die ervoor zorgen dat gegevens worden opgeschoond, getransformeerd en correct zijn opgemaakt voor experimenten en evaluatie. Reproduceerbaarheid van werkstromen en gegevensversiebeheer zijn belangrijke functies van DataOps voor alle technische patronen. De bronnen, typen en intentie van de gegevens zijn afhankelijk van het patroon.

Training en finetunen

Dit technische patroon moet volledig profiteren van de bestaande DataOps-investeringen die u hebt gedaan als onderdeel van uw MLOps-implementatie. Met reproduceerbaarheid en gegevensversiebeheer kunt u experimenteren met verschillende functie-engineeringgegevens, de prestaties van de verschillende modellen vergelijken en resultaten reproduceren.

RAG en prompt engineering

De bedoeling van de gegevens in RAG-oplossingen is het bieden van grondgegevens die als onderdeel van een prompt aan het taalmodel worden gepresenteerd. RAG-oplossingen vereisen vaak de verwerking van grote documenten in een verzameling rechtse, semantisch relevante segmenten en het persistent maken van deze segmenten in een vectorarchief. Zie Een RAG-oplossing ontwerpen en ontwikkelen voor meer informatie. Met reproduceerbaarheid en gegevensversiebeheer voor RAG-oplossingen kunt u experimenteren met verschillende segmenterings- en insluitingsstrategieën, prestaties vergelijken en terugdraaien naar eerdere versies.

Gegevenspijplijnen voor het segmenteren van documenten maken geen deel uit van DataOps in traditionele MLOps, dus u moet uw architectuur en bewerkingen uitbreiden. De gegevenspijplijnen kunnen gegevens lezen uit verschillende bronnen die zowel gestructureerde als ongestructureerde gegevens bevatten. Ze kunnen ook de getransformeerde gegevens naar verschillende doelen schrijven. U moet uw architectuur uitbreiden om de databronnen op te nemen die u gebruikt voor het verankeren van gegevens. Algemene gegevensarchieven voor deze patronen zijn vectorarchieven zoals AI Search.

Net als bij het trainen en verfijnen kunt u Azure Machine Learning-pijplijnen of andere hulpprogramma's voor gegevenspijplijnen gebruiken om de fasen van segmentering te organiseren. U kunt gebruikmaken van promptstromen in Azure Machine Learning-pijplijnen om uw gegevens op een consistente en reproduceerbare manier te verwerken en te verrijken. U moet uw bewerkingen ook uitbreiden om de nieuwheid en geldigheid van de zoekindexen in uw gegevensarchieven te behouden.

Experimenten

Experimenteren, een onderdeel van de binnenste lus, is het iteratieve proces van het maken, evaluerenen verfijnen van uw oplossing. In de volgende secties worden experimenten besproken voor de algemene generatieve AI-technische patronen.

Training en bijstelling

Wanneer u een bestaand taalmodel verfijnt of een klein taalmodel traint, kunt u profiteren van uw huidige MLOps-investeringen. Azure Machine Learning-pijplijnen bieden bijvoorbeeld een toolkit voor het efficiënt en effectief uitvoeren van experimenten. Met deze pijplijnen kunt u het volledige proces voor afstemming beheren, van gegevensvoorverwerking tot modeltraining en -evaluatie.

RAG en prompt engineering

Bij het experimenteren met prompt engineering en RAG-workloads, moet u uw MLOps-investeringen uitbreiden. Voor deze technische patronen eindigt de workload niet met het model. Voor de workload is een orchestrator vereist. Dit is een systeem dat logica kan uitvoeren, gegevensarchieven kan aanroepen voor vereiste informatie, zoals grondgegevens, prompts genereren, oproeptaalmodellen en meer. De gegevensarchieven en de indexen in de winkels maken ook deel uit van de workload. U moet uw operaties uitbreiden om deze aspecten van de workload te beheren.

U kunt experimenteren met meerdere dimensies voor oplossingen voor promptontwerp, waaronder verschillende instructies, persona's, voorbeelden, beperkingen en geavanceerde technieken, zoals het koppelen van prompts. Wanneer u experiment met RAG-oplossingen, kunt u experimenteren met extra gebieden:

  • Segmenteringsstrategie
  • Wat en hoe u segmenten kunt verrijken
  • Uw insluitingsmodel
  • Configuratie van uw zoekindex
  • Welke zoekopdrachten moeten worden uitgevoerd (vector, volledige tekst, hybride, enzovoort)

Zoals besproken in DataOpszijn reproduceerbaarheid en gegevensversiebeheer essentieel voor experimenten. Met een goed experimenteerframework kunt u invoer opslaan, zoals wijzigingen in hyperparameters of prompts, samen met de uitvoer die moet worden gebruikt wanneer u het experiment evalueert.

Net als in uw bestaande MLOps-omgeving kunt u profiteren van frameworks zoals Azure Machine Learning-pijplijnen. Azure Machine Learning-pijplijnen hebben functies die ondersteuning bieden voor indexering door integratie met vectorarchieven zoals AI Search. Uw GenAIOps-omgeving kan gebruikmaken van deze pijplijnfuncties en deze combineren met promptstroomfuncties waarmee prompt-engineering en aangepaste logica voor voorverwerking worden beheerd.

Evaluatie en experimenten

Evaluatie is essentieel in het iteratieve experimentenproces voor het bouwen, evalueren en verfijnen van uw oplossing. De evaluatie van uw wijzigingen geeft de feedback die u nodig hebt om uw verfijningen aan te brengen of te valideren dat de huidige iteratie voldoet aan uw vereisten. In de volgende secties wordt de evaluatie in de experimentenfase besproken voor de algemene generatieve AI-technische patronen.

Training en afstemming

Voor de evaluatie van nauwkeurig afgestemde of getrainde AI-modellen moet u profiteren van uw bestaande MLOps-investeringen. Als u bijvoorbeeld Azure Machine Learning-pijplijnen gebruikt om de training van uw machine learning-model te organiseren, kunt u dezelfde evaluatiefuncties gebruiken om basistaalmodellen af te stemmen of nieuwe kleine taalmodellen te trainen. Deze functies omvatten het onderdeel Evaluate Model, waarmee metrische gegevens van de industriestandaard evaluatie worden berekend voor specifieke modeltypen en resultaten worden vergeleken met modellen.

RAG en prompt engineering

U moet uw bestaande MLOps-investeringen uitbreiden om generatieve AI-oplossingen te evalueren. U kunt tools zoals Prompt Flow gebruiken, die een framework voor evaluatie biedt. Met de promptstroom kunnen teams aangepaste evaluatielogica definiëren door criteria en metrische gegevens op te geven om de prestaties van verschillende promptvarianten en grote taalmodellen (LLM's) te beoordelen. Met deze gestructureerde benadering kunt u verschillende configuraties naast elkaar vergelijken, zoals hyperparameter- of architectuurvariaties, om de optimale configuratie voor specifieke taken te identificeren.

Taken binnen de promptflow leggen tijdens het experimentatieproces automatisch invoer- en uitvoergegevens vast om een uitgebreid proefrecord te creëren. U kunt inzichten verkrijgen en veelbelovende configuraties identificeren die toekomstige iteraties kunnen informeren door deze gegevens te analyseren. U kunt de ontwikkeling van uw generatieve AI-oplossingen versnellen door promptstromen te gebruiken om efficiënte en systematische experimenten uit te voeren.

Het experimenteerproces is hetzelfde, ongeacht het gebruiksscenario voor uw generatieve AI-oplossing. Deze use cases omvatten classificatie, samenvatting, vertaling en zelfs RAG. Het belangrijkste verschil is de metrische gegevens die u gebruikt om de verschillende use cases te evalueren. Hieronder vindt u enkele metrische gegevens, op basis van use-case, om rekening mee te houden.

  • Vertaling: BLEU
  • Samenvatting: ROUGE. BLEU, BERTScore, METEOR
  • Classificatie: Precisie, Relevante overeenkomsten, Nauwkeurigheid, Kruis-entropie
  • RAG: Groundedness, Relevantie

Notitie

Zie end-to-end LLM-evaluatie voor meer informatie over het evalueren van taalmodellen en RAG-oplossingen.

In het algemeen breiden generatieve AI-oplossingen de verantwoordelijkheden van het machine learning-team uit, van het trainen van modellen tot het ontwerpen van prompts en het beheren van basisgegevens. Omdat prompt-engineering en RAG-experimenten en -evaluatie niet noodzakelijkerwijs gegevenswetenschappers vereisen, bent u misschien geneigd om andere rollen, zoals softwaretechnici en data engineers, te gebruiken om deze functies uit te voeren. U ondervindt uitdagingen als u gegevenswetenschappers weglaat uit het experiment met prompt engineering- en RAG-oplossingen. Andere rollen worden meestal niet getraind voor het wetenschappelijk evalueren van de resultaten, zoals veel gegevenswetenschappers zijn. Lees de zevendelige artikelreeks Ontwerpen en ontwikkelen van een RAG-oplossing om inzicht te krijgen in de complexiteit van het ontwerpen van generatieve AI-oplossingen.

Door te investeren in generatieve AI-oplossingen kunt u de druk op uw data science-resources verlichten. De rol van softwaretechnici breidt zich uit in deze oplossingen. Softwaretechnici zijn bijvoorbeeld geweldige hulpmiddelen voor het beheren van de orkestratieverantwoordelijkheid in generatieve AI-oplossingen en ze zijn bedreven in het instellen van de evaluatiemetingen in hulpprogramma's zoals Prompt Flow. Het is belangrijk om gegevenswetenschappers dit werk te laten beoordelen. Ze hebben de training en ervaring om te begrijpen hoe ze de experimenten goed kunnen evalueren.

Implementatie

Sommige generatieve AI-oplossingen omvatten het implementeren van aangepast getrainde modellen of het verfijnen van bestaande modellen, maar andere niet. Voor generatieve AI-oplossingen moet u de extra taken opnemen voor het implementeren van de orchestrators en alle gegevensarchieven. In de volgende secties worden de implementatie van algemene technische AI-patronen besproken.

Training en fijn-tuning

U moet uw bestaande MLOps-investeringen, met enkele mogelijke aanpassingen, gebruiken om generatieve AI-modellen te implementeren en basismodellen af te stemmen. Als u bijvoorbeeld een groot taalmodel in Azure OpenAI wilt afstemmen, moet u ervoor zorgen dat uw trainings- en validatiegegevenssets de JSONL-indeling hebben en u de gegevens moet uploaden via een REST API. U moet ook een taak voor het afstemmen maken. Als u een getraind klein taalmodel wilt implementeren, kunt u profiteren van uw bestaande MLOps-investeringen.

RAG en prompt engineering

Voor RAG en prompt-engineering zijn er aanvullende problemen, waaronder indelingslogica, wijzigingen in gegevensarchieven, zoals indexen en schema's, en wijzigingen in gegevenspijplijnlogica. Orchestratie logica wordt doorgaans ingekapseld in frameworks zoals prompt flow, Semantic Kernel of LangChain. U kunt de orchestrator implementeren op verschillende rekenresources, inclusief resources waarop u momenteel aangepaste modellen kunt implementeren. Zie end-to-end-chatarchitectuur van Azure OpenAI voor voorbeelden van het implementeren van promptstroom naar online-eindpunten die worden beheerd door Azure Machine Learning of azure App Service. Om te implementeren in App Service, verpakt de Azure OpenAI-chatarchitectuur de stroom en de bijbehorende afhankelijkheden als een container, een praktijk die de draagbaarheid en consistentie in verschillende omgevingen verhoogt.

Implementaties van wijzigingen in databasebronnen, zoals wijzigingen in gegevensmodellen of indexen, zijn nieuwe taken die moeten worden verwerkt in GenAIOps. Een veelvoorkomende procedure bij het werken met grote taalmodellen is het gebruik van een gateway vóór de LLM.

Veel generatieve AI-architecturen die platform-hostende taalmodellen gebruiken, zoals die worden geleverd vanuit Azure OpenAI, bevatten een -gateway zoals Azure API Management. De gatewaygebruiksscenario's omvatten taakverdeling, verificatie en bewaking. De gateway kan een rol spelen bij de implementatie van nieuw getrainde of nauwkeurig afgestemde modellen, zodat u geleidelijk nieuwe modellen kunt implementeren. Met het gebruik van een gateway, samen met modelversiebeheer, kunt u het risico minimaliseren wanneer u wijzigingen implementeert en terugdraait naar eerdere versies wanneer er problemen optreden.

Implementaties van elementen die specifiek zijn voor generatieve AI, zoals de orchestrator, moeten de juiste operationele procedures volgen, zoals:

  • Strenge tests, inclusief eenheidstests.
  • Integratietests.
  • A/B-tests.
  • Eind-tot-eind-tests.
  • Uitrolstrategieën, zoals canary- of blue/green-implementaties.

Omdat de implementatieverantwoordelijkheden voor generatieve AI-toepassingen verder gaan dan de modelimplementatie, hebt u mogelijk extra taakrollen nodig om de implementatie en bewaking van zaken zoals de gebruikersinterface, de orchestrator en de gegevensarchieven te beheren. Deze rollen worden vaak afgestemd op vaardighedensets van DevOps-engineers.

Deductie en bewaking

Deductie is het proces van het doorgeven van invoer aan een getraind en geïmplementeerd model, dat vervolgens een antwoord genereert. U moet zowel traditionele machine learning- als generatieve AI-oplossingen bewaken vanuit drie perspectieven: operationele bewaking, leren van productie en resourcebeheer.

Operationele bewaking

Operationele bewaking is het proces van het observeren van de lopende bewerkingen van het systeem, waaronder gegevensbewerkingen (DataOps) en modeltraining. Dit type bewaking zoekt naar afwijkingen, waaronder fouten, wijzigingen in foutpercentages en wijzigingen in verwerkingstijden.

Voor modeltraining en afstemming bekijkt u over het algemeen de gegevensbewerkingen voor het verwerken van functiegegevens, modeltraining en fine-tuning. De bewaking van deze interne lusprocessen moet profiteren van uw bestaande MLOps- en DataOps-investeringen.

Voor prompt engineering in generatieve AI-oplossingen hebt u extra controleproblemen. U moet de gegevenspijplijnen bewaken die de grondgegevens of andere gegevens verwerken die worden gebruikt om prompts te genereren. Deze verwerking kan bestaan uit bewerkingen voor gegevensopslag, zoals het bouwen of herbouwen van indexen.

Leren van productie

Een essentieel aspect voor bewaking tijdens de inferentiefase is het leren uit productie. Monitoring voor traditionele machine learning-modellen houdt metrics bij, zoals nauwkeurigheid, precisie en herkenning. Een belangrijk doel is om voorspellingsdrift te voorkomen. Oplossingen die gebruikmaken van generatieve modellen om voorspellingen te doen, bijvoorbeeld met behulp van een GPT-model voor classificatie, moeten profiteren van uw bestaande MLOps-bewakingsinvesteringen.

Oplossingen die gebruikmaken van generatieve modellen om redeneren over grondgegevens, gebruiken metrische gegevens zoals aarding, volledigheid, gebruik en relevantie. Het doel is ervoor te zorgen dat het model de query volledig beantwoordt en het antwoord baseert op de context. Hier moet u proberen problemen zoals gegevensdrift te voorkomen. U wilt ervoor zorgen dat de grondgegevens en de prompt die u aan het model opgeeft, maximaal relevant zijn voor de gebruikersquery.

Oplossingen die gebruikmaken van generatieve modellen voor niet-predictieve taken, zoals RAG-oplossingen, profiteren vaak van menselijke feedback van eindgebruikers om nuttige gevoelens te evalueren. Gebruikersinterfaces kunnen feedback zoals duimen omhoog of omlaag vastleggen en u kunt deze gegevens gebruiken om de antwoorden periodiek te evalueren.

Een veelvoorkomend patroon voor generatieve AI-oplossingen is het implementeren van een gateway vóór de generatieve modellen. Een van de use cases voor de gateway is voor het bewaken van de basismodellen. U kunt de gateway gebruiken om invoerprompts en uitvoer te registreren.

Een ander belangrijk gebied om te controleren op generatieve oplossingen is inhoudsveiligheid. Het doel is om reacties te modereren en schadelijke of ongewenste inhoud te detecteren. Azure AI Content Safety Studio is een voorbeeld van een hulpprogramma dat u kunt gebruiken om inhoud te beheren.

Resourcebeheer

Generatieve oplossingen die gebruikmaken van modellen die beschikbaar zijn als een service, zoals Azure OpenAI, hebben verschillende problemen met resourcebeheer dan modellen die u zelf implementeert. Voor modellen die beschikbaar worden gesteld als een service, maakt u zich geen zorgen over de infrastructuur. In plaats daarvan ben je bezig met de doorvoer, het quotum en de snelheidsbeperking van je service. Azure OpenAI maakt gebruik van tokens voor facturering, beperking en quota. U moet het quotumgebruik bewaken voor kostenbeheer en prestatie-efficiëntie. Met Azure OpenAI kunt u het gebruik van tokens registreren.

Hulpprogramma's

Veel MLOps-beoefenaars hebben gestandaardiseerd op het gebruik van een toolkit voor het organiseren van verschillende activiteiten voor automatisering, volgen, inzet, experimenten, enzovoort om de veelvoorkomende zorgen en implementatiedetails van deze processen te abstraheren. Een gemeenschappelijk geïntegreerd platform is MLflow. Voordat u op zoek bent naar nieuwe hulpprogramma's ter ondersteuning van GenAIOps-patronen, moet u uw bestaande MLOps-hulpprogramma's controleren om de ondersteuning voor generatieve AI te evalueren. MLflow ondersteunt bijvoorbeeld een breed scala aan functies voor taalmodellen.

MLOps- en GenAIOps-volwassen modellen

Mogelijk hebt u het MLOps-volwassenheidsmodel gebruikt om de volwassenheid van uw huidige machine learning-bewerkingen en -omgeving te evalueren. Wanneer u uw MLOps-investeringen voor generatieve AI-workloads uitbreidt, moet u het GenAIOps-volwassen model gebruiken om deze bewerkingen te evalueren. U bent misschien geneigd om de twee volwassenheidsmodellen te combineren, maar we raden u aan om elk afzonderlijk te meten. MLOps en GenAIOps ontwikkelen zich onafhankelijk van elkaar. U bent bijvoorbeeld op niveau vier in het MLOps-volwassen model, maar op niveau één voor generatieve AI.

Samenvatting

Wanneer u begint met het uitbreiden van uw MLOps-investeringen om generatieve AI op te nemen, is het belangrijk om te begrijpen dat u niet opnieuw hoeft te beginnen. U kunt uw bestaande MLOps-investeringen gebruiken voor enkele van de generatieve AI-technische patronen. Afstemmen van generatieve modellen is een goed voorbeeld. Er zijn gebieden van generatieve AI-oplossingen, zoals prompt engineering en RAG, die nieuwe processen zijn, dus u moet uw bestaande operationele investeringen uitbreiden en nieuwe vaardigheden krijgen.

Medewerkers

Dit artikel wordt onderhouden door Microsoft. De tekst is oorspronkelijk geschreven door de volgende Inzenders.

Als u niet-openbare LinkedIn-profielen wilt zien, meldt u zich aan bij LinkedIn.

Volgende stappen