iFlexible
814 subscribers
2.16K photos
142 videos
65 files
53 links
Все вопросы: https://t.me/proxy3d
Download Telegram
🧬 Ранговый токенизатор: переход из каменного века в эпоху Просвещения

Чтобы написать этот пост, потребовалось больше двух месяцев.
Начнем с токенизатора — потом перейдём к эмбеддингам.

Ссылка на ранговый токенизатор и тестовые классические:
https://disk.yandex.ru/d/-HIuDpvjIeSG6Q
stat15_seg.py - файл для его сборки,
llm_tokeniz.py - грубая реализация без оптимизации

🧠 Что показал ранговый токенизатор

Ранговый токенизатор не просто подтвердил теорию ранговых асимметрий — он показал результат, которого сегодня не даёт ни один существующий токенизатор.


📊 Примеры обучения

1000 примеров, ранговый токенизатор
Размер словаря модели: ≈19 592
Продолжить: «Коты это животные, которые» → Генерация: ", что уже и уже теперь, что"


400 примеров, словарь ≈50 000
Продолжить: «Коты это» → Генерация: " я"


4000 примеров, словарь ≈30 000
Продолжить: «Коты это»

при температуре 0.3 → " дуда ду,"
при температуре 0.7 → " друго его мыся меня ти глю."


📉 Для сравнения: обычный токенизатор (SentencePiece / WordPiece / BPE / Unigram)

На тех же 1000 примерах модель выдаёт бесконечный высокочастотный шум одиночных токенов (что - здесь это один токен):
Коты это животные, которые, –, и не, что, –, – и, и, –, что, и, и, и, и, и, и...

Разница колоссальна.
Чтобы получить хотя бы близкий результат, современные токенизаторы требуют десятки тысяч примеров — и всё равно работают хуже.


💡 Что делает ранговый токенизатор

1. Определяет EOS (конец предложения) уже на 100–400 примерах, не уходя в бесконечную генерацию.
2. Начинает выстраивать грамматику при числе примеров < 1000.
3. Формирует слова из морфем (например, «что» = «ч» + «то»).
4. Быстрее переходит к смыслу, а не к частотной болтовне.


⚙️ Почему это работает

Ранговый словарь отражает энергетическую структуру распределения, а не простую частотность сегментов, как в BPE или Unigram.

Например, если «о» — самый частый символ, это не значит, что он получит ранг 1.
Наоборот — он часто становится внутренним элементом более сложных сегментов.

Рост диапазона β (от 0.5 до 2.0) расширяет словарь и выявляет иерархию уровней смысловой сборки — от фонем и морфем к словам и фразам.


🧩 Вывод

Уже на сотнях примеров токенизатор формирует внутреннюю грамматику, правильно расставляет знаки препинания и даже строит согласованные короткие фразы — то, что современные модели не делают без огромных датасетов.

Следующий шаг —показать эмбеддинги и объяснить формирование рангового пространства (токенизатора).
(о них — в следующих постах)
🔥12
🚀 Результаты серии экспериментов по обучению моделей на ранговой архитектуре

За последнюю неделю я провёл серию тестов (для проверки ряда теорем) по обучению LLM-модели на крайне малом датасете (всего 1000 примеров) с использованием рангового токенизатора, ранговой теории и нескольких типов архитектурных модификаций.

🔥 Главный результат
Вариант №4 дал беспрецедентный результат.

Условия варианта 4:

• ранговый токенизатор
• 1000 примеров, 4 эпохи
• Постепенное включение блоков (по одному блоку на эпоху)
• Все ранее активированные блоки продолжают обучаться
• Присутствуют дальние skip-connections
• Embedding-слой пробрасывается во все блоки


📌 Именно эта архитектура впервые показала формирование настоящей структуры языка:

• появление морфологии
• соблюдение пунктуации
• предложения с заглавной буквы после точки
• стабильные слова ("что", "уже", "я", "он")
• формирование простых смысловых цепочек
("Да я что и что он?")

Примеры генерации (без очистки):

«Мо на свое ее и ноа это Ой.... Да я что и что он?, не что не уже с шу, за и его и это запей»

«Он и как наде глазычо и я и на не за за. По что луго ужо для,»

«что его Гшу, в боль, что уже и не отчу, что за что за и не за за ужо любя..»

«Пой и что же изиво... Выал зее самы, свое, что така и с своеюбязя, что с ужо отчя»


Да, это ещё не русский язык, но это структура языка, грамматический каркас, связность, морфология и внутренняя логика.

И всё это при скрытом слое большого размера (что усложняет обучение), на 1000 примеров.

🧠 Почему это работает

Использование предсказания ранговой теории, включая:

• Ранговую стоимость и ранговое распределение

Правила токенизации создают пространство, где ранги и их стоимость соответствуют формальному описанию в теории.
Формируются точки излома, которые и становятся основой для сегментации информации.

• Постепенное включение блоков

Теорема о доминирующих уровнях и бифуркациях предсказывает, что система должна строить структуру снизу вверх:
- сначала базовые статистические зависимости, затем локальные максимумы смысла.

Активация блоков по одному создаёт архитектурный аналог иерархической бифуркации.

• Skip-connections между блоками

Дальние skip-connections полностью соответствуют требованию теории о сохранении ранговых структур между уровнями.

Результат: модель выстраивает иерархическую систему локальных максимумов, которая по теореме 5.3 и 5.4 приводит к появлению устойчивых языковых паттернов.

• Skip-connection от эмбеддингов к блокам

В ранговой теории embeddings — это геометрическое отображение ранговой стоимости, точек излома и локальных максимумов. Skip-connection делает так, что каждый уровень иерархии напрямую влияет на это отображение.

• нормы → отражение ранговой стоимости
• расположение кластеров → отражение точек излома
• углы → отражение взаимной информации
• дальность → отражение уровня доминации
• плотность → отражение локальной энтропии

Без этого модель:

• остаётся в раннем «шумовом» режиме
• не может стабилизировать доминирующие-группы
• не фиксирует промежуточные максимумы I(X;Y)


Низкоуровневая грамматика формируется и без skip-connection, но смысловые группы требуют глобального уровня доминации

⚖️ Сравнение с классическими LLM

На тех же параметрах архитектуры:

• столько же слоёв и голов
• такой же размер скрытого слоя
• тот же объём данных: 1000 примеров


Классические трансформеры НЕ могут сформировать:

• морфологию
• синтаксис
• пунктуацию
• связность
• и даже стабильные слова


Их генерация на 1000 примерах — это высокочастотный шум, бесконечные повторения и полное отсутствие структуры.

На сегодняшний день нет известных исследований, где классический LLM смог бы приблизиться к такому результату при таких условиях.

А ранговая архитектура дала такой результат впервые в мире.

Код и результаты других тестов ниже:
https://disk.yandex.ru/d/zWiEmA_17PCdHA
🔥6
Эксперимент: динамический β в трансформере
Как модель сама регулирует «температуру» текста


За последние неделю я провёл два эксперимента с теми же 100 примерами, сделав динамический токенизатор на основе ранговой теории с динамическим β — параметром, который в ранговой теории и нейробиологии играет роль модуляции серотонином.
Цель — чтобы модель сама регулировала «температуру» и генерацию, а не полагалась на вручную заданную температуру.

Для этого в процессе обучения LMM, вместе с ней обучался MLP-модулятор β, который предсказывает β по логитам, и интегрировал β в токенизатор и внимание.

Токенизатор динамически выстраивал марковские цепи на основе β, которые становились токенами.

🔬 Условия эксперимента

1000 примеров текста
• 20 эпох обучения
• одинаковая архитектура модели
• ранговый токенизатор
• одинаковая функция потерь

Тесты отличаются только механизмом β:

Тест 4_2 — β предсказывается MLP и применяется на следующем шаге уже в процессе обучения

Модель сама определяет уровень β и использует его в следующем итеративном шаге обучения.

👉 Это аналог:
MPFC → ядрам шва → серотонин регулирует активность коры.

Примеры генерации

Продолжить: Коты это

Коты это что-то он лице не разбозаделисько две беже запуть, но тут ему... Одно как ужащий на головой, что не можащительно он сдать…

Связка: коты → лицо → голова → темный → черная
Модель формирует корректную цепочку связанных признаков, даже если конкретных данных о котах в корпусе почти не было.

Продолжить: Маша пошла гулять

маша пошла гулять!– Андрядом квартиры ужа и раз? – было не было две уза за отпрехнул…

Связки:
гулять → рядом с местом → квартиры → человек → ноги

Продолжить: В далёком будущем люди начали колонизацию других планет

…и ударил и на бухнуть. Поплавной, с голосом, может что-то шепнула…

Связки:
объект → голос → шёпот → коммуникация
Это цепочки верхнего уровня — они не тривиальны и лучше, чем в классических маленьких LLM.

🧠 Что важно:

Модель формирует не случайные, а смысловые и тематические связи:

• текст не расползается
• нет повторов
• нет чистого шума
• семантическая последовательность сохраняется на 2–3 шага вперед

Для моделей такого размера на 1000 примеров — это явно выше нормы.

Тест 3 — фиксированный β, который в цикле увеличивался от 0.3→ 0.7→ 1.11.5 → 1.9

Здесь β задавался искусственно и плавно увеличивался по эпохам.

Модель не управляла им сама, а MLP учился предсказывать заданный β.

Примеры генерации

Продолжить: Коты это

Коты это а яза уживула в два бамею из это же лего…

Связки слабые, часто случайные.
Много «литературного шума», но меньше смысловых линий.

Продолжить: Маша пошла гулять

…Он в этого записа, и све, и ужу - Пилат, человек…

Здесь есть куски русских слов, но семантическое движение слабое.

Анализ теста:
• текст более случайный
• смысловые цепочки минимальные
• модель не удерживает направление мысли
• β не адаптируется к логитам
• есть больше "галлюцинаторных" вставок и имён


Нейробиологическая интерпретация (аналогия)

Модель постепенно формирует архитектуру, похожую на мозг:
• Ранговый токенизатор → таламус
• Эмбеддинги → слой 4 коры
• Головы внимания → слои 2/3, локальные максимумы
• FFN / MoE → слой 5, бифуркации уровней иерархии
• MLP-модулятор β → ядра шва
• β → серотонин
• Логиты LLM → MPFC

И самое важное:

В тесте 4_2 получилась замкнутая петля:

LLM → MLP → β → Токенизатор → LLM → новый логит → MLP

Именно такие рекуррентные петли стабилизируют поведение биологических систем.


Тест 4_2 выигрывает.
Модель, которая сама регулирует β, формирует значительно более глубокие и устойчивые смысловые цепочки.


Это демонстрирует:

✔️ динамический β действительно работает
✔️ модуль MLP учится правильно интерпретировать неопределённость
✔️ ранговая теория стабилизирует обучение
✔️ саморегулируемая температура лучше фиксированной

На таком маленьком датасете и компактной модели — это очень серьёзный результат.

В тестах выше, β использовался при генерации текста.

Сейчас я тестирую интеграцию β в FFN/MOE, чтобы полностью убрать ручную температуру при генерации текста после обучения. Но это этом позже.
🔥4👍3
🎯 Эксперимент с MoE: как по-другому понять экспертов и почему они учатся медленно

Эту неделю я тестирую архитектуру Mixture-of-Experts (MoE) с немного необычной интерпретацией, которая оказывается удивительно полезной.
Для меня MoE — это не «способ ускорения модели», а способ разложить задачу на несколько локальных максимумов C(L) (в терминах ранговой теории доминирования локальных максимумов).

Каждый эксперт в MoE можно рассматривать как:
• отдельную функцию-аппроксимацию одного локального максимума

То есть FFN-эксперт пытается описать свой собственный участок функции C(L), со своей кривизной, своим доминирующим паттерном, своим мини-сюжетом.

Если переписать в терминах модели:
• без MoE — один FFN пытается обобщить ВСЕ локальные максимумы сразу → переобобщение, потеря деталей

• с MoE — каждый FFN отвечает только за свою «зону ответственности» → лучше детализация, меньше конфликтов

Но тут сразу возникает серьёзная практическая проблема.

🚧 Почему стандартное обучение MoE работает плохо

MoE обычно обучают с нуля, и это приводит к двум вещам:

1) Данные размазываются между экспертами

У вас есть, допустим, 1000 примеров.
С четвёркой экспертов реально каждый из них видит ≈250 примеров, а иногда и меньше.
Для FFN это мало → эксперт не может выучить свой локальный максимум.


2) Маршрутизация «не знает», куда слать примеры

В начале обучения эксперты одинаково плохие → маршрутизатор выбирает случайно.
Это создаёт эффект «сломанного выбора» — усреднение без структуры.


3) Эксперты изначально пустые, без общей формы

Они начинают с нуля и конкурируют за данные
без базовой общей аппроксимации.


В итоге MoE теряет смысл: эксперты не учатся своей зоне C(L), а просто шумят.

🔧 Как можно улучшить обучение MoE

Идея, которую была протестирована:

Шаг 1. Сначала обучаем один FFN (без MoE)

Он получает ВСЮ статистику.
Он строит обобщённую аппроксимацию всех локальных максимумов.

Он не идеален для каждого локального максимума, но он даёт каркас:
• морфологию
• синтаксис
• общие смысловые паттерны
• глобальную структуру языка

То, что MoE с нуля просто не успевает создать.

Шаг 2. Затем включаем MoE, но инициализируем все эксперты этим FFN

То есть каждый эксперт стартует с одинакового обобщённого решения.

Это критически важно:
• маршрутизатор видит одинаковые решения — нет хаоса
• эксперты начинают с общей базы, но дальше «специализируются»
• меньше провалов при начале обучения
• не возникает экспертов, которые “так и не поняли задачу”

По сути, мы делаем плавную инициализацию вместо случайной.

🔬 Результаты теста

Проверен на маленьком эксперименте:
• данные: ~1000 примеров (начальные главы «Мастер и Маргарита»)
• 20 эпох
• MoE с 4 экспертами
• динамическая β-регуляция

Несмотря на то, что данных на каждого эксперта стало меньше, модель:
• не сломала морфологию
• не потеряла синтаксис
• генерирует фразы, похожие на литературный текст
• строит смысловые связи («ответил голос», «шептал он»)
• местами держит сюжетность

MoE показал, что даже с грязным обучением эксперты
уже начинают специализироваться.

🧠 Ключевой вывод

MoE действительно работает как набор локальных функций-аппроксимаций C(L).
Но чтобы он начал обучаться правильно, его экспертов нужно инициализировать общим FFN.

Иначе:
• маршрутизатор ведёт себя хаотично
• эксперты получают слишком мало данных
• MoE не раскрывает свой потенциал

А простой двухшаговый процесс
(общий FFN → инициализация MoE → дообучение)
делает обучение заметно устойчивее.
🔥3👍2