AI gebruiken voor het verwerken en analyseren van Blob-inhoud in Azure Cognitive Search

Inhoud in Azure Blob Storage bestaat uit afbeeldingen of lang niet-gedifferentieerde tekst kan een deep learning-analyse ondergaan om waardevolle informatie weer te geven en te extraheren die nuttig is voor downstreamtoepassingen. Met behulp van AI-verrijkingkunt u het volgende doen:

  • Tekst extraheren uit afbeeldingen met optische tekenherkenning (OCR)
  • Een scènebeschrijving of tags van een foto maken
  • Taal detecteren en tekst vertalen in verschillende talen
  • Structuur afleiden via entiteitsherkenning door verwijzingen naar personen, datums, plaatsen of organisaties te zoeken

Hoewel u slechts één van deze AI-mogelijkheden nodig hebt, is het gebruikelijk om meerdere ervan in dezelfde pijplijn te combineren (bijvoorbeeld door tekst te extraheren uit een gescande afbeelding en vervolgens alle datums en plaatsen te zoeken waarnaar wordt verwezen). Het is ook gebruikelijk om aangepaste AI- of machine learning-verwerking op te nemen in de vorm van geavanceerde externe pakketten of interne modellen die zijn afgestemd op uw gegevens en uw vereisten.

Hoewel u AI-verrijking kunt toepassen op elke gegevensbron die wordt ondersteund door een zoekindexeerfunctie, zijn blobs de meest gebruikte structuren in een verrijkingspijplijn. Resultaten worden opgenomen in een zoekindex voor zoeken in volledige tekst of teruggeleid naar Azure Storage om nieuwe toepassingservaringen aan te sturen, waaronder het verkennen van gegevens voor detectie- of analysescenario's.

In dit artikel bekijken we AI-verrijking via een brede lens, zodat u snel het hele proces kunt begrijpen, van het transformeren van onbewerkte gegevens in blobs tot opvraagbare informatie in een zoekindex of een kennisopslag.

Wat het betekent om blobgegevens te 'verrijken' met AI

AI-verrijking maakt deel uit van de indexeringsarchitectuur van Azure Cognitive Search die de machine learning modellen van Microsoft of aangepaste leermodellen die u aanbedeelt. Het helpt u bij het implementeren van end-to-end-scenario's waarbij u blobs moet verwerken (zowel bestaande als nieuwe wanneer ze binnen komen of worden bijgewerkt), alle bestandsindelingen opent om afbeeldingen en tekst te extraheren, de gewenste informatie moet extraheren met behulp van verschillende AI-mogelijkheden en deze moet indexeren in een zoekindex voor snel zoeken, ophalen en verkennen.

Invoer zijn uw blobs, in één container, in Azure Blob Storage. Blobs kunnen bijna elk soort tekst- of afbeeldingsgegevens zijn.

Uitvoer is altijd een zoekindex die wordt gebruikt voor snel zoeken, ophalen en verkennen van tekst in clienttoepassingen. Daarnaast kan uitvoer ook een kennisopslag zijn waarin projecten documenten verrijkten in Azure-blobs of Azure-tabellen voor downstreamanalyse in hulpprogramma's zoals Power BI of in data science-workloads.

Daartussen staat de pijplijnarchitectuur zelf. De pijplijn is gebaseerd op de indexeerders, waaraan u een vaardighedensetkunt toewijzen die bestaat uit een of meer vaardigheden die de AI bieden. Het doel van de pijplijn is het produceren van verrijkte documenten die de pijplijn als onbewerkte inhoud invoeren, maar aanvullende structuur, context en informatie ophalen tijdens het verplaatsen van de pijplijn. Verrijkte documenten worden gebruikt tijdens het indexeren om omgekeerde indexen en andere structuren te maken die worden gebruikt voor zoeken in volledige tekst of verkenning en analyse.

Vereiste resources

Naast Azure Blob-Storage en Azure Cognitive Search hebt u een derde service of een derde mechanisme nodig dat de AI biedt:

  • Voor ingebouwde AI kunnen Cognitive Search worden geïntegreerd met Azure Cognitive Services vision- en API's voor verwerking van natuurlijke taal. U kunt een Cognitive Services toevoegen om OCR (Optical Character Recognition), afbeeldingsanalyse of natuurlijke taalverwerking (taaldetectie, tekstvertaling, entiteitsherkenning, sleuteltermextractie) toe te voegen.

  • Voor aangepaste AI met behulp van Azure-resources kunt u een aangepaste vaardigheid definiëren die de externe functie of het externe model verpakt die u wilt gebruiken. Aangepaste vaardigheden kunnen gebruikmaken van code die wordt geleverd door Azure Functions, Azure Machine Learning, Azure Form Recognizer of een andere resource die bereikbaar is via HTTPS.

  • Voor aangepaste niet-Azure AI moet uw model of module toegankelijk zijn voor een indexeerder via HTTP.

Als u niet alle services direct beschikbaar hebt, start u rechtstreeks op Storage-accountportalpagina. Klik op de linkernavigatiepagina onder Blob service op Azure Cognitive Search om een nieuwe service te maken of een bestaande service te selecteren.

Zodra u een Azure Cognitive Search aan uw opslagaccount, kunt u het standaardproces volgen om gegevens in elke Azure-gegevensbron te verrijken. We raden de wizard Gegevens importeren in Azure Cognitive Search voor een eenvoudige eerste inleiding tot AI-verrijking. U kunt een resource Cognitive Services tijdens de werkstroom. In deze quickstart doorloopt u de stappen: Een AI-verrijkingspijplijn maken in de portal.

In de volgende secties worden onderdelen en werkstromen nader bekijken.

Een Blob-indexeringsindex gebruiken

AI-verrijking is een invoegvoeging voor een indexeringspijplijn en in Azure Cognitive Search worden deze pijplijnen gebouwd op een indexer. Een indexeerservice is een gegevensbronbewuste subservice die is uitgerust met interne logica voor het nemen van steekproeven van gegevens, het lezen van metagegevens, het ophalen van gegevens en het serialiseren van gegevens uit systeemeigen indelingen in JSON-documenten voor latere import. Indexeerers worden vaak zelf gebruikt voor importeren, gescheiden van AI, maar als u een AI-verrijkingspijplijn wilt bouwen, hebt u een indexeerer en een vaardighedenset nodig om deze te kunnen gebruiken. In deze sectie wordt de indexer belicht; De volgende sectie richt zich op vaardighedensets.

Blobs in Azure Storage worden geïndexeerd met behulp van de blob indexer. U kunt deze indexeerder aanroepen met behulp van de wizard Gegevens importeren, een REST API of een SDK. Een blobindexer wordt aangeroepen wanneer de gegevensbron die wordt gebruikt door de indexer een Azure Blob-container is. U kunt een subset van uw blobs indexeren door een virtuele map te maken, die u vervolgens als parameter kunt doorgeven of door te filteren op een bestandstypeextensie.

Een indexeerder 'opent een document'en opent een blob om inhoud te inspecteren. Nadat u verbinding hebt met de gegevensbron, is dit de eerste stap in de pijplijn. Voor blobgegevens worden hier PDF-bestanden, Office-documenten, afbeeldingen en andere inhoudstypen gedetecteerd. Het gekraakte document met tekstextractie is gratis. Documentkraakt met extractie van afbeeldingen wordt in rekening gebracht tegen tarieven die u kunt vinden op de pagina met prijzen.

Hoewel alle documenten worden gekraakt, vindt verrijking alleen plaats als u expliciet de vaardigheden opdoet om dit te doen. Als uw pijplijn bijvoorbeeld uitsluitend bestaat uit afbeeldingsanalyse, wordt tekst in uw container of documenten genegeerd.

De blobindexer wordt geleverd met configuratieparameters en ondersteunt het bijhouden van veranderingen als de onderliggende gegevens voldoende informatie bieden. Meer informatie vindt u in How to configure a blob indexer (Een blob-indexering configureren).

AI-onderdelen toevoegen

AI-verrijking verwijst naar modules die zoeken naar patronen of kenmerken en voert vervolgens een bewerking dienovereenkomstig uit. Gezichtsherkenning in foto's, tekstbeschrijvingen van foto's, het detecteren van sleuteltermen in een document en OCR (of het herkennen van gedrukte of handgeschreven tekst in binaire bestanden) zijn illustratieve voorbeelden.

In Azure Cognitive Search zijn vaardigheden de afzonderlijke onderdelen van AI-verwerking die u zelfstandig kunt gebruiken of in combinatie met andere vaardigheden.

  • Ingebouwde vaardigheden worden gebruikt door Cognitive Services, met afbeeldingsanalyse op basis van Computer Vision en verwerking van natuurlijke taal op basis van Text Analytics. Zie Ingebouwde vaardigheden voor inhoudsverrijking voorde volledige lijst.

  • Aangepaste vaardigheden zijn aangepaste code, verpakt in een interfacedefinitie die integratie in de pijplijn mogelijk maakt. In klantoplossingen is het gebruikelijk om beide te gebruiken, met aangepaste vaardigheden die opensource-, externe of eigen AI-modules bieden.

Een vaardighedenset is de verzameling vaardigheden die worden gebruikt in een pijplijn en wordt aangeroepen nadat de fase waarin het document wordt gekraakt inhoud beschikbaar maakt. Een indexer kan precies één vaardighedenset gebruiken, maar die vaardighedenset bestaat onafhankelijk van een indexer, zodat u deze in andere scenario's opnieuw kunt gebruiken.

Aangepaste vaardigheden klinkt misschien complex, maar kunnen eenvoudig en eenvoudig zijn in termen van implementatie. Als u bestaande pakketten hebt die modellen voor patroonmatching of classificatie bieden, kan de inhoud die u uit blobs extraheert, worden doorgegeven aan deze modellen voor verwerking. Omdat AI-verrijking is gebaseerd op Azure, moet uw model ook in Azure zijn. Enkele veelvoorkomende hostingmethoden zijn het gebruik Azure Functions of Containers.

Voor ingebouwde vaardigheden die worden Cognitive Services hebt u een gekoppelde Cognitive Services all-in-one-abonnementssleutel nodig die u toegang geeft tot de resource. Een alles-in-een-sleutel biedt u analyse van afbeeldingen, taaldetectie, tekstvertaling en tekstanalyse. Andere ingebouwde vaardigheden zijn functies van Azure Cognitive Search en vereisen geen extra service of sleutel. Shaper, splitter en samenvoeging zijn voorbeelden van helpervaardigheden die soms nodig zijn bij het ontwerpen van de pijplijn.

Als u alleen aangepaste vaardigheden en ingebouwde hulpprogrammavaardigheden gebruikt, zijn er geen afhankelijkheden of kosten met betrekking tot Cognitive Services.

Met AI verrijkte uitvoer gebruiken in downstreamoplossingen

De uitvoer van AI-verrijking is een zoekindex op Azure Cognitive Search of een kennisopslag in Azure Storage.

In Azure Cognitive Search wordt een zoekindex gebruikt voor interactieve verkenning met behulp van vrije tekst en gefilterde query's in een client-app. Verrijkte documenten die zijn gemaakt via AI, worden opgemaakt in JSON en geïndexeerd op dezelfde manier als alle documenten worden geïndexeerd in Azure Cognitive Search, met alle voordelen die een indexer biedt. Tijdens het indexeren verwijst de blobindexer bijvoorbeeld naar configuratieparameters en -instellingen om veldtoewijzingen of wijzigingsdetectielogica te gebruiken. Dergelijke instellingen zijn volledig beschikbaar voor reguliere indexering en verrijkte AI-workloads. Na het indexeren kunt u, wanneer inhoud wordt opgeslagen op Azure Cognitive Search, uitgebreide query's en filterexpressie bouwen om inzicht te krijgen in uw inhoud.

In Azure Storage heeft een kennisopslag twee verschillende vormen: een blobcontainer of tabellen in Table Storage.

  • Een blobcontainer legt verrijkte documenten in zijn geheel vast, wat handig is als u gegevens wilt in andere processen.

  • Table Storage biedt daarentegen ruimte voor fysieke projecties van verrijkte documenten. U kunt segmenten of lagen verrijkte documenten maken die specifieke onderdelen bevatten of uitsluiten. Voor analyse in Power BI worden de tabellen in Azure Table Storage de gegevensbron voor verdere visualisatie en verkenning.

Een verrijkt document aan het einde van de pijplijn verschilt van de oorspronkelijke invoerversie door de aanwezigheid van extra velden met nieuwe informatie die is geëxtraheerd of gegenereerd tijdens verrijking. U kunt dus werken met een combinatie van oorspronkelijke en gemaakte inhoud, ongeacht welke uitvoerstructuur u gebruikt.

Volgende stappen

U kunt nog veel meer doen met AI-verrijking om het meeste uit uw gegevens in Azure Storage te halen, waaronder het combineren van Cognitive Services op verschillende manieren en het schrijven van aangepaste vaardigheden voor gevallen waarin er geen bestaande Cognitive Service voor het scenario is. Volg de onderstaande koppelingen voor meer informatie.