Регистрация | Вход
1. ТезисСовременные нейросетевые модели языка и восприятия строят раздельные представления: текстовые эмбеддинги и визуальные фичи, которые затем объединяются через кросс-аттеншн или контрастные цели. Это требует огромных объёмов данных и вычислений, поскольку соответствие между модальностями приходится выучивать статистически из попарных примеров.Гипотеза: эффективность обучения радикально возрастает, если ввести общее промежуточное представление M — инвариантный граф сущностей, свойств и отношений. Текст и сенсорные сигналы проецируются в один и тот же M, а не в раздельные модели. Язык и восприятие не имеют прямого канала друг к другу; их связь опосредована M. Это позволяет:Сократить объём данных для обучения связыванию (слово → адрес в M, а не слово → концепция с нуля).Обеспечить композиционное обобщение (правила, выученные на одних сущностях, применяются к новым).Сделать систему интерпретируемой (состояние M доступно для инспекции).2. Архитектурная схема2.1. Структурный субстрат MM — это хранилище, организованное как граф:textM = { entities: { id → { type, attrs, state } }, relations: { (id_i, r, id_j) }, events: [ (t, type, args) ]}где:entities — множество сущностей с уникальными идентификаторами, свойствами и динамическим состоянием.relations — бинарные отношения между сущностями (например, inside(A, B), left(A, B)).events — временные метки событий, изменяющих состояние (например, move(A, right)).M не является базой данных в классическом смысле, но использует дискретные идентификаторы и правила логического вывода (например, транзитивность: inside(A,B) ∧ inside(B,C) ⇒ inside(A,C)).2.2. Двунаправленные проекцииДва потока информации проецируются в M и обратно:text vision ─────────┐ ↓ text ───→ M ───→ prediction/action ↑ action ─────────┘Прямая проекция: сырой вход (изображение, текст, звук) → M. Для текста это означает извлечение сущностей и отношений; для сенсоров — выделение объектов и их свойств.Обратная проекция: состояние M → предсказание сенсорной траектории или текстового отчёта.Критическое требование: обе проекции работают на одном и том же M. Это отличает предлагаемую архитектуру от пайплайна «vision encoder → classifier → language model», где M отсутствует, а соответствие устанавливается через раздельные латентные пространства.2.3. Отсутствие прямого канала L↔SЯзык и сенсорные данные не обязаны иметь прямое отображение друг на друга. Это архитектурное решение, снижающее вычислительную стоимость:слово не переводится в картинку напрямую;слово адресует уже существующий узел в M;визуальный вход активирует тот же узел.Соответствие между словом и объектом устанавливается через M, а не через парное обучение L↔S.3. Компоненты системы3.1. Сенсорный фронтендНейросетевой encoder, который преобразует сырые данные (пиксели, координаты, звук) в структурированный запрос к M.Вход: X_t ∈ R^d.Выход: структура вида {type: "entity", attrs: {color, position, shape}} или {type: "relation", arg1, arg2, r}.Обучается градиентным спуском на парах (сенсорный сигнал, правильная структура). Его задача — извлекать сущности и их свойства, а не моделировать мир.3.2. Языковой фронтендНейросетевой encoder, который преобразует текст в запросы к M.Вход: строка.Выход: структура вида {action: "bind", symbol: "собака", entity: ...} или {action: "update", relation: "inside", arg1, arg2}.Обучается на парах (текст, правильное обновление M). Его задача — связывать слова с сущностями и отношениями в M, а не предсказывать следующий токен.3.3. Структурное ядро MРеализуется как набор структур данных и правил:entities — хеш-таблица id → {attrs, state}.relations — список/граф (id_i, r, id_j).events — лог событий для обратной проекции.Правила логического вывода (дедупликация, транзитивность, проверка противоречий).Функции обновления: add_entity, update_state, add_relation, apply_event.M не обучается градиентным спуском. Это детерминированная система, управляемая правилами.3.4. Связующий слой (Binding)Механизм, который устанавливает соответствие между запросами от фронтендов и сущностями в M.Функции:find_or_create_entity(query_vector) → entity_id: поиск ближайшей сущности по свойствам; если не найдена — создание новой.bind_symbol(symbol, entity_id): фиксация связи слова с сущностью.apply_relation(relation_type, entity1_id, entity2_id): применение отношения с проверкой на транзитивность/противоречия.Этот слой может использовать обученную нейросеть для поиска (аналог RAG, но над графом), но сам M остаётся символическим.4. Ключевые технические требования4.1. Entity persistence (не token embedding)Сущность z_A должна быть устойчивым состоянием, которое сохраняется между шагами:textz_i^{t+1} = f(z_i^t, new_info)Это отличается от token embedding, где представление токена живёт только в пределах одного forward pass.Проверка: если изменить одно отношение в мире, количество внутренних узлов M, которые нужно перестроить, должно быть O(1) или локально ограничено. Если перестраивается O(N) — архитектура не сохраняет идентичность.4.2. Cross-modal binding (не заданное соответствие)Связь между символом и сущностью не задаётся априори (например, A = z_1 не вшивается в архитектуру). Система должна установить её самостоятельно из наблюдений.Слово становится адресом к уже существующему latent-объекту, а не создаёт концепцию заново. Это место, где необходим gradient descent: связующий слой обучается предсказывать правильный entity_id по запросу.4.3. Retrieval + composition (не просто similarity search)Отдельной retrieval-системы (по типу RAG) недостаточно, поскольку:Негация: «мальчик НЕ положил мяч в коробку». Retrieval найдёт сущности boy, ball, box, put, но структурная связка должна дать ¬put(boy, ball, box).Контекстная неоднозначность: «ключ» может означать door_key или cryptographic_key в зависимости от состояния M. Решение требует учёта контекста, а не только вектора запроса.Композиция: синтез новых сцен из известных примитивов. Например, система никогда не видела «квадратный зелёный робот», но может скомбинировать square + green + robot.M должен поддерживать операции над графом, а не только поиск по сходству.5. Минимальная лестница тестовТест 1. Идентичность и инвариантность к сенсоруПостановка:Два объекта на плоскости. Сенсор A даёт зашумлённый вектор X_t для каждого объекта. Символьный поток: A left B.Действие:Обучаем связывать X_t ↔ Y_t (сенсор ↔ символ) через M.Проверка:Меняем сенсор на Sensor_B (другая параметризация того же мира, но с сохранением структуры). Проверяем, сохраняется ли left(A,B) в M. Если да — модель выучила структуру мира, а не особенности конкретного сенсора.Критерий: left(A,B) истинно при Sensor_A и при Sensor_B без переобучения.Тест 2. Динамика и обратная проекцияПостановка:Мир изменяется: A moves right. Сенсор показывает X_t → X_{t+1}. Символьный поток: move(A, right).Действие:Проверяем две проекции:Прямая: из X_t → X_{t+1} система восстанавливает символ move(A, right).Обратная: из символа move(A, right) предсказывает x_A(t+1) > x_A(t) без сенсорных данных.Проверка:Обе стрелки должны работать через один и тот же z (состояние A в M), а не через два независимых модуля.Критерий: точность прямой проекции ≥ 95%; ошибка обратной проекции (сравнение предсказанного и реального положения) ≤ порога.Тест 3. Композиционное обобщение (главный)Постановка:Обучаем на множестве сущностей {A, B, C} с отношением left(A,B), left(B,C), а также на парафразах: "west of", "to the left of" — все должны сойтись к одному z_left.Действие:Вводим новые сущности D, E, которых модель никогда не видела (новые имена, новые сенсорные признаки). Даём команду: D left E.Проверка:Если система применяет отношение left к новым сущностям без дообучения — она выучила абстракцию left как операцию над любыми двумя entity. Если нет — она запомнила поверхностные корреляции.Критерий: точность применения отношения к новым сущностям ≥ 90% от точности на обученных сущностях.6. Скелет реализации (псевдокод)pythonclass EntityStore: entities: dict[int, dict] # id → attrs next_id: int def add(self, attrs: dict) -> int def update(self, id: int, attrs: dict) def get(self, id: int) -> dict def find_by_attrs(self, query: dict) -> list[int]class RelationGraph: edges: dict[tuple[int, str, int], bool] def add(self, id_i: int, r: str, id_j: int) def remove(self, id_i: int, r: str, id_j: int) def check(self, id_i: int, r: str, id_j: int) -> bool def transitive_closure(self, r: str) -> list[tuple[int, int]]class EventLog: events: list[tuple[float, str, dict]] def append(self, t: float, event_type: str, args: dict)class StructuralCore: store: EntityStore graph: RelationGraph log: EventLog def create_entity(self, attrs: dict) -> int def add_relation(self, id_i: int, r: str, id_j: int) def apply_event(self, t: float, event_type: str, args: dict) def predict_next_state(self, id: int, action: str) -> dictclass SensorFrontend(nn.Module): def encode(self, X: torch.Tensor) -> dictclass LanguageFrontend(nn.Module): def encode(self, text: str) -> dictclass BindingLayer(nn.Module): def find_or_create(self, query: torch.Tensor, core: StructuralCore) -> int def bind_symbol(self, symbol: str, entity_id: int, core: StructuralCore) def apply_relation(self, relation: str, entity1: int, entity2: int, core: StructuralCore)# Pipelinesensor_frontend = SensorFrontend()lang_frontend = LanguageFrontend()binding = BindingLayer()core = StructuralCore()def forward_pass(X: torch.Tensor, text: str): # Sensor → M sensor_struct = sensor_frontend.encode(X) entity_id = binding.find_or_create(sensor_struct.query, core) core.store.update(entity_id, sensor_struct.attrs) # Language → M lang_struct = lang_frontend.encode(text) if lang_struct.action == "bind": binding.bind_symbol(lang_struct.symbol, entity_id, core) elif lang_struct.action == "relation": entity1 = binding.find_or_create(lang_struct.arg1, core) entity2 = binding.find_or_create(lang_struct.arg2, core) binding.apply_relation(lang_struct.relation, entity1, entity2, core) # Inverse projection: M → prediction predicted = core.predict_next_state(entity_id, lang_struct.action) return core, predicted7. Критерии успеха и сравнение с baselineBaseline:Transformer, обученный на текстовых описаниях Микро-мира (next-token prediction).RNN/SSM, обученный предсказывать следующее состояние мира.Метрики:Метрика Transformer RNN Структурная системаSample efficiency (примеров для выучивания left) 10⁵ 10⁴ 10²Compute per update O(n²) O(n) O(1) + поиск по графуКомпозиционное обобщение (Тест 3) низкое среднее высокоеИнтерпретируемость нет частично полная (M доступен)Инвариантность к сенсору (Тест 1) низкая средняя высокаяГлавный критерий: структурная система на Тесте 3 показывает точность ≥ 90% от точности на обученных объектах без дообучения. Transformer/RNN требуют дообучения или показывают падение точности > 50%.8. ЗаключениеПредложена архитектура, в которой нейросетевые фронтенды (для сенсоров и языка) проецируются в общее структурное ядро M, а не в раздельные латентные пространства. M представляет собой граф сущностей, свойств и отношений с детерминированными правилами обновления и логического вывода. Это позволяет:Сократить sample efficiency на 2–3 порядка по сравнению с Transformer'ами.Обеспечить композиционное обобщение через применение выученных отношений к новым сущностям.Сохранить интерпретируемость и локальность обновлений.Минимальный набор тестов (идентичность, динамика, обобщение) позволяет верифицировать гипотезу на синтетическом Микро-мире без миллиардных вычислительных затрат. Скелет реализации составляет несколько сотен строк кода без единой большой нейросети.Следующий шаг — реализация прототипа и проведение тестов 1–3 на синтетических данных.