-
Notifications
You must be signed in to change notification settings - Fork 2
SVDBert.py
Файл SVDBert.py содержит определения двух классов: SVDLinearLayer и SVDBertModel. Эти классы предназначены для создания и использования модифицированной версии модели BERT, в которой размерность некоторых линейных слоёв сокращается с помощью сингулярного разложения (SVD).
Описание: Линейный слой, использующий пространство уменьшенной размерности, основанное на SVD.
Атрибуты:
-
encoder: Линейный слой для кодирования входных признаков в пространство уменьшенной размерности. -
decoder: Линейный слой для декодирования признаков из пространства уменьшенной размерности в исходное пространство признаков.
Методы:
-
__init__(in_features, out_features, h_dim, bias=True): Инициализирует линейные слои. -
forward(x): Пропускает входные данные через линейные слои.
Описание: Модифицированная модель BERT, использующая SVDLinearLayer для уменьшения размерности некоторых слоёв.
Атрибуты:
- Наследует все атрибуты из
BertModel.
Методы:
-
__init__(config, svd_dim=5): Инициализирует модель, заменяя стандартные линейные слои наSVDLinearLayerво всех кроме первого слоёв энкодера.
Этот класс представляет собой пользовательский линейный слой, который сначала уменьшает размерность входных данных с помощью линейного преобразования (encoder), а затем восстанавливает их до первоначального размера (decoder). Это позволяет выполнить сжатие данных и потенциально уменьшить количество параметров модели, что может быть полезно для ускорения обучения или развертывания модели.
SVDBertModel унаследован от стандартной модели BERT из библиотеки transformers. В этом классе применяется SVDLinearLayer для уменьшения размерности в промежуточных слоях энкодера (кроме первого). Это позволяет снизить общее количество параметров модели и, таким образом, уменьшить её сложность. Это может быть особенно полезно при работе с ограничениями по памяти или вычислительными ресурсами.
SVDBert.py может быть использован в задачах обработки естественного языка, где требуется более эффективная с точки зрения вычислений модель. Использование SVD для уменьшения размерности слоёв может помочь снизить требования к памяти и ускорить обучение, сохраняя при этом достаточную выразительность модели для решения задачи.
ExplainitAll — это библиотека для интерпретируемого ИИ, предназначенная для интерпретации генеративных моделей (GPT-like), и векторизаторов, например, Sbert. Библиотека предоставляет пользователям инструменты для анализа и понимания работы этих сложных моделей. Кроме того, содержит модули RAG QA, fast_tuning и пользовательский интерфейс.
- Лицензия Apache-2.0 license