Как обучить токенизатор keras на большом корпусе, который не помещается в памяти?

#python #machine-learning #keras #nlp #language-model

#python #машинное обучение #keras #нлп #языковая модель

Вопрос:

Я пытаюсь обучить языковую модель, которая на основе ввода из 2 слов пытается предсказать вывод из 1 слова. Это определение модели (все слои импортируются из keras.layers ):

 model = Sequential()
model.add(Embedding(vocab_size, 2, input_length=seq_length))
model.add(LSTM(100, return_sequences=True))
model.add(LSTM(100))
model.add(Dense(100, activation='relu'))
model.add(Dense(vocab_size, activation='softmax'))
print(model.summary())
 

Проблема в том, что мой набор данных содержит 87 миллионов строк данных из 3 слов (2 для ввода, 1 для вывода), и он не помещается в мою память. Я слышал, что keras.preprocessing.text.Tokenizer это создает токены на основе их частоты в тексте. Я обучаю свой токенизатор следующим образом:

 tokenizer = Tokenizer(oov_token=1)
tokenizer.fit_on_texts(lines)
sequences = tokenizer.texts_to_sequences(lines)
 

Как я должен подогнать свой токенизатор ко всем текстам, если они не помещаются в память?