Aineisto: esimerkit ja niiden reitti mallille
Aineisto (dataset) on kokoelma esimerkkejä ja rakenne niiden käyttämiseen. Esimerkki voi olla kuva luokkatunnisteineen tai tokenijono, jonka siirretty kopio tuottaa ennustuskohteet.
Aineistorajapinta ei edellytä kokonaan ladattua taulukkoa. Indeksoitava aineisto tarjoaa yksittäisen alkion indeksillä, kun taas iteroitava aineisto tuottaa alkioita järjestyksessä ja voi virrata RAM-muistia tai levyä suuremmasta lähteestä.
Tokeneista koulutuspareiksi
TensorFlow-esimerkissä käytetään lyhyttä havainnollistavaa tokenijonoa. Korvaa se tokenisoidulla dokumentilla, niin saat kausaalisen kielimallin syötteet ja kohteet.
import tensorflow as tf
token_ids = tf.constant([11, 24, 8, 31, 7, 19, 6, 12, 4])
windows = tf.data.Dataset.from_tensor_slices(token_ids).window(
5, shift=4, drop_remainder=True
)
training = (
windows.flat_map(lambda window: window.batch(5))
.map(lambda row: (row[:-1], row[1:]))
.batch(8)
.prefetch(tf.data.AUTOTUNE)
)
Jokainen viiden tokenin ikkuna tuottaa neljä syötetokenia ja niiden neljä seuraavan tokenin kohdetta. Neljän tokenin siirto tekee rajakohdan kohteesta seuraavan ikkunan ensimmäisen syötteen.
map, batch ja prefetch kuvaavat syöteputkea, eivät muuta mallia. Sekoitus ja suodatus vaikuttavat silti siihen, mitä optimoija näkee. Oikeaa tekstiä yhdistettäessä dokumenttirajat on käsiteltävä tarkoituksellisesti.