Comments 44
Конкретные примеры бы не помешали:)
Коротко и по сути, угу) да не помешали бы но кто их будет смотреть?
можно было вставлять после каждого предложения что-то типа:

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

Обсудим?)
Вам говорят не про конкретные примеры "почему это работает", а конкретные примеры "как этим пользоваться". Тоже. Самое что вы написали в статье, но буквально на примере рабочей задачи, что говорит о том что люди (как минимум проголосовавшие за комментарий) не разобрались. Им было бы интересно продолжение, но сейчас они не разобрались, так что может картинки бы и не помешали, но не такие о каких вы говорите, а схематичное изображение того что сейчас происходит в вашем объяснении сравнительно с тем что было.
Статья богата драматичными терминами, какой то когнитивный голод, например, но честно есть сомнения что это должно работать именно так как Вы пишете. В качественной статье должен быть как минимум обзор-сравнение с конкурентами, а не просто вываливание инфы в интернет как в Яндекс Дзене. Если вы нацелились на качество и утверждаете, что ваш метод качественный, хотелось бы увидеть как минимум примеры кода, желательно опенсорс репозиторий, и то самое сравнение с другими похожими методами, или доказательство новизны вашего - сравнение с не совсем похожими методами и объяснение чем ваш отличается от них. И если ваш, например, сложнее каких то дефолтных методов, хочется видеть оправдание сложности, потому что как показывает практика, лучшие решения для большой массы проблем - архитектурно самые простые, а усложнение требуется на конкретных топиках, и не всегда усложнение одинаковое. Соответственно для каких классов задач ваш метод подходит, а для каких не подходит. Если нет такого понимания, это тоже можно упомянуть и хотя бы сообщить что в силу сложности проведения таких тестов требуется помощь, например, и я уверен что найдутся люди.
Просто нужно изначально качественно и профессионально подходить к поднесению информации, с уважением как к своему, так и к чужому времени, тогда статья не будет выглядеть как доклад чуть-странноватого школьника. Нужно хотя бы похоже на реферат/курсовую студента, собранную по правилам и методикам института. А лучше - профессиональное исследование, коих полно заплюсованных на хабре. А голословное поднесение сомнительной информации всегда будет вызывать вопросы.
Какую цель вы ставите выкладывая такую статью?
Развить методы хранения контекста? Не получится, по вышеописанным причинам, люди не будут самостоятельно воспроизводить ваш код в своих проектах без хотя бы примеров и пояснений, потому что по умолчанию такой источник как Ваша статья закономерно считается недоверительным и по умолчанию не стоит тратить на неё силы. Пока не представлены хотя бы какие-то доказательства успешности, это всё остаётся теоретическими выкладками сомнительного качества.
Удовлетворить свое эго? Ну наверное получилось, сложно судить. Несколько плюсиков собрали. Тема интересная, требует продолжение, можно продолжать в том же духе и собирать ещё плюсиков и собрать аудиторию людей со схожим мышлением.
Обновлюсь отдельным комментарием. Про эго наверное лишнее сказал, не прочитав другие комменты. Ниже в комментариях уже увидел что целью статьи было привлечение внимания единомышленников. imho, термины отталкивают, но как ниже тоже сказали "космолёт вы описали интересный"
Разговор серьезный , я понимаю?
Предлагаю сделать так: В каком направлении вы развиваетесь? Спишемся в лс, созвонимся, если хотите встретимся, определим область где можно применить описанное мной решение в вашем бизнесе,хобби, научной деятельности. В течение полугода мы работаем рука об руку над тем чтоб извлечь пользу именно в вашем деле с помощью нашего решения.
Если через полгода вы не скажете "да это оработает " я под этой статьей соглашаюсь с тем что это голословное поднесение сомнительной информации .В противном случае Вы публикуете(под своим аккаунтом со ссылкой на эту статью) свою статью , реферат, курсовую по любой методике где выкладываете то как мы это сделали (без кода) и свои корпоративные , научные или какие-то решения, лайфхаки, методологии и обязательно употребляете термин "когнитивный голод" минимум 1 раз и доказательства успешности. подзаголовок к Вашей будущей статье должен выглядеть так: "доклад чуть-странноватого школьника". И соответствующий комментарий в этой ветке
Делаем?
У вас описана "как бы" работа вашей уже готовой системы, и описано концептуальное устройство уровней мышления этой системы. Но совершенно не понятно насколько вы сами продвинулись в их реализации, ведь их описание у вас настолько абстрактно что, извините, вызывает сомнения.
Здесь описан результат почти годового исследования, коротко, доступным (на сколько это возможно) языком, ни больше ни меньше.
- Насколько мы продвинулись?
Хороший вопрос , спасибо! скажу что начиналось все с тестирования гипотезы " а можно ли синтезировать новое знание из существующих" в notebooklm, где в качестве источников знаний были .md файлы с описаниями тех самых знаний и методологий по их использованию, извлеченные вручную, если я не ошибаюсь примерно из 600 книг от Гегеля до Альтшуллера. Оглябываясь в то время скажу Вам , да , мы хорошо продвинулись. Еще раз спасибо за вопрос!
Вы не оценивали хотя бы примерно во что по времени и деньгам обойдётся построение подобной системы?
И ещё ... Это не троллинг, а именно вопрос. У Вас нет ощущения, что по итогу получится знаменитая "каша из топора", в которой функции собственно LLM будут не так уж и сильно нужны?
Нет, я не оценивал. Ощущений нет)
Смотрите почему спросил.
Я не специалист в области разработки, обучения и настройки моделей. У меня вообще по математике натянутая 4 :)))
Но мне безусловно интересно практическое применение и я читаю Ваш проект "от заказчика".
Давайте просто на примере. Допустим, обозначена потребность в AI-ассистенте корпоративного юриста. Чистая LLM с этим не справится, есть архитектурные ограничения и по контекстному окну, и по токенизации записей вида "п. 1 ст. 5 фз 777“, да и просто граллюцинации.
И вот мы начинаем. А давайте приставим к LLM: модуль очистки и подготовки входа, RAG, модуль верификации выхода .... список продолжается. В итоге задача вроде и решаемая, но уже уходит в такой бюджет, что проще "пару девочек нанять“
Здесь я тоже вижу огромное количество вроде бы полезных надстроек. Но это всё стоит денег. И тянет вправо срок окупаемости.
А так то конечно космолёт Вы неплохой описали :)))
Без конкретики статья как будто из прошлого. Сейчас агенты научились самостоятельно документировать контекст, предлагать декомпозицию, чеклисты подзадач, идти по ним. В репозитории появляется папка пресловутого Генома проекта сильно напоминающего ADR. Главное не слишком увлекаться, размер окна все же не резиновый.
Вы абсолютно правы: современные агенты действительно научились делать удивительные вещи "на лету" -декомпозировать задачи, вести чеклисты
И вы также абсолютно точно указали на их фундаментальное ограничение: "размер окна все же не резиновый". Любой контекст, который агент документирует "на лету", - эфемерный. Он исчезает после завершения задачи. Попробуйте поставить одну и ту же задачу хотя бы 100 000 раз и вы удивитесь в каком диапазоне галюцинаций находятся ответы которые Вас устраивают.
Мы разделяем "оперативную память" агента и "долговременную память" проекта:
Агенты (как у вас описано): Они по-прежнему отвечают за тактику - декомпозируют задачу, идут по чеклисту.
"Геном" : служит постоянной, структурированной "долговременной памятью". Это не просто папка с ADR, а живой граф, который агент использует как источник истины и карту для рассуждений.
Ключевое отличие: Наш агент не просто "документирует контекст" в текстовый файл. Он превращает каждое решение, каждый артефакт в структурированный узел графа.
Это позволяет ему отвечать на вопросы, которые недоступны стандартным агентам, например: "Противоречит ли это новое решение принципу, принятому полгода назад в другом модуле?".
Так что да, вы правы, главное не увлекаться...
чудной фантазёр.
Где код где примеры. Этой туфты LLM может на генерировать с три короба, ох и балабол...
Первое ощущение: мне не хватает ума, чтобы осознать такую сложную систему.
Второе: весь текст написан для того, чтобы складывалось впечатление о чем-то грандиозном (Автору наверное очень хочется быть изобретателем, но велосипед уже придумали. Понимаю).
Там где начался “принцип модульности” и “разделение ответственности" с паспортами чего-то там, я понял, что кажется нам пудрят мозг.
Ну и забавляет пафосное название "Геном" для системы, которая делает из LLM целый AGI. Прям идея для фильма про блондинку датасаенсиста. )))
Простите, а как вы определили "пафосность" названия "Геном"?
И какое именно ощущение вам сейчас хотелось бы обсудить , Ваше первое или Ваше второе?
Или Вам все таки “принцип модульности” покоя не дает?
Спасибо за хорошее настроение Андрей) Шутку про блондинку я не понял, наверное что-то личное, но в остальном, я поулыбался, Спасибо вам!
Что бы мне хотелось обсудить? Я бы хотел прочитать про конкретный пример решения задачи.
А так у вас всё общие описания вскользь и использование своей особой терминологии. Поэтому и складывается стойкое ощущение, что это не описание реальной системы, а сочинение на тему околонаучной фантастики.
Наверное Вы правы , конкретики не хватило, не хочется перегружать текст, цель статьи была просто привлечь внимание тек кто с такими же идеями в голове. я планировал постепенно рассказать что и как мы сделали, в следующих статьях потому что материала накопилось много и копится, а времени все это раскладывать по абзацам не так что бы есть. Терминология , ну да есть грешок, нужно было как-то называть то чему нет названия, "граф знаний" не подходит, что-то еще -да некогда названия выбирать, а так получается система сама себя описывает так пусть будет "геном" какая-то аналогия есть и ладно. Промпт, контекстное окно тоже для кого-то из мира околонаучной фантастики...
Вобщем ладно, рад знакомству, постараюсь на выходных склепать вторую часть.
Сначала «Геном» — внутренняя когнитивная структура — анализирует запрос, находит в графе все релевантные гены, проходит по их связям и собирает оптимальный контекст.
Хотелось бы понять на примере, как это работает. Вот у меня простой бытовой запрос: "Предложи рецепт приготовления грибов ежовик пестрый, который бы снизил их 'парфюмерный' привкус".
Запрос короткий и чёткий, ожидания от результата тоже понятные - ингредиенты, развесовка, последовательность шагов. Проблема в том, что основная информация о "связях" находится не в самом запросе (он короткий), а в весовой матрице LLM в весьма неформализуемом виде. Причём смешана со множеством других связей.
Отсюда вопрос: где и в каком виде хранятся эти самые "релевантные гены" и как и когда они попадают в это хранилище?
Не нужно искать лучший или универсальный промпт. Нужно построить систему, где знание само знает, когда и как себя активировать.
Вот! Я полностью согласен с этой мыслью! Но я пытаюсь "копать" в сторону уплотнения и насыщения промпта отдельной итерации за счёт повышения концентрации нужных смыслов в контексте всего проекта (проектной базе).
Это когда к короткому запросу пользователя Агент может добавить дополнительную информацию, относящуюся к предметной области проекта, но при этом общий объём расширенного запроса не выйдет за рамки контекстного окна модели и модель сможет выполнить инференс за один раз. Это не RAG, т.к. RAG подтягивает к запросу фрагмента документации по его "внешней похожести" на запрос пользователя. Подход с проектной базой может работать только в среде Агентов (например, Codex), у которых есть собственные алгоритмы планирования шагов обработки запроса и возможности эту самую проектную базу анализировать.
Отсюда вопрос: где и в каком виде хранятся эти самые "релевантные гены" и как и когда они попадают в это хранилище?
У нас написан конвейер миграции который выделяет самодостаточную единицы знания из предоставленных материалов и сохраняет в постргес, постгрес служит единым источником истины, затем он синхронихируется с Qdrant и Neo4j обогащая вектора и граф.
Но я пытаюсь "копать" в сторону уплотнения и насыщения промпта отдельной итерации за счёт повышения концентрации нужных смыслов в контексте всего проекта (проектной базе).
Мы тоже копали туда, но (к примеру) даже небольшая кодовая база 300 файлов или 600 сущностей типа "класс", "функция" и тп, создает необходимость проверки на установление более 100 млн(в том числе неочевидных и вверх по уровням абстракций) связей, которые могут подтолкнуть к междисциплинарному синтезу. Уплотнение нам не помогло когда нужно не только изменить какую то функцию но и применить изменение везде, где она (функция) была использована.
Хотелось бы понять на примере, как это работает. Вот у меня простой бытовой запрос: "Предложи рецепт приготовления грибов ежовик пестрый, который бы снизил их 'парфюмерный' привкус".
Декомпозиция и дообученные эмбеддинги.
У нас написан конвейер миграции который выделяет самодостаточную единицы знания из предоставленных материалов
То есть, существует какое-то ваше собственное приложение, которое анализирует имеющиеся материалы по проекту и составляет "граф знаний", сохраняемый в БД (вектора и графы - индексы к этим данным). Т.е., это не универсальное решение, а "затачивающееся" под проект ("предоставленные материалы").
Декомпозиция и дообученные эмбеддинги.
Тут вряд ли подразумевается декомпозиция запроса пользователя - он слишком короткий. Значит должен быть какой-то массив документов (проектная база), который уточняет целевую предметную область и границы применимости конечного решения (например, грибы и кулинария). Вот этот массив документов уже можно декомпозировать и анализировать на предмет "самодостаточных единиц знаний". Что такое в данном контексте "дообученные эмбеддинги" и на каком корпусе знаний происходит их дообучение - не могу представить.
Насколько я понимаю, то, что в языковой модели представлено в виде матриц весов и неформализовано (вероятностное), вы частично формализуете (укладываете отношения в ~200 вариантов) и сохраняете в БД (+ индексы в виде графов/векторов). Это позволяет вам подтягивать в контекстное окно языковой модели дополнительные "единицы знания", относящиеся к пользовательскому запросу (даже короткому).
Когда я задаю сложный вопрос ... «Геном»... анализирует запрос, находит в графе все релевантные гены, проходит по их связям и собирает оптимальный контекст.
Насколько я понимаю, примерно так и работают агенты типа Claude & Codex - у них есть некоторая логика анализа проектной базы и свои внутренние протоколы поведения (каким образом "оптимизировать контекст запроса" к модели на каждой итерации). Только они работают с текстом проекта (кодом и документацией) напрямую, без пересборки "графа знаний" при изменении "предоставленных материалов".
Такой вопрос, а сколько "единиц знаний" получается для 'небольшой кодовой базы 300 файлов или 600 сущностей типа "класс", "функция"' и как часто её нужно пересобирать при изменениях этой кодовой базы (или проектной документации)?
То есть, существует какое-то ваше собственное приложение, которое анализирует имеющиеся материалы по проекту и составляет "граф знаний", сохраняемый в БД (вектора и графы - индексы к этим данным). Т.е., это не универсальное решение, а "затачивающееся" под проект ("предоставленные материалы").
Все верно, у нас это реализовано кажная единица "ген" , "квант" (название не имеет значения) Основная сущность — Quant
== Универсальный контейнер для любой единицы знания: концептов, процессов, мета-правил, слоёв, статусов, типов связей и т.д. Даже когнитивные матрицы и директивы (через proxy-модели). типы связей это тоже Quant
что позволяет иметь неограниченное количество связей и динамически добавлять новые типы без изменения схемы. И вобщем -то использовать систему практически в любой области .
Тут вряд ли подразумевается декомпозиция запроса пользователя - он слишком короткий.
именно декомпозиция запроса. в вашем запросе есть минимум 4 вектора с которыми можно работать, "намерение" "объект" "цель" "проблема или противоречие"
эти сущности в системе тоже Quant
со всеми вытекающими, "намерение " отлавливает эмбеддинг намерений ну и так далее, сложность настройки этих эмбеддингов в том что иногда позитивы рассыпаются как бы спектрами, например (например верные ответы могут быть около 0,5 и около 0, 7 - 0,78 выше уже чушь, и приходится подключать большую LLM чтоб уже она определила например есть ли связь меджу А и Б сущностями. Мышление Gemini 2,5 устроено примерно так же разница лиш в том что там не так жестко , она намерение кпримеру определяет статистически а в нашем случае это прописано. когда система не может определить намерение у неё есть функция мы еёназвали "Когнитивный голод" когда она ставит задачи дополнить ту пустоту которую она обнаружила в ходе попыток найти верный ответ, а Gemini ну или тот же Клод начинают глючить когда намерение неясное или промпт говорит одно но ты уже отошел от решения костылем к которой был промпт и он уже начинает мешать определить даже намерение. Это проблема всех LLM.
Это позволяет вам подтягивать в контекстное окно языковой модели дополнительные "единицы знания", относящиеся к пользовательскому запросу (даже короткому).
совершенно верно, есть алгоритм поиска неочевидных связей. но когда мы говорим " подтянуть в контекстное окно" это не всегда один запрос, это может быть сотни запросов к LLM разной величины и назначения ... просто большие , а особенно с "мышлением" слишком медленные.
Только они работают с текстом проекта (кодом и документацией) напрямую, без пересборки "графа знаний" при изменении "предоставленных материалов".
В этом и есть их основная проблема. они могут продолжить код или собрать код из текста, но они не понимают почему именно этот код здесь должен быть, не видят связей. Ну например я меняю имя класса, и ни один клод не подскажет " слушай , ты сменил имя класса вот тут , теперь сходи в этот файл и в этот и перепиши потому что там сломалось, или давай я сам это сделаю".
пока они держат код в "памяти, они работают" но как тут кто-то сказал она не резиновая, и все они теряют фокус с каждой дописанной строчкой. Это можно решить при помощи других инструментов например CodeQL и Joern ,но это все равно не то чего бы вам хотелось.
Такой вопрос, а сколько "единиц знаний" получается для 'небольшой кодовой базы 300 файлов или 600 сущностей типа "класс", "функция"' и как часто её нужно пересобирать при изменениях этой кодовой базы (или проектной документации)?

примерно столько связей очевинных, (чтоб их прописать вам кстати говоря и LLM не нужна,) и еще столько же посложнее вот там да, заставить LLM в этом семантическом шуме понять что есть что, по этому комментарии и докстринги сильно помогают
Я вижу ваш подход, как построение "карты" предметной области, когда из неё выявляются и сохраняются значимые для решаемых задач сущности и связи. Своего рода "индексация" нужных знаний.
Судя по вашему скрину, вы "индексируете" знания в области разработки ПО (метод, функция, атрибуты, переменные, классы, ...). Думаю, что в качестве специализированного агента у вашего подхода есть довольно неплохие перспективы. Если расширять этот подход и делать его универсальным (и для грибов, и для кулинарии, и для софта, и ...), то в пределе ваш граф очень сильно будет похож на нейросеть - связи всех со всеми и различные вероятности переходов по связям, и потеряет своё значение в качестве "индекса знаний".
Но если ограничивать область индексации, то вполне хорошее решение (y)
похоже на подобие codex
Ссылка на LinkedIn не работает
Хорошую травку курите, вижу на креатив пробивает неплохо. Скажите что именно принимаете для достижения такого творческого дзена? Мне как человеку имеющему тягу писать, хотелось бы знать.
А подскажите, пожалуйста, я правильно понял, что вы разработали автоматизацию составления ТЗ? На абстрактный запрос «напиши приложение» ваша система должна с помощью графов найти грани(конкретное описание для запроса) систематизировать и отправить в LLM? Тогда, как я понимаю, вся проблема в составленом запросе.
Дико извиняюсь, но где сам проект? То ради чего писалась статья? То что она описывает? Что нужно пробовать?
Дорый вечер! Извинения приняты! На самом деле если вы прочитаете внимательно там есть такая строка:
Если эта тема вам откликнулась — поддержите репостом, чтобы больше специалистов по AI увидели, как еще можно выстраивать память систем иначе.
То есть цель данной статьи не показать проект, а коснуться описания технологии надстройки памяти и мышления для LLM.
Вот я читал, читал, думал как круто! Люди сделали то, о чем я размышлял!
Дочитал до конца и пришло понимание что вы тоже только думали. И вроде давно понял что если текст вот в таком стиле изложен - это скорее всего просто пыль в глаза, так сказать "пилим бюджет на собственную шину данных в системе", но чуда-то всё равно хочется. А его так и нет :(
По сути вроде начато хорошо, а в конце статьи ощущение что "низкий технический уровень статьи" ставить можно.
Признаюсь честно - дочитали до слова геном... И дочитаю завтра.
Но насколько я понял. Представлять модели инструкции и знания по признакам (да, структуривано +/-, я использую греческие знаки и обычные операторы из программирования) и и модель мира(снапшот, состояние). И я если я прав, то подобное я уже 2 месяца пытаюсь реализовать в свободное время которого почти нет(. Почитаю и там посмотрим... Это наверно все ждёт, устать от использования инструмента, и переквалифицироваться в архитектора. "Геном" == "Атом" - дежавю.
По тексту сложилось ощущение что рещена некоторая проблема. И когда захотелось поюзать решение - вдруг никаких ссылок. Хотя эффект shutup and take my money. Это все же сделано или идея только?
Я делаю похожее решение: https://qai.asia. если интересно можем списаться
Приведите пример кванта/гена. У вас же есть уже готовая система, значит от туда можно легко взять, в идеале - пару связанных генов. Скорее всего сразу понятнее станет о чем речь
Присоединяюсь к комментаторам, обратившим внимание на пафосность. Кажется, что автор познал истину, которую немного приоткрыл простым смертным... И просит поделиться с остальными. Пока нечем делиться. Пока похоже просто на длинное вступление с описанием концепции широкими мазками. Пока автор набирает достаточно лайков и репостов, чтобы замотивироваться на продолжение...
На гитхаб можно найти raganything. Он находит важные термины в документах (имена собственные, ключевые понятия и прочие словосочетания, которые LLM посчитала важными). Затем ищет связи между ними и строит граф. Есть неплохой интерфейс как для загрузки документов, так и для визуализации. Конечно это не Геном (именно с большой буквы, как здесь в статье), но что-то близкое, наверное "геном" (с маленькой буквы). Разумеется, там и близко не 12 пунктов, но можно пощупать и покрутить. Даже есть зачаточный "паспорт" (прошу прощения, если употребил неправильный термин). Кстати, задача систематизации знаний очень похожа на перевод текста с одного языка на другой. Поиск важных понятий, связей между ними, сохранение консистентности. Много параллелей, но в переводе всё чуть проще. В работе нужна мультимодальность. Картинки, видео, аудио. И в Геноме они, кажется, тоже игнорируются...
В raganything, например, заявлена мультимодальность, но она ограничена только изображениями. Система пытается разбивать целое изображение на блоки, анализируя каждый либо OCR, либо описывая что там видит и кладет в базу, ищет связи. Кажется, что при описании не всегда хватает контекста из окружающего текста, но хотя бы так... Аудио можно перевести в текст и даже попробовать разобрать его по голосам. Жаль, что с видео пока не очень понятно что делать, можно пока его не замечать, как и похожие на него презентации) А, ещё есть рабочие чаты. Они хоть и текстовые, но структурно больше похожи на транскрибацию аудио и в них проще понять кто сейчас говорит. Пока будет так. Текст текстом, картинки текстом, аудио текстом, чаты... Вроде сейчас можно действительно сделать rag почти anything.
На практике. Ах, гравитация, бессердечная ты су...
В графе видно явные связи между Алексеем (автором одного из документов в базе), Алексеем Александровичем (автором комментариев в других документах), Alex (автором сообщений в чате) и голосом 2 на одной из транскрибаций... Система видит связи, но не понимает, что это синонимы, которые указывают на одну и ту же "сущность". Аналогия: синоним. Как такое решает Геном?
С другой стороны есть документы, например, с идентификаторами рисков RI-1, RI-2 и т.д. Это вполне себе важные, атомарные сущности, которые заслуживают собственного "паспорта в Геноме" (ещё раз прошу прощения, если это правильно называется не "паспорт"). Вот только действуют они строго в рамках одного документа, а в другом могут обозначать что-то совершенно иное. Аналогия: омоним. В Геноме это частично решается датами, а что насчёт других областей видимости?
Описание мультимодальных данных текстом как-то работает, но есть модели, которые делают эмбединги напрямую из текста, изображений, аудио. Аналогия: (извините, нарушаю структуру,не придумал). Возможно, Геном составлен именно из таких?
Я «уволил» LLM с должности «мозга» проекта. И его производительность взлетела