Delen via


Inleiding tot generatieve AI-apps in Databricks

Mosaic AI is een code-first platform voor het bouwen van, het evalueren van, het implementeren vanen het monitoren van generatieve AI-toepassingen (gen AI-apps). Het integreert met populaire opensource-frameworks, terwijl het governance op bedrijfsniveau, waarneembaarheid en operationele hulpprogramma's toevoegt, gezamenlijk bekend als LLMOps.

Open source-ondersteuning in Mozaïek AI

Mozaïek AI vormt een aanvulling op, maar vervangt geen bestaande opensource gen AI-bibliotheken en SDK's, zoals:

  • OpenAI
  • LangChain
  • LangGraph
  • AutoGen
  • LlamaIndex
  • CrewAI
  • Semantische Kernel
  • DSPy

Door ingebouwde logboekregistratie, bewaking, robuuste infrastructuur en veilige implementatieopties te bieden, zorgt Mosaic AI ervoor dat deze frameworks kunnen worden gebruikt om ai-apps van hoge kwaliteit op schaal te bouwen voor ondernemingen. Belangrijk is dat u, of u nu uw generatieve AI-app bouwt en host op Databricks of elders, nog steeds gebruik kunt maken van de AI-evaluatie- en bewakingsmogelijkheden van Mozaïek. Voor teams die de voorkeur geven aan gedetailleerdere, directe controle, ondersteunt Mosaic AI ook aangepaste gen AI-apps die vanaf de basis zijn gebouwd met behulp van Python. Hiervoor is geen framework vereist.

Wat zijn generatieve AI-apps?

Een gen AI-app is een toepassing die gebruikmaakt van generatieve AI-modellen (zoals LLM's, modellen voor het genereren van afbeeldingen en tekst-naar-spraak-modellen) om nieuwe uitvoer te maken, complexe taken te automatiseren of intelligente interacties uit te voeren op basis van gebruikersinvoer. Hoewel gen AI-apps verschillende modellen kunnen gebruiken, is deze handleiding gericht op toepassingen die worden aangedreven door LLM's.

Hoewel AI-apps met LLM-functionaliteit op verschillende manieren kunnen worden gebouwd, vallen ze over het algemeen onder een van de twee architectuurpatronen:

Type 1: Monolithische LLM + prompt Type 2 (aanbevolen): Agentsysteem
Wat is het? Eén LLM met zorgvuldig ontworpen prompts. Meerdere communicerende onderdelen (LLM-aanroepen, retrievers, API-aanroepen) zijn samen ingedeeld, variërend van eenvoudige ketens tot geavanceerde systemen met meerdere agents.
voorbeeldgebruiksvoorbeeld Inhoudsclassificatie: Een LLM gebruiken om klantondersteuningstickets te categoriseren in vooraf gedefinieerde onderwerpen. Intelligente assistent: Het combineren van het ophalen van documenten, meerdere LLM-aanroepen en externe API's om uitgebreide rapporten te onderzoeken, analyseren en genereren.
Beste voor Eenvoudige, gerichte taken, snelle prototypes en duidelijke, goed gedefinieerde prompts. Complexe werkstromen, taken waarvoor meerdere mogelijkheden nodig zijn en taken die reflectie vereisen in eerdere stappen.
belangrijkste voordelen Eenvoudigere implementatie, snellere ontwikkeling en lagere operationele complexiteit. Betrouwbaarder en onderhoudbaarder, betere controle en flexibiliteit, eenvoudiger te testen en te verifiëren en optimalisatie op onderdeelniveau.
Beperkingen Minder flexibel, moeilijker te optimaliseren en beperkte functionaliteit. Complexere implementatie, meer initiële installatie en coördinatie van onderdelen nodig.

Voor de meeste bedrijfsgebruiksscenario's raadt Databricks een agentsysteem aan. Door systemen te verdelen in kleinere, goed gedefinieerde onderdelen, kunnen ontwikkelaars de complexiteit beter beheren en tegelijkertijd hoge mate van controle en naleving behouden die vereist zijn voor bedrijfstoepassingen.

Mozaïek AI biedt hulpprogramma's en mogelijkheden die werken voor zowel monolithische systemen als agentsystemen, en de rest van deze documentatie bevat informatie over het bouwen van beide typen AI-apps.

Zie blogberichten van de Databricks-oprichters voor meer informatie over de theorie achter agentsystemen versus monolithische modellen:

Wat is een agentsysteem?

Een agentsysteem is een AI-gestuurd systeem dat autonoom kan zien, beslissen en handelen in een omgeving om doelen te bereiken. In tegenstelling tot een zelfstandige LLM die alleen een uitvoer produceert wanneer hierom wordt gevraagd, beschikt een agentsysteem over een mate van agentschap. Moderne op LLM gebaseerde agentsystemen gebruiken een LLM als de 'hersenen' om de context te interpreteren, te redeneren over wat vervolgens moet worden gedaan en acties te ondernemen zoals API-aanroepen, ophaalmechanismen en hulpprogramma-aanroepen om taken uit te voeren.

Een agentsysteem is gewoon een systeem met een LLM in de kern. Dat systeem:

  1. Ontvangt gebruikersaanvragen of berichten van een andere agent.
  2. Redenen om door te gaan: welke gegevens moeten worden opgehaald, welke logica moet worden toegepast, welke hulpprogramma's moeten worden aangeroepen of of er meer invoer van de gebruiker moet worden aangevraagd.
  3. Voert een plan uit en roept mogelijk meerdere tools aan of delegeert aan subagenten.
  4. Retourneert een antwoord of vraagt de gebruiker om aanvullende uitleg.

Door het overbruggen van algemene intelligentie (de vooraf getrainde mogelijkheden van de LLM) en gegevensinformatie (de gespecialiseerde kennis en API's die specifiek zijn voor uw bedrijf), maken agentsystemen gebruiksvoorbeelden voor ondernemingen mogelijk, zoals geavanceerde klantenservicestromen, gegevensrijke analysebots en indeling met meerdere agents voor complexe operationele taken.

Wat kan een agentsysteem doen?

Een agentsysteem kan:

  • Acties dynamisch plannen
  • De status van de ene stap naar de volgende overbrengen
  • De strategie aanpassen op basis van nieuwe informatie, zonder voortdurende menselijke tussenkomst

Wanneer een zelfstandige LLM een reisschema kan uitvoeren wanneer u hierom wordt gevraagd, kan een agentsysteem klantgegevens ophalen en de vluchten daadwerkelijk boeken door gebruik te maken van hulpprogramma's en API's autonoom. Door 'general intelligence' van de LLM te combineren met 'data intelligence' (domeinspecifieke gegevens of API's), kunnen agentsystemen geavanceerde bedrijfsgebruiksscenario's aanpakken die een enkel statisch model moeilijk kan oplossen.

Agentschap is een continuum; hoe meer vrijheid u biedt om het gedrag van het systeem te beheren, hoe agenticer de toepassing wordt. In de praktijk beperken de meeste productiesystemen de autonomie van de agent zorgvuldig om naleving en voorspelbaarheid te garanderen, bijvoorbeeld door menselijke goedkeuring te vereisen voor riskante acties.

Algemene intelligentie versus gegevensintelligentie

diagram vergelijkt algemene intelligentie versus gegevensintelligentie.

  • Algemene intelligentie: verwijst naar wat de LLM inherent kent van voorafgaande training op een uiteenlopende reeks teksten. Dit is handig voor taalvaardigheid en algemene redenering.
  • Gegevensinformatie: verwijst naar de domeinspecifieke gegevens en API's van uw organisatie. Dit kan bestaan uit klantrecords, productgegevens, knowledge bases of documenten die overeenkomen met uw unieke bedrijfsomgeving.

Agentsystemen combineren deze twee perspectieven: ze beginnen met de brede, algemene kennis van een LLM en brengen vervolgens realtime of domeinspecifieke gegevens in om gedetailleerde vragen te beantwoorden of gespecialiseerde acties uit te voeren.

Voorbeeld van agentsysteem

stroomdiagram van de interactie van de klant met de GEN AI-app.

Overweeg een callcenterscenario tussen een klant en gen AI-agent:

De klant doet een verzoek: "Kan je me helpen mijn laatste bestelling te retourneren?"

  1. Reden en plan: Gezien de intentie van de query, plant de agent om de recente bestelling van de gebruiker op te zoeken en ons retourbeleid te controleren.
  2. Informatie zoeken (gegevensinformatie): de agent voert een query uit op de orderdatabase om de relevante volgorde op te halen en verwijst naar een beleidsdocument.
  3. Reden: De agent controleert of die bestelling binnen het retourvenster past.
    • Optionele human-in-the-loop: De agent controleert een extra regel: Als het item een bepaalde categorie of buiten het normale retourvenster is, escaleert u naar een mens.
  4. Action: de agent activeert het retourproces en genereert een verzendlabel.
  5. Reden: de agent genereert een antwoord aan de klant.

De AI-agent reageert op de klant: 'Gereed! Hier is uw verzendlabel..."

In een menselijk callcenter-context zijn deze stappen een tweede aard. In een agentsysteem context, "redeneert" de LLM terwijl het systeem gespecialiseerde hulpprogramma's of gegevensbronnen aanroept om de details aan te vullen.

Hulpprogramma's en gegevensbronnen die door het agentsysteem worden gebruikt.

Complexiteitsniveaus: Van LLM's tot agentsystemen

Start eenvoudig bij het bouwen van een LLM-toepassing. Een oplossing waarmee u 80% van de manier waarop er vaak één LLM-aanroep is verbeterd door prompts op te halen of zorgvuldig te ontwerpen. Introduceer complexere agentische gedragingen (zoals dynamische hulpprogramma-aanroepen of indeling met meerdere agents) wanneer u ze echt nodig hebt voor betere flexibiliteit of modelgestuurde beslissingen. Deterministische ketens bieden voorspelbare, op regels gebaseerde stromen voor goed gedefinieerde taken, terwijl meer agentische benaderingen ten koste gaan van extra complexiteit en potentiële latentie.

U kunt verschillende complexiteitsniveaus tegenkomen bij het bouwen van AI-systemen:

  • LLM (LLM + Prompt)
    • Een zelfstandige LLM die reageert op tekstprompts met behulp van de vooraf getrainde kennis.
    • Geschikt voor eenvoudige of algemene query's, maar vaak losgekoppeld van uw echte zakelijke gegevens.
  • Hardcoded agentsysteem ("Keten")
    • U organiseert met behulp van deterministische, vooraf gedefinieerde stappen (bijvoorbeeld altijd ophalen uit een vectorarchief, altijd het resultaat combineren met de vraag van de gebruiker en vervolgens de LLM aanroepen).
    • De logica is opgelost en de LLM bepaalt niet welk hulpprogramma hierna moet worden aangeroepen.
  • Tool-aanroepagentsysteem
    • De LLM selecteert en roept 'hulpprogramma's' automatisch aan tijdens runtime.
    • Deze aanpak ondersteunt dynamische, contextbewuste beslissingen over welke hulpprogramma's moeten worden aangeroepen, zoals een CRM-database of een Slack-posting-API.
  • Multi-agent systemen
    • Meerdere gespecialiseerde agents, elk met een eigen functie of domein.
    • Een coördinator (soms een AI-supervisor, soms op basis van regels) bepaalt welke agent bij elke stap moet worden aangeroepen.
    • Agents kunnen taken aan elkaar overdragen terwijl de algehele gespreksstroom behouden blijft.

Mosaic AI Agent Framework is agnostisch voor deze patronen, waardoor het eenvoudig is om eenvoudig te beginnen en zich verder te ontwikkelen naar hogere mate van automatisering en autonomie naarmate uw toepassingsvereisten groeien.

Tools in een agentsysteem

In de context van een agentsysteem zijn hulpprogramma's functies met één interactie die een LLM kan aanroepen om een goed gedefinieerde taak uit te voeren. Het AI-model genereert doorgaans parameters voor elke aanroep van het hulpprogramma en het hulpprogramma biedt een eenvoudige interactie tussen invoer en uitvoer. Er is geen meervoudig geheugen aan de kant van het hulpprogramma.

Enkele veelgebruikte hulpprogrammacategorieën zijn:

  • Hulpprogramma's voor het ophalen of analyseren van gegevens
    • Hulpprogramma's voor het ophalen van vectoren: Een vectorindex opvragen om de meest relevante tekstsegmenten te vinden.
    • Hulpprogramma's voor gestructureerd ophalen: Query Delta-tabellen of API's gebruiken om gestructureerde informatie op te halen.
    • webzoektool: Zoeken op internet of in een interne webcorpus.
    • klassieke ML-modellen: Tools die ML-modellen aanroepen om classificatie- of regressievoorspellingen uit te voeren, bijvoorbeeld een scikit-learn- of XGBoost-model.
    • Gen AI-modellen: Hulpprogramma's die speciale generatie uitvoeren, zoals het genereren van code of het genereren van afbeeldingen en de resultaten teruggeven.
  • Hulpprogramma's die de status van een extern systeem wijzigen
    • hulpprogramma voor API-aanroepen: CRM-eindpunten, interne services of andere integraties van derden voor taken zoals 'verzendstatus bijwerken'.
    • hulpprogramma voor het uitvoeren van code: voert door de gebruiker geleverde (of in sommige gevallen door LLM gegenereerde) code in een sandbox uit.
    • Slack- of e-mailintegratie: plaatst een bericht of verzendt een melding.
  • Hulpprogramma's waarmee logica wordt uitgevoerd of een specifieke taak wordt uitgevoerd
    • hulpprogramma voor codeuitvoering: voert door de gebruiker geleverde of door LLM gegenereerde code uit in een sandbox, bijvoorbeeld Python-scripts.

Zie AI-agenthulpprogramma'som meer te leren over Mosaic AI agenthulpprogramma's.

Belangrijkste kenmerken van hulpprogramma's

Hulpprogramma's in een agentensysteem:

  • Voer één goed gedefinieerde bewerking uit.
  • Houd niet de doorlopende context bij die ene aanroep.
  • Sta toe dat het agentsysteem externe gegevens of services kan bereiken waartoe de LLM geen rechtstreeks toegang heeft.

Foutafhandeling en veiligheid van gereedschap

Omdat elke aanroep van het hulpprogramma een externe bewerking is, zoals het aanroepen van een API, moet het systeem fouten probleemloos afhandelen, zoals time-outs, foutafhandeling onjuist gevormde antwoorden of ongeldige invoer. In productie kunt u het aantal toegestane hulpprogrammaaanroepen beperken, een terugvalreactie hebben als alle aanroepen van hulpprogramma's mislukken en kaders toepassen om ervoor te zorgen dat het agentsysteem niet herhaaldelijk dezelfde mislukte actie probeert uit te voeren.

Meer informatie