То что я вас не услышал, мне с этим жить, услышьте хотя бы Вы меня , после слова "факапы" есть еще слова, смотрите например: "что не сработало", "архитектурные ошибки", "выводы", "больше цифр", "прикладных приёмов". Это именно то о чем вы и все в этой ветке твердите.
И отвечая на ваш вопрос заданный моими словами: я вам именно место в тексте и привёл, вы просто не заметили, вот оно:
В следующих статьях — честно о факапах: что не сработало, какие архитектурные ошибки едва не похоронили проект и какие выводы оказались самыми ценными, больше цифр и прикладных приёмов.
Продолжая мысль, добавлю. Вас наверно задели слова : "Покажите мне место в тексте, ..." . Ну то что у кого-то проблемы с самооценкой, это не мои проблемы. Иногда когда люди просят показать место в тексте, они просят показать место в тексте чтоб очертить предмет обсуждения и понять что два(как минимум) человека, учавствующих в этом обсуждении одинаково понимают тот самый предмет, а не скрытое намерение принизить чьё-то достоинство. в отличии от выражений которые мы можем найти в ваших, и не только комментах. Я уважаю Ваш обыт посещения конференций, и умение формулировать для коллег уровня IBM свои вопросы, но в контексте этой бессмысленной (как мне кажется) полемики, вы не блеснули этим умением. потому что ваш вопрос опередила сама стстья в которой (повторюсь) написано :
В следующих статьях — честно о факапах: что не сработало, какие архитектурные ошибки едва не похоронили проект и какие выводы оказались самыми ценными, больше цифр и прикладных приёмов.
Может все таки найдёте в себе силы почитать что-то кроме комментариев, прежде чем писать все это?) в конце статьи написано же :
В следующих статьях — честно о факапах: что не сработало, какие архитектурные ошибки едва не похоронили проект и какие выводы оказались самыми ценными, больше цифр и прикладных приёмов.
Говоря вашими словами, да что за уровень дискуссии на Хабре, вы что? :)
Значит у вас должны быть оценки - сколько по времени её разработка заняла. Или как вы тестировали?
человеку в среднем нужно 1,5 года чтоб начать говорить ну или как-то складывать мини-слова в микро-предложения, но чтоб написать какую-нибудь какашку(например, к Вам не относится) в комментариях ему нужно потратить минуты две.. По этой аналогии, честно говоря не понимаю вопроса. сколько времени было потрачено - примерно год, сколько времени нужно чтоб интегрировать именно в Вашу деятельность, да черт его знает... Тестировали.. когда разрабатываешь каждый шаг тестируешь, начиная от "какая модель покажет себя лучше в эмбеддинге" по A(объект)~C(объект), а какая лучше на A(объект)+B(связь)~C(объект) или cos(C - A, B) и тд, иногда из одного теста вытекает много новых заметили что gemma точнее BERT-ы например(в некоторых тестах) но BERT выше score по всем почти тестам на русском языке, но много шума тянет, заметили что например qwen3 или bge-m3 не такие уж и умные , а YandexGPT уделывает всех на тестах по классификации (это у нас) но что это дает Вам? Вы же когда планируете тесты Вы никого не слушаете, Вам цифры должны показать что работает в Вашем случае , на Вашем железе и только им Вы можете доверять, по этому извините Вы и все кто выше пишет "Дайте цифры, где код" это по чесному сказать(как мне кажется) вата, ну что делать с этим куском кода или с результатами теста если нужно все своими ногами проходить.. вот я написал что YandexGPT уделал всех на классификации, сейчас найдется "Эксперт" который скажет что это не так и будет прав, потому что у него другие тесты, другие данные на входе, всё другое ... Что касается моей статьи, так я ее написал как мне захотелось, я не на нобелевку номинируюсь, и ни кому ничего не собираюсь доказывать или быть кому-то понятным , приятным, каким угодно.. я собрал из известных всем кубиков свой конструктор, и написал об этом. Не нравится - ну я не знаю, посмотрите новости на первом... есть что- то по делу - напишите в личку.
Разговор серьезный , я понимаю? Предлагаю сделать так: В каком направлении вы развиваетесь? Спишемся в лс, созвонимся, если хотите встретимся, определим область где можно применить описанное мной решение в вашем бизнесе,хобби, научной деятельности. В течение полугода мы работаем рука об руку над тем чтоб извлечь пользу именно в вашем деле с помощью нашего решения. Если через полгода вы не скажете "да это оработает " я под этой статьей соглашаюсь с тем что это голословное поднесение сомнительной информации .В противном случае Вы публикуете(под своим аккаунтом со ссылкой на эту статью) свою статью , реферат, курсовую по любой методике где выкладываете то как мы это сделали (без кода) и свои корпоративные , научные или какие-то решения, лайфхаки, методологии и обязательно употребляете термин "когнитивный голод" минимум 1 раз и доказательства успешности. подзаголовок к Вашей будущей статье должен выглядеть так: "доклад чуть-странноватого школьника". И соответствующий комментарий в этой ветке Делаем?
Наверное Вы правы , конкретики не хватило, не хочется перегружать текст, цель статьи была просто привлечь внимание тек кто с такими же идеями в голове. я планировал постепенно рассказать что и как мы сделали, в следующих статьях потому что материала накопилось много и копится, а времени все это раскладывать по абзацам не так что бы есть. Терминология , ну да есть грешок, нужно было как-то называть то чему нет названия, "граф знаний" не подходит, что-то еще -да некогда названия выбирать, а так получается система сама себя описывает так пусть будет "геном" какая-то аналогия есть и ладно. Промпт, контекстное окно тоже для кого-то из мира околонаучной фантастики... Вобщем ладно, рад знакомству, постараюсь на выходных склепать вторую часть.
То есть, существует какое-то ваше собственное приложение, которое анализирует имеющиеся материалы по проекту и составляет "граф знаний", сохраняемый в БД (вектора и графы - индексы к этим данным). Т.е., это не универсальное решение, а "затачивающееся" под проект ("предоставленные материалы").
Все верно, у нас это реализовано кажная единица "ген" , "квант" (название не имеет значения) Основная сущность — Quant == Универсальный контейнер для любой единицы знания: концептов, процессов, мета-правил, слоёв, статусов, типов связей и т.д. Даже когнитивные матрицы и директивы (через proxy-модели). типы связей это тоже Quantчто позволяет иметь неограниченное количество связей и динамически добавлять новые типы без изменения схемы. И вобщем -то использовать систему практически в любой области .
Тут вряд ли подразумевается декомпозиция запроса пользователя - он слишком короткий.
именно декомпозиция запроса. в вашем запросе есть минимум 4 вектора с которыми можно работать, "намерение" "объект" "цель" "проблема или противоречие" эти сущности в системе тоже Quantсо всеми вытекающими, "намерение " отлавливает эмбеддинг намерений ну и так далее, сложность настройки этих эмбеддингов в том что иногда позитивы рассыпаются как бы спектрами, например (например верные ответы могут быть около 0,5 и около 0, 7 - 0,78 выше уже чушь, и приходится подключать большую LLM чтоб уже она определила например есть ли связь меджу А и Б сущностями. Мышление Gemini 2,5 устроено примерно так же разница лиш в том что там не так жестко , она намерение кпримеру определяет статистически а в нашем случае это прописано. когда система не может определить намерение у неё есть функция мы еёназвали "Когнитивный голод" когда она ставит задачи дополнить ту пустоту которую она обнаружила в ходе попыток найти верный ответ, а Gemini ну или тот же Клод начинают глючить когда намерение неясное или промпт говорит одно но ты уже отошел от решения костылем к которой был промпт и он уже начинает мешать определить даже намерение. Это проблема всех LLM.
Это позволяет вам подтягивать в контекстное окно языковой модели дополнительные "единицы знания", относящиеся к пользовательскому запросу (даже короткому).
совершенно верно, есть алгоритм поиска неочевидных связей. но когда мы говорим " подтянуть в контекстное окно" это не всегда один запрос, это может быть сотни запросов к LLM разной величины и назначения ... просто большие , а особенно с "мышлением" слишком медленные.
Только они работают с текстом проекта (кодом и документацией) напрямую, без пересборки "графа знаний" при изменении "предоставленных материалов".
В этом и есть их основная проблема. они могут продолжить код или собрать код из текста, но они не понимают почему именно этот код здесь должен быть, не видят связей. Ну например я меняю имя класса, и ни один клод не подскажет " слушай , ты сменил имя класса вот тут , теперь сходи в этот файл и в этот и перепиши потому что там сломалось, или давай я сам это сделаю". пока они держат код в "памяти, они работают" но как тут кто-то сказал она не резиновая, и все они теряют фокус с каждой дописанной строчкой. Это можно решить при помощи других инструментов например CodeQL и Joern ,но это все равно не то чего бы вам хотелось.
Такой вопрос, а сколько "единиц знаний" получается для 'небольшой кодовой базы 300 файлов или 600 сущностей типа "класс", "функция"' и как часто её нужно пересобирать при изменениях этой кодовой базы (или проектной документации)?
примерно столько связей очевинных, (чтоб их прописать вам кстати говоря и LLM не нужна,) и еще столько же посложнее вот там да, заставить LLM в этом семантическом шуме понять что есть что, по этому комментарии и докстринги сильно помогают
Простите, а как вы определили "пафосность" названия "Геном"? И какое именно ощущение вам сейчас хотелось бы обсудить , Ваше первое или Ваше второе? Или Вам все таки “принцип модульности” покоя не дает? Спасибо за хорошее настроение Андрей) Шутку про блондинку я не понял, наверное что-то личное, но в остальном, я поулыбался, Спасибо вам!
Добрый вечер а вы можнте (если не затруднит) привести текст из статьи который натолкнул Вас на такие мысли? если не трудно сделайте пожалуйста. Мне просто для понимания на чем основан вопрос
Коротко и по сути, угу) да не помешали бы но кто их будет смотреть? можно было вставлять после каждого предложения что-то типа:
кто их будет разбирать? на этих к примеру видно как LLM модели теряют фокус по мере роста контекстного окна. Это было важно в начале исследования , сейчас это просто факт.
Или вот пока я отвечал на комментарии у меня дообучилась модель
Вы абсолютно правы: современные агенты действительно научились делать удивительные вещи "на лету" -декомпозировать задачи, вести чеклисты
И вы также абсолютно точно указали на их фундаментальное ограничение: "размер окна все же не резиновый". Любой контекст, который агент документирует "на лету", - эфемерный. Он исчезает после завершения задачи. Попробуйте поставить одну и ту же задачу хотя бы 100 000 раз и вы удивитесь в каком диапазоне галюцинаций находятся ответы которые Вас устраивают.
Мы разделяем "оперативную память" агента и "долговременную память" проекта:
Агенты (как у вас описано): Они по-прежнему отвечают за тактику - декомпозируют задачу, идут по чеклисту.
"Геном" : служит постоянной, структурированной "долговременной памятью". Это не просто папка с ADR, а живой граф, который агент использует как источник истины и карту для рассуждений.
Ключевое отличие: Наш агент не просто "документирует контекст" в текстовый файл. Он превращает каждое решение, каждый артефакт в структурированный узел графа.
Это позволяет ему отвечать на вопросы, которые недоступны стандартным агентам, например: "Противоречит ли это новое решение принципу, принятому полгода назад в другом модуле?".
Здесь описан результат почти годового исследования, коротко, доступным (на сколько это возможно) языком, ни больше ни меньше. - Насколько мы продвинулись? Хороший вопрос , спасибо! скажу что начиналось все с тестирования гипотезы " а можно ли синтезировать новое знание из существующих" в notebooklm, где в качестве источников знаний были .md файлы с описаниями тех самых знаний и методологий по их использованию, извлеченные вручную, если я не ошибаюсь примерно из 600 книг от Гегеля до Альтшуллера. Оглябываясь в то время скажу Вам , да , мы хорошо продвинулись. Еще раз спасибо за вопрос!
Отсюда вопрос: где и в каком виде хранятся эти самые "релевантные гены" и как и когда они попадают в это хранилище?
У нас написан конвейер миграции который выделяет самодостаточную единицы знания из предоставленных материалов и сохраняет в постргес, постгрес служит единым источником истины, затем он синхронихируется с Qdrant и Neo4j обогащая вектора и граф.
Но я пытаюсь "копать" в сторону уплотнения и насыщения промпта отдельной итерации за счёт повышения концентрации нужных смыслов в контексте всего проекта (проектной базе).
Мы тоже копали туда, но (к примеру) даже небольшая кодовая база 300 файлов или 600 сущностей типа "класс", "функция" и тп, создает необходимость проверки на установление более 100 млн(в том числе неочевидных и вверх по уровням абстракций) связей, которые могут подтолкнуть к междисциплинарному синтезу. Уплотнение нам не помогло когда нужно не только изменить какую то функцию но и применить изменение везде, где она (функция) была использована.
Хотелось бы понять на примере, как это работает. Вот у меня простой бытовой запрос: "Предложи рецепт приготовления грибов ежовик пестрый, который бы снизил их 'парфюмерный' привкус".
То что я вас не услышал, мне с этим жить, услышьте хотя бы Вы меня , после слова "факапы" есть еще слова, смотрите например: "что не сработало", "архитектурные ошибки", "выводы", "больше цифр", "прикладных приёмов". Это именно то о чем вы и все в этой ветке твердите.
согласен с вами Пётр
Тон комментариев) Пётр, вы находите конструктивным тон вашего комментария который начинается со слов:
peterzh2 часа назад
Ну что за детский сад, серьезно?
И отвечая на ваш вопрос заданный моими словами:
я вам именно место в тексте и привёл, вы просто не заметили, вот оно:
Продолжая мысль, добавлю. Вас наверно задели слова : "Покажите мне место в тексте, ..." . Ну то что у кого-то проблемы с самооценкой, это не мои проблемы. Иногда когда люди просят показать место в тексте, они просят показать место в тексте чтоб очертить предмет обсуждения и понять что два(как минимум) человека, учавствующих в этом обсуждении одинаково понимают тот самый предмет, а не скрытое намерение принизить чьё-то достоинство. в отличии от выражений которые мы можем найти в ваших, и не только комментах.
Я уважаю Ваш обыт посещения конференций, и умение формулировать для коллег уровня IBM свои вопросы, но в контексте этой бессмысленной (как мне кажется) полемики, вы не блеснули этим умением. потому что ваш вопрос опередила сама стстья в которой (повторюсь) написано :
Может все таки найдёте в себе силы почитать что-то кроме комментариев, прежде чем писать все это?) в конце статьи написано же :
Говоря вашими словами, да что за уровень дискуссии на Хабре, вы что? :)
человеку в среднем нужно 1,5 года чтоб начать говорить ну или как-то складывать мини-слова в микро-предложения, но чтоб написать какую-нибудь какашку(например, к Вам не относится) в комментариях ему нужно потратить минуты две..
По этой аналогии, честно говоря не понимаю вопроса. сколько времени было потрачено - примерно год, сколько времени нужно чтоб интегрировать именно в Вашу деятельность, да черт его знает...
Тестировали.. когда разрабатываешь каждый шаг тестируешь, начиная от "какая модель покажет себя лучше в эмбеддинге" по A(объект)~C(объект), а какая лучше на A(объект)+B(связь)~C(объект) или cos(C - A, B) и тд, иногда из одного теста вытекает много новых заметили что gemma точнее BERT-ы например(в некоторых тестах) но BERT выше score по всем почти тестам на русском языке, но много шума тянет, заметили что например qwen3 или bge-m3 не такие уж и умные , а YandexGPT уделывает всех на тестах по классификации (это у нас) но что это дает Вам? Вы же когда планируете тесты Вы никого не слушаете, Вам цифры должны показать что работает в Вашем случае , на Вашем железе и только им Вы можете доверять, по этому извините Вы и все кто выше пишет "Дайте цифры, где код" это по чесному сказать(как мне кажется) вата, ну что делать с этим куском кода или с результатами теста если нужно все своими ногами проходить.. вот я написал что YandexGPT уделал всех на классификации, сейчас найдется "Эксперт" который скажет что это не так и будет прав, потому что у него другие тесты, другие данные на входе, всё другое ...
Что касается моей статьи, так я ее написал как мне захотелось, я не на нобелевку номинируюсь, и ни кому ничего не собираюсь доказывать или быть кому-то понятным , приятным, каким угодно.. я собрал из известных всем кубиков свой конструктор, и написал об этом. Не нравится - ну я не знаю, посмотрите новости на первом... есть что- то по делу - напишите в личку.
к сожалению да. обещают в течение 48 часов исправить
Разговор серьезный , я понимаю?
Предлагаю сделать так: В каком направлении вы развиваетесь? Спишемся в лс, созвонимся, если хотите встретимся, определим область где можно применить описанное мной решение в вашем бизнесе,хобби, научной деятельности. В течение полугода мы работаем рука об руку над тем чтоб извлечь пользу именно в вашем деле с помощью нашего решения.
Если через полгода вы не скажете "да это оработает " я под этой статьей соглашаюсь с тем что это голословное поднесение сомнительной информации .В противном случае Вы публикуете(под своим аккаунтом со ссылкой на эту статью) свою статью , реферат, курсовую по любой методике где выкладываете то как мы это сделали (без кода) и свои корпоративные , научные или какие-то решения, лайфхаки, методологии и обязательно употребляете термин "когнитивный голод" минимум 1 раз и доказательства успешности. подзаголовок к Вашей будущей статье должен выглядеть так: "доклад чуть-странноватого школьника". И соответствующий комментарий в этой ветке
Делаем?
На что жалуетесь-то по итогу?
И на том спасибо!
Наверное Вы правы , конкретики не хватило, не хочется перегружать текст, цель статьи была просто привлечь внимание тек кто с такими же идеями в голове. я планировал постепенно рассказать что и как мы сделали, в следующих статьях потому что материала накопилось много и копится, а времени все это раскладывать по абзацам не так что бы есть. Терминология , ну да есть грешок, нужно было как-то называть то чему нет названия, "граф знаний" не подходит, что-то еще -да некогда названия выбирать, а так получается система сама себя описывает так пусть будет "геном" какая-то аналогия есть и ладно. Промпт, контекстное окно тоже для кого-то из мира околонаучной фантастики...
Вобщем ладно, рад знакомству, постараюсь на выходных склепать вторую часть.
Все верно, у нас это реализовано кажная единица "ген" , "квант" (название не имеет значения) Основная сущность —
Quant== Универсальный контейнер для любой единицы знания: концептов, процессов, мета-правил, слоёв, статусов, типов связей и т.д. Даже когнитивные матрицы и директивы (через proxy-модели). типы связей это тожеQuantчто позволяет иметь неограниченное количество связей и динамически добавлять новые типы без изменения схемы. И вобщем -то использовать систему практически в любой области .именно декомпозиция запроса. в вашем запросе есть минимум 4 вектора с которыми можно работать, "намерение" "объект" "цель" "проблема или противоречие"
эти сущности в системе тоже
Quantсо всеми вытекающими, "намерение " отлавливает эмбеддинг намерений ну и так далее, сложность настройки этих эмбеддингов в том что иногда позитивы рассыпаются как бы спектрами, например (например верные ответы могут быть около 0,5 и около 0, 7 - 0,78 выше уже чушь, и приходится подключать большую LLM чтоб уже она определила например есть ли связь меджу А и Б сущностями. Мышление Gemini 2,5 устроено примерно так же разница лиш в том что там не так жестко , она намерение кпримеру определяет статистически а в нашем случае это прописано. когда система не может определить намерение у неё есть функция мы еёназвали "Когнитивный голод" когда она ставит задачи дополнить ту пустоту которую она обнаружила в ходе попыток найти верный ответ, а Gemini ну или тот же Клод начинают глючить когда намерение неясное или промпт говорит одно но ты уже отошел от решения костылем к которой был промпт и он уже начинает мешать определить даже намерение. Это проблема всех LLM.совершенно верно, есть алгоритм поиска неочевидных связей. но когда мы говорим " подтянуть в контекстное окно" это не всегда один запрос, это может быть сотни запросов к LLM разной величины и назначения ... просто большие , а особенно с "мышлением" слишком медленные.
В этом и есть их основная проблема. они могут продолжить код или собрать код из текста, но они не понимают почему именно этот код здесь должен быть, не видят связей. Ну например я меняю имя класса, и ни один клод не подскажет " слушай , ты сменил имя класса вот тут , теперь сходи в этот файл и в этот и перепиши потому что там сломалось, или давай я сам это сделаю".
пока они держат код в "памяти, они работают" но как тут кто-то сказал она не резиновая, и все они теряют фокус с каждой дописанной строчкой. Это можно решить при помощи других инструментов например CodeQL и Joern ,но это все равно не то чего бы вам хотелось.
примерно столько связей очевинных, (чтоб их прописать вам кстати говоря и LLM не нужна,) и еще столько же посложнее вот там да, заставить LLM в этом семантическом шуме понять что есть что, по этому комментарии и докстринги сильно помогают
Дорый вечер! Извинения приняты! На самом деле если вы прочитаете внимательно там есть такая строка:
То есть цель данной статьи не показать проект, а коснуться описания технологии надстройки памяти и мышления для LLM.
Простите, а как вы определили "пафосность" названия "Геном"?
И какое именно ощущение вам сейчас хотелось бы обсудить , Ваше первое или Ваше второе?
Или Вам все таки “принцип модульности” покоя не дает?
Спасибо за хорошее настроение Андрей) Шутку про блондинку я не понял, наверное что-то личное, но в остальном, я поулыбался, Спасибо вам!
Добрый вечер! что конкретно смутило?
Добрый вечер а вы можнте (если не затруднит) привести текст из статьи который натолкнул Вас на такие мысли? если не трудно сделайте пожалуйста. Мне просто для понимания на чем основан вопрос
И вам добрый вечер)
Коротко и по сути, угу) да не помешали бы но кто их будет смотреть?
можно было вставлять после каждого предложения что-то типа:
кто их будет разбирать? на этих к примеру видно как LLM модели теряют фокус по мере роста контекстного окна. Это было важно в начале исследования , сейчас это просто факт.
Или вот пока я отвечал на комментарии у меня дообучилась модель
Обсудим?)
Вы абсолютно правы: современные агенты действительно научились делать удивительные вещи "на лету" -декомпозировать задачи, вести чеклисты
И вы также абсолютно точно указали на их фундаментальное ограничение: "размер окна все же не резиновый". Любой контекст, который агент документирует "на лету", - эфемерный. Он исчезает после завершения задачи. Попробуйте поставить одну и ту же задачу хотя бы 100 000 раз и вы удивитесь в каком диапазоне галюцинаций находятся ответы которые Вас устраивают.
Мы разделяем "оперативную память" агента и "долговременную память" проекта:
Агенты (как у вас описано): Они по-прежнему отвечают за тактику - декомпозируют задачу, идут по чеклисту.
"Геном" : служит постоянной, структурированной "долговременной памятью". Это не просто папка с ADR, а живой граф, который агент использует как источник истины и карту для рассуждений.
Ключевое отличие: Наш агент не просто "документирует контекст" в текстовый файл. Он превращает каждое решение, каждый артефакт в структурированный узел графа.
Это позволяет ему отвечать на вопросы, которые недоступны стандартным агентам, например: "Противоречит ли это новое решение принципу, принятому полгода назад в другом модуле?".
Так что да, вы правы, главное не увлекаться...
Здесь описан результат почти годового исследования, коротко, доступным (на сколько это возможно) языком, ни больше ни меньше.
- Насколько мы продвинулись?
Хороший вопрос , спасибо! скажу что начиналось все с тестирования гипотезы " а можно ли синтезировать новое знание из существующих" в notebooklm, где в качестве источников знаний были .md файлы с описаниями тех самых знаний и методологий по их использованию, извлеченные вручную, если я не ошибаюсь примерно из 600 книг от Гегеля до Альтшуллера. Оглябываясь в то время скажу Вам , да , мы хорошо продвинулись. Еще раз спасибо за вопрос!
Нет, я не оценивал. Ощущений нет)
У нас написан конвейер миграции который выделяет самодостаточную единицы знания из предоставленных материалов и сохраняет в постргес, постгрес служит единым источником истины, затем он синхронихируется с Qdrant и Neo4j обогащая вектора и граф.
Мы тоже копали туда, но (к примеру) даже небольшая кодовая база 300 файлов или 600 сущностей типа "класс", "функция" и тп, создает необходимость проверки на установление более 100 млн(в том числе неочевидных и вверх по уровням абстракций) связей, которые могут подтолкнуть к междисциплинарному синтезу. Уплотнение нам не помогло когда нужно не только изменить какую то функцию но и применить изменение везде, где она (функция) была использована.
Декомпозиция и дообученные эмбеддинги.