Задание: Нейронные сети. Исследование рекуррентных Transformer-энкодеров для текстовых эмбеддингов (Дистанционная работа)
**Тема исследования:** «Исследование эффективности рекуррентного переиспользования слоёв Transformer-энкодеров для построения текстовых эмбеддингов в условиях ограниченной памяти». Ищу специалиста по Machine Learning / NLP (Python, PyTorch) для проведения небольшого экспериментального исследования архитектуры Transformer-энкодеров. **Цель исследования** Проверить возможность сокращения количества параметров и потребления памяти текстовой embedding-модели за счёт рекуррентного переиспользования Transformer-слоёв без существенной потери качества семантических представлений. Архитектурный ориентир — Huginn (Recurrent Depth): модель содержит входные, повторяемые и выходные блоки. Повторяемые блоки многократно используются с общими весами, обеспечивая увеличение эффективной глубины без увеличения числа физических слоёв. **Основные исследовательские вопросы:** 1. Можно ли сократить количество параметров модели без существенной потери качества эмбеддингов? 2. Как количество рекуррентных проходов влияет на качество эмбеддингов? 3. Помогают ли повторная подача входного представления (input injection) и гейтирование (gating) сохранять качество при увеличении глубины? **1. Реализация моделей** Необходимо реализовать компактный Transformer-энкодер с возможностью рекуррентного переиспользования слоёв. Предполагается сравнить: - Стандартный компактный Transformer-энкодер (например, 3 независимых слоя). - Стандартный более глубокий энкодер (например, 6 независимых слоёв). - Рекуррентный энкодер с повторным использованием слоёв. Для рекуррентного энкодера необходимо проверить четыре конфигурации: - Базовая рекурсия без дополнительных механизмов. - Рекурсия с input injection. - Рекурсия с gating. - Рекурсия с совместным применением input injection и gating. Желательно использовать единую реализацию с переключаемыми механизмами. Для рекуррентных моделей предусмотреть изменение количества проходов (например, T = 1, 2, 4) без изменения обученных весов. Методика обучения должна учитывать возможность работы с разной глубиной. Предпочтительно обучение собственных весов с нуля. Разрешается использовать готовые токенизаторы, открытые библиотеки и существующие архитектурные компоненты. Размер модели должен быть небольшим, достаточным для экспериментальной проверки гипотез. **2. Обучение и эксперименты** Использовать открытые текстовые данные и единую методику обучения моделей для получения семантических эмбеддингов. Сравнение должно проводиться в сопоставимых условиях: одинаковые обучающие данные, функция потерь, токенизатор и условия оценки. Необходимо разделить обучающие, валидационные и тестовые данные. Для оценки качества предлагается использовать открытую задачу семантического сходства русскоязычных предложений, например RuSTSBenchmarkSTS из MTEB, с метрикой корреляции Спирмена. **Необходимо измерить:** - Качество семантических эмбеддингов. - Количество уникальных параметров каждой модели. - Размер весов модели. - Потребление оперативной памяти при инференсе. - Время получения эмбеддингов. - Зависимость качества от количества рекуррентных проходов. - Влияние input injection и gating по отдельности и совместно. Основной критерий эффективности — качество эмбеддингов при ограниченном объёме RAM. Измерения памяти и скорости проводить в одинаковых условиях, учитывая полную модель, включая таблицу токенных эмбеддингов. **3. Анализ результатов** По результатам экспериментов необходимо: 1. Сравнить обычные и рекуррентные архитектуры по качеству, числу параметров и потреблению памяти. 2. Определить характер зависимости качества эмбеддингов от количества рекуррентных проходов. 3. Оценить влияние input injection и gating на качество при увеличении глубины. 4. Сформулировать выводы о преимуществах, ограничениях и практической применимости исследуемого подхода. Результаты должны позволять отдельно ответить на каждый из трёх исследовательских вопросов. **4. Что требуется предоставить по итогам** - Исходный код моделей и экспериментов на Python/PyTorch. - Обученные веса моделей и конфигурации. - Скрипты для воспроизведения оценки качества, памяти и скорости. - Таблицы с фактическими результатами (CSV/Excel). - Графики сравнения качества, памяти и количества рекуррентных проходов. - Сравнение влияния input injection и gating. - Краткий исследовательский отчёт с описанием методики, результатов, выявленных закономерностей и ограничений. - Инструкцию по запуску и воспроизведению результатов. Важно получить объективные и воспроизводимые экспериментальные результаты. Материалы планируется использовать как экспериментальную основу для последующей подготовки научной статьи совместно с научным руководителем. **Требования к исполнителю** Опыт работы с Python, PyTorch, Transformer-архитектурами и обучением NLP-моделей. Желателен опыт проведения сравнительных ML-экспериментов. При отклике прошу кратко описать релевантный опыт, предварительную оценку реализуемости исследования, предлагаемый подход и стоимость выполнения.