Optimaliseer huisdierprofielen voor Purina's Petfinder-applicatie met behulp van aangepaste Amazon Rekognition-labels en AWS-stapfuncties | Amazon-webservices

Optimaliseer huisdierprofielen voor Purina's Petfinder-applicatie met behulp van aangepaste Amazon Rekognition-labels en AWS-stapfuncties | Amazon-webservices

Purina US, een dochteronderneming van Nestle, heeft een lange geschiedenis in het mogelijk maken van mensen om gemakkelijker huisdieren te adopteren Dierenzoeker, een digitale marktplaats van meer dan 11,000 dierenasielen en reddingsgroepen in de VS, Canada en Mexico. Als toonaangevend huisdieradoptieplatform heeft Petfinder miljoenen huisdieren geholpen hun eeuwige thuis te vinden.

Purina zoekt consequent naar manieren om het Petfinder-platform nog beter te maken voor zowel opvangcentra als reddingsgroepen en adoptanten van huisdieren. Eén uitdaging waarmee ze te maken kregen, was het adequaat weerspiegelen van het specifieke ras van de dieren die ter adoptie beschikbaar waren. Omdat veel asieldieren gemengde rassen zijn, vereiste het correct identificeren van rassen en kenmerken in het huisdierprofiel handmatige inspanning, wat tijdrovend was. Purina gebruikte kunstmatige intelligentie (AI) en machine learning (ML) om de detectie van dierenrassen op grote schaal te automatiseren.

Dit bericht beschrijft hoe Purina gebruikte Aangepaste labels voor Amazon-herkenning, AWS Stap Functiesen andere AWS-services om een ​​ML-model te maken dat het huisdierras detecteert op basis van een geüploade afbeelding en vervolgens de voorspelling gebruikt om de huisdierkenmerken automatisch in te vullen. De oplossing richt zich op de fundamentele principes van het ontwikkelen van een AI/ML-applicatieworkflow van gegevensvoorbereiding, modeltraining, modelevaluatie en modelmonitoring.

Overzicht oplossingen

Voor het voorspellen van dierenrassen op basis van een afbeelding zijn aangepaste ML-modellen nodig. Het ontwikkelen van een aangepast model om afbeeldingen te analyseren is een aanzienlijke onderneming die tijd, expertise en middelen vereist, en die vaak maanden in beslag neemt. Bovendien zijn er vaak duizenden of tienduizenden met de hand gelabelde afbeeldingen nodig om het model van voldoende gegevens te voorzien om nauwkeurige beslissingen te kunnen nemen. Het opzetten van een workflow voor het controleren of beoordelen van modelvoorspellingen om de naleving van uw vereisten te valideren, kan de algehele complexiteit verder vergroten.

Met Rekognition Custom Labels, dat voortbouwt op de bestaande mogelijkheden van Amazon Rekognitionkunt u de objecten en scènes in afbeeldingen identificeren die specifiek zijn voor uw zakelijke behoeften. Het is al getraind op tientallen miljoenen afbeeldingen in vele categorieën. In plaats van duizenden afbeeldingen kunt u een kleine set trainingsafbeeldingen uploaden (doorgaans een paar honderd afbeeldingen of minder per categorie) die specifiek zijn voor uw gebruiksscenario.

De oplossing maakt gebruik van de volgende services:

  • Amazon API-gateway is een volledig beheerde service waarmee ontwikkelaars eenvoudig API's op elke schaal kunnen publiceren, onderhouden, monitoren en beveiligen.
  • De AWS Cloud-ontwikkelingskit (AWS CDK) is een open-source softwareontwikkelingsframework voor het definiëren van cloudinfrastructuur als code met moderne programmeertalen en het implementeren ervan via AWS CloudFormatie.
  • AWS CodeBuild is een volledig beheerde continue integratieservice in de cloud. CodeBuild compileert de broncode, voert tests uit en produceert pakketten die klaar zijn voor implementatie.
  • Amazon DynamoDB is een snelle en flexibele niet-relationele databaseservice voor elke schaal.
  • AWS Lambda is een gebeurtenisgestuurde computerservice waarmee u code kunt uitvoeren voor vrijwel elk type applicatie of backend-service zonder dat u servers hoeft in te richten of te beheren.
  • Amazon Rekognition biedt vooraf getrainde en aanpasbare computer vision (CV)-mogelijkheden om informatie en inzichten uit uw afbeeldingen en video's te halen. Met Aangepaste labels voor Amazon-herkenningkunt u de objecten en scènes in afbeeldingen identificeren die specifiek zijn voor uw zakelijke behoeften.
  • AWS Stap Functies is een volledig beheerde service die het eenvoudiger maakt om de componenten van gedistribueerde applicaties en microservices te coördineren met behulp van visuele workflows.
  • AWS-systeembeheerder is een veilige end-to-end beheeroplossing voor bronnen op AWS en in multicloud- en hybride omgevingen. Parameter opslaan, een mogelijkheid van Systems Manager, biedt veilige, hiërarchische opslag voor configuratiegegevensbeheer en geheimenbeheer.

De oplossing van Purina wordt ingezet als API-gateway HTTP eindpunt, dat de verzoeken routeert om huisdierattributen te verkrijgen. Het maakt gebruik van Rekognition Custom Labels om het huisdierras te voorspellen. Het ML-model wordt getraind op basis van huisdierprofielen uit de database van Purina, ervan uitgaande dat het primaire raslabel het echte label is. DynamoDB wordt gebruikt om de huisdierattributen op te slaan. Lambda wordt gebruikt om het verzoek om huisdierkenmerken te verwerken door te orkestreren tussen API Gateway, Amazon Rekognition en DynamoDB.

De architectuur is als volgt geïmplementeerd:

  1. De Petfinder-applicatie stuurt het verzoek om de huisdierattributen te verkrijgen via API Gateway.
  2. API Gateway roept de Lambda-functie aan om de huisdierattributen te verkrijgen.
  3. De Lambda-functie roept het Rekognition Custom Label-inferentie-eindpunt aan om het huisdierras te voorspellen.
  4. De Lambda-functie gebruikt de voorspelde informatie over het huisdierras om huisdierkenmerken op te zoeken in de DynamoDB-tabel. Het verzamelt de huisdierattributen en stuurt deze terug naar de Petfinder-applicatie.

Het volgende diagram illustreert de workflow van de oplossing.

Optimaliseer huisdierprofielen voor Purina's Petfinder-applicatie met behulp van aangepaste Amazon Rekognition-labels en AWS-stapfuncties | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Het Petfinder-team van Purina wil een geautomatiseerde oplossing die ze met minimaal onderhoud kunnen inzetten. Om dit te bereiken gebruiken we Step Functions om een ​​statusmachine te creëren die de modellen traint met de nieuwste gegevens, hun prestaties controleert op een benchmarkset en de modellen opnieuw implementeert als ze zijn verbeterd. De modelherscholing wordt geactiveerd op basis van het aantal rascorrecties dat is aangebracht door gebruikers die profielinformatie hebben ingediend.

Modeltraining

Het ontwikkelen van een aangepast model om afbeeldingen te analyseren is een aanzienlijke onderneming die tijd, expertise en middelen vereist. Bovendien zijn er vaak duizenden of tienduizenden met de hand gelabelde afbeeldingen nodig om het model van voldoende gegevens te voorzien om nauwkeurige beslissingen te kunnen nemen. Het kan maanden duren om deze gegevens te verzamelen en het vergt veel moeite om deze te labelen voor gebruik in machine learning. Een techniek genaamd overdracht leren helpt modellen van hogere kwaliteit te produceren door de parameters van een vooraf getraind model te lenen, en maakt het mogelijk modellen te trainen met minder afbeeldingen.

Onze uitdaging is dat onze gegevens niet perfect zijn geëtiketteerd: mensen die de profielgegevens invoeren, kunnen fouten maken en dat ook doen. We ontdekten echter dat bij gegevensmonsters die groot genoeg waren, de verkeerd gelabelde afbeeldingen een voldoende kleine fractie voor hun rekening namen en dat de nauwkeurigheid van het model niet meer dan 2% werd beïnvloed.

ML-workflow en statusmachine

De Step Functions-statusmachine is ontwikkeld om te helpen bij de automatische herscholing van het Amazon Rekognition-model. Feedback wordt verzameld tijdens het invoeren van het profiel: elke keer dat een ras dat uit een afbeelding is afgeleid, door de gebruiker wordt gewijzigd in een ander ras, wordt de correctie vastgelegd. Deze toestandsmachine wordt geactiveerd op basis van een configureerbaar drempelaantal correcties en aanvullende gegevens.

De state machine doorloopt verschillende stappen om tot een oplossing te komen:

  1. Maak trein- en testmanifestbestanden met de lijst met Amazon eenvoudige opslagservice (Amazon S3) afbeeldingspaden en hun labels voor gebruik door Amazon Rekognition.
  2. Maak een Amazon Rekognition-dataset met behulp van de manifestbestanden.
  3. Train een Amazon Rekognition-modelversie nadat de dataset is gemaakt.
  4. Start de modelversie wanneer de training is voltooid.
  5. Evalueer het model en produceer prestatiestatistieken.
  6. Als de prestatiestatistieken bevredigend zijn, werkt u de modelversie bij in Parameter Store.
  7. Wacht tot de nieuwe modelversie zich verspreidt in de Lambda-functies (20 minuten) en stop vervolgens het vorige model.

Modelevaluatie

We gebruiken een willekeurige holdout-set van 20% uit ons gegevensvoorbeeld om ons model te valideren. Omdat de rassen die we detecteren configureerbaar zijn, gebruiken we geen vaste dataset voor validatie tijdens de training, maar gebruiken we wel een handmatig gelabelde evaluatieset voor integratietesten. De overlap van de handmatig gelabelde set en de detecteerbare rassen van het model wordt gebruikt om statistieken te berekenen. Als de nauwkeurigheid van de rasdetectie van het model boven een bepaalde drempel ligt, promoten we het model voor gebruik in het eindpunt.

Hieronder volgen enkele schermafbeeldingen van de workflow voor het voorspellen van huisdieren van Rekognition Custom Labels.

Optimaliseer huisdierprofielen voor Purina's Petfinder-applicatie met behulp van aangepaste Amazon Rekognition-labels en AWS-stapfuncties | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Optimaliseer huisdierprofielen voor Purina's Petfinder-applicatie met behulp van aangepaste Amazon Rekognition-labels en AWS-stapfuncties | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.

Implementatie met de AWS CDK

De Step Functions-statusmachine en de bijbehorende infrastructuur (inclusief Lambda-functies, CodeBuild-projecten en Systems Manager-parameters) worden geïmplementeerd met de AWS CDK met behulp van Python. De AWS CDK-code synthetiseert een CloudFormation-sjabloon, die wordt gebruikt om alle infrastructuur voor de oplossing te implementeren.

Integratie met de Petfinder-applicatie

De Petfinder-applicatie heeft toegang tot het eindpunt van de beeldclassificatie via het API Gateway-eindpunt met behulp van een POST-verzoek dat een JSON-payload bevat met velden voor het Amazon S3-pad naar de afbeelding en het aantal te retourneren resultaten.

KPI's die moeten worden beïnvloed

Om de extra kosten van het uitvoeren van het eindpunt voor beeldinferentie te rechtvaardigen, hebben we experimenten uitgevoerd om de waarde te bepalen die het eindpunt voor Petfinder toevoegt. Het gebruik van het eindpunt biedt twee belangrijke soorten verbeteringen:

  • Minder moeite voor dierenasielen die de huisdierprofielen maken
  • Volledigere huisdierprofielen, die naar verwachting de zoekrelevantie zullen verbeteren

Statistieken voor het meten van de inspanning en de volledigheid van het profiel omvatten het aantal automatisch ingevulde velden dat wordt gecorrigeerd, het totale aantal ingevulde velden en de tijd die nodig is om een ​​huisdierprofiel te uploaden. Verbeteringen in de zoekrelevantie worden indirect afgeleid uit het meten van belangrijke prestatie-indicatoren met betrekking tot de acceptatiegraad. Volgens Purina is de gemiddelde tijd voor het aanmaken van een huisdierprofiel in de Petfinder-applicatie nadat de oplossing live ging, teruggebracht van 7 minuten naar 4 minuten. Dat is een enorme verbetering en tijdwinst, want in 2022 zijn er 4 miljoen huisdierprofielen geüpload.

Security

De gegevens die door het architectuurdiagram stromen, worden tijdens de overdracht en in rust gecodeerd, in overeenstemming met de AWS Goed ontworpen best practices. Tijdens alle AWS-opdrachten beoordeelt een beveiligingsexpert de oplossing om ervoor te zorgen dat er een veilige implementatie wordt geboden.

Conclusie

Met hun oplossing op basis van Rekognition Custom Labels kan het Petfinder-team het aanmaken van huisdierprofielen voor dierenasielen versnellen, waardoor de administratieve lasten voor het personeel van het asiel worden verminderd. De implementatie op basis van de AWS CDK implementeert een Step Functions-workflow om het training- en implementatieproces te automatiseren. Om te beginnen met het gebruik van aangepaste Rekognition-labels, raadpleegt u Aan de slag met aangepaste labels van Amazon Rekognition. Je kunt er ook een paar bekijken Voorbeelden van stapfuncties en ga aan de slag met de AWS CDK.


Over de auteurs

Optimaliseer huisdierprofielen voor Purina's Petfinder-applicatie met behulp van aangepaste Amazon Rekognition-labels en AWS-stapfuncties | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Mason Cahill is een Senior DevOps Consultant bij AWS Professional Services. Hij helpt organisaties graag hun bedrijfsdoelen te bereiken en heeft een passie voor het bouwen en leveren van geautomatiseerde oplossingen op de AWS Cloud. Buiten zijn werk brengt hij graag tijd door met zijn gezin, wandelen en voetballen.

Optimaliseer huisdierprofielen voor Purina's Petfinder-applicatie met behulp van aangepaste Amazon Rekognition-labels en AWS-stapfuncties | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Mattheus Chasse is een Data Science-consultant bij Amazon Web Services, waar hij klanten helpt bij het bouwen van schaalbare machine learning-oplossingen. Matthew heeft een doctoraat in de wiskunde en houdt in zijn vrije tijd van rotsklimmen en muziek.

Optimaliseer huisdierprofielen voor Purina's Petfinder-applicatie met behulp van aangepaste Amazon Rekognition-labels en AWS-stapfuncties | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Rushikesh Jagtap is een Solutions Architect met meer dan 5 jaar ervaring in AWS Analytics-diensten. Hij heeft een passie voor het helpen van klanten bij het bouwen van schaalbare en moderne data-analyseoplossingen om inzichten uit de data te verkrijgen. Buiten zijn werk kijkt hij graag naar de Formule 1, speelt hij badminton en racet hij met Go Karts.

Optimaliseer huisdierprofielen voor Purina's Petfinder-applicatie met behulp van aangepaste Amazon Rekognition-labels en AWS-stapfuncties | Amazon Web Services PlatoBlockchain Data Intelligence. Verticaal zoeken. Ai.Tayo Olajide is een doorgewinterde Cloud Data Engineering-generalist met meer dan tien jaar ervaring in het ontwerpen en implementeren van dataoplossingen in cloudomgevingen. Met een passie voor het transformeren van ruwe data in waardevolle inzichten heeft Tayo een cruciale rol gespeeld bij het ontwerpen en optimaliseren van datapijplijnen voor verschillende sectoren, waaronder de financiële, gezondheidszorg- en auto-industrie. Als thought leader op dit gebied is Tayo van mening dat de kracht van data ligt in het vermogen om geïnformeerde besluitvorming te stimuleren. Hij zet zich in om bedrijven te helpen het volledige potentieel van hun data in het cloudtijdperk te benutten. Als hij niet bezig is met het maken van datapijplijnen, kun je Tayo vinden die de nieuwste trends op het gebied van technologie verkent, wandelt in de natuur of sleutelt aan gadgets en software.

Tijdstempel:

Meer van AWS-machine learning