EnglishРусский Map

Нейросимволический ИИ

title
Нейросимволический ИИ
type
concept
summary
Сочетание LLM с символьными солверами: понимание языка и исчерпывающая корректность
tags
ai, logic-programming, llm, formal-methods
created
2026-04-09
updated
2026-09-13
lang
ru
translation_of
neurosymbolic-ai
source_updated
2026-09-13
translated
2026-09-14
translator
lllm/antigravity/gemini-3.7-flash-medium

Объединение нейросетей (распознавание паттернов, понимание языка, вероятностные рассуждения) с символьными системами (логические солверы, удовлетворение ограничений, обход графов, формальная верификация). Нейросетевая часть берёт на себя неоднозначность и естественный язык, а символьная - исчерпывающие вычисления и доказуемую корректность.

Зачем их объединять

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

Символьные системы устроены наоборот. Солвер на Prolog найдёт любой валидный путь в графе вызовов, но не сможет разобрать вопрос на естественном языке или решить, какой запрос следует выполнить. Их объединение даёт каждой системе делать то, в чём она сильна.

Паттерн на практике

Типичная архитектура: нейросетевая модель работает как фронтенд, который интерпретирует вопрос пользователя и переводит его в формальный запрос, а символьный солвер выполняет этот запрос и возвращает гарантированно корректный результат. LLM вообще не касается вычислений - она лишь переводит и презентует результат.

Наглядный пример - chiasmus. LLM определяет: "пользователь хочет узнать, может ли пользовательский ввод дойти до этого SQL-запроса", формулирует запрос достижимости и вызывает MCP-инструмент. Tree-sitter разбирает код в AST, факты Prolog кодируют граф вызовов, а поиск с возвратом (backtracking) в Prolog находит все пути (или доказывает, что их нет). Ответ выдаёт солвер, а не модель.

Где это применяется

  • Анализ кода - chiasmus использует tree-sitter + Prolog для анализа достижимости, поиска мёртвого кода и анализа влияния изменений
  • Математические рассуждения - LLM переводят текстовые задачи на язык символьной математики, а затем вызывают CAS (Wolfram, SymPy) для решения
  • Планирование - LLM генерируют описания доменов на PDDL, после чего классические планировщики находят оптимальные последовательности действий. Проверка результата важна не меньше: в llm-self-verification-limits самокритика планов в Blocksworld дала GPT-4 гораздо меньше пользы, чем валидатор планов VAL, а в остальных протестированных доменах самокритика и вовсе снизила точность
  • Запросы к базам данных - text-to-SQL, где LLM генерирует запрос, а движок базы данных гарантирует корректное исполнение
  • Формальная верификация - LLM генерируют наброски доказательств, а интерактивные доказатели теорем (Lean, Coq) их проверяют
  • Головоломки с ограничениями - судоку кодируется как 9-раскраска графа или полиномиальный идеал, после чего передаётся солверу с возвратом или решателю на базисах Грёбнера (chalkdust-sudoku-secrets)

Экономика токенов

Помимо корректности, здесь есть и чисто прагматический аргумент стоимости. Символьные солверы работают локально и вообще не тратят токены. LLM, которая делает пять итераций поиска через grep и рассуждений для трассировки цепочки вызовов, потратит ~2500 токенов и всё равно может упустить какие-то пути. Один вызов символьного солвера как инструмента обходится в ~200 токенов и даёт исчерпывающий результат. Чем больше вычислений удаётся вынести в детерминированные локальные инструменты, тем дешевле и надёжнее становится система.

Противоречие с end-to-end подходом

Сообщество глубокого обучения исторически отдавало предпочтение end-to-end подходам: обучить одну большую модель делать всё целиком, без ручной сборки компонентов. Нейросимволический ИИ предлагает обратное: для некоторых задач уже существуют заведомо корректные алгоритмы, и запустить их куда дешевле и надёжнее, чем обучать модель их аппроксимировать. Вопрос лишь в том, где провести границу между нейросетевой и символьной частями.