Gzipt — это текстовый генератор, который работает вообще без нейросетей и ИИ. Его единственная «языковая модель» — обычный архиватор
gzip.Идея проста и гениальна: с точки зрения теории информации, то, что лучше всего сжимается, математически является наиболее вероятным продолжением текста. Вы даете утилите базовый текст (корпус) и промпт, а она подбирает байты, которые дают максимальную степень сжатия архиватором.
--corpus — файл с контекстом, которым «прогревается» скользящее окно сжатия.--window — размер окна корпуса, показываемый gzip (не более 32 768 байт из-за ограничений zlib).--horizon и --beam-width — глубина просмотра вперед и количество лучших ветвей продолжения текста, которые утилита держит в памяти на каждом шаге (классический лучевой поиск / Beam Search).--temperature — как и в больших LLM, регулирует случайность выбора следующих байт.--tail — объем уже сгенерированного текста, который учитывается при подсчете очков (защита от тупого копирования корпуса).--workers — количество потоков. Так как библиотека zlib в Python честно отпускает GIL, вычисления отлично параллелятся на процессоре.Скармливаем утилите файлик с пьесами Шекспира в качестве базы и просим продолжить реплику персонажа:
gzipt --corpus data/tinyshakespeare.txt --prompt $'MENENIUS:\n' --length 200
Результат генерации:
MENENIUS:
'Though all at once canq
MARCIUS:
Pray now, nocamest thou to a morsel .
LARTIUS:
Hence, and
I' the end admire, where G
again; and after it ag .
LARTIUS:
Hence, and
I' the end ad
LARTIUS:
fame and
Да, текст получается с «глюками» и опечатками, но сам факт того, что алгоритм сжатия тридцатилетней давности без единого нейрона в коде способен генерировать структуры, похожие на человеческий язык, поражает.
#Python #Gzip #LanguageModel #InformationTheory #NLP #Zlib #DevTools #OpenSource #GeekHumor
https://github.com/nathan-barry/gzipt
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - nathanrs/gzipt: A compression based language model
A compression based language model. Contribute to nathanrs/gzipt development by creating an account on GitHub.
1👍2 2🔥1