Skip to content

Repository files navigation

Что такое Smart Brain v10 за 30 секунд?

Это искусственный мозг, который:

  • Учится в реальном времени – запоминает новые факты и не забывает старые (благодаря специальным алгоритмам).
  • «Думает» с помощью графа – у него есть нейронная сеть в виде графа (узлы – это знания, связи – ассоциации). Когда вы задаёте вопрос, активация «растекается» по графу, и он выдаёт цепочку связанных мыслей.
  • Имеет несколько видов памяти:
    • рабочая (как кратковременная),
    • эпизодическая (воспоминания о диалогах, хранятся в FAISS – быстрый поиск похожих фраз),
    • семантическая (факты в виде троек «субъект–связь–объект»).
  • Общается через LLM (большую языковую модель, например, LM Studio или OpenAI) – она не придумывает ответы сама, а только озвучивает те ассоциации, которые нашёл граф. Это делает ответы обоснованными, а не просто генерацией «с потолка».
  • Автономно исследует – может сам задавать себе вопросы по выбранной теме, учиться на ответах и улучшать свою память даже без вашего участия.
  • Не забывает прошлое – использует EWC (Elastic Weight Consolidation) – технику, которая защищает важные веса от перезаписи при изучении нового.
  • Имеет веб‑интерфейс – чат, статистика, управление агентом, настройки.

Что принципиально улучшилось в v10 по сравнению с v7

Было (v7) Стало (v10)
Граф одноуровневый Иерархический – есть уровни абстракций (как в коре головного мозга).
«Мышление» – просто пропуск через сеть Spreading activation – волна активации по связям, которая и есть настоящий мыслительный процесс.
Обучение только на положительной паре InfoNCE – сравнивает с негативными примерами, не даёт эмбеддингам «схлопнуться».
EWC не работал Теперь работает – накапливает квадраты градиентов и штрафует за отклонение от важных весов.
Новые узлы не обучались Автоматическое добавление в оптимизатор с переносом статистики Adam.
FAISS не умел удалять записи Теперь удаляет корректно (используем IndexIDMap2).
Для эмбеддингов всегда query: Разделение: для вопросов query:, для контента passage: – как требует модель e5.
Teacher парсил оценки с ошибками Строгий JSON + fallback.
Агент повторял вопросы Ведёт историю, не повторяется.
Сон – упрощённая консолидация Перестраивает иерархию кластеризацией и фиксирует EWC‑якоря.
Планирование/рефлексия без истории Передаётся полный системный промпт и история диалога.

⚙️ Как это работает (очень просто)

  1. Вы пишете вопрос.
  2. Мозг превращает его в вектор (эмбеддинг) и ищет похожие воспоминания в FAISS.
  3. Находит точку входа в графе (узел, наиболее подходящий под вопрос).
  4. Запускает spreading activation – от этого узла «искра» бежит по связям, активируя связанные узлы.
  5. Собирает все активированные узлы + факты из памяти.
  6. Передаёт это LLM, которая формулирует ответ, опираясь только на собранные ассоциации (она не домысливает).
  7. После ответа мозг оценивает, насколько он был хорош (Teacher), и дообучается – корректирует веса графа и память.
  8. Если включён режим любопытства, он дополнительно учится на своей ошибке (MSE между предсказанным и реальным эмбеддингом ответа).

📁 Структура файлов проекта (что за что отвечает)

.
├── app.py                  # FastAPI веб‑сервер – точка входа, все API‑эндпоинты
├── agent.py                # BrainAgent – автономный исследователь (фоновый поток)
├── bulk_train.py           # Скрипт для массовой загрузки пар из JSONL
├── brain/                  # Основной пакет с логикой мозга
│   ├── __init__.py
│   ├── brain.py            # CognitiveBrain – главный оркестратор (step, learn, sleep)
│   ├── config.py           # Все конфигурационные параметры (размеры, коэффициенты)
│   ├── graph.py            # Дифференцируемый граф + иерархия + spreading activation
│   ├── memory.py           # Иерархическая память (FAISS, рабочая, семантическая)
│   ├── llm.py              # Интерфейс к LLM (OpenAI / локальная)
│   ├── teacher.py          # Оценка ответов через LLM (JSON)
│   ├── search.py           # Веб‑поиск (DuckDuckGo) – опционально
│   └── utils.py            # EmbeddingProvider, grow_parameter_in_optimizer, helpers
├── static/                 # CSS и JS для веб‑интерфейса
├── templates/              # HTML‑шаблон (одностраничное приложение)
├── brain_model_v10/        # Папка для сохранения состояния (создаётся автоматически)
│   ├── graph.pth           # Веса GNN
│   ├── edges.pkl           # Синапсы (связи графа)
│   ├── meta.json           # Метаданные (счётчики, настройки)
│   └── dialog_history.json # История диалогов для контекста
├── .env                    # Переменные окружения (URL, ключи)
├── requirements.txt        # Зависимости Python
└── README.md               # Полная документация (этот файл)

Весь код открыт в репозитории:
👉 https://github.com/Jasst/netlord

Вы можете клонировать его и запустить локально.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages