Обратите внимание: эта работа может стать достаточно серьёзным испытанием. Здесь не будет проверяться качество получаемых моделей, но могут задаваться вопросы касательно кода и используемых подходов.

Задание

Ход работы

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

Критерии приема работы

Материалы