Изучаем код Transformers, первая часть 2 — GPT вблизи и лично

Изучение генеративных предварительно обученных трансформаторов с помощью nanoGPT

Добро пожаловать во вторую часть моего проекта, где я углубляюсь в тонкости моделей-трансформеров и моделей на основе GPT, используя набор данных TinyStories и nanoGPT, обученные на устаревшем игровом ноутбуке. В первой части я подготовил набор данных для ввода в генеративную модель уровня персонажа. Ссылку на первую часть вы найдете ниже.



В этой статье я стремлюсь проанализировать модель GPT, ее компоненты и ее реализацию в nanoGPT. Я выбрал nanoGPT из-за его простой реализации модели GPT на Python, которая состоит примерно из 300 строк, и его аналогичного удобоваримого сценария обучения. Обладая необходимыми базовыми знаниями, можно было быстро понять модели GPT, просто прочитав исходный код. Честно говоря, мне не хватало этого понимания, когда я впервые изучал код. Часть материала до сих пор ускользает от меня. Однако я надеюсь, что со всем, что я узнал, это объяснение послужит отправной точкой для тех, кто хочет получить интуитивное понимание внутреннего функционирования моделей в стиле GPT.

Готовясь к этой статье, я читал различные газеты. Первоначально я полагал, что простого прочтения основополагающей работы Внимание — это все, что вам нужно будет достаточно, чтобы ускорить мое понимание. Это было наивным предположением. Хотя эта статья действительно представила модель трансформатора, в последующих статьях она была адаптирована для более сложных задач, таких как генерация текста. AIAYN был просто введением в более широкую тему. Не испугавшись, я вспомнил статью на HackerNews, в которой был список литературы для полного понимания LLM. После беглого поиска нашел статью здесь. Я не читал все подряд, но я намерен вернуться к этому списку для чтения, чтобы продолжить свое обучение после завершения этой серии.

С учетом сказанного давайте углубимся. Чтобы подробно понять модели GPT, мы должны начать с трансформатора. Трансформатор использует механизм самоконтроля, известный как…