0

Как я пришёл к мысли пересобрать архитектуру ИИ

Недавно я поставил у себя локальную LLM — по идее просто чтобы «пощупать интеллект руками» (в посте конечно написано про коммерческий проект). Вопросы, ответы, плагины — всё завелось. Но меня задело не качество текста, а энергетика процесса: модель рождает ответ токен за токеном, и каждый следующий токен — это как маленький штурм Эвереста. Смотришь на метрики — температура и потребление ползут вверх, задержки растут.

И тут меня накрыло простым сравнением: мозг так не делает. Мысль у нас вспыхивает целиком: ассоциации, образ, контекст. Никакой «буква-за-буквой», минимум энергии, никакой перегрузки ради одного слова. Почему же современные ИИ всё ещё «жуют» токены по одному и платят за это таким расходом?

Отсюда и родилась мысль: дело не только в размере моделей — дело в архитектуре. Мы строим гигантские предсказатели текста, а хотим — мышление. Значит, нужно развести «мысль» и «речь».

Идея в одном абзаце

Разделить систему на два слоя:

  • Ассоциативное ядро («мысль») — там рождается смысл: вспышка связей, устойчивое состояние, краткая «суть ответа».

  • Тонкий языковой слой («речь») — маленький декодер, который просто озвучивает готовую мысль человеческим языком.

Речь — это интерфейс, а не двигатель интеллекта. Пока мы заставляем языковой слой одновременно думать и говорить, мы обречены на бесконечные токены и бесконечные счета за энергию.

Что делать на практике: два варианта стека

Ниже — два подхода, которые я у себя разложил на дорожную карту. Без псевдокода, без «железа». Только смысл и софт-блоки.

Вариант A. «Собранный и бережливый» (можно ставить сегодня)

Цель — оставить язык как тонкий слой, а основную работу перенести в поиск смысла:

  • Локальная LLM в компактном формате (через Ollama или LM Studio), квантизированная, с аккуратными настройками температуры и длины ответа.

  • Векторный поиск поверх ваших документов (Qdrant или FAISS).

  • Эмбеддинги для понимания смысла (например, bge-m3 или E5-large-v2).

  • Рерэнкер (bge-reranker-large или лёгкий cross-encoder), чтобы выдавать в языковой слой только самую суть.

  • Сборка знаний: парсером (LangChain, LlamaIndex, Haystack) перегоняем PDF/DOCX/страницы в чистые смысловые куски.

  • API-прослойка (FastAPI/Flask) и интерфейс (например, Telegram-бот на aiogram 3.x).

Ключевая идея: языковой слой видит только короткую, отранжированную выжимку контекста — не тысячу строк, а конденсат смысла. Результат: меньше «пережёвывания» токенов, меньше тепла, меньше задержек — и при этом ответы более предметные.

Фишки, которые реально помогают:

  • Квантизация модели и включенный KV-кэш.

  • Контекст-компрессия: сначала делаем смысловую выжимку, и только её отдаём декодеру.

  • Ограничение максимальной длины ответа + чёткие стоп-условия.

  • Режим «детерминированных» ответов для деловых задач (низкая температура).

Вариант B. «Исследовательский, как мозг» (MVP-песочница)

Цель — отвязать «мышление» от линейной генерации и приблизиться к нейродинамике.

  • Ассоциативное ядро:

    • спайковые сети (snnTorch, Brian2, Nengo) или

    • современный «хопфилд-слой» как аттрактор-память (hopfield-layers для PyTorch) или

    • граф-память (Neo4j / NetworkX), где рёбра — это обученные связи смыслов.

  • Ядро получает стимул (эмбеддинг запроса), распространяет возбуждение по связям, и система быстро приходит к устойчивому состоянию — квинтэссенции ответа.

  • Тонкая языковая голова (небольшая LLM) декодирует состояние в текст одним коротким заходом.

Как обучать память:

  • Инициализировать её эмбеддингами ваших текстов.

  • Усиливать связи при подтверждённой полезности ответа («локальная пластичность», по-человечески — «запомни так»).

  • Вводить «забывание» редких и устаревших ассоциаций (распад весов со временем).

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

Можно комбинировать

Промежуточный шаг, который уже даёт «ощущение мысли»: оставить классический RAG, но вставить аттрактор/граф-отборщик между эмбеддингами и языковой моделью. Получается, что сначала система находит узел-смысл, а потом «озвучивает» его коротким ответом. Это резко сокращает шум в контексте.

Чек-лист внедрения (без кода)

  1. Соберите корпус знаний: очистка, сегментация на смысловые блоки.

  2. Постройте векторный индекс + включите рерэнкер.

  3. Ограничьте декодер: короткие ответы, стоп-слова, низкая температура.

  4. Добавьте компрессию контекста (выжимка, рефрейминг, дедупликация).

  5. Внедрите ассоциативный слой: аттрактор/граф для «вспышки смысла» перед языком.

  6. Мерьте не только точность, но и профиль потребления и задержки на разных этапах (поиск → отбор → декод).

  7. Итерируйте обучение памяти: усиливайте полезные связи, вводите забывание.

Зачем всё это

Пока ИИ — это «предсказатель следующего токена», мы платим за болтовню так, как будто это мышление. Я хочу наоборот: сначала мысль, потом короткая речь. Тогда и энергетика станет ближе к мозгу: событийно, разреженно, локально.

Как вы думаете:

  • Реально ли вырастить «энерго-бережливый интеллект», если отделить мысль от речи?

  • Какие ещё ассоциативные механизмы стоит попробовать (кроме SNN/аттракторов/графов)?

  • Кто уже пробовал подобные гибриды RAG + аттрактор и какие були/профиты получили?