YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
LoopedQwen: фиксированный порядок MLP → Attention, seed 43
Лучший checkpoint проекта LoopedQwen, полученный в эксперименте 007. Это небольшая рекуррентная по глубине авторегрессионная языковая модель на основе декодера Qwen3. Одни и те же два физических декодерных слоя используются на каждой итерации.
Финальная архитектура применяет стандартные подслои Qwen3 в обратном порядке:
MLP → Attention
Изменение не добавляет параметров и не увеличивает число вызовов Attention/MLP относительно контроля Attention → MLP.
Параметры модели
| Характеристика | Значение |
|---|---|
| Параметры | 5 670 402 |
| Словарь | 16 000, byte-level BPE |
| Размер скрытого состояния | 256 |
| Общие физические слои | 2 |
| Глубина при обучении | равномерно случайная, 8–24 итерации |
| Контекст | 512 токенов |
| Обработанные обучающие токены | 9 994 240 |
| seed | 43 |
| Рекомендуемая глубина остановки | 11–12 итераций |
При обучении используются intermediate LM losses на итерации 8, в midpoint и на выбранной конечной глубине. Финальная loss имеет вес 0,5, две ранние — по 0,25.
Результаты
Dense evaluation проводится на каждой целой глубине от 4 до 32 по 100 validation batches. Для каждой глубины генератор инициализируется одинаковым seed 1234, поэтому все depth оцениваются на одном и том же наборе sampled batches.
| Метрика | Attention → MLP, среднее по 3 seed | MLP → Attention, среднее по 3 seed |
|---|---|---|
| Лучший PPL | 1108,46 | 943,95 |
| Средний PPL, глубины 8–24 | 1114,20 | 949,77 |
| PPL@16 | 1112,72 | 947,07 |
| PPL@24 | 1123,97 | 961,01 |
| PPL@32 | 1137,03 | 980,65 |
MLP → Attention снижает средний PPL по глубинам 8–24 на 14,76% для seed 42–44 и выигрывает во всех 87 проверенных сочетаниях «seed × depth».
Выбранный checkpoint с seed 43 имеет лучший PPL 905,82 на depth 11, средний PPL 912,40 на depth 8–24, PPL@16 909,87 и PPL@32 944,76.
Точное воспроизведение этих PPL требует исходного val.bin, использованного в эксперименте. Повторная подготовка validation stream из FineWeb воспроизводит протокол оценки, но из-за потокового источника данных не гарантирует точного совпадения абсолютных значений.
Загрузка
Репозиторий модели содержит пользовательский код Transformers. Используйте проверенную версию Transformers и явно разрешите загрузку custom code:
pip install "transformers==5.15.1" torch
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
repo_id = "Nek1tt/LoopedQwen-fixed-ma-seed43"
tokenizer = AutoTokenizer.from_pretrained(
repo_id,
trust_remote_code=True,
)
model = AutoModelForCausalLM.from_pretrained(
repo_id,
trust_remote_code=True,
).eval()
inputs = tokenizer(
"Циклические языковые модели",
return_tensors="pt",
)
with torch.no_grad():
outputs = model(**inputs, num_loops=12)
print(outputs.logits.shape)
Ограничения
- Это исследовательская модель с 5,67 млн параметров, обученная менее чем на 10 млн токенов, а не универсальный ассистент.
- Perplexity достигает минимума примерно на 11–12 итерациях и затем медленно растёт; дополнительные вычисления при inference полезны не монотонно.
- KV cache отключён, потому что стандартный cache Qwen3 индексируется по физическим слоям, а не по позициям рекуррентной глубины.
- Опубликованные PPL получены на фиксированном validation stream FineWeb и не проверялись на задачах reasoning.
- При
trust_remote_code=Trueвыполняется пользовательский код модели, опубликованный вместе с checkpoint. Перед запуском можно проверитьmodeling_looped_qwen3.py.
Полные конфигурации, исходные кривые, анализ по seed 42–44, причинные вмешательства и инструкции воспроизводимости находятся в репозитории проекта.
- Downloads last month
- 279