Skip to content

brainteaser-ov/diplom

Repository files navigation

Глубокое обучение в задаче поиска когнатов в малоресурсных языках

О проектеЗапуск проектаСтек

Siamese Text Classification

О проекте

В проекте реализована сиамская модель для задач классификации текста. Модель обучена для определения сходства между парами текстовых последовательностей и может использоваться для классификации новых пар последовательностей.

Архитектура модели состоит из следующих основных компонентов:

  1. Embedding Layer: Преобразует входные последовательности символов в плотные векторные представления.
  2. Position Embedding:Добавляет позиционные эмбединги к входным эмбедингам, чтобы зафиксировать порядок следования символов в последовательности.
  3. Spatial Dropout: Применяет dropout для регуляризации.
  4. Bidirectional LSTM: Применяет двунаправленный LSTM для получения контекстуальных представлений последовательностей.
  5. Transformer Encoder Blocks: Применяет несколько блоков Transformer Encoder для дальнейшего преобразования представлений последовательности.
  6. Abs Diff Layer: Вычисляет абсолютную разницу между представлениями двух последовательностей.
  7. Fully Connected Layers: Применяет несколько полносвязных слоев для преобразования объединенных представлений в вероятность.

Training

Модель обучается с помощью следующих шагов:

  1. Загружаем и предварительно обрабатываем данные: из текстовых файлов загружаются положительные и отрицательные примеры и создается словарь символов.

Important

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

  1. Определяются гиперпараметры и оптимизатор: определяются такие гиперпараметры, как размер файла, максимальная длина последовательности, размер пакета и количество эпох, создается оптимизатор.
  2. Обучение модели: выполняется цикл обучения, в ходе которого вычисляется функция потерь и обновляются веса модели.
  3. Визуализация потерь: для визуализации функции потерь во время обучения.
  4. Оценка модели на тестовых данных: модель оценивается на тестовых данных.
  5. Сохранение модели: Обученная модель сохраняется в файл.

Usage

Пример использования:

python
import torch
from your_model import SiameseModel

▎Load the saved model
model = SiameseModel(vocab_size, embedding_dim, max_len)
model.load_state_dict(torch.load('model.pth'))
model.to(device)

▎Prepare the input sequences
sequence1 = "This is the first sequence."
sequence2 = "This is the second sequence."

▎Convert the sequences to tensors
input_a = torch.tensor([char_tokenizer(sequence1)], dtype=torch.long, device=device)
input_b = torch.tensor([char_tokenizer(sequence2)], dtype=torch.long, device=device)

▎Forward pass through the model
output = model(input_a, input_b)
probability = torch.sigmoid(output).item()

print(f"Probability of the two sequences being similar: {probability:.4f}")

Запуск проекта

Клонировать репозиторий и перейти в него в командной строке

git clone [email protected]:{name}}/{name}

Запустить docker-compose в папке flask_cognates docker-compose:

docker-compose -f docker-compose-main.yml up -d --build 

Стек

Python PyTorch

Directed by

brainteaser-ov 💛

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published