惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Stack Overflow Blog
Stack Overflow Blog
云风的 BLOG
云风的 BLOG
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Recent Announcements
Recent Announcements
Microsoft Security Blog
Microsoft Security Blog
Microsoft Azure Blog
Microsoft Azure Blog
J
Java Code Geeks
D
DataBreaches.Net
U
Unit 42
P
Proofpoint News Feed
I
InfoQ
Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
博客园 - Franky
博客园_首页
IT之家
IT之家
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
Hugging Face - Blog
Hugging Face - Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Решение задачи удаления избыточных терминов в заданном ко...
asiver · 2026-05-18 · via Все публикации подряд на Хабре

Уровень сложностиСредний

Время на прочтение4 мин

Охват и читатели6

Туториал

Recovery Mode

Как известно, LLM - это машина, которая “видела” “весь Интернет”, много чего запомнила и много чему научилась. Задавая ей правильные вопросы можно получать “правильные” ответы (где “правильные” стоит понимать в статистическом смысле). Широта и универсальность таких способностей дает возможность ставить новые универсальные задачи и получать общее решение таких задач.

В этой статье рассмотрим универсальную задачу “удаления избыточных терминов из заданного списка без потери информации в рамках заданной перспективы”. Эта задача рано или поздно появляется у всех, кто разрабатывает документацию, и перед кем стоит задача изложить материал и передать его другим людям как можно проще, логичнее, оптимальнее. Такая задача также возникает, когда требуется объединить ответы от разных LLM, заданные как список терминов. В каком-то смысле это обратная задача к задаче генерации информации и можно ожидать, что с ростом количества сгенерированной информации потребность в решении такой задачи будет также возрастать.

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

С точки зрения мета-знаний задача представляется следующим образом:

  • из описание перспективы требуется определить полные детали перспективы: 1.point_of_view - точка зрения наблюдателя — это позиция, с которой рассматривается или оценивается информация, определяющая, какие термины считаются избыточными в заданном контексте 2.basis_of_consideration - основание рассмотрения - это совокупность критериев и принципов, определяющих, какие термины считаются избыточными и подлежат удалению, а какие сохраняются для обеспечения полноты информации в рамках заданной перспективы 3.perspective_observer_strategy - стратегия наблюдателя, которая дополняет определение перспективы рассмотрения basis_of_consideration и perspective_observer_strategy введены дополнительно к point_of_view, т.к. известно, что простой точки зрения наблюдателя для определения полной перспективы рассмотрения недостаточно.

  • для каждого термина из заданного списка требуется определить отношения этого термина к другим терминам. Как известно из теории Логики: всё, что человек может помыслить является, либо “понятием”, либо “атрибутом” понятия, либо “отношением” между понятиями. Стоит отметить, что все LLM это знают, понимают и используют смысл категорий понятие", “атрибут” и “отношение”. Это позволяет использовать следующий подход:

    • определим онтологию как упрощенную схему данных для определения элементов данных и отдельно от нее непосредственную онтологию как коллекцию JSON-based элементов данных, заданную согласно схеме данных

    • в term-elimination онтологии (схема+онтология) определим ключевые отношения: sameIdentityAs, instanceOf, subclassOf, partOf, которые соответствуют отношениям, которые современные LLM-модели вполне распознают. Эти отношения выбраны так, чтобы по их наличию и отсутствию можно было судить о том, какой термин можно признать избыточным:

      • sameIdentityAs отношение означает, что термин выражает то же самое понятие, что и другой термин. Очевидно, что в рамках одного контекста нужно оставить только один термин без потери смысла

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

      • если какой-то термин является подклассом (subclassOf) другого термина и присутствует в том же самом контексте, то его можно отбросить из этого контекста, т.к. этот контекст является для подкласса слишком широким. На практике на этапе “расшифровки” терминов это означает, что сначала требуется “расшифровать” родительский термин и уже после этого, на отдельном шаге, можно “расшифровать” дочерние термины (подклассы)

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

    • отношения между понятиями могут образовать достаточно разветвленный граф. Для выбора минимального количества понятий, “содержащих в себе” другие понятия, и в сумме “покрывающие” все исходные понятия требуется решение комбинаторной задачи поиска минимального количества множеств, покрывающих все элементы (“задача о покрытии множества”). Для решения этой задачи используем интеграцию с ASP-движком Clingo

Для решения этой задачи в фреймворке core-kbt сделана ИИ-функция concept_set_covering, реализующая вышеизложенную логику, по которой можно откинуть термины без потери смысла.

ИИ-функцию concept_set_covering можно также вызывать из Google Colab ноутбука и мы можем продемонстрировать пример ноутбука с решением этой задачи для 5 примеров в совершенно разных областях:

  • 1. Удаление избыточных терминов по биологической классификации

  • 2. Выбор верхнеуровных терминов для каталога компьютерных комплектующих

  • 3. Удаление избыточных терминов в описании этапов разработки программного обеспечения

  • 4. Создание глоссария для внутреннего руководства по разработке программного обеспечения

  • 5. Оптимизация набора ключевых тем для статьи

Комментарии к таблицам в сolab-ноутбуке:

  • таблица total_dt:

    • input_terms - исходный список терминов

    • deleted_terms - удаленные термины

    • result_terms - получившийся список терминов

  • таблица details_dt - список удаленных терминов, с указанием списка отношений к другим терминам, из-за которых этот термин был удален

    • в колонке relations - список отношений термина к другим терминам

С другими деталями о core-kbt фреймворке можно ознакомиться в этой статье.

Итого, что можно было узнать в этой статье:

  • постановку важной задачи: удаление избыточных терминов из заданного списка без потери информации в рамках заданной перспективы

  • представление этой задачи в категориях мета-знаний и вариант её решения

  • вариант решения этой задачи в фреймворке core-kbt через ИИ-функцию perspective_concept_relations

  • приведен пример Colab-ноутбука с решением задачи для 5 примеров в совершенно разных областях: от каталога компьютерных комплектующих до оптимизация набора ключевых тем для статьи.


Предложения, отзывы и любая обратная связь приветствуется.