AI certificering, challenge van Microsoft

Ingediend door Dirk Hornstra op 01-apr-2024 19:00

Via mijn collega Jeroen Smink kreeg ik door dat Microsoft weer een challenge had, namelijk de AI-challenge. Door de opdrachten uit te voeren verdien je een promo-code, die kun je inwisselen als je een examen gaat inplannen. Hiermee krijg je 50% korting. Altijd meegenomen! AI is booming, Microsoft doet het goed met onder andere ChatGPT en hoe meer developers het "kunnen" en gaan gebruiken, hoe meer diensten van Microsoft afgenomen gaan worden. Dat zal ook de reden zijn dat ze die korting geven. En ontwikkelaars willen laten zien welke tools van Microsoft er beschikbaar zijn.

Schrijf je hier in: aanmeldpagina.

Na het inschrijven kom je op de lijst van opdrachten.

Nu ik later terug kom, lijkt het erop alsof je meerdere leerdoelen kunt volgen. Ik heb gekozen voor Azure AI Fundamentals.

Je kunt als een "malle" door de modules heen klikken, de vragen beantwoorden en die promo-code scoren. Maar er moet ook wat blijven hangen / het is handig dat je later nog eens kunt terugzoeken van "ik heb toen iets gelezen, hoe zat dat ook alweer"? De reden dat ik hier even wat "krabbels"  neerzet. De items die ik tegenkom die ik interessant vind of waarvan ik denk "misschien later nog wat mee doen" deel ik hier even, zowel als een naslagwerk voor mezelf als voor andere deelnemers :)

Module 1, Fundamental AI Concepts

Hier zie ik een mooi project, SeeingAI voor blinde en slechtziende mensen: link.

Er zitten risico's aan AI. Microsoft heeft "Responsible AI", wat bestaat uit 6 principes.

Fairness.
Als in de bron-data mannen een hoger salaris krijgen dan vrouwen, moet het algoritme dat niet overnemen. Iedereen is gelijk.

Reliability and safety.
Autonome auto's, het is fijn dat je er op kunt "vertrouwen".

Privacy and security.
Sommige AI moet gevoelige data lezen. Die data mag niet "weglekken".

Inclusiveness.
Bijvoorbeeld gezichtsherkenning, bij "donkere mensen" nog wel eens een probleem geweest.

Transparancy.
AI geeft adviezen om bepaalde aandelen te kopen. Waarom?

Accountability.
Ontwerpers en ontwikkelaars moeten zich aan regels houden.

Meer bronnen zijn hier te vinden: link.
En om de policies in actie te zien: informatie over het MS framework.
 

Module 2, Fundamentals of Machine Learning

Op basis van bestaande data een model genereren wat kan voorspellen wat waardes worden bij nieuwe input.
Je traint het model en het voorspellen van nieuwe waardes wordt "inferencing" genoemd.

Bron van machine-learning is wiskunde en statistiek. Met formules. Waarbij de elementen die onderdeel van de voorspelling uitmaken de features zijn en het resultaat het label.

Een algoritme kijkt of er een relatie is tussen de features en het label en probeert daar een formule voor te bepalen.

Het resultaat van het algoritme is een model waar de berekening onderdeel van uitmaakt.

Met eigen functies heb je y = ....
In dit geval is het y met een dakje (y-hat: geen echte waarneming, maar voorspelde waarde).

Je hebt verschillende soorten machinelearning.
Supervised, wat vervolgens met regression of classification gefilterd wordt (classification onderverdeeld naar binary en multiclass).
Unsupervised, daarbij worden zaken vaak geclusterd.

Bij supervised heb je in de training data zowel feature waardes als bekende label waardes.
Regression is een manier waarbij het label wat voorspeld wordt een numerieke waarde is.
Bij classification heb je de binary: iets voldoet wel of iets voldoet niet.
En bij multiclass heb je niet true/false, maar meerdere opties.

Bij unsupervised wordt een trainingset aangeleverd met alleen maar feature waardes.

We krijgen eerst een voorbeeld van regressie. Op basis van een beperkte dataset wordt een formule gemaakt.
Daarna kijk je hoeveel de waardes afwijken. En daar kun je verschillende waardes aan geven.

Daarna kijken we naar binaire classificatie.
We zien een raster met "True negatives", "False positives", "False negatives" en "True positives".

Met clustering zien we het voorbeeld waarbij op basis van de lengte van de vleugel het soort pinguin bepaald wordt.
Met het one versus rest algoritme maak je per soort een algoritme met de waarschijnlijkheid aan.
Met een multinomial algoritme is de output een vector waarin de mogelijkheid van alle soorten gegeven wordt.

Deep learning. Hierbij wordt met neurale netwerken geprobeerd de werking van de hersenen te volgen.

Het volgende punt is Azure Machine Learning.

Deze dienst is bedoeld voor:

  • Exploring data and preparing it for modeling.
  • Training and evaluating machine learning models.
  • Registering and managing trained models.
  • Deploying trained models for use by applications and services.
  • Reviewing and applying responsible AI principles and practices.


Features en mogelijkheden:

  • Centralized storage and management of datasets for model training and evaluation.
  • On-demand compute resources on which you can run machine learning jobs, such as training a model.
  • Automated machine learning (AutoML), which makes it easy to run multiple training jobs with different algorithms and parameters to find the best model for your data.
  • Visual tools to define orchestrated pipelines for processes such as model training or inferencing.
  • Integration with common machine learning frameworks such as MLflow, which make it easier to manage model training, evaluation, and deployment at scale.
  • Built-in support for visualizing and evaluating metrics for responsible AI, including model explainability, fairness assessment, and others.

In de portal kun je een resource aanmaken, hierna kun je in de browser in Azure Machine Learning studio met de data aan de slag.

Als je hiermee aan de slag wilt kun je de oefening uitvoeren:

Hierna de vragen. Voor een classificatiemodel kun je gebruik maken van een Precision metric.
Automated machine learning stelt je in staat om meerdere training jobs met verschillende algoritmes en parameters uit te voeren om zo het beste model te vinden.

Module 3, Fundamentals of Azure AI services

In het intro wordt verwezen naar robots om text to speech te gebruiken. Mag ik zeggen dat ik het echt diep treurig vindt dat oude mensen worden afgescheept met robot-honden en katten? Ja, dat mag ik zeggen.

Een ander (wel cool) ding is dat AI bijvoorbeeld zeehonden kan spotten in foto's, waar wij als mensen heel veel moeite mee hebben.

Azure heeft veel diensten beschikbaar. Beeldherkenning, taalverwerking, spraak, supersnel zoeken door AI.
Via deze link kun je zien wat er allemaal is.

Met AI wordt bij surfers al onderzoek gedaan, zoals je op deze pagina kunt zien.

Als je in Azure een service resource aanmaakt, dan kun je kiezen voor:

  • Multi-service resource.
  • Single-service resource.

De naam geeft al aan hoe de splitsing is. Bij deze ene combineer je meerdere diensten op 1 factuur, anders 1 factuur per dienst.

Heb je de resource draaien, dan kun je die benaderen met de REST API, SDK's of Visual Studio interfaces.
Voor authenticatie stuur je de key en het endpoint mee in de headers.
Meer over authenticatie is hier na te lezen.

In de oefening ga je zelf aan de slag met Content Safety Studio.
 

Module 4, Fundamentals of Computer Vision

We krijgen eerst een introductie met hoe kleuren opgeslagen worden.
Zo zien we een matrix met de RGB waardes. Vervolgens gaat hier een filter over.
In het voorbeeld zien we een banaan en vervolgens een donkere afbeelding waarin de randen benadrukt zijn. Zaken die we ook wel bij Hogere Informatica bij Computer Vision gedaan hebben.

Convolutional neural networks.
We zien hoe de modellen getraind worden met bananen, appels en sinaasappels. Want dat willen we, stop een plaatje erin en AI zegt: het is een banaan!

Met transformers zijn onderzoekers aan de slag gegaan om woorden in vectors weer te geven. Tokens die in dezelfde context horen, zitten in dimensie dichter bij elkaar dan niet gerelateerde woorden.

Vervolgens zijn ontwikkelaars gaan denken: kan dit ook bij afbeeldingen. Dat zijn multi-modal modellen geworden.
Het Florence-model van Microsoft is getraind met veel afbeeldingen van Internet en bevat zowel een afbeelding- als tekstencoder. Dit noemen we een voorbeeld van een foundation model. Hier kun je adaptieve modellen van afleiden.

Als je Azure AI Vision wilt gebruiken, kies je voor een Azure AI Vision resource (als je alleen de Azure AI Vision service wilt gebruiken) of een Azure AI services resource. In dat laatste geval kun je meer zaken toevoegen zoals AI Language, AI Custom Vision, AI Translator en meer.

Wat kan AI Vision?

  • OCR - tekst uit afbeeldingen halen
  • Titel en omschrijving van afbeeldingen maken
  • Duizenden algemene objecten in afbeeldingen detecteren
  • Visual features in afbeeldingen taggen


En dat kun je doen in Azure AI Vision Studio.

Vervolgens kun je bij de oefening gaan kijken of je afbeeldingen kunt analyseren.
 

Module 5, Fundamentals of Facial Recognition

Gezichtsherkenning. Wordt bij veel zaken gebruikt, security: je smartphone "unlockt" door het scannen van je gezicht, social media: mensen taggen in posts, intelligent monitoring: is de chauffeur naar de weg aan het kijken of in slaap gevallen, Amber Alert: iemand vermist, via camera's snel terug te vinden.


Azure heeft verschillende diensten:

  • Azure AI Vision, detecteer gezichten en basic gezichtsanalyse (de bekende bounding-box om een gezicht)
  • Azure AI Video Indexer, detecteer en indentificeer gezichten in video's
  • Azure AI Face, bevat algoritmes voor detecteren, herkennen en analyseren van gezichten

 

Behalve gezichten kan de service meer, namelijk:

  • Accessoires, draag iemand een bril,masker, piercing e.d. confidence score tussen 0 en 1
  • Blur, is de persoon het onderwerp of niet van de foto
  • Exposure, is het gezicht overbelicht of onderbelicht
  • Glasses, los attribuut of iemand dat wel of niet heeft
  • Head pose, hoe staat het gezicht in de 3d ruimte
  • Mask, los attribuut, draagt de persoone en masker of niet
  • Noise, bevat de afbeelding veel ruis door bijvoorbeeld een hoge ISO-waarde
  • Occlusion, zijn er objecten die ervoor zorgen dat het gezicht (deels) afgeschermd is


Er zijn een paar tips voor goede detectie, namelijk:

  • zorg voor een BMP, GIF, JPEG of PNG.
  • de afbeelding is 6MB of kleiner.
  • 36x36 en 4096x4096. Is een gezicht kleiner of groter, dan wordt het niet herkend.

 

Vervolgens kun je bij de oefening aan de slag met het detecteren van gezichten.

Module 6, Fundamentals of optical character recognition

OCR, oftewel tekstherkenning. Ik weet nog dat ik het vak Computer Vision volgde bij de opleiding Hogere Informatica. In de jaren 1997-2001. En daar zat ook OCR bij.

Met de Read API krijg je terug:

  • de pagina's, inclusief grootte en oriëntatie
  • regels, de regels tekst op een pagina
  • woorden, de woorden in een regel, inclusief de bounding box en tekst

In Vision Studio kun je hiermee aan de slag, en dat kan dan ook bij het voorbeeld.
 

Module 7, Fundamentals of Text Analysis with the Language Service

Het is handig dat AI snapt waar je het over hebt. Als jij een tekst invoert waarin je het hebt over "een bank", gaat het dan om een bank in het park of de bank waar je jouw spaargeld aan toevertrouwd hebt? Computers gebruiken NLP (natural language processing) om teksten te begrijpen. Text analysatie is het NLP proces om die informatie uit teksten te halen.

Azure AI Language heeft een aantal features:

  • named entity recognition, identificeer personen, plaatsen, evenementen en meer. Hiermee kun je ook categorieën opbouwen.
  • entity linking, kan entiteiten koppelen via een link aan wikipedia
  • personal identifying information (PII), identificeert gevoelige persoonlijke informatie, zoals gezondheidsdata
  • language detection, kan op basis van de tekst bepalen welke taal gebruikt wordt, stuurt bijvoorbeeld en terug voor Engels
  • sentiment analysis en opinion mining, identificeert of de tekst positief of negatief is
  • summarization, maakt een samenvatting van de tekst
  • key phrase extraction, haalt de belangrijkste onderdelen uit een tekst zonder structuur
     

Bij de oefening kun je met Language Studio aan de slag met het analyseren van tekst.
 

Module 8, Fundamentals of question answering with the Language Service

In deze module gaat het over "chatbots" die met een conversatie antwoord geven op jouw vragen.

De Azure Bot Service wordt hiervoor gebruikt. Je kunt met Azure AI Language Studio data aanmaken, trainen, publiceren en zaken beheren. Kan ook via de REST API en SDK's, maar met Studio gaat het schijnbaar wat makkelijker.

Bij de oefening kun je zelf met Language Studio aan de slag.


Module 9, Fundamentals of conversational language understanding

De module begint met het noemen van Alan Turing die de Imitation Game opgezet heeft, bekend als de Turing Test. Op een bepaald moment is "de computer aan de andere kant" zo goed, dat je niet weet of er nu een echt mens zit waar je een conversatie mee hebt of een computer.

Om "conversaties" te begrijpen moeten er 3 concepten gebruikt worden:

  • utterances, voorbeeld wat iemand zegt: doe het licht aan, zet de airco uit
  • entities, het onderwerp van de zin, dus het licht, de airco
  • intents, het doel van de zin, wat moet er gebeuren


We zien een aantal intens, de Greeting, de TurnOn/TurnOff, maar ook de "None", een fallback voor zaken "waar we niets mee kunnen".

Bij de oefening kun je aan de slag met conversaties in Language Studio.
 

Module 10, Fundamentals of Azure AI Speech

Om spraak te kunnen begrijpen moet het AI systeem 2 eigenschappen ondersteunen:

  • speech recognition, detecteer en interpreteer de gesproken invoer
  • speech synthesis, zelf gesproken output genereren


Om gesproken teksten te begrijpen worden meestal meerdere modellen gebruikt;

  • acoustic model, zet het audiosignaal om naar phonemes (representaties van geluid)
  • language model, zet die phonemes om naar woorden


speech recognition:

  • ondertiteling genereren voor video's
  • een transcript maken van een telefoongesprek of bijeenkomst
  • geautomatiseerd omzetten van ingesproken teksten in een dictafoon
  • de intentie van de input bepalen en verder verwerken


speech synthesis:

  • welke tekst moet gesproken worden
  • welke stem moet hiervoor gebruikt worden


Om dat voor elkaar te krijgen wordt de tekst met tokens gesplitst en worden fonetische geluiden aan woorden gekoppeld. Die wordt dan uitgesplitst naar prosodic units (zinnen, uitspraken) om phonemes te genereren die omgezet worden naar audioformat. Dat wordt omgezet naar audio, waarbij een stem wordt toegewezen, de snelheid, pitch (hoogte) en het volume.

Die output kan gebruikt worden voor:

  • gesproken response op invoer van gebruikers
  • een tekstmenu in een telefoonsysteem (bijvoorbeeld Rabofoon)
  • het lezen van een e-mail of tekstbericht in een hands-free situatie
  • uitzenden van aankondigingen in publieke locaties, zoals een station of op het vliegveld


Je hebt speech-to-text en andersom, text-to-speech.
De lijsten met talen die ondersteund worden kun je hier vinden.

Vervolgens kun je de oefening doen met Speech Studio.


Module 11, Fundamentals of Azure AI Document Intelligence

Er zijn nog genoeg zaken waarbij je formulieren ontvangt. Die data moet dan weer ingevoerd worden in de computer. Met kans op fouten. Daarvoor is Document intelligence die met OCR de teksten kan extraheren en vervolgens zaken op de correcte manier in de database op kan slaan.

Features van Azure AI Document Intelligence zijn gegroepeerd door het modeltype;

  • Prebuilt models, getrainde modellen voor facturen, visitekaartjes, ID-bewijzen. Hiermee kun je de belangrijke data redelijk simpel opvragen.
  • Custom models, is een prebuilt model niet voldoende, dan kun je een eigen model maken.
  • Document analysis, algemene analyse van documenten die je een gestructureerd datamodel terug geefft, inclusief gebieden in het document die van belang zijn en de onderlingen relaties.


Prebuilt models:

  • van facturen de klant- en leveranciergegevens opvragen
  • verkoop- en transactiedetails van bonnetjes opvragen
  • identificatie en verificatie-details van id-bewijzen opvragen
  • en nog veel meer


Om het beste resultaat te bereiken:

  • BMP, JPEG, PNG, PDF of TIFF
  • voor S0-tier kleiner van 500 MB, voor F0-tier maximaal 4 MB
  • tussen 50x50 en 10.000x10.000 pixels
  • PDF documenten: niet groter dan 17 inch x 17 inch (43.18 x 43.18 cm)
  • 1 bonnetje per document


Voor de F0-tier (is gratis) worden alleen de eerste 2 pagina's van PDF en TIFF verwerkt.

Bij de oefening kun je aan de slag met het extraheren van data uit documenten.


Module 12, Fundamentals of Knowledge Mining and Azure AI Search

Azure AI Search. Als je een zoekmachine gebruikt, dan wordt gezocht in "online teksten". En mogelijk ook in documenten die geïndexeerd zijn. Maar er zijn zoveel meer zaken waar informatie in zit. Niet te indexeren documenten, afbeeldingen, ingescande papieren met handgeschreven teksten.

Om informatie uit die grote berg "ongestructureerde data" te halen, dat wrodt knowledge mining genoemd.

Azure AI Search bouwt een zoekindex op die je kunt gebruiken. Gebaseerd op Apache Lucene, een open-source softwarebibliotheek. Wordt ook gebruikt bij Umbraco. De SLA is hoog: 99.9%

AI Search biedt deze features:

  • data from any source, als de data in JSON aangeleverd wordt, dan kan AI Search daar mee werken.
  • full text search and analysis, met simple query en Lucene query kun je data doorzoeken
  • AI powered search, met AI afbeeldingen en text-anlyse uit "rauwe content"
  • multi-lingual, ondersteuning van 56 talen
  • geo-enabled, geo-search zoeken op basis van je fysieke locatie
  • onderhoudbare user experience, autocomplete, autosuggest, paginering en hightlighten van matches


De invoer kan bestaan uit een databron met artifacten. Dat kan een map met onderliggende mappen en bestanden zijn in Azure Storage, tekst in een SQL database of Azure Cosmos. Zolang je dit als JSON aan kunt leveren, dan kan AI Search ermee werken.

Kun je zelf geen JSON aanleveren, je hebt ook indexers die veel bronnen ondersteunen en zaken naar JSON kunnen serialiseren.

Die indexer kan de data ook "rijker maken" door zelf zaken toe te voegen, zoals sentiment, nieuwe velden, etc.

Natural language processing skills:

  • key phrase extraction, gebruikt een eerder getraind model om belangrijke stukken tekst te kunnen onderscheiden.
  • text translation skill, gebruikt een eerder getraind model om de ingevoerde tekst te vertalen
     

Image processing skills:

  • image analysis skill, gebruikt afbeelding detectie algoritme om de inhoud van een afbeelding te detecteren en een omschrijvende tekst te maken
  • optical character recognition skill, haal teksten uit afbeeldingen, zowel geprint als handgeschreven


Er zijn 2 acties van de indexer:

  • push method, json data is aangeleverd bij de indexer via REST API of SDK. Dit is de meest flexibele methode.
  • pull method, verschillende indexers kunnen data uit Azure data sources halen en dat naar JSON exporteren als het binnengekomen formaat al geen JSON is.

In de oefening kun je zelf aan de slag met een Azure AI Search index.
 

Module 13, Fundamentals of Generative AI

Nu gaan we naar de LLMs, oftewel large language models. In het intro wordt futurist en schrijver Arthur C. Clarke genoemd die een quote heeft "any sufficiently advanced technology is indistinguishable from magic". Het schijnt dat hij hele goede science-fiction boeken geschreven heeft, alleen er is maar 1 boek in de bibliotheek beschikbaar. Binnenkort maar eens reserveren!

Het eerste waar je aan denkt is ChatGPT.

Daar heb je verschillende modellen:

  • GPT-4, nieuwe generatie van gegenereerd voorgetraind die in "natuurlijke taal" kan converseren en code compleet kan maken op basis van een tekst-prompt.
  • GPT 3.5, versie voor 4, het GPT-35-turbo model is geoptimaliseerd voor chat-gebaseerde interactie
  • embeddings model, converteer tekst naar numerieke vectoren, te gebruiken in taal analyserende scenarios, bijvoorbeeld om 2 datasets met elkaar te vergelijken
  • DALL-E modellen, afbeeldingen genereren. DALL-E is in preview.

De verschillen, de nieuwste modellen, je kunt het terugvinden in de Azure OpenAI service documentatie.

We krijgen een omschrijving van de Transformer models.
Met een encoder block maak je semantische representaties van de training spraakset, met en decoder genereer je nieuwe zinnen.

Je hebt ook de copilots. Software wat in andere software geïntegreerd is en je ondersteunt bij taken.
De copilot van Microsoft is hier te vinden.

Om AI antwoorden te verbeteren kun je gebruik maken van "prompts".
Je geeft bijvoorbeeld als input "je bent een behulpzame assistent die altijd op een vrolijke manier reageert".

LLMs ondersteunen zero-shot-learning, zonder voorbeelden antwoorden geven. Maar je kunt met one-shot learning prompts 1 of een aantal voorbeelden van output aanleveren zoals "bezoek het kasteel in de ochtend voordat het druk wordt met alle bezoekers".

Met grounding data lever je context aan. Als je een LLM wilt gebruiken om een samenvatting van een e-mail te maken kun je de e-mail tekst in de prompt aanleveren met de instructie om er een samenvatting van te maken.

Bij de oefening ga je generative AI met Bing Copilot bekijken.


Module 14, Fundamentals of Azure OpenAI Service

Open AI modellen kunnen inmiddels "natuurlijke tekst" genereren, code genereren en ook afbeeldingen.

OpenAI kennen we van ChatGPT maar er zijn natuurlijk veel meer mogelijkheden.

Microsoft heeft een partnership met OpenAI om:

  • zaken via Azure goed te kunnen regelen (security, compliance, regionale beschikbaarheid)
  • OpenAI modellen via meerdere diensten te kunnen gebruiken
  • Azure als bron van "power" voor de workloads
     

Azure OpenAI bestaat uit 4 onderdelen:

  • vooraf getrainde generatieve AI modellen
  • mogelijkheid om zaken naar wens aan te kunnen passen, finetunen van modellen met eigen data
  • ingebouwde tools om foutieve implementaties te detecteren en oplossingen te bieden
  • enterprise-grade beveiliging met RBAC toegangscontrole en private netwerken


Prijzen voor de OpenAI diensten kun je hier vinden.

Als je gebruik wilt maken van Azure OpenAI dan moet je een aanvraag indienen.

Bij de oefening ga je Azure OpenAI services onderzoeken.


Module 15, Fundamentals of Responsible Generative AI

De Microsoft's Responsible AI standard kwam volgens mij ook al in module 1 voorbij, in de start van deze module wordt ook nog verwezen naar een pagina waar die zaken meer uitgewerkt zijn: https://aka.ms/RAI

De Microsoft standaard bestaat uit 4 onderdelen:

  • identificeer potentiële bedreigingen die relevant zijn
  • meet de aanwezigheid van deze zaken in de output die door jouw oplossing gegenereerd wordt
  • zorg op meerdere lagen in je oplossing dat die zaken verwijderd worden en wees transparant naar je gebruikers welke mogelijke risico's er zijn
  • beheer je oplossing verantwoordelijk door het volgen van een deployment en operational readiness plan


Deze onderdelen lijken erg zaken uit het NIST AI Management Framework.

Er wordt verwezen naar de transparency note van Azure OpenAI service, de OpenAI GPT-4 system card, de assessment guide van Microsoft en het assessment sjabloon.

Om zaken te testen wordt vaak een Red Team opgezet om "gaten" te vinden.
Mocht je daarmee aan de slag gaan, hier staat de documentatie voor read teaming large language models.

Er zijn meerdere mogelijkheden om foutieve/schadelijke output te voorkomen.

Op modelniveau. In plaats van alle mogelijkheden van ChatGPT te gebruiken, kun je een eigen model gebruiken om zaken "in te perken".

Op safety systeemlaagniveau. OpenAI service biedt de mogelijkheid om content filters toe te passen. Content kan een niveau qua impact hebben: safe, low, medium en high, en vier categorieën qua potentiële schadelijkheid: hate, sexual, violence, self-harm.

Met de metaprompt en groundinglaag. Specificeer een metaprompt of input dat gedragsparameters configureert, voeg grounding data in prompts toe en/of gebruik retrieval augmented generation (RAG) om contextuele data van andere vertrouwde bronnen in de prompt toe te voegen.

En uiteindelijk de user experiencelaag. Je chat-interface die zelf nog bepaalde zaken wegfiltert.

Voordat je met bouwen begint, registreer eerst alle compliance requirements. Daarbij kun je denken aan:

  • legal
  • privacy
  • security
  • accessibility


Bij het beheer van jouw oplossing kun  je de volgende aanpak volgen:

  • ontwerp een phased delivery plan, waarbij een beperkte groep gebruikers jouw oplossing gebruikt. Op basis van hun feedback en problemen kun je eerst nog zaken fixen.
  • maak een incident response plan dat schattingen bevat van hoeveel tijd er nodig is om te reageren op een onverwacht probleem
  • maak een rollback plan dat de stappen definieert om je oplossing terug te zetten naar een vorige versie als een probleem optreedt
  • implementeer de code om direct beschadigende responses te kunnen blokkeren als ze ontdekt worden
  • implementeer de mogelijkheid om specifieke gebruikers, applicaties en IP-adressen te blokkeren bij misbruik
  • implementeer een mogelijkheid voor gebruikers om feedback te geven en problemen te rapporteren. Zoals "inaccurate", "incomplete", "offensive" of op een andere manier problematisch
  • gebruik telemetry data om te kijken of gebruikers tevreden zijn met de resultaten en om missende zaken of usability zaken te vinden en te fixen. Het verzamelen van die data moet wel overeenkomen met de privacy-regels en andere zaken


Bij de oefening ga je kijken hoe je met content filters in Azure OpenAI kunt werken.

Module 16, Prepare to develop AI solutions on Azure

Je hebt de verschillende lagen. Zoals de Data Science. Volgens mij ook wel eens gehoord in de uitzendingen van .NET Rocks. Dan zit je meer in de modellen, het verwerken en analyseren van data.

Daar boven heb je Machine Learning. Op basis van data worden voorspellingen gedaan.

Daar boven zit in de afbeelding Artificial Intelligence. Dat is trouwens niet altijd het geval.

Als je met Azure Machine Learning aan de slag wilt gaan, dan kun je hier meer informatie vinden.
Wil je meer van Azure AI Services weten, dan kun je hier meer informatie vinden.
Wil je meer van Azure OpenAI Services weten, dan kun je hier meer informatie vinden.
Wil je meer van Azure AI Search weten, dan kun je hier meer informatie vinden.


Module 17, Create and consume Azure AI services

Het verhaal in deze module is redelijk algemeen en terugkijkend op eerdere modules.

Bij de oefening ga je aan de slag met een lab. De instructies daarvoor kun je ook later nalezen via deze link.
 

Module 18, Secure Azure AI services

Veiligheid is in alle software belangrijk, maar bij dit type software helemaal.

Om toegang te krijgen tot AI service resources maak je gebruik van een subscription key.
Om dit "veilig" te houden is het advies om die regelmatige te hergeneren. Dat kan in de portal en via de CLI. In dat geval met commando



az cognitiveservices account keys regenerate
 

Elke AI service is uitgerust met 2 keys, waardoor je die hergeneratie kunt uitvoeren zonder de dienst te onderbreken.

  • zorg dat je in productie maximaal 1 key gebruikt, key 1.
  • hergenereer de andere key.
  • switch jouw applicaties om "de andere gehergenereerde key te gebruiken", dus key 2.
  • hergenereer key 1
  • switch jouw applicaties om de nieuwe key 1 te gebruiken.


Je kunt de keys in een Keyvault opslaan. Toegang tot die keys doe je met een service principal.

De module toont wat voorbeelden/stappen:

Maak een eigen subdomein



Set-AzContext -SubscriptionName <Your-Subscription-Name>
$account = New-AzCognitiveServicesAccount -ResourceGroupName <your-resource-group-name> -name <your-account-name> -Type <your-account-type> -SkuName <your-sku-type> -Location <your-region> -CustomSubdomainName <your-unique-subdomain-name>
 

Wijs een rol toe aan de service principal



$SecureStringPassword = ConvertTo-SecureString -String <your-password> -AsPlainText -Force

$app = New-AzureADApplication -DisplayName <your-app-display-name> -IdentifierUris <your-app-uris> -PasswordCredentials $SecureStringPassword

New-AzADServicePrincipal -ApplicationId <app-id>

New-AzRoleAssignment -ObjectId <your-service-principal-object-id> -Scope <account-id> -RoleDefinitionName "Cognitive Services User"

Authenticeer via managed identities

Je hebt 2 soorten, de system-assigned managed identity, deze is gemaakt en gelinkt aan een specifieke resource, bijvoorbeeld een VM die bij Azure AI Services moet kunnen komen. Drop je de VM, dan drop je ook de user.
De user-assigned managed identity, deze kan door meerdere resources gebruikt worden.

Als je bijvoorbeeld een VM hebt die je elke dag zaken met Azure AI services wilt laten doen, dan maak je een system-assigned identity voor de VM. Zorg wel eerst dat deze de Virtual Machine Contributor rol heeft.



az vm identity assign -g <my-resource-group> -n <my-vm>
 


Als je meer wilt weten van die identities, dan kun je op deze pagina er meer over lezen.


Een ander punt is network-security. Iets kan niet "kapot" gemaakt worden als mensen er niet bij kunnen.
Standaard zijn Azure AI services bereikbaar vanaf alle netwerken. Azure AI Face service, Azure AI vision en een aantal andere diensten kunnen wel ingesteld worden dat ze alleen vanaf bepaalde ip-adressen (publiek, virtueel netwerk) bereikbaar zijn.

Als je meer wilt weten over het instellen van netwerktoegang, dan kun je op deze pagina er meer over lezen.

Ook hier volgt weer een lab. De instructies voor deze opdracht kun je hier nalezen.


Module 19, Monitor Azure AI services

Als je de AI services gebruikt, moet je ook zelf zaken monitoren. Kosten, trends qua verbruik, potentiële problemen.

Wil je weten wat zaken mogelijk gaan kosten, dan kun je natuurlijk gebruik maken van de Azure Pricing Calculator.

Microsoft heeft zelf in de documentatie voor Azure AI services dit verder uitgewerkt.

Je kunt alert rules aanmaken. Handig om notificaties te krijgen "als er iets niet goed gaat of uit de klauw dreigt te lopen".

Bij het aanmaken moet je:

  • de scope aangeven, oftewel, welke resource gaat het om
  • de conditie, waarop moet de regel triggeren. Is gebaseerd op een signal type, dat kan Activity Log of Metric zijn.
  • optionele acties, stuur een mailtje naar de admin, voer een Azure Logic App uit om zelf het probleem te fixen
  • alert rule details, naam voor de alert rule en de resource groep


Wil je meer weten over alerts in Azure, dan kun je dat hier nalezen in de documentatie.

Met metrics kun je in diagrammen data zien e.d. Die kun je ook op een dashboard plaatsen.
Wil je meer weten over dashboards, dan kun je dat hier nalezen in de documentatie.

Het beheren van "diagnostic logging". Deze gegevens moet je ergens opslaan.
Via Azure Event Hubs kun je gegevens doorsturen naar een eigen externe telemetry oplossing, maar je zult waarschijnlijk voor Azure zelf kiezen;

  • Azure Log Analytics, query en visualiseer log data binnen de Azure Portal
  • Azure Storage, data-opslag, om uit te kunnen exporteren naar andere tools


Voor meer informatie over diagostic logging kun je hier in de documentatie meer lezen.
 

Ook hier volgt weer een lab.
Instructies hiervoor kun je hier nalezen.


Module 20, Deploy Azure AI services in containers

Containers bieden je de mogelijkheid om Azure AI services zowel in Azure te hosten als ook "on premise".
Handig als er in jouw database gevoelige informatie staat die je eigenlijk niet in de cloud wilt opslaan.

Wil je meer over Docker containers weten, check dan hier de documentatie van Microsoft.

In de Microsoft Container Registry zijn containers beschikbaar die je kunt gebruiken.

We krijgen ook meteen een overzicht van de verschillende containers:

  • Key Phrase Extraction: mcr.microsoft.com/azure-cognitive-services/textanalytics/keyphrase
  • Language Detection: mcr.microsoft.com/azure-cognitive-services/textanalytics/language
  • Sentiment Analysis: mcr.microsoft.com/azure-cognitive-services/textanalytics/sentiment
  • Named Entity Recognition: mcr.microsoft.com/product/azure-cognitive-services/textanalytics/language/about
  • Text Analytics for health: mcr.microsoft.com/product/azure-cognitive-services/textanalytics/healthcare/about
  • Translator: mcr.microsoft.com/product/azure-cognitive-services/translator/text-translation/about
  • Summarization: mcr.microsoft.com/azure-cognitive-services/textanalytics/summarization


Speech containers:

  • Speech to text: mcr.microsoft.com/product/azure-cognitive-services/speechservices/speech-to-text/about
  • Custom Speech to text: mcr.microsoft.com/product/azure-cognitive-services/speechservices/custom-speech-to-text/about
  • Neural Text to speech: mcr.microsoft.com/product/azure-cognitive-services/speechservices/neural-text-to-speech/about
  • Speech language detection: mcr.microsoft.com/product/azure-cognitive-services/speechservices/language-detection/about


Vision containers:

  • Read OCR: mcr.microsoft.com/product/azure-cognitive-services/vision/read/about
  • Spatial analysis: mcr.microsoft.com/product/azure-cognitive-services/vision/spatial-analysis/about


Meer containers en meer informatie is op deze pagina te vinden.

Als je een container configureert, moet je 3 zaken instellen, ApiKey, gebruikt voor de factuur. Billing, de endpoint URI, ook gebruikt voor de factuur. En Eula, de waarde voor het accepteren van de licentie van de container.

Ook deze module heeft weer een lab.
Instructies hiervoor kun je hier nalezen.