Utforma träningsdata för AI-arbetsbelastningar i Azure
När du utformar data för AI-funktioner i program bör du överväga både icke-funktionella krav, till exempel driftbarhet, kostnad och säkerhet samt funktionskrav som är relaterade till datainmatning, förberedelse och validering.
Datadesign och programdesign kan inte frikopplas. Programdesign kräver att du förstår användningsfall, frågemönster och krav på färskhet. För att uppfylla affärskrav som driver behovet av att använda AI kan programmet behöva utdata från diskriminerande modeller, generativa modeller eller en kombination av modelltyper.
Ai-modeller måste tränas för att ge meningsfulla resultat. Modellträning innebär att lära en modell att klassificera eller förutsäga nya eller osynliga situationer. Träningsdata måste skräddarsys efter den specifika problem- och arbetsbelastningskontexten.
Övervakad träning innebär att tillhandahålla modellen med märkta exempel. Den här typen av träning är användbar när det önskade resultatet är tydligt. Däremot kan oövervakad inlärning göra det möjligt för modellen att identifiera mönster och relationer i data utan vägledning om förväntade utdata. Under träningen justeras algoritmtypen och dess parametrar för att styra hur modellen lär sig. Metoden varierar beroende på typ av modell, som kan omfatta neurala nätverk, beslutsträd och andra.
Till exempel tränas bildidentifieringsmodeller vanligtvis på uppgifter som objektidentifiering, ansiktsigenkänning eller scentolkning. De lär sig från kommenterade bilder för att identifiera specifika objekt eller funktioner. Andra vanliga exempel är algoritmer för bedrägeriidentifiering och förutsägelsemodeller för prispunkter. Dessa modeller lär sig av historiska finansiella data för att fatta välgrundade beslut.
Den här artikeln fokuserar främst på föregående användningsfall, där modeller tränas innan de kan ge meningsfulla indata till programmet. Artikeln innehåller vägledning om datainsamling, bearbetning, lagring, testning och underhåll. Datadesign för undersökande datavetenskap eller business intelligence via AI omfattas inte. Målet är att stödja träningsbehov genom strategier som är anpassade till arbetsbelastningskraven genom att ge rekommendationer om träningsdatapipelinen för en AI-arbetsbelastning.
Information om datadesign för AI-modeller som kräver kontext under slutsatsdragning finns i Grunddatadesign.
Viktigt!
Förvänta dig att datadesignen är en iterativ process som baseras på statistiska experiment. För att nå en acceptabel kvalitetsnivå justerar du träningsdata, dess bearbetning, modellfunktionsutveckling och modellhyperparametrar (när det är möjligt). Den här experimenteringsloopen sker vanligtvis både under den inledande modellträningen och under pågående förfiningsåtgärder för att hantera data och modellavvikelser över livslängden för funktionen i arbetsbelastningen.
Rekommendationer
Här är sammanfattningen av rekommendationerna i den här artikeln.
Rekommendation | beskrivning |
---|---|
Välj datakällor baserat på arbetsbelastningskrav. | Ta hänsyn till tillgängliga resurser och om datakällan kan hjälpa dig att nå den acceptabla datakvaliteten för modellträning. Ta upp både positiva och negativa exempel. Kombinera olika datatyper för att uppnå tillräcklig fullständighet för analys och modellering. Överväg tekniker som SmOTE (Synthetic Minority Oversampling Technique) för databrist eller obalans. ▪ Datainmatning och analys |
Utför dataanalys på insamlade data tidigt. | Utför analysprocesser, till exempel undersökande dataanalys (EDA), offline. Tänk på kostnaderna och säkerhetskonsekvenserna. För små datamängder utan resursbegränsningar kan du överväga att utföra analys vid källan. ▪ Datainsamlingslager |
Underhåll datasegmentering om affärs- och tekniska krav kräver det. | Om du använder datakällor som har olika säkerhetskrav skapar du separata pipelines för varje modell. Upprätta åtkomstkontroller för att begränsa interaktionen med specifika dataunderuppsättningar. ▪ Datasegmentering |
Förbearbeta data för att göra dem meningsfulla mot träningsmålen. | Förfina kvaliteten på inmatade data genom att filtrera brus, rescoping data, hantera dubbletter och standardisera olika format. ▪ Förbearbetning av data |
Undvik träning på inaktuella data. | Övervaka dataavvikelser och konceptavvikelser som en del av dina inre och yttre driftsloopar för att upprätthålla modellers noggrannhet och tillförlitlighet över tid. Uppdatera träningsdata regelbundet med nya observationer. Definiera villkor som utlöser omträning av modell och fastställa uppdateringsfrekvens. ▪ Dataunderhåll |
Typer av data
Om du vill skapa förutsägelsekraft i modeller måste du samla in data, bearbeta dem och mata in dem i modellen. Den här processen konceptualiseras vanligtvis som en pipeline som är uppdelad i steg. Varje steg i pipelinen kan hantera samma datauppsättning, men den kan ha olika syften. Vanligtvis hanterar du data av följande typer:
Källdata är observationsdata från tidpunkt. Det kan också vara data som kan märkas för att fungera som en potentiell indata till datapipelinen.
Dessa data hämtas vanligtvis från produktion eller från en extern källa. Dessa datakällor kan finnas i lagringskonton, databaser, API:er eller andra källor. Data kan vara i olika dataformat, till exempel OLTP-databaser, ostrukturerade dokument eller loggfiler. Dessa data fungerar som en potentiell indata till datapipelinen.
Träningsdata är en delmängd av källdata som används för att tillhandahålla exempel till modellen. Exemplen är beskrivande förberäknade data som hjälper modellen att lära sig mönster och relationer. Utan dessa data kan modellen inte generera relevanta utdata.
Utvärderingsdata är en delmängd av de källdata som används för att övervaka och verifiera prestanda för en maskininlärningsmodell under träningen. Den skiljer sig från tränings- och testdata och används för att regelbundet utvärdera modellens prestanda under träningsfasen och vägleda hyperparameterjustering. Mer information finns i Modellutvärdering.
Testdata används för att verifiera förutsägelsekraften hos en tränad modell. Dessa data samplas från källdata som inte användes för träning. Den innehåller observationer från produktion så att testningsprocessen är avgörande. Ur ett datadesignperspektiv måste du lagra dessa data. Information om testmodeller finns i designområdet Testning .
I vissa fall kan information som tillhandahålls av användare under interaktioner med programmet så småningom bli källdata. I allmänhet rekommenderar vi att användarindata som används på det här sättet är av hög kvalitet. Annars kan behovet av att kontinuerligt hantera kvalitetsproblem nedströms bli problematiskt. Vägledning om hantering av användardata beskrivs inte i den här artikeln.
Datainmatning och analys
Träningsdata samlas in i ett förutbestämt fönster som har tillräckliga representationer för att träna den typ av modell som du väljer. När du till exempel tränar en binär klassificeringsmodell måste träningsdata innehålla representationer av vad som är fallet (positiva exempel) och vad som inte är fallet (negativa exempel). För att träningsdata ska vara meningsfulla bör du genomföra EDA tidigt under funktionsdesignen.
EDA hjälper till att analysera källdata för att identifiera egenskaper, relationer, mönster och kvalitetsproblem. Du kan utföra EDA direkt i källdatalagret eller replikera data till centraliserade lager, till exempel en datasjö eller ett informationslager. Resultatet av processen är att informera datainsamling och bearbetning för effektiv modellträning.
Kommentar
Även om EDA är en förproduktionsprocess använder den data som kommer från produktion. Använd samma kontrollnivå för den här processen som för produktion.
Följande är några saker att tänka på när du samlar in data inför modellträningen.
Datakällor
Data kan samlas in från dessa källor:
Upphovsrättsskyddade data skapas eller ägs av organisationen. Den är inte avsedd för offentlig förbrukning. Det tjänar interna syften.
Offentliga källor är tillgängliga för alla. Dessa källor omfattar webbplatser, forskningsrapporter och offentligt delade databaser. Det kan vara specifikt för ett nischområde. Till exempel anses innehåll från Wikipedia och PubMed vara offentligt tillgängligt.
Valet av datakällor beror på arbetsbelastningskrav, tillgängliga resurser och kvaliteten på de data som är acceptabla för att träna modellen. Obalanserade datamängder kan leda till partiska modeller, så du måste utforma datainsamling för att få tillräckligt med urval av representativa data. Du kan behöva översampla minoritetsdata eller undersampla majoritetsdata. Om data är knappa eller obalanserade bör du överväga tekniker som SMOTE och syntetisk datagenerering.
Datainsamlingslager
Det finns två huvudsakliga alternativ för att samla in källdata:
- Köra frågor mot data i datakällan
- Kopiera data till ett lokaliserat datalager och sedan fråga det lagret
Valet beror på arbetsbelastningskrav och mängden data. Om du har en relativt liten mängd data kan källsystemet hantera dina rådatafrågor direkt. Det vanligaste är dock att fråga och analysera från det lokaliserade arkivet.
Avvägning. Även om lokaliserade datalager kan underlätta analys och träningsprocessen måste du också balansera kostnader, säkerhet och modellkrav.
Duplicering av data medför lagrings- och beräkningskostnader. Att underhålla en separat kopia kräver ytterligare resurser. Lokala kopior kan innehålla känslig information. Om det gör det måste du skydda data med hjälp av vanliga säkerhetsåtgärder.
Om du använder produktionsdata för träningsdata måste de omfattas av alla ursprungliga dataklassificeringsbegränsningar för dessa data.
Data kan tillhandahållas till träningsprocessen (push-läge) eller själva processen kan köra frågor mot datakällan (pull-läge). Valet beror på ägarskap, effektivitet och resursbegränsningar.
När data skickas till arbetsbelastningen är det datakällans ägares ansvar att tillhandahålla nya data. Arbetsbelastningsägaren tillhandahåller en lämplig plats i sitt lokaliserade datalager för att lagra data. Den här metoden gäller för upphovsrättsskyddade data som ägs av organisationen, inte för offentliga källor.
Det finns två metoder som du kan använda för att hämta data. I en metod frågar arbetsbelastningen mot datalagret, hämtar nödvändiga data och placerar dem i det lokaliserade arkivet. Ett annat sätt är att köra realtidsfrågor i minnet. Beslutet beror på datavolym och tillgängliga beräkningsresurser. För mindre datamängder kan minnesintern hämtning vara tillräcklig för modellträning.
Oavsett om du använder push- eller pull-läge bör du undvika träningsmodeller på inaktuella data. Frekvensen för datauppdateringar bör överensstämma med arbetsbelastningskraven.
Datasegmentering
Arbetsbelastningsspecifika krav kan kräva datasegmentering. Här följer några möjliga användningsfall:
Säkerhetskrav styr ofta segmenteringsbeslut. Regelbegränsningar kan till exempel förhindra att data exporteras mellan geopolitiska regioner. Om din programdesign tillåter användning av separata modeller innehåller datadesign separata datapipelines för varje modell.
Men om en enskild modell används matas segmenterade datakällor in i den modellen. Du måste träna modellen på data från båda geografiska områden, vilket potentiellt ökar komplexiteten.
Oavsett om programmet använder en enda modell eller flera modeller bevarar du säkerhetsåtgärder för varje datasegment så att det skyddas med samma stränghetsnivå som data i ursprunget.
Datas färskhetsgrad kan vara en faktor för att separera data. Data från olika källor kan uppdateras med varierande tidsintervall. Om data ändras blir omträning nödvändigt. Segmentering möjliggör detaljerad kontroll av datalivscykeln. Överväg att använda separata tabeller eller pipelines för olika datasegment.
Oavsett användningsfall är åtkomstkontroller viktiga när data segmenteras. Dataexperter, till exempel datatekniker och dataforskare, utforskar tillgängliga källdata för att förstå mönster och relationer. Deras insikter bidrar till träningsmodeller som förutsäger resultat. Upprätta åtkomstkontroller för att säkerställa att endast behöriga användare kan interagera med specifika dataunderuppsättningar. Tillämpa minst behörighet på data som anses vara relevanta. Samarbeta med dataägare för att konfigurera lämpliga behörigheter.
Förbearbetning av data
I ett verkligt scenario lagras källdata inte bara för AI-scenarier. Det finns en mellanliggande process som förbereder data för träning. Under den här fasen tas data bort från brus, vilket gör det användbart för förbrukning. När dataexperter hanterar källdata deltar de i en process för utforskning, experimentering och beslutsfattande. Deras främsta mål är att identifiera och extrahera delar av källdata som innehåller förutsägande kraft.
Förbearbetningslogik beror på problem, datatyp och önskade resultat. Följande är några vanliga tekniker för förbearbetning. Den här listan är inte fullständig. De faktiska kriterierna för din arbetsbelastning styrs av affärskrav.
Kvalitet. Förbearbetning kan hjälpa dig att se till att träningsdata tas bort från brus. Målet är att säkerställa att varje rad i dina träningsdata representerar en tydlig observation eller ett bra exempel som är relevant för ditt användningsfall och att eliminera observationer som saknar kvalitet eller förutsägelsekraft. Om du till exempel sorterar produktrecensioner kan du välja att eliminera data som är för korta. Du måste ta reda på vilken datakvalitet som ger meningsfulla förutsägelseresultat.
Rescoping. Källdatafält som är för specifika kan begränsa prediktiva krafter. Överväg till exempel ett adressfält. Det kan vara mer relevant att bredda omfånget från fullständig adress (husnummer och gatunamn) till en högre nivå, till exempel stad, delstat eller land/region.
Deduplicering. Om du eliminerar redundans kan du se till att dina träningsdata förblir korrekta och representativa. I vissa fall är frekvensen för en observation inte relevant. När du till exempel genomsöker loggar, om en loggpost visas 1 000 gånger, anger det dess frekvens. Det innebär inte nödvändigtvis att det är ett allvarligare fel än en logg som bara inträffade en gång. Den här typen av redundans kan medföra brus.
Hantering av känsliga data. Eliminera personliga data om det inte är absolut nödvändigt för modellens förutsägande kraft på ett sätt som inte kan uppnås genom anonymisering. Träningsdata bör vara effektiva utan att äventyra sekretessen. Om data ger värde måste du vara medveten om de etiska övervägandena vid hantering av känsliga data. Mer information finns i Ansvarsfull AI.
Standardiserad transformering. Domänexperter anser att de föregående teknikerna är en viktig del av funktionsframställning. Breda omfång och olika källdata måste så småningom sammanfogas till funktionslager där funktioner organiseras (till exempel i funktionstabeller) för det explicita syftet med träningsmodeller. När du har valt förutsägelsedata för träning omvandlar du data till ett standardiserat format. Standardisering säkerställer också kompatibilitet med träningsmodellen.
Att konvertera bilder till textrepresentationer är en form av transformering. Du kan till exempel konvertera skannade dokument eller bilder till maskinläsbar text.
För att säkerställa kompatibilitet med modeller kan du behöva justera orienteringar eller bildproportioner för att matcha modellens förväntningar.
Kommentar
Att blanda stora mängder strukturerade och ostrukturerade data kan öka bearbetningstiden. Arbetsbelastningsteam bör mäta effekten av bearbetning av olika format. När fönstret mellan omträningsinsatserna blir kortare blir den tid som ägnas åt förbearbetning mer kritisk.
Datakvarhållning
När du har tränat en modell utvärderar du om du vill ta bort de data som används för träning och återskapa modellen för nästa träningsfönster.
Om data förblir relativt oförändrade kanske omträningen inte är nödvändig, såvida inte modellavvikelsen inträffar. Om precisionen i förutsägelsen minskar måste du träna om modellen. Du kan välja att mata in data igen, förbearbeta och skapa modellen. Det är bäst om det finns ett betydande delta i data sedan det senaste träningsfönstret. Om det finns stora mängder data och det inte har ändrats mycket behöver du kanske inte förbearbeta och återskapa modellen. I så fall behåller du data, gör uppdateringar på plats och tränar om modellen. Bestäm hur länge du vill behålla träningsdata.
I allmänhet tar du bort data från funktionslager för att minska kostnaderna för oreda och lagring för funktioner som har dåliga prestanda och som inte längre är relevanta för aktuella eller framtida modeller. Om du behåller data kan du förvänta dig att hantera kostnader och åtgärda säkerhetsproblem, vilket är typiska problem med dataduplicering.
Spårning av ursprung
Data härkomst syftar på att spåra sökvägen till data från källan till dess användning i modellträning. Det är viktigt att hålla reda på data härstamning för att förklara. Även om användarna kanske inte behöver detaljerad information om data ursprung, är den informationen avgörande för interna datastyrningsteam. Härkomstmetadata säkerställer transparens och ansvarsskyldighet, även om de inte används direkt av modellen. Detta är användbart i felsökningssyfte. Det hjälper dig också att avgöra om fördomar introduceras under förbearbetning av data.
Använd plattformsfunktioner för ursprungsspårning när du kan. Azure Machine Learning är till exempel integrerat i Microsoft Purview. Den här integreringen ger dig åtkomst till funktioner för dataidentifiering, ursprungsspårning och styrning som en del av MLOps-livscykeln.
Dataunderhåll
Alla modeller kan bli inaktuella över tid, vilket gör att en modells förutsägande kraft eller relevans sönderfaller. Flera externa ändringar kan orsaka förfall, inklusive förändringar i användarbeteende, marknadsdynamik eller andra faktorer. Modeller som tränats för en tid sedan kan vara mindre relevanta på grund av förändrade omständigheter. För att göra förutsägelser med bättre återgivning behöver du nya data.
Anta nyare modeller. För att säkerställa relevans behöver du en driftsloop som kontinuerligt utvärderar modellprestanda och tar hänsyn till nyare modeller, vilket håller datapipelinen minimalt störande. Du kan också förbereda dig för en större ändring som innebär att omdesigna datalivscykeln och pipelinen.
När du väljer en ny modell behöver du inte nödvändigtvis börja med en ny datauppsättning. Befintliga observationer som används för träning kan vara värdefulla även under en modellväxling. Även om nya modeller kan avslöja smalare scenarier är den grundläggande processen fortfarande liknande. Datahanteringsmetoder som funktionslager och datanät kan effektivisera införandet av nya maskininlärningsmodeller.
Utlösarbaserade kontra rutinåtgärder. Fundera på om modellomträning ska utlösas av specifika händelser eller villkor. Till exempel kan tillgängligheten för nya, mer relevanta data eller en minskning av relevansen under en etablerad baslinje utlösa omträning. Fördelarna med den här metoden är svarstider och uppdateringar i tid.
Underhåll kan också schemaläggas med regelbundna fasta intervall, till exempel varje dag eller varje vecka. För felsäkra åtgärder bör du överväga båda metoderna.
Borttagning av data. Ta bort data som inte längre används för träning för att optimera resursanvändning och minimera risken för att använda inaktuella eller irrelevanta data för modellträning.
Rätten att bli bortglömd avser en individs rätt att få sina personuppgifter borttagna från onlineplattformar eller databaser. Se till att ha principer på plats för att ta bort personliga data som används för träning.
Datakvarhållning. I vissa situationer måste du återskapa en befintlig modell. För haveriberedskap bör till exempel en modell återskapas exakt som den var före den katastrofala händelsen. Vi rekommenderar att du har en sekundär datapipeline som följer arbetsbelastningskraven för den primära pipelinen, som att hantera modellförfall, regelbundna uppdateringar via utlösarbaserade eller rutinmässiga åtgärder och andra underhållsaktiviteter.
Avvägning. Dataunderhåll är dyrt. Det handlar om att kopiera data, skapa redundanta pipelines och köra rutinprocesser. Tänk på att regelbunden träning kanske inte förbättrar svarskvaliteten. Det ger bara garantier mot inaktuellhet. Utvärdera vikten av dataändringar som en signal för att fastställa uppdateringsfrekvensen.
Kontrollera att dataunderhåll utförs som en del av modellåtgärderna. Du bör upprätta processer för att hantera ändringar via automatisering så mycket som möjligt och använda rätt uppsättning verktyg. Mer information finns i MLOps och GenAIOps för AI-arbetsbelastningar i Azure.