Definiëren wat elk voorbeeld vertegenwoordigt
Begin met een beslissingszin: de categorie van een nieuw ticket herkennen, drie velden uit een document halen of een vraag beantwoorden met de bijlagen erbij. Beschrijf de invoer die beschikbaar is op het moment van de voorspelling, de verwachte uitvoer en de gevallen buiten het bereik. Informatie die na de afhandeling van het ticket is toegevoegd, mag niet voorkomen in een invoer die het moment van binnenkomst hoort te vertegenwoordigen.
Onderscheid vervolgens rij en onafhankelijke eenheid. Vijf berichten uit één gesprek delen een context; tien pagina's uit één dossier delen hun herkomst. Als je doel nieuwe dossiers betreft, houd dan elk dossier in één enkele partitie. Een scheiding per gebruiker, document, apparaat of periode beantwoordt andere vragen: kies degene die op het toekomstige gebruik lijkt en schrijf de motivatie in het manifest.
Technische bronnen: scikit-learn 1.9 — validatie met groepen en temporele afhankelijkheden
Een rol toekennen aan elke set
De trainingsset dient voor het bijstellen van het model. De validatieset stuurt ontwikkelbeslissingen: prompt, drempel, hyperparameters of de keuze van een variant. De finale testset beantwoordt een vraag die al vaststaat. Als je die raadpleegt om de beste instelling te kiezen, verandert die test geleidelijk in een ontwikkelingsinstrument, zelfs als er geen gradiënt op wordt berekend.
Scheid ook de data die worden gebruikt om een transformatie te leren. Een normalisatie, variabelenselectie of imputatie die op het hele corpus wordt afgesteld, kan informatie aan het model doorgeven. Leer deze transformaties op de toegestane partitie en pas de bewaarde transformatie daarna toe op de andere sets. Een pipeline vergemakkelijkt die controle; ze corrigeert op zichzelf geen slecht gescheiden groepen.
| Set | Toegestaan gebruik | Te vermijden beslissing |
|---|---|---|
| Training | Parameters en geleerde transformaties afstellen | De antwoorden van de finale testset erin importeren |
| Validatie | Instellingen, prompts en drempels kiezen | De beste verkennende score als onafhankelijk eindresultaat presenteren |
| Finale test | De gekozen configuratie evalueren volgens de vastgelegde regel | De instellingen wijzigen na inzage en dan dezelfde score als bevestiging hergebruiken |
| Eventuele kalibratie | Een kwantisatiemethode voorbereiden die dit nodig heeft | Gebruik de eindsplit om de geëvalueerde variant te maken |
Technische bronnen: scikit-learn 1.9 — datalekken en transformaties
Duplicaten aanpakken zonder de moeilijke gevallen te wissen
Bewaar het ruwe corpus en bouw vervolgens een werkinventaris met identificatie, herkomst en groep. Een contenthash detecteert exacte kopieën volgens de gekozen representatie. Documenteer die representatie: alle leestekens verwijderen of tekst in kleine letters zetten kan items samenvoegen waarvan het verschil juist van belang is voor de taak. Houd de koppeling bij tussen de verwijderde kopie en het behouden exemplaar.
Bijna-duplicaten vragen om extra beoordeling: een gewijzigde export, een herschreven antwoord, een gedeelde passage of een herdrukt document. Een hoge gelijkenis is een signaal om te onderzoeken, niet het bewijs dat twee annotaties uitwisselbaar zijn. Groepeer verwante varianten voordat je de data verdeelt. Als twee kopieën tegenstrijdige referenties hebben, open dan een annotatievraag; kies niet automatisch degene die het model het beste voorspelt.
Uitgewerkt voorbeeld: 1.200 regels zijn geen 1.200 onafhankelijke observaties
Dit voorbeeld is volledig illustratief: er is geen corpus of model gemeten. Stel dat er 240 gesprekken zijn, elk geëxporteerd over vijf regels. Eén regel is een exacte kopie in elk gesprek; de andere vier zijn verschillend. Als je die 240 kopieën verwijdert, blijven er 960 voorbeelden over, nog steeds georganiseerd in 240 groepen. De volgende didactische keuze reserveert 70% van de groepen voor training, 15% voor validatie en 15% voor test.
Dat geeft 168, 36 en 36 gesprekken, ofwel 672, 144 en 144 voorbeelden. De gelijke verhoudingen in regels en groepen komen hier voort uit de vier voorbeelden per gesprek. In een echt corpus met variabele groottes zou dat niet automatisch zo zijn. Deze verhoudingen zijn geen universele regel: ze moeten genoeg groepen en belangrijke gevallen in elke set overlaten.
| Opsplitsing | Volledige gesprekken | Voorbeelden | Rol |
|---|---|---|---|
| Training | 168 | 672 | Aanpassen |
| Validatie | 36 | 144 | Kiezen |
| Finale test | 36 | 144 | Bevestigen op een apart gehouden set |
Technische bronnen: scikit-learn 1.9 — GroupShuffleSplit telt de groepen
Klassen, lengtes en chronologie controleren
Tel na de opsplitsing de klassen en de groepen die ze dragen. Een klasse die op veel regels voorkomt maar in slechts één gesprek, biedt niet veel onafhankelijke gevallen. Onderzoek ook lengtes, daadwerkelijk gedekte talen, onvolledige documenten en categorieën die belangrijk zijn voor de beslissing. Een geruststellend gemiddelde kan een opsplitsing verbergen zonder enig voorbeeld van een kritiek geval.
Een stratificatie met groepen probeert de klasseverhoudingen te behouden zonder de groepen te verspreiden. Ze garandeert geen perfecte balans wanneer de groepen weinig talrijk of zeer ongelijk zijn. Als de taak erin bestaat toekomstige observaties te voorspellen, kan een chronologische scheiding relevanter zijn dan een willekeurige menging. Controleer ook of de variabelen beschikbaar waren op het moment van de voorspelling.
Technische bronnen: scikit-learn 1.9 — StratifiedGroupKFold en zijn beperkingen · scikit-learn 1.9 — validatie van tijdsgebonden data
De referentie nauwkeurig genoeg maken om een uitvoer te beoordelen
Schrijf een annotatie-instructie met voorbeelden en grensgevallen. Geef voor een extractie de betekenis van een ontbrekend veld, het datumformaat, de valuta en de aanvaarde equivalenten. Beschrijf voor een classificatie de grenzen tussen categorieën. Een antwoord dat afwijkt van de referentie is niet altijd een fout van het model: de referentie kan dubbelzinnig of onjuist zijn.
Laat een gevarieerde selectie herlezen, in het bijzonder de meningsverschillen en de belangrijke gevallen, en leg de arbitrage vast. Bewaar de correcties in een nieuwe versie van de set. Als een correctie het resultaat van een vergelijking verandert, herbereken dan alle betrokken varianten op dezelfde referentie; corrigeer niet alleen de regel die ongunstig is voor je favoriete model.
Het evaluatiepakket samenstellen vóór de GPU-campagne
Het resultaat van deze voorbereiding is een identificeerbare set, vergezeld van zijn regels. Die maakt het mogelijk de dataselectie te reproduceren zonder afhankelijk te zijn van een herinnering aan een notebook. Dit pakket voorbereiden vóór de huur voorkomt dat je de rekenperiode verbruikt aan het oplossen van verschillen in bestanden of criteria.
- Leg de identificaties, groepen, opsplitsingen en hun rechtvaardiging vast; bewaar het script of de lijst die ze produceert.
- Controleer de kruisingen van identifiers, groepen en vingerafdrukken tussen partities. Elke onverwachte kruising moet worden verklaard of gecorrigeerd.
- Exporteer de aantallen per partitie, klasse en nuttige subgroep, evenals de lijst van uitsluitingen en hun reden.
- Leg de referentie, de normalisatieregels, de hoofdexperiment, de hoofdexperiment en de drempels vast vóór de vergelijking.
- Bewaar revisie, vingerafdrukken, gebruiksrechten en locatie van de data. Een vingerafdruk verzekert identificatie, niet anonimiteit.
- Houd de toegang tot de eindtest gesloten tot de geplande beslissing; houd een logboek bij van raadplegingen en protocolwijzigingen.
Weten wat de controle aantoont
De voorbereiding is acceptabel wanneer de aantallen overeenkomen met de inventaris, de overlappingen beheerst zijn en elke uitvoer volgens een expliciete regel kan worden beoordeeld. Ze bewijst niet dat het model zal slagen, noch dat alle toekomstige toepassingen vertegenwoordigd zijn. Een kleine set kan een specifiek probleem beschrijven en toch ontoereikend blijven om conclusies te trekken over een zeldzame klasse.
Als je de fouten van de eindtest gebruikt om het systeem te verbeteren, bewaar die test dan als historiek en bereid een nieuwe onafhankelijke bevestiging voor. Voor een vooraf getraind model waarvan de oorspronkelijke data onbekend zijn, kan je partitie de afwezigheid van eerdere blootstelling niet certificeren. Documenteer deze beperking in plaats van de set als volledig nieuw te bestempelen.
Praktische vragen
Moet je altijd 20% van de data voorbehouden voor de test?
Nee. Het nuttige aandeel hangt af van het aantal onafhankelijke eenheden en de gevallen die je wilt dekken. Controleer de groepen, de belangrijke categorieën en de precisie van de verwachte conclusie; een percentage alleen garandeert geen informatieve test.
Is een verschillende identifier voldoende om duplicaten uit te sluiten?
Nee. Twee exports kunnen verschillende identifiers hebben terwijl ze dezelfde tekst of varianten van hetzelfde dossier bevatten. Controleer de inhoud en de herkomst, en houd gerelateerde voorbeelden in de partitie die overeenkomt met je groeperingsregel.
Kan ik mijn test hergebruiken nadat ik het model heb gecorrigeerd op basis van zijn fouten?
Je kunt hem bewaren om de historiek te volgen, maar hij heeft bijgedragen aan de ontwikkeling. Om een verbetering op afgezonderde data te bevestigen, gebruik je een nieuwe onafhankelijke set en maak je de rol van elk duidelijk.