Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Viktigt!
Översättningar som inte är engelska tillhandahålls endast för enkelhetens skull. Se versionen EN-US av det här dokumentet för den slutgiltiga versionen.
Prestanda för anpassade modeller med namngiven entitetsigenkänning (NER) varierar beroende på scenariot och indata. Följande avsnitt hjälper dig att förstå viktiga begrepp om prestanda och utvärdering av anpassade NER-modeller.
Mått för prestandautvärdering
Att granska modellutvärdering är ett viktigt steg i den anpassade NER:s livscykel för modellutveckling. Det hjälper utvecklare att lära sig hur bra deras modell presterar och ger dem en uppfattning om den förväntade prestandan när modellen används i produktion.
När en modell skapas kan utvecklare definiera tränings- och testuppsättningar under taggning. Du kan också välja dessa uppsättningar slumpmässigt under träningen. Hur som helst är tränings- och testuppsättningarna viktiga för träning och utvärdering av anpassade NER-modeller. Träningsuppsättningen används för att träna den anpassade maskininlärningsmodellen, medan testuppsättningen används som en blinduppsättning för att utvärdera modellens prestanda.
Modellutvärderingsprocessen utlöses när träningen har slutförts. Utvärderingsprocessen sker med hjälp av den tränade modellen för att förutsäga användardefinierade entiteter från testuppsättningen. De förutsagda entiteterna jämförs med de angivna datataggar och utvärderingsmått beräknas därefter.
För att beräkna en modells utvärdering kategoriseras de extraherade entiteterna i: sanna positiva, falska positiva eller falska negativa. I följande tabell förklaras dessa termer ytterligare med följande textexempel:
The first party of this contract is John Smith resident of Frederick, Nebraska. And the second party is Forrest Ray resident of Corona, New Mexico. There is also Fannie Thomas resident Colorado Springs, Colorado.
| Kategori | Rätt/fel | Definition | Exempel |
|---|---|---|---|
| Sann positiv | Korrekt | Modellen känner igen den här entiteten och det är samma sak som den redan har blivit taggad som. |
John Smith och Fannie Thomas förutsades korrekt som Person.
Colorado Springs förväntades korrekt som City. |
| Falsk positiv | Felaktig | Modellen extraherar ett ord som inte är en entitet eller korrekt extraherar en entitet men förutsäger fel typ för den. |
Forrest var felaktigt förutsagt som City om det borde ha varit Person.
party extraherades felaktigt när den inte borde ha extraherats. |
| Falsk negativ | Felaktig | Modellen returnerar inte ett resultat när en entitet finns i data. |
Nebraska extraherades inte av modellen medan den borde ha förutsagts som State. |
De föregående kategorierna används sedan för att beräkna precision, återkallande och en poäng (kallas F1-poängen). Det här är måtten som tillhandahålls utvecklare som en del av tjänstens modellutvärdering. Här är mer information:
Precision: Måttet på hur exakt din modell är. Det är förhållandet mellan de sanna positiva och alla positiva. Av förutsagda positiva entiteter visar precision hur många av dem som är faktiska positiva (tillhör rätt entitetstyp som förutsagt).
Komma ihåg: Måttet på modellens förmåga att extrahera faktiska positiva entiteter. Det är förhållandet mellan de förväntade sanna positiva och de faktiskt märkta positiva. Av faktiska taggade entiteter visar recall hur många av dem som förutsägs korrekt.
F1-poäng: F1-poäng är en funktion av de föregående två måtten. Du behöver det när du söker en balans mellan precision och återkallande.
Alla anpassade NER-modeller har både falska negativa och falska positiva fel. Utvecklare måste överväga hur varje typ av fel påverkar det övergripande systemet och noggrant tänka igenom kompromisserna för varje användningsfall.
Beroende på ditt scenario kan precision eller återkallande vara ett lämpligare mått för att utvärdera modellens prestanda. Om ditt scenario till exempel handlar om att extrahera räntan från ett finansiellt kontrakt skulle det leda till felaktiga beräkningar och felaktig redovisning om fel entitet extraheras. I det här fallet bör systemet vara mer känsligt för falska positiva identifieringar, och precision skulle då vara ett mer relevant mått för utvärdering.
Men om ditt scenario handlar om att extrahera entiteter för att utöka ditt sökindex skulle det leda till sämre indexering om en entitet inte extraheras. I det här fallet bör systemet vara mer känsligt för falska negativa, och återkallande skulle då vara ett mer relevant mått för utvärdering.
Om du vill optimera för allmänna scenarier, eller när precision och träffsäkerhet är viktiga, kan du förlita dig på F1-poängen. Förstå att utvärderingspoäng är subjektiva för ditt scenario och acceptanskriterier, och det finns inget absolut mått som fungerar för alla scenarier.
Metodtips för att förbättra systemprestanda
Följande punkter hjälper dig att förbättra systemets prestanda:
Förstå tjänstbegränsningar: Det finns vissa begränsningar som tillämpas på användaren, till exempel antalet filer och entiteter i dina data eller entitetslängd. Läs mer om systembegränsningar.
Planera schemat: Identifiera de entiteter som behöver extraheras från data. Utvecklare måste planera schemat i enlighet med detta. Läs mer om rekommenderade metoder.
Välj träningsdata: Kvaliteten på träningsdata är en viktig faktor i modellkvaliteten. Att använda olika och verkliga data som liknar de data som du förväntar dig i produktionen är att föredra. Se till att inkludera alla layouter och format för text som kan förväntas i produktion. Läs mer om rekommenderade metoder.
Tagga data korrekt: Kvaliteten på dina taggade data är en viktig faktor i modellprestanda, eftersom detta anses vara den "grundsanning" som modellen lär sig av. När du taggar dina data ska du komma ihåg att:
- Tagga helt. När du taggar en entitet ser du till att tagga alla instanser i alla dina filer.
- Tagga exakt och konsekvent. När du taggar en entitet ska du bara tagga det du behöver extrahera och undvika att lägga till onödiga ord. Precisionen, konsekvensen och fullständigheten i dina taggade data är viktiga faktorer för att fastställa modellens prestanda.
Se till att du har tillräcklig representation av taggade entiteter i datauppsättningen: Granska datadistributionen för att se till att alla dina entiteter är korrekt representerade. Om en viss entitet taggas mindre ofta än de andra innebär det att den här entiteten är underrepresenterad och förmodligen inte identifieras korrekt av modellen vid körning. I det här fallet säkerställer du att du taggar alla instanser av den här entiteten. Om du redan har gjort det kan du överväga att lägga till fler filer i datauppsättningen och lägga till fler taggar för den här entiteten.
Lägg till mer data för bättre modellprestanda. I allmänhet leder fler taggade data till bättre modeller förutsatt att dina data taggas korrekt och konsekvent. Vi rekommenderar att du har cirka 200 taggade instanser per entitet. Om du använder flerspråkig datauppsättning och märker låga prestanda på vissa språk under utvärderingsprocessen kan du överväga att lägga till mer data på det här språket i träningsuppsättningen och träna om modellen.
Granska utvärderingen och förbättra modellen: När modellen har tränats kontrollerar du modellutvärderingen och förvirringsmatrisen. Detta hjälper dig att förstå var din modell gjorde fel och lär dig mer om entiteter som inte presterar bra. Granska testuppsättningen och visa de förutsagda och taggade entiteterna sida vid sida. Du får en bättre uppfattning om modellens prestanda och om några ändringar i schemat eller taggarna är nödvändiga.
Allmänna riktlinjer
Följande riktlinjer kan hjälpa dig att förstå och förbättra prestanda i anpassad NER.
Förstå konfidenspoäng
När du har taggat data och tränat din modell måste du distribuera dem för användning i en produktionsmiljö. Att distribuera en modell innebär att göra den tillgänglig för användning via Analysera API för att extrahera entiteter från en viss text. API:et returnerar ett JSON-objekt som innehåller en lista över extraherade entiteter var och en med startindex, längd och konfidenspoäng.
Konfidenspoängen är ett decimaltal mellan noll (0) och ett (1), och det fungerar som en indikator på hur säkert systemet är med sin förutsägelse. Ett högre värde anger att tjänsten är mer säker på att resultatet är korrekt. Den returnerade poängen påverkas direkt av de data som taggas när du skapar den anpassade modellen. Om användarens indata vid extrahering liknar de data som används i träningen kan högre poäng förväntas och mer exakta entiteter extraheras.
Om en viss entitet vanligtvis extraheras med låg konfidenspoäng kanske utvecklaren vill undersöka taggade data i träningsuppsättningen, lägga till fler instanser för den här entiteten och träna om modellen.
Ange tröskelvärden för konfidenspoäng
Utvecklare kan välja att fatta beslut i systemet baserat på den konfidenspoäng som systemet returnerar. De kan välja att ange ett visst tröskelvärde där entiteter med konfidenspoäng som är högre eller lägre än det här tröskelvärdet behandlas annorlunda. Tröskelvärdet för konfidenspoäng kan justeras baserat på utvecklarens scenario.
Olika scenarier kräver olika metoder. Om kritiska åtgärder baseras på de extraherade entiteterna kan utvecklare välja att ange ett högre tröskelvärde för att säkerställa noggrannheten för de förutsagda entiteterna. I det här fallet förväntas utvecklare få färre falskt positiva men fler falskt negativa, vilket innebär högre precision.
Om inget kritiskt beslut kommer att fattas baserat på den extraherade entiteten i ditt scenario kan en utvecklare acceptera ett lägre tröskelvärde för att extrahera alla entiteter från den inkommande texten. I det här fallet får du fler falskt positiva men färre falskt negativa, vilket innebär en högre återkallelse.
Det är mycket viktigt att utvärdera systemet med de angivna tröskelvärdena med hjälp av verkliga data. Systemet bearbetar dessa data i produktion för att fastställa effekterna på precision och återkallande.
Olika utbildningssessioner och ändringar i utvärderingen
Om du tränar om samma modell utan ändringar i taggade data resulterar det i samma modellutdata och därmed samma utvärderingspoäng. Men om du lägger till eller tar bort taggar ändras modellprestandan. Utvärderingspoängen kan sedan jämföras med den tidigare versionen av modellen, förutsatt att inga nya filer lades till under taggningen. Om du lägger till nya filer eller tränar en annan modell med slumpmässiga uppsättningsdelningar leder det till olika filer i tränings- och testuppsättningar. I det här fallet kan du inte göra en direkt jämförelse med andra modeller, eftersom prestanda beräknas på olika delningar för testuppsättningar.
Granska felaktiga förutsägelser för att förbättra prestanda
När du har tränat din modell kan du granska information om modellutvärdering för att identifiera förbättringsområden. Du kan också granska förvirringsmatrisen för att identifiera entiteter som ofta förutsägs av misstag och se om något kan göras för att förbättra modellens prestanda. Om du märker att en viss entitet ofta extraheras som en annan entitet är det troligt att dessa två entiteter har liknande semantiska egenskaper. Du kan behöva tänka om i schemat, eller så kan du lägga till fler taggade exempel i datauppsättningen för att hjälpa modellen att identifiera dessa entiteter.
När du har visat utvärderingsinformation för din modell bör du förbättra din modell. På så sätt kan du visa de förutsagda och taggade entiteterna sida vid sida för att veta vad som gick fel under modellutvärderingen.
Om du upptäcker att en komplex entitet upprepade gånger inte extraheras kan du överväga att dela upp den till enklare entiteter för enklare extrahering. I stället för att till exempel skapa en adressentitet som extraherar hela adressen samtidigt bör du överväga att extrahera postnummer, gatunamn, ort och delstat separat i olika entiteter.
Om en entitet förutsägs även om den inte har taggats i dina data innebär det att du måste granska taggarna. Se till att alla instanser av en entitet är korrekt taggade i alla filer. Läs mer om att tagga dina data.
Prestanda varierar mellan funktioner och språk
Anpassad NER ger dig möjlighet att använda data på flera språk. Du kan ha flera filer i datauppsättningen med olika språk. Du kan också träna din modell på ett språk och använda den för att fråga efter text på andra språk. Om du vill använda det flerspråkiga alternativet måste du aktivera det när projektet skapas. Om du märker låga poäng på ett visst språk kan du överväga att lägga till mer data på det här språket i din träningsuppsättning. För mer information, se stödda språk.
Nästa steg
Introduktion till anpassad NER
Microsoft AI-principer