Commit aef96c11 authored by Evgeny Belyaev's avatar Evgeny Belyaev

Загрузка клонированной версии с гитхаба

parents
Pipeline #25 failed with stages
venv
__pycache__
\ No newline at end of file
This diff is collapsed.
# Учебный проект, посвященный сжатию текста при помощи авторегрессионной модели
## Описание работы
Данный проект реализует сжатие текста с использованием LSTM модели и адаптивного арифметического кодирования (ААК).
В папке ./data/ находится текстовый файл enwik5 для сжатия, являющийся первыми 10^5 байтами enwiki-20060303-pages-articles.xml.
Kодировщик использует LSTM для вычисления вектора вероятностей следующего символа на основе предыдущих. Фактическое значение символа далее кодируется с помощью ААК. Затем веса модели обновляются. Это повторяется для всех символов файла.
Во время декодирования происходит симметричный процесс, декодирование с помощью ААК, предсказание символа при помощи LSTM, обновление модели и т.д.
Декодер работает симметрично, поэтому нет необходимости передавать параметры модели.
В качестве ААК используется реализация из https://github.com/nayuki/Reference-arithmetic-coding
Параметры бейзлайна:
| Версия | Исходный размер, байты | Размер после сжатия, байты | Коэффициент сжатия | Затраченное время, с |
|:------:|:----------------------:|:--------------------------:|:------------------:|:------------------: |
| Baseline | 100000 | 47150 | 2.12 | 783 |
## Описание задания к лабораторной работе
Улучшить код так, чтобы он:
- либо на том же сжатии показывал уменьшение времени кодирования и декодирования на 100%;
- либо обеспечивал улучшение коэффициента сжатия на 100% при тех же временных затратах.
Можно улучшать следующие модули:
- Предобработка: заменять слова из предварительно созданного словаря уникальным кодом, использовать идею из Byte-Pair Encoding токенизации и т.д.;
- Нейронная сеть: использование другой архитектуры (GRU, Transformer и др.), изменить количество слоёв, функции активации, связи между слоями и т.д.;
- Арифметический кодер: учесть возможную память источника, оценка вероятностей и т.д.
Требования к реализации:
- Результаты должны быть продемонстрированы на enwik5 из папки ./data/;
- Восстановленый после сжатия файл должен полностью совпадать с оригинальным;
- В результатах приложить таблицу выше, обновив значения базового решения для вашего устройства и добавив строчку с улучшенным решением.
На почту eabelyaev@itmo.ru прислать отчет в виде презентации в pdf формате, который включает в себя:
- ФИО студента, номер группы.
- Описание предложенной модификации и результаты.
- Ссылку на репозиторий с исходным кодом проекта и инструкцию по запуску.
## Литература
Подробнее про принцип работы можно прочитать в https://bellard.org/nncp/nncp.pdf или https://arxiv.org/pdf/2407.07723 (здесь тот же принцип, но в качестве модели используется LLM и кроме текста сжимают другие типы данных)
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
tensorflow==2.17.0
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment