Integrera en modell
Du bör planera hur du integrerar modellen eftersom den påverkar hur du tränar modellen eller vilka träningsdata du använder. För att integrera modellen måste du distribuera en modell till en slutpunkt. Du kan distribuera en modell till en slutpunkt för realtids- eller batchförutsägelser.
Distribuera en modell till en slutpunkt
När du tränar en modell är målet ofta att integrera modellen i ett program.
Om du enkelt vill integrera en modell i ett program kan du använda slutpunkter. Enkelt uttryckt kan en slutpunkt vara en webbadress som ett program kan anropa för att få tillbaka ett meddelande.
När du distribuerar en modell till en slutpunkt har du två alternativ:
- Få förutsägelser i realtid
- Hämta partiprognoser
Få förutsägelser i realtid
Om du vill att modellen ska poängsätta nya data när den kommer in behöver du förutsägelser i realtid.
Realtidsförutsägelser behövs ofta när en modell används av ett program, till exempel en mobilapp eller en webbplats.
Anta att du har en webbplats som innehåller produktkatalogen:
- En kund väljer en produkt på din webbplats, till exempel en skjorta.
- Baserat på kundens val rekommenderar modellen andra objekt från produktkatalogen omedelbart. Webbplatsen visar modellens rekommendationer.
En kund kan när som helst välja en produkt i webbbutiken. Du vill att modellen ska hitta rekommendationerna nästan omedelbart. Den tid det tar för webbsidan att läsa in och visa skjortinformationen är den tid det tar att få rekommendationer eller förutsägelser. När skjortan sedan visas kan rekommendationerna också visas.
Hämta batchförutsägelser
Om du vill att modellen ska poängsätta nya data i batchar och spara resultatet som en fil eller i en databas behöver du batchförutsägelser.
Du kan till exempel träna en modell som förutsäger försäljning av apelsinjuice för varje framtida vecka. Genom att förutsäga försäljningen av apelsinjuice kan du se till att utbudet är tillräckligt för att möta den förväntade efterfrågan.
Anta att du visualiserar alla historiska försäljningsdata i en rapport. Du vill inkludera den förväntade försäljningen i samma rapport.
Även om apelsinjuice säljs under hela dagen, vill du bara beräkna prognosen en gång i veckan. Du kan samla in försäljningsdata under veckan och bara anropa modellen när du har försäljningsdata för en hel vecka. En samling datapunkter kallas för en batch.
Bestäm mellan realtids- eller batchdistribution
För att avgöra om du vill utforma en lösning för distribution i realtid eller batch måste du överväga följande frågor:
- Hur ofta ska förutsägelser genereras?
- Hur snart behövs resultaten?
- Ska förutsägelser genereras individuellt eller i batchar?
- Hur mycket beräkningskraft krävs för att köra modellen?
Identifiera den bedömningsfrekvens som krävs
Ett vanligt scenario är att du använder en modell för att poängsätta nya data. Innan du kan få förutsägelser i realtid eller i batch måste du först samla in nya data.
Det finns olika sätt att generera eller samla in data. Nya data kan också samlas in med olika tidsintervall.
Du kan till exempel samla in temperaturdata från en IoT-enhet (Internet of Things) varje minut. Du kan hämta transaktionsdata varje gång en kund köper en produkt från din webbbutik. Eller så kan du extrahera finansiella data från en databas var tredje månad.
I allmänhet finns det två typer av användningsfall:
- Du behöver modellen för att poängsätta nya data så snart den kommer in.
- Du kan schemalägga eller utlösa modellen för att bedöma de nya data som du har samlat in över tid.
Om du vill ha realtids- eller batchförutsägelser beror inte nödvändigtvis på hur ofta nya data samlas in. I stället beror det på hur ofta och hur snabbt du behöver förutsägelserna som ska genereras.
Om du behöver modellens förutsägelser omedelbart när nya data samlas in behöver du förutsägelser i realtid. Om modellens förutsägelser endast används vid vissa tidpunkter behöver du batchförutsägelser.
Bestäm antalet förutsägelser
En annan viktig fråga att ställa sig är om du behöver förutsägelserna för att genereras individuellt eller i batchar.
Ett enkelt sätt att illustrera skillnaden mellan enskilda förutsägelser och batchförutsägelser är att föreställa sig en tabell. Anta att du har en tabell med kunddata där varje rad representerar en kund. För varje kund har du vissa demografiska data och beteendedata, till exempel hur många produkter de har köpt från din webbbutik och när deras senaste köp var.
Baserat på dessa data kan du förutsäga kundomsättning: om en kund kommer att köpa från din webbbutik igen eller inte.
När du har tränat modellen kan du bestämma om du vill generera förutsägelser:
- Individuellt: Modellen tar emot en enda rad med data och returnerar om den enskilda kunden kommer att köpa igen.
- Batch: Modellen tar emot flera rader med data i en tabell och returnerar om varje kund kommer att köpa igen. Resultaten är sorterade i en tabell som innehåller alla förutsägelser.
Du kan också generera enskilda förutsägelser eller batchförutsägelser när du arbetar med filer. När du till exempel arbetar med en modell för visuellt innehåll kan du behöva göra en enskild bild individuellt eller en samling bilder i en batch.
Överväg kostnaden för beräkning
Förutom att använda beräkning när du tränar en modell behöver du även beräkning när du distribuerar en modell. Beroende på om du distribuerar modellen till en realtids- eller batchslutpunkt använder du olika typer av beräkning. För att avgöra om modellen ska distribueras till en realtids- eller batchslutpunkt måste du överväga kostnaden för varje typ av beräkning.
Om du behöver realtidsförutsägelser behöver du beräkning som alltid är tillgänglig och som kan returnera resultaten (nästan) omedelbart. Containertekniker som Azure Container Instance (ACI) och Azure Kubernetes Service (AKS) är idealiska för sådana scenarier eftersom de tillhandahåller en enkel infrastruktur för din distribuerade modell.
Men när du distribuerar en modell till en realtidsslutpunkt och använder sådan containerteknik är beräkningen alltid på. När en modell har distribuerats betalar du kontinuerligt för beräkningen eftersom du inte kan pausa eller stoppa beräkningen eftersom modellen alltid måste vara tillgänglig för omedelbara förutsägelser.
Om du behöver batchförutsägelser behöver du också beräkning som kan hantera en stor arbetsbelastning. Helst använder du ett beräkningskluster som kan poängsätta data i parallella batchar med hjälp av flera noder.
När du arbetar med beräkningskluster som kan bearbeta data i parallella batchar etableras beräkningen av arbetsytan när batchbedömningen utlöses och skalas ned till 0 noder när det inte finns några nya data att bearbeta. Genom att låta arbetsytan skala ned ett inaktivt beräkningskluster kan du spara betydande kostnader.