Skip to content

In this repository, I have implemented various models that transform words and texts into embeddings: Word2Vec, GloVe, FastText, ELMo, and Transformers. Additionally, modifications of these models are included. Descriptions of each model's functionality are also provided.

Notifications You must be signed in to change notification settings

CHISH08/PytorchEmbedding

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Word and Text Embeddings

Введение

Недавно увлекся темой эмбеддингов, и решил подробно изучить методы обучения эмбеддингов слов и текстов с их модификациями. Каждая модель написана собственно-ручно для лучшего понимания, что у них под капотом. Также будет описание за что и как отвечает каждый слой модели и особенности модели.

Модели для обучения эмбеддингов слов:

  • Word2Vec
    1. Skip-Gram
    2. CBOW
  • FastText
  • GloVe

Модели для обучения эмбеддингов слов и текста одновременно:

  • ELMO
  • Tranformers
    1. BERT (Encoder)
    2. GPT (Decoder)
    3. T5 (Encoder + Decoder)

Модификации класссических методов

У первой тройки реализовал такие методы, как:

  1. Negative Sampling
  2. Hierarhical Softmax: реализовано на сбалансированном бинарном дереве

Реализация, описание и тест моделей

Токенизаторы

Реализация:

  1. Реализация обычного токенизатора
  2. Реализация токенизатора, разбивающего на n-gramm-ы (FastText)

Тест и описание работы моей реализации:

  1. Тест и описание обычного токенизатора
  2. Тест и описание токенизатора, разбивающего на n-gramm-ы (FastText)

Word2Vec

Реализация: Общая реализация модели

Тест и описание работы моей реализации: Тест и описание работы Word2Vec

CBOW (Continuous Bag of Words)

Реализация составления датасета для CBOW

Skip-Gram

Реализация составления датасета для Skip-Gram

FastText

Реализация модели

GloVe (Global Vectors)

Реализация модели

ELMO (Embeddings from Language Models)

Реализация модели

Transformers

Реализация: Реализации Encoder, Decoder и их составляющих

Архитектура transformers

BERT (Bidirectional Encoder Representations from Transformers)

Реализация: Реализация модели

GPT (Generative Pre-trained Transformer)

Реализация: Реализация модели
Тест и описание работы моей реализации (обычный токенизатор): Тест и описание работы GPT
Тест и описание работы моей реализации (fasttext токенизатор): Тест и описание работы N_Gram GPT

T5 (Text-to-Text Transfer Transformer)

Реализация: Реализация модели

Цель

  • Реализация всех методов в одном проекте для полного покружения в мир эмбеддингов
  • Тест и изучение каждого из методов с программной, математической, философской точки зрения

Отличие моего проекта от таких реализаций, как от nltk и тд

  • Использование torch, а значит и cuda ядер
  • Более читаемый код с точки зрения ООП
  • Больше методов для работы с моделями и их изучения
  • Описание каждой модели и их особенностей
  • Описание на русском языке (возможно, потом добавлю также и на английском)

Визуализация с помощью plotly

Метрики

alt text

Представление эмбеддингов на плоскости (TSNE)

alt text

Дополнительно

  • Написал свой токенизатор со всеми нужными методами

About

In this repository, I have implemented various models that transform words and texts into embeddings: Word2Vec, GloVe, FastText, ELMo, and Transformers. Additionally, modifications of these models are included. Descriptions of each model's functionality are also provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published