Как я случайно превратил память LLM в анализ программ

I accidentally turned LLM memory into program analysis

Как я случайно превратил память LLM в анализ программ

Автор, занимаясь исследованием уязвимостей с помощью LLM-агентов, столкнулся с проблемой: модели теряют нить рассуждений и забывают опровергнутые факты. Он предлагает нестандартное решение — хранить знания в виде фактов и правил в движке Datalog, а не в векторной базе. Это позволяет автоматически инвалидировать устаревшие выводы, отслеживать происхождение заключений и поддерживать актуальное состояние исследования. Инструмент Lemmalog сочетает LLM для извлечения фактов из неструктурированных данных и детерминированную логику для вывода, что делает расследование более надёжным.

Косинусное сходство и истина — не совсем одно и то же.
  1. sim04ful

    Я пришел к похожему выводу: LLM должны сидеть только на концах цепочки выполнения запросов.

    1. Понимание запроса пользователя: естественный язык -> более строгое представление, в моем случае Datalog.

    2. Интерпретация результата: факты и производные факты -> естественный язык.

    Между этими концами работа должна быть механическим рассуждением над какой-то онтологией или формальной структурой знаний.

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

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

  2. akkad33

    Я пытался получить долговременную память от Claude, индексируя свои заметки по ключевым словам и помещая их в базу данных SQLite, а Claude делает запросы с помощью полнотекстового поиска. Не знаю, насколько это хорошо, но, похоже, он неплохо находит вещи. Моя цель была держать контекст небольшим и позволять Claude запрашивать только то, что ему нужно. Datalog кажется отличной идеей, обязательно попробую.

  3. Animats

    Итак, он использует LLM для генерации данных, хранящихся в представлении "is_a".

    Это такой классический ИИ.

    Скоро он обнаружит, что ему нужны кванторы. Затем, что "для всех" иногда слишком сильно, и ему нужно "для большинства". Этот путь ведет к Cyc.

    Это неплохая идея. Но у нее есть история.

  4. keeda

    Очень круто. Я вспоминаю одну публикацию на HN (которую, к сожалению, не могу найти), где делалось нечто похожее: использовался LLM для разложения статей на набор утверждений, которые использовались для построения графа сущностей и связей фактов и событий. Затем этот граф запрашивался обычными методами запросов к графам, как здесь DataLog / Lemmalog. Помню, что это было особенно эффективно для ответов на запросы о временных линиях, с которыми LLM (тогда) плохо справлялись.

    (См. также Cyc: https://en.wikipedia.org/wiki/Cyc)

    Я думаю, что подобные подходы станут (или уже стали?) основой эффективного заземления ответов LLM на авторитетных источниках данных. Должна быть возможность указать на любую ошибку как на неправильный обход или неправильный "факт". Однако это лучше всего работает для конкретных, однозначных фактов; расплывчатая, неоднозначная или основанная на мнениях информация, вероятно, останется прерогативой LLM.

  5. iamflimflam1

    Это полностью совпадает с моим опытом работы над долгими исследовательскими проектами с Claude.

    Очень трудно удалить информацию — у Claude есть привычка записывать вещи повсюду, и он с радостью относится к фактам, даже после того, как они были опровергнуты.

    То, что истинно сейчас, легко загрязняется старыми "фактами".

Ещё за этот день

2026-08-29