Ce înseamnă Batch
Un batch (în română „lot”) este un grup de exemple de antrenare procesate deodată. În loc să-și corecteze ponderile după fiecare exemplu sau abia după tot setul de date, modelul face o corectură după fiecare batch. Numărul de exemple dintr-un batch se numește batch size și este un hiperparametru, de obicei o valoare precum 32, 64, 256 sau mai mare.
Termenul apare și la folosirea modelelor: „procesare în batch” înseamnă trimiterea multor cereri deodată, de exemplu prin API-urile unor furnizori, care oferă uneori costuri mai mici pentru cereri care nu trebuie rezolvate imediat.
Cum funcționează
Plăcile video sunt foarte bune la calcule în paralel, așa că procesarea a 64 de imagini deodată durează mult mai puțin decât 64 de procesări separate. Gradientul se calculează ca medie pe tot batch-ul, ceea ce îl face mai stabil decât cel calculat pe un singur exemplu.
Un batch mare este limitat de memoria plăcii video. Un batch prea mic dă actualizări „zgomotoase”, iar unul foarte mare poate cere ajustarea ratei de învățare.
Pe înțelesul tuturor
Profesorul care corectează lucrări nu își schimbă metoda de predare după fiecare lucrare, nici abia la sfârșitul anului. Corectează un teanc de 30 de lucrări, vede greșelile comune și ajustează lecția următoare. Teancul este un batch.
Exemplu
Un set de 50.000 de recenzii, cu batch size 500, înseamnă 100 de batch-uri pe epocă. Dacă placa video rămâne fără memorie (eroarea frecventă „out of memory”), una dintre primele soluții este reducerea batch size-ului, de exemplu la 250.
De reținut
- Un batch este un grup de exemple procesat într-un singur pas de antrenare.
- Batch size-ul influențează viteza, consumul de memorie și stabilitatea antrenării.
- Mai multe batch-uri formează o epocă.
Nu confunda
- Batch vs. epocă: batch-ul este o parte din date; epoca este trecerea prin toate datele.
Termeni înrudiți
- Epocă (epoch): O trecere completă a modelului prin toate datele de antrenare; antrenarea durează de obicei mai multe epoci.
- Gradient descent (coborârea gradientului): Metoda de optimizare prin care un model își ajustează ponderile în pași mici, mereu în direcția în care eroarea scade.
- GPU (pentru AI): Procesorul plăcii video, cu mii de nuclee care fac calcule în paralel; a devenit motorul principal al antrenării și rulării modelelor AI.
- Hiperparametri: Setările alese de om înainte de antrenare (rată de învățare, număr de epoci, mărimea rețelei), care nu sunt învățate din date.
- Antrenarea unui model: Procesul prin care un model AI învață din date, ajustându-și parametrii pas cu pas, ca să greșească tot mai puțin.