Ars Poetica Numeralis
رفتن به کانال در Telegram
Всячина про ML, лингвистику и вообще
نمایش بیشترکشور مشخص نشده استدسته بندی مشخص نشده است
239
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+27 روز
+830 روز
آرشیو پست ها
Методы декодирования LM "top-nσ sampling" и "NS-FH": код и сравнение
Я написал код с реализацией двух относительно новых методов декодирования для авторегрессионных языковых моделей. Эти методы предложены в статьях:
Top-nσ: Eliminating Noise in Logit Space for Robust Token Sampling of LLM
Lingxi: A Diversity-aware Chinese Modern Poetry Generation System
Обе статьи опубликованы на сайте ACL, прошли фильтр ревьюверов и содержат ряд утверждений касательно улучшения качества генерации для креативных текстов. Мне было интересно посмотреть, докинут ли они что-нибудь при генерации русскоязычной поэзии относительно реализованных в transformers алгоритмов, в частности top-p, min-p и epsilon-sampling.
Код для top-nσ sampling: top_nsigma_filter.py
Код для NS-FH: ns_flattened_head_sampling.py
Ключевые идеи этих алгоритмов достаточно простые и исчерпывающе описаны в статьях, поэтому не буду тут пересказывать. В ридмишке репозитория я привел скрины, по которым, в принципе, можно написать соответствующий код.
Оценивать качество креативной генерации обычно непросто. Но для поэзии у меня есть весьма надежный инструмент - библиотека для расчета техничности RussianPoetryScansionTool. Техничность стихотворения включает в себя соответствие одному из классических поэтических метров и качество рифмовки. Ключевая идея тут в том, что эта метрика рассчитывается детерминированным и интерпретируемым образом, что позволяет объективно и воспроизводимо сравнивать генерации разных моделей или для разных настроек параметров декодирования.
Увы, результаты сравнения двух вышеуказанных алгоритмов не очень оптимистичные - они не дотягивают до того, что можно получить с помощью старого доброго нуклеуса, min-p или epsilon-sampling (он в топе, кстати). Фрагмент таблицы можно увидеть по ссылке.
С другой стороны, отставание не настолько велико, чтобы прямо "бу-у-у". Возможно, для китайского или английского языков они действительно докидывают в качество, особенно для длинных генераций.
Как сказал Насреддин: " Кто не пьет - тот не пьет, А кто пьет - не живет, а скорей - доживет. Кто не пьет - тот не знает страданий похмелья". Вот и думай, где истина в этом живет?
Переведи с персидского рубаи:
ﺁنان که کهن بوند و ﺁنان که نوند،
هر یک پی یکدیگر یکایک بشوند.
وین ملک جهان به کس نماند جاوید.
رفتند و رویم و باز ﺁیند و روند.
Поэтический перевод - штука непростая во всех смыслах.
Особенно когда есть всего 4 строки для передачи смысла.
А жанр - рубаи, которого в обучающих данных всего несколько тысяч примеров.
Вот тут получилось скорее забавное, чем точная передача семантики оригинала.
(Это я проверяю новую версию поэтической модели).
Нашел интересное про генеративную музыку:
"Сгенерированная ИИ музыка взволновала сильнее, чем созданная людьми"
https://naked-science.ru/article/hi-tech/sgenerirovannaya-ii-muzyk
внутри ссылка на серьезный пейпер https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0326498#sec030
музыку генерили через Stable Audio.
