Обратите внимание: эта работа может стать достаточно серьёзным испытанием. Здесь не будет проверяться качество получаемых моделей, но могут задаваться вопросы касательно кода и используемых подходов.
Воспользуйтесь набором данных Tiny stories. Это короткие истории на английском языке с ограниченным вокабуляром, полученные с использованием ChatGPT. Датасет уже разбит на обучающую и тестирующую выборки, используйте их. Можете использовать любой другой датасет, состоящий из текстов на естественном языке.
Загрузите данные. Выполните токенизацию и нумерацию токенов. Разделите каждую историю из набора данных на начало и конец (можно на равные части). Для предобработки вы можете использовать любые инструменты.
Выполните padding последовательностей (чтобы все последовательности были одной длины). По желанию сформируйте батчи (можно “скармливать” последовательности по одной для упрощения задачи).
Реализуйте Decoder с использованием любых слоёв фреймворка PyTorch. Запрещено использовать nn.Transformer из torchtext. Можно реализовать самовнимание с одной головой для упрощения задачи. Объедините несколько декодировщиков в одну модель.
Выполните обучение модели. Оцените результаты инференса на нескольких примерах из тестирующий выборки. Попробуйте генерировать собственные истории!