Delen via


Generatieve AI met Azure Database for PostgreSQL - Flexibele server

VAN TOEPASSING OP: Azure Database for PostgreSQL - Flexibele server

Generatieve AI (GenAI) verwijst naar een klasse kunstmatige intelligentie-algoritmen die kunnen leren van bestaande multimedia-inhoud en nieuwe inhoud kunnen produceren. De geproduceerde inhoud kan worden aangepast met behulp van technieken zoals prompts en fine-tuning. GenAI-algoritmen passen specifieke Machine Learning-modellen toe:

  • Transformatoren en terugkerende neurale netwerken (RNN's) voor het genereren van tekst.
  • Generation Adversarial Networks (GAN's) voor het genereren van installatiekopieën.
  • Variatie autoencoders (VAE's) voor het genereren van installatiekopieën, enzovoort.

GenAI wordt gebruikt in afbeeldings- en muzieksynthese, gezondheidszorg, algemene taken zoals automatisch aanvullen van tekst, samenvatting van tekst en vertaling. GenAI-technieken maken functies mogelijk voor gegevens zoals clustering en segmentatie, semantische zoekopdrachten en aanbevelingen, onderwerpmodellering, vraagantwoorden en anomaliedetectie.

OpenAI

OpenAI is een onderzoeksorganisatie en technologiebedrijf voor kunstmatige intelligentie (AI) dat bekend staat om zijn pionierswerk op het gebied van kunstmatige intelligentie en machine learning. Hun missie is ervoor te zorgen dat kunstmatige algemene intelligentie (AGI), die verwijst naar zeer autonome AI-systemen die mensen in het meest waardevolle werk kunnen verbeteren, profiteren van alle menselijkheid. OpenAI bracht de markt state-of-the-art generatieve modellen zoals GPT-3, GPT-3.5 en GPT-4 (Ative Pretrained Transformer).

Azure OpenAI is de LLM-service van Azure om GenAI-toepassingen te bouwen met behulp van Azure. Azure OpenAI Service biedt klanten geavanceerde taal-AI met OpenAI GPT-4, GPT-3, Codex-, DALL-E- en Whisper-modellen met de beveiliging en bedrijfsbelofte van Azure. Azure OpenAI ontwikkelt de API's samen met OpenAI en zorgt voor compatibiliteit en een soepele overgang van het ene naar het andere.

Met Azure OpenAI krijgen klanten de beveiligingsmogelijkheden van Microsoft Azure terwijl ze dezelfde modellen uitvoeren als OpenAI. Azure OpenAI biedt privénetwerken, regionale beschikbaarheid en verantwoordelijke AI-inhoudsfiltering.

Meer informatie over Azure OpenAI.

Large Language Model (LLM)

Een LLM (Large Language Model) is een type AI-model dat is getraind op enorme hoeveelheden tekstgegevens om menselijke taal te begrijpen en te genereren. LLM's zijn doorgaans gebaseerd op deep learning-architecturen, zoals transformers, en ze staan bekend om hun vermogen om een breed scala aan natuurlijke taalkennis en generatietaken uit te voeren. De GPT van OpenAI, die ChatGPT aangeeft, is een LLM.

Belangrijke kenmerken en mogelijkheden van grote taalmodellen zijn:

  • Schaal: Immense schaal in termen van het aantal parameters dat in de LLM-architectuur wordt gebruikt, zijn voor hen kenmerkend. Modellen zoals GPT-3 (vooraf getrainde transformator 3) bevatten van honderden miljoenen tot biljoenen parameters, waardoor ze complexe patronen in de taal kunnen vastleggen.
  • Voortraining: LLM's worden vooraf getraind op een groot aantal tekstgegevens van internet, waardoor ze grammatica, syntaxis, semantiek en een breed scala aan kennis over taal en de wereld kunnen leren kennen.
  • Afstemming: Na vooraf trainen kunnen LLM's worden afgestemd op specifieke taken of domeinen met kleinere, taakspecifieke gegevenssets. Met dit afstemmingsproces kunnen ze zich aanpassen aan meer gespecialiseerde taken, zoals tekstclassificatie, vertaling, samenvatting en vragen beantwoorden.

GPT

GPT staat voor Ative Pretrained Transformer en verwijst naar een reeks grote taalmodellen die zijn ontwikkeld door OpenAI. De GPT-modellen zijn neurale netwerken die vooraf zijn getraind op grote hoeveelheden gegevens van internet, waardoor ze in staat zijn om menselijke tekst te begrijpen en te genereren.

Hier volgt een overzicht van de belangrijkste GPT-modellen en hun belangrijkste kenmerken:

GPT-3: Uitgebracht in juni 2020, is een bekend model in de GPT-serie. Het heeft 175 miljard parameters, waardoor het een van de grootste en krachtigste taalmodellen bestaat. GPT-3 bereikte opmerkelijke prestaties op een breed scala aan natuurlijke taalbegrip en generatietaken. Het kan taken uitvoeren zoals tekstvoltooiing, vertaling, vraag-beantwoorden en meer met een vloeiendheid op menselijk niveau. GPT-3 is onderverdeeld in verschillende modelgrootten, variërend van de kleinste (125M-parameters) tot de grootste (175B-parameters).

GPT-4: Is het nieuwste GPT-model van OpenAI, heeft 1,76 biljoen parameters.

Vectoren

Een vector is een wiskundig concept dat wordt gebruikt in lineaire algebra en geometrie om hoeveelheden weer te geven die zowel grootte als richting hebben. In de context van machine learning worden vectoren vaak gebruikt om gegevenspunten of functies weer te geven.

Hier volgen enkele belangrijke vectorkenmerken en -bewerkingen:

  • Grootte: De lengte of grootte van een vector, die vaak wordt aangeduid als de norm, vertegenwoordigt de grootte van de gegevens die deze vertegenwoordigt. Het is een niet-negatief reëel getal.
  • Richting: Geeft de richting of hoek aan van de hoeveelheid die het vertegenwoordigt ten opzichte van een referentiepunt of coördinaatsysteem.
  • Componenten: Een vector kan worden uitgesplitsd in de onderdelen langs verschillende assen of dimensies. In een 2D Cartesisch coördinaatsysteem kan een vector worden weergegeven als (x, y), waarbij x en y de onderdelen zijn langs respectievelijk de x-as en y-as. Een vector in n dimensies is een n-tuple {x1, x2... xn}.
  • Optellen en Scalaire vermenigvuldiging: Vectoren kunnen worden opgeteld om nieuwe vectoren te vormen en ze kunnen worden vermenigvuldigd met scalaire waarden (reële getallen).
  • Dot Product en Cross Product: Vectoren kunnen worden gecombineerd met dot-producten (scalaire product) en kruisproducten (vectorproduct).

Vectordatabases

Een vectordatabase, ook wel een vectordatabasebeheersysteem (DBMS) genoemd, is een type databasesysteem dat is ontworpen voor het efficiënt opslaan, beheren en opvragen van vectorgegevens. Traditionele relationele databases verwerken voornamelijk gestructureerde gegevens in tabellen, terwijl vectordatabases zijn geoptimaliseerd voor de opslag en het ophalen van multidimensionale gegevenspunten die worden weergegeven als vectoren. Deze databases zijn handig voor toepassingen waarbij bewerkingen zoals overeenkomsten zoeken, georuimtelijke gegevens, aanbevelingssystemen en clustering betrokken zijn.

Dit zijn enkele belangrijke kenmerken van vectordatabases:

  • VectorOpslag: Vectordatabases slaan gegevenspunten op als vectoren met meerdere dimensies. Elke dimensie vertegenwoordigt een functie of kenmerk van het gegevenspunt. Deze vectoren kunnen een breed scala aan gegevenstypen vertegenwoordigen, waaronder numerieke, categorische en tekstuele gegevens.
  • Efficiënte vectorbewerkingen: vectordatabases zijn geoptimaliseerd voor het uitvoeren van vectorbewerkingen, zoals vector optellen, aftrekken, dot-producten en overeenkomstenberekeningen (bijvoorbeeld cosinus-gelijkenis of Euclidische afstand).
  • Efficiënt zoeken: Efficiënte indexeringsmechanismen zijn cruciaal voor het snel ophalen van vergelijkbare vectoren. Vectordatabases maken gebruik van verschillende indexeringsmechanismen om snel op te halen.
  • Querytalen: Ze bieden querytalen en API's die zijn afgestemd op vectorbewerkingen en overeenkomsten. Met deze querytalen kunnen gebruikers hun zoekcriteria efficiënt uitdrukken.
  • Overeenkomsten zoeken: ze excelleren bij zoekopdrachten naar overeenkomsten, zodat gebruikers gegevenspunten kunnen vinden die vergelijkbaar zijn met een bepaald querypunt. Dit kenmerk is waardevol in zoek- en aanbevelingssystemen.
  • Georuimtelijke gegevensverwerking: Sommige vectordatabases zijn ontworpen voor georuimtelijke gegevens, waardoor ze geschikt zijn voor toepassingen zoals locatieservices, GIS (Geografische informatiesystemen) en toewijzingsgerelateerde taken.
  • Ondersteuning voor diverse gegevenstypen: Vectordatabases kunnen verschillende typen gegevens opslaan en beheren, waaronder vectoren, afbeeldingen, tekst en meer.

PostgreSQL kan de mogelijkheden van een vectordatabase verkrijgen met behulp van de pgvector extensie.

Insluitingen

Insluitingen zijn een concept in machine learning en natuurlijke taalverwerking (NLP) waarbij objecten, zoals woorden, documenten of entiteiten, als vectoren in een multidimensionale ruimte worden weergegeven. Deze vectoren zijn vaak dicht, wat betekent dat ze een groot aantal dimensies hebben en ze worden geleerd via verschillende technieken, waaronder neurale netwerken. Insluitingen zijn bedoeld om semantische relaties en overeenkomsten tussen objecten in een continue vectorruimte vast te leggen.

Veelvoorkomende typen insluitingen zijn:

  • woord: In NLP vertegenwoordigen woord insluitingen woorden als vectoren. Elk woord wordt toegewezen aan een vector in een hoogdimensionale ruimte, waarbij woorden met vergelijkbare betekenissen of contexten zich dichter bij elkaar bevinden. Word2Vec en GloVe zijn populaire technieken voor het insluiten van woorden.
  • document: Deze vertegenwoordigen documenten als vectoren. Doc2Vec wordt populair gebruikt voor het maken van document-insluitingen.
  • afbeelding: Afbeeldingen kunnen worden weergegeven als insluitingen om visuele functies vast te leggen, zodat taken zoals objectherkenning mogelijk zijn.

Insluitingen zijn centraal in het weergeven van complexe, hoogdimensionale gegevens in een vorm die eenvoudig kan worden verwerkt door machine learning-modellen. Ze kunnen worden getraind op grote gegevenssets en vervolgens worden gebruikt als functies voor verschillende taken en worden gebruikt door LLM's.

PostgreSQL kan de mogelijkheden krijgen van het genereren van vector-insluitingen met de Azure AI-extensie OpenAI-integratie.

Scenario's

Generatieve AI heeft een breed scala aan toepassingen in verschillende domeinen en branches, waaronder technologie, gezondheidszorg, entertainment, financiën, productie en meer. Hier volgen enkele algemene taken die kunnen worden uitgevoerd met generatieve AI:

  • Semantisch zoeken:
    • GenAI maakt semantische zoekopdrachten mogelijk op gegevens in plaats van lexicografische zoekopdrachten. De laatste zoekt naar exacte overeenkomsten met query's, terwijl met semantische zoekopdracht inhoud wordt gevonden die voldoet aan de intentie van de zoekquery.
  • Chatbots en virtuele assistenten:
    • Ontwikkel chatbots die kunnen deelnemen aan natuurlijke contextbewuste gesprekken, bijvoorbeeld om zelfhulp te implementeren voor klanten.
  • Aanbevelingssystemen:
    • Verbeter aanbevelingsalgoritmen door insluitingen of weergaven van items of gebruikers te genereren.
  • Clustering en segmentatie:
    • Met genAI gegenereerde insluitingen kunnen clusteringalgoritmen gegevens clusteren, zodat vergelijkbare gegevens worden gegroepeerd. Dit maakt scenario's zoals klantsegmentatie mogelijk, waardoor adverteerders hun klanten op een andere manier kunnen richten op basis van hun kenmerken.
  • Inhoudsgeneratie:
    • Tekstgeneratie: genereer menselijke tekst voor toepassingen zoals chatbots, creatie van nieuwe/poëzie en begrip van natuurlijke taal.
    • Afbeeldingsgeneratie: maak realistische afbeeldingen, illustraties of ontwerpen voor afbeeldingen, entertainment en reclame.
    • Videogeneratie: Genereer video's, animaties of video-effecten voor films, games en marketing.
    • Muziekgeneratie.
  • Vertaling:
    • Tekst vertalen van de ene taal in een andere.
  • Samenvatting:
    • Lange artikelen of documenten samenvatten om belangrijke informatie te extraheren.
  • Gegevensvergroting:
    • Genereer extra gegevensvoorbeelden om trainingsgegevenssets voor machine learning-modellen (ML) uit te breiden en te verbeteren.
    • Maak synthetische gegevens voor scenario's die moeilijk of duur zijn om te verzamelen in de echte wereld, zoals medische imaging.
  • Drugsdetectie:
    • Genereer moleculaire structuren en voorspel potentiële kandidaten voor farmaceutisch onderzoek.
  • Gameontwikkeling:
    • Maak game-inhoud, inclusief niveaus, tekens en patronen.
    • Genereer realistische in-game omgevingen en landschappen.
  • Gegevensnoising en voltooiing:
    • Maak lawaaierige gegevens op door schone gegevensvoorbeelden te genereren.
    • Vul ontbrekende of onvolledige gegevens in gegevenssets in.