имеет подробные комментарии для погружения в тему
проведены тесты - влияние архитектуры на сходимость модели.
Первая попытка уменьшить вес, см. подробнее в самом файле.
вторая попытка уменьшить вес, успех! Получен прирост к точности,
а также размер модели стал значительно меньше, подробнее описано в самом файле.
содержит инструменты, которые были созданы в процессе работы.
содержит экспериментальные encoder-only, а также decoder-only модели,
подробнее см. в самих папках.
Если найдёте ошибки или у вас есть идеи - пишите: @VaxtaI (Telegram)
Перейди в директорию проекта и собери программу:
cd /home/chelovek/Документы/work/ml-lab/baseModel # свой путь
g++ -std=c++17 -g \
-ICore -IGeneration -IModel \
Core/main.cpp Core/Runner.cpp Core/BatchGenerator.cpp \
Model/Transformer.cpp Model/AttentionLogits.cpp \
-o Core/main.outЗапуск
После сборки запустити:
./Core/main.outbaseModel/
│
├── Core/ # Ядро проекта — управление пайплайном
│ ├── main.cpp # Точка входа, запускает весь процесс
│ ├── Runner.cpp/.hpp # Логика запуска пайплайна, контролирует последовательность действий
│ └── BatchGenerator.cpp/.hpp # Подготовка входных тензоров: объединяет токены, маски, позиции
│
├── Generation/ # Вспомогательные инструменты для подготовки данных
│ ├── Embedding.hpp # Генерация и обработка embedding-ов
│ ├── MaskGenerator.hpp # Генерация масок для тензоров
│ ├── Position.hpp # Позиционные коды для Transformer
│ ├── Tensor.hpp # Класс тензора: хранение и базовые операции
│ ├── Tokenizer.hpp # Токенизация входных данных
│ └── WeightGenerator.hpp # Генерация случайных весов модели (инициализация Xavier)
│
├── Model/ # Архитектура модели
│ ├── Transformer.cpp/.hpp # Реализация Transformer
│
├── json.hpp # Работа с JSON (чтение/запись)
├── tensor.pt # Данные/тензоры для тестов или обучения
├── weights.pt # Предобученные веса модели
└── test.json # Тестовый JSON для проверки работы кода