Техножнец
Привет, синтеты! 👋 Большой апдейт по RUKALLAMA — русскоязычная LLM на архитектуре KAN. Работа идёт несколько недель, расскажу что было сделано. 📁 Отправная точка: BASELINE.txt Монолит на 3000+ строк — полный training pipeline SplineGPT для Colab. Архитектура:…
Вот так это тяжело и мучительно. Попытался вывести для вас все детали этих исследований.
❤5
Работа с датасетом для RUKALLAMA 📚
📦 Источник
🗂 Структура
🐛 Проблемы исходных данных
🧹 Инструменты очистки
📝 Форматы инструкций
✅ Результат очистки
📊 Статистика
💎 Чистые данные — основа качественной модели.
📦 Источник
Начал с коллекции "RUKALLAMA 1 DATASET FINEST" — 767 книг по 8 предметным областям. Алгебра, геометрия, тригонометрия, арифметика, естественные науки, история с обществознанием, филология, прикладные навыки. Советские и российские учебники, задачники, методички.
🗂 Структура
Каждая книга содержит restored_text.txt (OCR-текст после восстановления) плюс папку instructions/ с четырьмя типами инструкций: dialog (вопрос-ответ), basic (пошаговые инструкции), multistep (многошаговые решения), problem (задачи с решениями). Инструкции генерировались из контекста книг.
🐛 Проблемы исходных данных
OCR-артефакты: повторяющиеся символы (аааааааааа), множественные точки, битые переводы строк. URL и email адреса из сносок. Дублирующиеся строки между книгами (цитаты, определения). Мусорные паттерны типа "стр. 123", "рис. 45", ISBN.
🧹 Инструменты очистки
Написал три скрипта. dataset_analyzer.py — сканирует структуру, ищет артефакты, проверяет когерентность инструкций с книгами, считает статистику. dataset_cleaner.py — регулярки для URL/email, ограничение повторов символов до 3, нормализация пробелов и переносов, дедупликация через MD5-хэши строк длиннее 30 символов. prepare_training_data.py — полный пайплайн: очистка + форматирование инструкций + объединение в один файл для pretrain + токенизация.
📝 Форматы инструкций
dialog (58%): "Вопрос: ...\nОтвет: ..." — самый частый формат.
basic (13%): "Инструкция: ...\n\nШаги:\n- ..." — пошаговые руководства.
multistep (13%): "Задача: \n\nРешение:\n1. ..." — решения задач.
problem (16%): "Проблема: ...\n\nРешение:\n1. ..." — проблемы и их анализ.
✅ Результат очистки
all_texts.txt — 291 MB чистых текстов книг.
all_instructions.jsonl — 51 MB инструкций с метаданными.
all_mixed.txt — 330 MB всё вместе для pretrain (не раздельно SFT, а единый поток).
train_tokens.bin — 92 MB токенизированных данных (46M токенов).
📊 Статистика
767 книг, 56,442 инструкции, 315 MB текста после очистки. Удалено: тысячи URL, сотни email, десятки тысяч дублирующихся строк. Сжатие токенизатором 4.1x — лучше чем tiktoken на русском.
💎 Чистые данные — основа качественной модели.
👍9❤2
Неужели я навожу порядок в своём бардаке и выуживаю то, что нужно. Это тяжелый навык научной работы, который мне пришлось осознать. Наверное, так работали в мощных лабах когда на срочный заказ или огромный поток что-то шло и ты просто не вылезал из исследований...НАВЕРНОЕ!
Я понятия не имею.
ВСЁ! Теперь проект РНБ! Больше откладывать нельзя!
У меня там трудности. Отчет дам чуть позже. Спасибо, что смотрите.
Я понятия не имею.
ВСЁ! Теперь проект РНБ! Больше откладывать нельзя!
У меня там трудности. Отчет дам чуть позже. Спасибо, что смотрите.
🔥7❤2
Хотел отдельно выразить вам благодарность за ваши донаты - ещё раз. Я продолжаю использовать эти суммы для обучения и , конечно же, часть отложена на запуск крупного кластера. Сейчас в конкурентной борьбе посмотрим чья моделька выиграет и будет лучше на данных конкретных и уже будем выбирать какая из них полетит на кластер и крупнейший датасет для неё.
Кто себя лучше проявит (1млрд и 220млн чутка отличаются), тот и полетит в жирный кластер.
Новые навыки для работы с датасетами - разраотано!
Незабываем, что у меня ещё есть грамотные FINETUNE инструкции и целый пайплайн для DPO - дообучения на правильные ответы. УХХ!
МОДЕЛЬ НА 1МЛРД ПАРАМЕТРОВ - В ПУТИ!
МОДЕЛЬ НА 220-250МЛН ПАРАМЕТРОВ - В ПРОЦЕССЕ ЗАНОВО SFT
RUKALLAVA V2 (REALKAN) - В ПРОЦЕССЕ (Loss 10.3 был 11.6 - работает, скорость в 18 раз быстрее, чем была = великолепно)
Кто себя лучше проявит (1млрд и 220млн чутка отличаются), тот и полетит в жирный кластер.
Новые навыки для работы с датасетами - разраотано!
Незабываем, что у меня ещё есть грамотные FINETUNE инструкции и целый пайплайн для DPO - дообучения на правильные ответы. УХХ!
👍11❤2🙏1
По РНБ проекту.
Рефакторинг буду делать с нуля. Индексы и данные - великолепны. Мне осталось добить оркестрацию моделей...сложные щи. работаю.
Рефакторинг буду делать с нуля. Индексы и данные - великолепны. Мне осталось добить оркестрацию моделей...сложные щи. работаю.
❤🔥6🔥6❤3
Синтеты, а теперь про РНБ! 🏛
🎯 Что за проект и почему сейчас тяжело
Суть: AI-поисковик для Российской национальной библиотеки. 170 000+ авторефератов, гибридный поиск, LLM отвечает со ссылками на конкретные страницы. Модель — Qwen3:30b, локально на A100.
✅ Что готово
— Индексация 5.5 млн чанков
— Интеграция с каталогом РНБ (SRU API + локальный MARC на 108 МБ)
— MCP tools для работы с PDF
— Веб-интерфейс с чатом
😤 Почему тяжело?
Каждая попытка сделать что-то серьёзное — ломает систему.
Пытался унифицировать систему уведомлений — переписал 500 строк в main.py — сломалось. Откат.
Добавил новые intents для LLM (саммари, информация о документе) — сломалось. Откат.
Починил пути к PDF файлам + заменил библиотеку для чтения PDF — сломалось. Откат.
Убрал неподдерживаемый параметр из Ollama API — сломалось. Откат.
Попробовал всё сразу "правильно" (11 файлов, 270 строк) — сломалось. Откат.
Оптимизировал поиск с 5 минут до 90 секунд — сломалось. Откат.
Шесть попыток подряд. Каждая — reset к последнему рабочему коммиту.
🔍 В чём проблема?
Система сложная. FAISS + BM25 + Ollama + MCP tools + WebSocket + метаданные из каталога. Когда трогаешь одно — ломается другое. Большие изменения не проходят. Нужно по одной строчке, тестировать после каждой.
А SRU сервер каталога работает только внутри сети РНБ. Локально — только выгрузка в XML. Для боевого режима нужен деплой на их инфраструктуре.
🐢 Продолжаю копать. Маленькими шагами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥7🙏3🫡2😢1👨💻1
📊 ГЛАВНОЕ ОТЛИЧИЕ 1 МЛРД ОТ 250M (PIR АРХИТЕКТУРА)
🔍 ЧТО ВИДНО
1B пишет как человек — бессмысленно, но грамматически и стилистически правильно.
После 20B токенов + SFT это должна быть рабочая модель.
Метрика250M SFT1B PretrainРазвал в мусорПосле ~80 токеновНЕТ"chemistryus France; While;"ПостоянноНЕТГрамматикаЛомаетсяСтабильнаяСвязность2-3 предложения10+ предложений
🔍 ЧТО ВИДНО
250M step 2500:
...which academic history works Brazil chemistryus France; While;
iz-spenz server: http age limits and combined to by David::
1B step 13500:
We need to be more inclusive and better off developing than any other city in the country. We have had to move forward with our home and to meet our communities and provide fresh food for our community and our residents.
1B пишет как человек — бессмысленно, но грамматически и стилистически правильно.
📈 Layer Efficiency
Layer250M1BL02.566.17L15.085.54L21.992.17L31.201.32
1B активнее использует все слои, особенно L0 (2.4x выше).
💡 ВЫВОД
На 8% pretrain 1B уже показывает:
Структурную стабильность
Нет развала в мусор
Связный текст 150+ токенов
После 20B токенов + SFT это должна быть рабочая модель.
👍5⚡2
Техножнец
такие дела. продолжаю.
Зачем? Да как...
Если своя база, своя дока удобная. Можешь ядра эффективнее писать если кое какие моменты проработаешь в работе с данными на GPU. Там есть определённые правила "игры" их надо соблюдать.
Без опыта вайбкодинга такой проект сразу скатывается в провал. Контроль нужен адский - иначе = слив токенов.
Если своя база, своя дока удобная. Можешь ядра эффективнее писать если кое какие моменты проработаешь в работе с данными на GPU. Там есть определённые правила "игры" их надо соблюдать.
Без опыта вайбкодинга такой проект сразу скатывается в провал. Контроль нужен адский - иначе = слив токенов.
❤5
RUKALLAMA обучается,но на чём?
ФИЛОЛОГИЯ (13.5% = 38 MB)
ВЫВОД: ЧТО ВЫУЧИТ МОДЕЛЬ
СИЛЬНЫЕ СТОРОНЫ датасета:
1. ✅ Энциклопедичность (БСЭ)
2. ✅ Педагогический стиль (учебники)
3. ✅ Качественный русский язык (классики)
4. ✅ Научпоп объяснения (Перельман)
● АНАЛИЗ 70% ДАТАСЕТА:
ДРУГОЕ (33.5% = 93 MB)
Тематики:
- 📚 Советские учебники 1-8 класс (математика, естествознание)
- 🔬 Научпоп: Перельман ("Занимательная математика"), Акимушкин ("Мир животных")
- 🚀 Космос: Клушанцев, Авдеев
- 🏠 Домоводство, кулинария
- 🧩 Занимательные задачи, фокусы
Ключевые авторы:
- Перельман — занимательная наука
- Акимушкин — животный мир
- Фарадей — "История свечи"
ИСТОРИЯ/ОБЩЕСТВОЗНАНИЕ (23.8% = 66 MB)
ГЛАВНОЕ: БСЭ (Большая Советская Энциклопедия) 1-е издание!
57 томов (1926-1947) — это ОГРОМНАЯ часть!
Также:
- Атласы истории (СССР, Средние века)
- Хрестоматии по древнему миру
- История СССР для ВПШ
- "Всемирная история" в 10 томах
Модель выучит: Энциклопедический стиль, исторические факты, научную терминологию
ФИЛОЛОГИЯ (13.5% = 38 MB)
Учебные материалы:
- Азбуки, буквари (1925-1991)
- Грамматика русского языка в иллюстрациях
- Методики обучения
Классики детской литературы:
- Маршак — сказки, стихи
- Чуковский — загадки
- Чехов — "Каштанка"
- Лермонтов — стихотворения
- Пушкин
Словари:
- Фразеологический словарь
- Этимологический словарь
- Литературоведческие термины
ВЫВОД: ЧТО ВЫУЧИТ МОДЕЛЬ
┌──────────────────┬─────────────────────────────────────────────────┐
│ Источник │ Что даёт │
├──────────────────┼─────────────────────────────────────────────────┤
│ БСЭ │ Энциклопедический стиль, факты, терминология │
├──────────────────┼─────────────────────────────────────────────────┤
│ Учебники СССР │ Структура "Задача-Решение", педагогический язык │
├──────────────────┼─────────────────────────────────────────────────┤
│ Перельман │ Объяснение сложного простым языком │
├──────────────────┼─────────────────────────────────────────────────┤
│ Детская классика │ Грамотный русский язык, стиль │
├──────────────────┼─────────────────────────────────────────────────┤
│ Грамматики │ Правила языка, нормы │
└──────────────────┴─────────────────────────────────────────────────┘
СИЛЬНЫЕ СТОРОНЫ датасета:
1. ✅ Энциклопедичность (БСЭ)
2. ✅ Педагогический стиль (учебники)
3. ✅ Качественный русский язык (классики)
4. ✅ Научпоп объяснения (Перельман)
👍16 2
Скоро выкачу дешевый сервис, где есть куча ИИ, нет ограничений в токенах (только окно модели) и куча tool use:
рисование, видео генерации, аудио генерации, поиск и даже запуск кода. Всё в виде приятного сервиса на основе Lobe Chat.
Это мой пет проект, который призван демократизировать доступ к современным ИИ и удешевить это дело до копеек буквально. Подписка будет для всех доступна и через бота и по обычной оплате. Назвал сервис "ИИШКА" - уже готова техническая часть. С ней я больше всего колупался, но там есть нюанс (который я раскрою позже).
Ваще было бы неплохо компактинг прикрутить чтобы разговоры были "вечные". Буду держать в курсах.
рисование, видео генерации, аудио генерации, поиск и даже запуск кода. Всё в виде приятного сервиса на основе Lobe Chat.
Это мой пет проект, который призван демократизировать доступ к современным ИИ и удешевить это дело до копеек буквально. Подписка будет для всех доступна и через бота и по обычной оплате. Назвал сервис "ИИШКА" - уже готова техническая часть. С ней я больше всего колупался, но там есть нюанс (который я раскрою позже).
Ваще было бы неплохо компактинг прикрутить чтобы разговоры были "вечные". Буду держать в курсах.
1❤29👏11🔥9👍2🎉2🍾2🥴1
💾 Checkpoint Step 2500
📉 Train Loss: 6.7521
📊 Val Loss: 5.8807
📈 LR: 3.00e-04
⚡️ Speed: 3,415 tok/s
Тем временем переработанная модель на более эффективные в плане обучения и скорости и памяти КАН блоки продолжает обучаться.
Мне пришлось несколько фиксов на ходу делать, но уже более или менее.
PIR - временный стоп. Жду получки!
📉 Train Loss: 6.7521
📊 Val Loss: 5.8807
📈 LR: 3.00e-04
⚡️ Speed: 3,415 tok/s
Тем временем переработанная модель на более эффективные в плане обучения и скорости и памяти КАН блоки продолжает обучаться.
Мне пришлось несколько фиксов на ходу делать, но уже более или менее.
PIR - временный стоп. Жду получки!
👍6
Ух! Количество работы зашкаливает - столько всего сделал. Я подобью все свои результаты за последнее время и продолжу движения далее. У меня там ещё RUKALLAMA предыдущей версии недопилена до конца - а там уже на статью. В общем - этапов много, осмотрюсь, оглянусь.
2, 3 научные статьи я заработал. Выходы на научных руководителей имеются. Хочу вот реализоваться это всё.
2, 3 научные статьи я заработал. Выходы на научных руководителей имеются. Хочу вот реализоваться это всё.
🔥18👏5
Только что обнаружил свою главную проблему...я слишком самокритичен...
🤔6❤1🥰1💯1🤨1😨1
По теме системы ИИ В РНБ! Хорошие новости - я нашёл кучу багов. смешно, конечно, получилось. Исправляю))))
👍9🤔3 3🤝2
🚀 TrueKAN / RealKAN — архитектурный апдейт
Переработал ядро. Коротко о главном: (кратко для всех)
Итого: быстрее MLP, выразительнее Linear, меньше памяти.
Скоро больше деталей 👀
TL;DR: Храним "сжатую версию" матрицы из двух кусков. Результат тот же, памяти меньше.
Переработал ядро. Коротко о главном: (кратко для всех)
⚡️ Скорость
Полностью переехал с B-spline на полиномы Чебышёва. Рекурсия в один FMA, всё в регистрах GPU. Результат — 18x быстрее при том же качестве.
🗜 Память
Low-rank факторизация параметров. Сжатие в 14x без потери выразительности.
🧠 Multi-Head
Batched подход — все головы одним вызовом вместо отдельных kernel launch. 4.6x speedup.
🎯 KAN в Attention
KAN теперь не только в FFN, но и в attention проекциях. Обучаемые нелинейные трансформации дают более выразительные паттерны. -4.5% loss vs линейный вариант.
🏗 MoE
Sparse mixture of experts — больше параметров при меньшем compute.
Итого: быстрее MLP, выразительнее Linear, меньше памяти.
Скоро больше деталей 👀
🗜 Low-rank — объяснение на пальцах
Проблема: матрица 1000×1000 = миллион параметров. Жрёт память.
Решение: разбить на две маленькие.
Вместо:
A = [1000 × 1000] = 1 000 000 параметров
Храним:
U = [1000 × r]
V = [r × 1000]
Где r — маленькое число. U × V даёт ту же большую матрицу, но хранить в разы меньше.
Почему работает?
Большинство матриц в нейросетях избыточны — много повторяющихся паттернов. Как JPEG сжимает фото, потому что соседние пиксели похожи.
TL;DR: Храним "сжатую версию" матрицы из двух кусков. Результат тот же, памяти меньше.
🔥18🤯1 1
Техножнец
TL;DR: Храним "сжатую версию" матрицы из двух кусков. Результат тот же, памяти меньше.
Подкидываю вам идеи, синтеты...
🔥7🤯2