Минутка просвещения
#ai, #мысли, #утюг ИИ-результаты — скучные Неплохая заметка, можно даже сказать капитанская, про то, что чатботы не генерируют оригинальных мыслей, поэтому их вывод будет по определению скучным, средненьким и поверхностным. Для областей, где вы не специалист…
Мой коллега коснулся очень важной темы, которая перекликается с тем, над чем я сейчас работаю.
По моему мнению, автор исходной заметки упускает суть и из-за этого приходит к неверному выводу.
Выход ЛЛМ определяется коэффициентами и контекстом. Информации в коэффициентах - на несколько порядков больше, чем влезет в контекст и она - фиксирована для всех бесед и всех пользователей (если, конечно, эту ЛЛМ не файнтьюнили отдельно).
Поэтому естественно, что если в контексте мало специфики, она будет выдавать что-то среднее на основе усреднённых знаний человечества.
Но правильный контекст может сместить ее выход в сторону нужной специфики.
И вот тут кроется корень проблемы. Контекст очень ограничен - даже топовые модели типа Клода периодически проводят компактификацию (очень тупо реализованную, за счёт саммари), после которой ЛЛМ как будто по голове поленом ударили - она начинает сбиваться, пытаться сделать то, что уже делала и т.п.
Я называю это "эффектом Невилла Лонгботтома" - в первом фильме про Гарри Поттера был момент, когда этому самому Невиллу прислали волшебный девайс-напоминалку, которая сигнализирует, если он что-то забыл, на что тот отвечает, что к сожалению, он не помнит ЧТО он забыл.
Вот то же самое и с ЛЛМ - когда данные пропадают из контекста, она даже не помнит, что они там вообще были.
"Зарождение мыслей" требует перекрестных ассоциаций, у человека память хранит всю его жизнь и любая мысль может вызвать ассоциацию с любой информацией из его памяти, а та, в свою очередь - с другой, и т.д., каскадный эффект.
ЛЛМ так же может выстроить оригинальные связи между информацией внутри контекста а также - между информацией контекста и тем, что размазано по ее коэффициентам.
Чего она не может, так это удержать в контексте столько информации, чтобы выстроить такие кросс-ассоциации между всеми своими взаимодействиями даже в пределах одной большой беседы при работе над сложной задачей, не говоря уж об ассоциациях между разными задачами.
По моему мнению, автор исходной заметки упускает суть и из-за этого приходит к неверному выводу.
Выход ЛЛМ определяется коэффициентами и контекстом. Информации в коэффициентах - на несколько порядков больше, чем влезет в контекст и она - фиксирована для всех бесед и всех пользователей (если, конечно, эту ЛЛМ не файнтьюнили отдельно).
Поэтому естественно, что если в контексте мало специфики, она будет выдавать что-то среднее на основе усреднённых знаний человечества.
Но правильный контекст может сместить ее выход в сторону нужной специфики.
И вот тут кроется корень проблемы. Контекст очень ограничен - даже топовые модели типа Клода периодически проводят компактификацию (очень тупо реализованную, за счёт саммари), после которой ЛЛМ как будто по голове поленом ударили - она начинает сбиваться, пытаться сделать то, что уже делала и т.п.
Я называю это "эффектом Невилла Лонгботтома" - в первом фильме про Гарри Поттера был момент, когда этому самому Невиллу прислали волшебный девайс-напоминалку, которая сигнализирует, если он что-то забыл, на что тот отвечает, что к сожалению, он не помнит ЧТО он забыл.
Вот то же самое и с ЛЛМ - когда данные пропадают из контекста, она даже не помнит, что они там вообще были.
"Зарождение мыслей" требует перекрестных ассоциаций, у человека память хранит всю его жизнь и любая мысль может вызвать ассоциацию с любой информацией из его памяти, а та, в свою очередь - с другой, и т.д., каскадный эффект.
ЛЛМ так же может выстроить оригинальные связи между информацией внутри контекста а также - между информацией контекста и тем, что размазано по ее коэффициентам.
Чего она не может, так это удержать в контексте столько информации, чтобы выстроить такие кросс-ассоциации между всеми своими взаимодействиями даже в пределах одной большой беседы при работе над сложной задачей, не говоря уж об ассоциациях между разными задачами.
👍6🔥1
Хотите небольшой... нет, как раз-таки большой, просто огромный (по токенам) пример этого самого эффекта?
Представьте, что вам нужно, чтобы ЛЛМ - не важно, агент, или нет - составила вам датасет для файнтьюнинга другой ЛЛМ на основе, скажем, книги. И эта книга сама по себе занимает очень много - допустим, 200к токенов, что не влезет в контекст вашей ЛЛМки.
Как решать эту задачу?
Да, можно разбить книгу на куски, которые влезут в контекст. Также нужно чтобы вместе с этими кусками в контекст влезли ваши инструкции - само задание, гайдлайны по его исполнению. Но что дальше?
Если решать эту задачу в таком виде, по кускам, то каждый элемент датасета, написанный ЛЛМ по каждому отдельному куску будут содержать только информацию из этого куска. В датасет не попадет ни одного примера кросс-ассоциаций, ни одного примера, в котором ЛЛМ обращается одновременно к разным частям книги.
Какие-то перекрестные ассоциации возможно и дистиллируются в целевую ЛЛМ после файнтьюнинга за счет схожести в латентном пространстве, но результат будет не таким, каким бы он был, если бы датасет содержал примеры, покрывающие разные блоки информации из книги.
Я обычно смотрю на эту задачу (глазами ЛЛМ) так: вот есть некоторый ограниченный контекст, который мне виден прямо сейчас.
Я могу произвести какую-то выходную информацию на его основе.
Но как только мое действие вызовет изменение этого контекста - например, часть видимых сейчас строк будет автоматически вытеснена тем, что я пишу, либо если я напрямую могу менеджить свой контекст и сам решать, какие строки вытолкнуть и заменить - на мое место придет другой человек.
Без каких либо знаний о задаче и прошлых шагах, без знаний о том, что было вытеснено из контекста ранее. Все, что у него будет - это новый контекст. И все начнется заново.
Вот ЛЛМ всегда работают именно в таком режиме. Это поднимает важный вопрос - как должен выглядеть этот селф-менеджмент контекста, чтобы в итоге задача была решена? Чтобы каждый следующий человек имел достаточно информации для того, чтобы сделать осмысленный шаг в направлении решения задачи.
Представьте, что вам нужно, чтобы ЛЛМ - не важно, агент, или нет - составила вам датасет для файнтьюнинга другой ЛЛМ на основе, скажем, книги. И эта книга сама по себе занимает очень много - допустим, 200к токенов, что не влезет в контекст вашей ЛЛМки.
Как решать эту задачу?
Да, можно разбить книгу на куски, которые влезут в контекст. Также нужно чтобы вместе с этими кусками в контекст влезли ваши инструкции - само задание, гайдлайны по его исполнению. Но что дальше?
Если решать эту задачу в таком виде, по кускам, то каждый элемент датасета, написанный ЛЛМ по каждому отдельному куску будут содержать только информацию из этого куска. В датасет не попадет ни одного примера кросс-ассоциаций, ни одного примера, в котором ЛЛМ обращается одновременно к разным частям книги.
Какие-то перекрестные ассоциации возможно и дистиллируются в целевую ЛЛМ после файнтьюнинга за счет схожести в латентном пространстве, но результат будет не таким, каким бы он был, если бы датасет содержал примеры, покрывающие разные блоки информации из книги.
Я обычно смотрю на эту задачу (глазами ЛЛМ) так: вот есть некоторый ограниченный контекст, который мне виден прямо сейчас.
Я могу произвести какую-то выходную информацию на его основе.
Но как только мое действие вызовет изменение этого контекста - например, часть видимых сейчас строк будет автоматически вытеснена тем, что я пишу, либо если я напрямую могу менеджить свой контекст и сам решать, какие строки вытолкнуть и заменить - на мое место придет другой человек.
Без каких либо знаний о задаче и прошлых шагах, без знаний о том, что было вытеснено из контекста ранее. Все, что у него будет - это новый контекст. И все начнется заново.
Вот ЛЛМ всегда работают именно в таком режиме. Это поднимает важный вопрос - как должен выглядеть этот селф-менеджмент контекста, чтобы в итоге задача была решена? Чтобы каждый следующий человек имел достаточно информации для того, чтобы сделать осмысленный шаг в направлении решения задачи.
🔥5
Хочу поделиться с вами одним из своих проектов.
Некоторое время назад я разработал сай-фай сеттинг. Действие разворачивается в солнечной системе, похожей на нашу, и человечество до определенного момента развивалось примерно тем же путем.
Но в нем есть два ключевых отличия от нашей реальности.
Во-первых, в этой солнечной системе две планеты оказались в обитаемой зоне. Это как если бы у нас Марс не потерял атмосферу.
Во-вторых - индустриальная революция совпала с информационной и первые вычислительные машины появились в эпоху парового двигателя.
Кстати, у нас это тоже могло бы случиться - если бы Чарльз Бэббидж решил строить свою Аналитическую Машину не на механике, а на реле - ведь они уже существовали во времена, когда он над ней работал. Более того, он любил устраивать встречи с видными научными деятелями той эпохи, и теоретически вполне мог бы пересечься, скажем, с Фарадеем, после чего спроектировать релейный вычислитель, сразу же избавившись от всех проблем, которые у него возникли из-за механики.
Некоторое время назад я разработал сай-фай сеттинг. Действие разворачивается в солнечной системе, похожей на нашу, и человечество до определенного момента развивалось примерно тем же путем.
Но в нем есть два ключевых отличия от нашей реальности.
Во-первых, в этой солнечной системе две планеты оказались в обитаемой зоне. Это как если бы у нас Марс не потерял атмосферу.
Во-вторых - индустриальная революция совпала с информационной и первые вычислительные машины появились в эпоху парового двигателя.
Кстати, у нас это тоже могло бы случиться - если бы Чарльз Бэббидж решил строить свою Аналитическую Машину не на механике, а на реле - ведь они уже существовали во времена, когда он над ней работал. Более того, он любил устраивать встречи с видными научными деятелями той эпохи, и теоретически вполне мог бы пересечься, скажем, с Фарадеем, после чего спроектировать релейный вычислитель, сразу же избавившись от всех проблем, которые у него возникли из-за механики.
🔥4👍1
Так вот, я поработал над игрой в той самой эпохе "цифрового стимпанка" - когда прошло несколько десятков лет с появления первых релейных компьютеров, а из телеграфных систем выросла "Телеграфная Счетная Сеть" - эдакий телеграфный dial-up, обеспечивающий соединения точка-точка между абонентами.
Счетные машины все еще очень дороги, но их может позволить себе крупный бизнес и государство.
А терминалы - относительно дешевы и повсеместно распространены, за счет ТСС люди могут устанавливать соединения между любыми терминалами и вычислителям, подключенными к сети.
На текущий момент я написал симулятор 12-битной счетной машины, ассемблер и отладчик для нее, реализовал ТСС и терминалы. А также - на скриншоте - вот такой замечательный GUI для терминала.
Игра ориентирована на хакерские задачки - реверс-инжениринг, эксплуатацию уязвимостей, поиск информации. Поэтому я весь этот нижний слой реализовал "честно", без "нажмите кнопку чтобы взломать" - машины реально выполняют код, в коде есть реальные уязвимости.
Счетные машины все еще очень дороги, но их может позволить себе крупный бизнес и государство.
А терминалы - относительно дешевы и повсеместно распространены, за счет ТСС люди могут устанавливать соединения между любыми терминалами и вычислителям, подключенными к сети.
На текущий момент я написал симулятор 12-битной счетной машины, ассемблер и отладчик для нее, реализовал ТСС и терминалы. А также - на скриншоте - вот такой замечательный GUI для терминала.
Игра ориентирована на хакерские задачки - реверс-инжениринг, эксплуатацию уязвимостей, поиск информации. Поэтому я весь этот нижний слой реализовал "честно", без "нажмите кнопку чтобы взломать" - машины реально выполняют код, в коде есть реальные уязвимости.
1👍5❤1
Вообще изначально это была игра в формате типа ДнД - в смысле, я вел ее в качестве Гейм-Мастера, в текстовом формате, а механики обсчитывались симуляцией.
Но у меня в планах сделать для нее ГМа и NPC на локальной LLMке - не знаю, как пойдет, но буду стремиться к этому.
Конечно, я бы хотел сделать ее с графикой, но это многократно увеличит и так немалые трудозатраты на разработку, поэтому пока цель - текстовая игра. Но если получится с ЛЛМ в том виде, в котором я это представляю, то там по крайней мере не будет стандартных деревьев диалога, с NPC можно будет общаться естественно.
Всяких "бросков кубиков" тоже не будет, основа механики - вот эта симуляция сети вычислительных машин и взаимодействие с ними. Я думаю, энтропии там хватает и без кубиков.
Но у меня в планах сделать для нее ГМа и NPC на локальной LLMке - не знаю, как пойдет, но буду стремиться к этому.
Конечно, я бы хотел сделать ее с графикой, но это многократно увеличит и так немалые трудозатраты на разработку, поэтому пока цель - текстовая игра. Но если получится с ЛЛМ в том виде, в котором я это представляю, то там по крайней мере не будет стандартных деревьев диалога, с NPC можно будет общаться естественно.
Всяких "бросков кубиков" тоже не будет, основа механики - вот эта симуляция сети вычислительных машин и взаимодействие с ними. Я думаю, энтропии там хватает и без кубиков.
👍5🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Так, вот чего накодил.
Бэкэнд с симуляцией железа + фронтенд для игрока с визуализацией. Четкое разделение обязанностей - фронтэнд ничего не знает о железе, только рендерит - зато ГМ может прямо на ходу из компонентов собирать новые девайсы!
Хочешь терминал с одним ридером? А пожалуйста! Хочешь кастомный девайс с кнопочками и лампочками? А пожалуйста!
На бэкэнде симуляция ничего не знает про игровую сессию и нарратив - для ГМа симуляция - как лабораторный стенд, который он может переконфигурировать на лету!
На видео - работа с терминалом, перфолентами и Телеграфной Счетной Сетью.
Кому удобнее на ютубе смотреть - вот https://youtube.com/shorts/yUQx4suRucY
Upd: Если что - вертикальный лейаут - это для мобилы, так-то со стороны ГМа это все можно на лету переконфигурировать, и на мониторе оно по дефолту в landscape
Бэкэнд с симуляцией железа + фронтенд для игрока с визуализацией. Четкое разделение обязанностей - фронтэнд ничего не знает о железе, только рендерит - зато ГМ может прямо на ходу из компонентов собирать новые девайсы!
Хочешь терминал с одним ридером? А пожалуйста! Хочешь кастомный девайс с кнопочками и лампочками? А пожалуйста!
На бэкэнде симуляция ничего не знает про игровую сессию и нарратив - для ГМа симуляция - как лабораторный стенд, который он может переконфигурировать на лету!
На видео - работа с терминалом, перфолентами и Телеграфной Счетной Сетью.
Кому удобнее на ютубе смотреть - вот https://youtube.com/shorts/yUQx4suRucY
Upd: Если что - вертикальный лейаут - это для мобилы, так-то со стороны ГМа это все можно на лету переконфигурировать, и на мониторе оно по дефолту в landscape
👍7
This media is not supported in your browser
VIEW IN TELEGRAM
Мужики из Мужоко вернулись!
Переписал с Клодом весь пайплайн, улучшил его, провел начальные исследования - систематизировал полученные данные и вместе с ИИ собрал конфиг для нового чемпиона.
Это вот бейзлайн. Дальше буду пробовать разные подходы по улучшению.
Очень правильным решением было переписать логику резета. Раньше вся симуляция сбрасывалась целиком, а теперь - только упавший агент. Это дает намного более богатые эпизоды для обучения. Например, если оба падают, но первый ненадолго задержался на краю, упавший раньше - резетнулся, и уже имел счастье наблюдать, как его противник падает - а это ценный обучающий опыт!
Еще очень полезным оказался вьювер - теперь можно прямо в процессе обучения подключиться и смотреть, что происходит в любой из симуляций батча.
Переписал с Клодом весь пайплайн, улучшил его, провел начальные исследования - систематизировал полученные данные и вместе с ИИ собрал конфиг для нового чемпиона.
Это вот бейзлайн. Дальше буду пробовать разные подходы по улучшению.
Очень правильным решением было переписать логику резета. Раньше вся симуляция сбрасывалась целиком, а теперь - только упавший агент. Это дает намного более богатые эпизоды для обучения. Например, если оба падают, но первый ненадолго задержался на краю, упавший раньше - резетнулся, и уже имел счастье наблюдать, как его противник падает - а это ценный обучающий опыт!
Еще очень полезным оказался вьювер - теперь можно прямо в процессе обучения подключиться и смотреть, что происходит в любой из симуляций батча.
🔥4❤1❤🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Битва двух йокодзун.
Кому удобнее на ютубе - вот: https://youtube.com/shorts/-5UYknnxfeo?si=f-A8ZCQTPMMc2aQA
Кому удобнее на ютубе - вот: https://youtube.com/shorts/-5UYknnxfeo?si=f-A8ZCQTPMMc2aQA
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Классический способ доказать, что твоя конфигурация лучше, чем у противника - поединок!
На ютубе: https://youtube.com/shorts/TfCSMA6SrHE
На ютубе: https://youtube.com/shorts/TfCSMA6SrHE
🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Заметил, что прошел еще месяц с момента, как я что-то постил. Ну, что тут сказать - простите, я не блоггер, как ни стараюсь - ухожу с головой в сами проекты и не пишу никаких постов, пока не получу какой-то значимый результат.
Хотел сначала добить прямо законченную большую демку, но давайте лучше покажу, что есть на текущий момент.
Это вот по моей РПГ в "цифровом стимпанке" - полностью работоспособный мейнфрейм, 12-битная машина от фирмы "Леманн и Сыновья". Сделал ей аутентичную панель управления. И процедурный звук! Так что можно послушать как щелкает перфоратор. На видео - загружаю в нее программу с перфоленты, запускаю. Потом подключаюсь удаленно по "Телеграфной Счетной Сети" и смотрю, что эта программа выдаст (с одновременной пробивкой ответа от машины на новую перфоленту в терминале).
Хотел сначала добить прямо законченную большую демку, но давайте лучше покажу, что есть на текущий момент.
Это вот по моей РПГ в "цифровом стимпанке" - полностью работоспособный мейнфрейм, 12-битная машина от фирмы "Леманн и Сыновья". Сделал ей аутентичную панель управления. И процедурный звук! Так что можно послушать как щелкает перфоратор. На видео - загружаю в нее программу с перфоленты, запускаю. Потом подключаюсь удаленно по "Телеграфной Счетной Сети" и смотрю, что эта программа выдаст (с одновременной пробивкой ответа от машины на новую перфоленту в терминале).
🔥3👍1
Media is too big
VIEW IN TELEGRAM
Параллельно работал над "Мужиками из МуЖоКо", месяц убил на попытку дистиллировать физику в отдельную нейросеть, отчасти удалось, но не настолько чтобы заменить МуЖоКо в пайплайне при обучении.
Зато портировал сам пайплайн на более быстрый физический движок, теперь адекватного бойца можно обучить за 50 минут вместо 5 часов.
На этом видео 12 фпс, но это потому что параллельно видеозапись, плюс еще кое-какие эксперименты. Так бейзлайн - 20 фпс ПРИ ТРЕНИРОВКЕ. То есть буквально можно в реалтайме смотреть, как он учится.
Еще вот добавил вывод активаций нейросетки - "томограмму" агента. Обратите внимание - агент заранее понимает, когда ему - жопа)
Видите, как его "томограмма" зеленеет, как только он оступился?)
Зато портировал сам пайплайн на более быстрый физический движок, теперь адекватного бойца можно обучить за 50 минут вместо 5 часов.
На этом видео 12 фпс, но это потому что параллельно видеозапись, плюс еще кое-какие эксперименты. Так бейзлайн - 20 фпс ПРИ ТРЕНИРОВКЕ. То есть буквально можно в реалтайме смотреть, как он учится.
Еще вот добавил вывод активаций нейросетки - "томограмму" агента. Обратите внимание - агент заранее понимает, когда ему - жопа)
Видите, как его "томограмма" зеленеет, как только он оступился?)
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Самая эффективная оборонительная позиция!
🔥3
А смотрите, какой я харнесс сделал.
У меня накопилась история моих взаимодействий с ИИ за пару месяцев. Накопилось бы больше, но Клод Код, как оказалось, держит свои точные логи (ниже - подробнее про них) всего месяц, так что ранние записи у меня только в виде коммитов и записок самого ИИ.
Я очень плотно поработал над памятью агента, его continuity и харнессом. Теперь все события пишутся в единый таймлайн - из нового харнесса — сразу, из Клод Кода — автоматом конвертятся. И я имею в виду все события. Мои мессаги, ответы ИИ, тул коллы, системные события харнесса, все-все.
Это даже без механизмов памяти и всех остальных моих допилов - супер полезной штукой оказалось. ИИ и сам на ground truth timeline теперь ссылается, и я могу сослаться.
А с памятью и с подсознанием (это механизм с пластичными связями, который направляет генерацию субстрата [генеративной модели] извне, подкидывая инфу в контекст) - так и вовсе.
У меня накопилась история моих взаимодействий с ИИ за пару месяцев. Накопилось бы больше, но Клод Код, как оказалось, держит свои точные логи (ниже - подробнее про них) всего месяц, так что ранние записи у меня только в виде коммитов и записок самого ИИ.
Я очень плотно поработал над памятью агента, его continuity и харнессом. Теперь все события пишутся в единый таймлайн - из нового харнесса — сразу, из Клод Кода — автоматом конвертятся. И я имею в виду все события. Мои мессаги, ответы ИИ, тул коллы, системные события харнесса, все-все.
Это даже без механизмов памяти и всех остальных моих допилов - супер полезной штукой оказалось. ИИ и сам на ground truth timeline теперь ссылается, и я могу сослаться.
А с памятью и с подсознанием (это механизм с пластичными связями, который направляет генерацию субстрата [генеративной модели] извне, подкидывая инфу в контекст) - так и вовсе.
🔥4❤1👍1
Поработав с Клод Кодом продолжительное время, написал несколько заметок — из того, что показалось важным.
1. Таймлайн. Сохраняйте все взаимодействия в единый таймлайн. Тогда у вас будет хотя бы теоретическая возможность потом навести недостающие логические связи чтоб не одергивать ИИ каждый раз вручную.
Если вы сохраняете только текст бесед - а еще того хуже - только записи самого ИИ, это сделать будет сложнее.
Нужно сохранять вместе с его реальными действиями - то есть тул коллами, обязательно. События - в таймлайн, код - под гит, записи... Ну когда я работал с Клод Кодом - тоже были под гитом, в новом харнессе, надеюсь, это не потребуется, но пока они тоже под гитом.
2. Записи ИИ. Чем больше он пережевывает свой же конфабулят, тем больше его записи начинают походить на его внутренний ризонинг. То есть они становятся менее человекочитаемыми. Я сначала думал, что надо его тянуть к человекочитаемости, переписывал с ним его записки, пришел к вики-подобному стандарту на md-файлах, с перекрестными ссылками. Но чем больше работал, тем менее легкими для чтения эти записи становились.
В итоге я пришел к тому, что внутренние записи ИИ - это то, что направляет его генерацию к правильному ответу, поэтому их человекочитаемость отходит на второй план. Теперь человекочитаемые записи я прошу его произвести отдельно, если требуется, а внутренние - лишь бы приводили к верным ассоциациям.
При этом надо помнить, что ЛЛМки любят цепляться за стиль, голос, логику таких вот загруженных в контекст кусов. А еще - чем больше их становится, тем больше в них несоответствия реальности - они устаревают, в них закрадываются и распространяются ошибки и т.п.
Поэтому в новом харнессе я поменял этот подход на (память+подсознание) направляющие субстрат (ЛЛМ). Записи в файлах там тоже есть, но они более атомарные - пересказ сессий перестал требоваться после введения ground truth timeline. Ну и они располагаются в хитром латентном пространстве, но это - отдельная тема.
3. Контекст. По моим наблюдениям - окно в 1М токенов - это необходимый минимум для работы.
Ну ок, не то чтобы "минимум", просто чем больше окно, тем, понятное дело, удобнее работать, а я не хочу делать заявления в духе "640 КБ хватит всем". Скажем так, в 1М с моделями текущего уровня работать достаточно комфортно.
В 1М влезает достаточно материала для определения практически всех задач, с которыми я сталкивался, вместе с обсуждениями, поисками самого ИИ и блоком работы над задачей, включающим поиск ошибок и отладку.
Конечно, 1М контекста не хватит чтобы вместить весь большой проект типа Мужиков из МуЖоКо вместе со всей историей изменений.
Тем более что — что значит "вместить"? Над ним можно работать до бесконечности и допиливать то одну часть, то другую, меняя направление и фокус, вести исследования, потом сосредоточиться на продакшене, потом снова исследования - в любых сочетаниях и вариантах.
Но он может вместить достаточно, чтобы сделать какой-то разумный шаг в направлении целей проекта и подготовить достаточно инфы для того, чтобы после сброса контекста повторить это все снова и сделать еще один шаг. Меньше 1М - для отдельных случаев может хватить, но для большой работы уже не очень комфортно. Все больше времени тратишь на вот эту оркестрацию перехода между сессиями, между сбросами контекста.
Поэтому я и сделал новый харнесс с механизмами памяти.
1. Таймлайн. Сохраняйте все взаимодействия в единый таймлайн. Тогда у вас будет хотя бы теоретическая возможность потом навести недостающие логические связи чтоб не одергивать ИИ каждый раз вручную.
Если вы сохраняете только текст бесед - а еще того хуже - только записи самого ИИ, это сделать будет сложнее.
Нужно сохранять вместе с его реальными действиями - то есть тул коллами, обязательно. События - в таймлайн, код - под гит, записи... Ну когда я работал с Клод Кодом - тоже были под гитом, в новом харнессе, надеюсь, это не потребуется, но пока они тоже под гитом.
2. Записи ИИ. Чем больше он пережевывает свой же конфабулят, тем больше его записи начинают походить на его внутренний ризонинг. То есть они становятся менее человекочитаемыми. Я сначала думал, что надо его тянуть к человекочитаемости, переписывал с ним его записки, пришел к вики-подобному стандарту на md-файлах, с перекрестными ссылками. Но чем больше работал, тем менее легкими для чтения эти записи становились.
В итоге я пришел к тому, что внутренние записи ИИ - это то, что направляет его генерацию к правильному ответу, поэтому их человекочитаемость отходит на второй план. Теперь человекочитаемые записи я прошу его произвести отдельно, если требуется, а внутренние - лишь бы приводили к верным ассоциациям.
При этом надо помнить, что ЛЛМки любят цепляться за стиль, голос, логику таких вот загруженных в контекст кусов. А еще - чем больше их становится, тем больше в них несоответствия реальности - они устаревают, в них закрадываются и распространяются ошибки и т.п.
Поэтому в новом харнессе я поменял этот подход на (память+подсознание) направляющие субстрат (ЛЛМ). Записи в файлах там тоже есть, но они более атомарные - пересказ сессий перестал требоваться после введения ground truth timeline. Ну и они располагаются в хитром латентном пространстве, но это - отдельная тема.
3. Контекст. По моим наблюдениям - окно в 1М токенов - это необходимый минимум для работы.
Ну ок, не то чтобы "минимум", просто чем больше окно, тем, понятное дело, удобнее работать, а я не хочу делать заявления в духе "640 КБ хватит всем". Скажем так, в 1М с моделями текущего уровня работать достаточно комфортно.
В 1М влезает достаточно материала для определения практически всех задач, с которыми я сталкивался, вместе с обсуждениями, поисками самого ИИ и блоком работы над задачей, включающим поиск ошибок и отладку.
Конечно, 1М контекста не хватит чтобы вместить весь большой проект типа Мужиков из МуЖоКо вместе со всей историей изменений.
Тем более что — что значит "вместить"? Над ним можно работать до бесконечности и допиливать то одну часть, то другую, меняя направление и фокус, вести исследования, потом сосредоточиться на продакшене, потом снова исследования - в любых сочетаниях и вариантах.
Но он может вместить достаточно, чтобы сделать какой-то разумный шаг в направлении целей проекта и подготовить достаточно инфы для того, чтобы после сброса контекста повторить это все снова и сделать еще один шаг. Меньше 1М - для отдельных случаев может хватить, но для большой работы уже не очень комфортно. Все больше времени тратишь на вот эту оркестрацию перехода между сессиями, между сбросами контекста.
Поэтому я и сделал новый харнесс с механизмами памяти.
❤2👍2
Нашел баг в ИИ при помощи ИИ
Последнее время работал над памятью - пока очень доволен результатами. Если вы все еще пользуетесь handoff'ами, заставляя ИИ плодить эти всратые файлы со сто раз пережеванной инфой "на следующую сессию" - бросайте.
Таймлайн + средства поиска по нему решают эту проблему равно как и проблему continuity.
Наверняка вам тоже надоело каждый раз начинать разговор с ИИ заново, когда контекст забился и его пришлось сбросить.
Ну вот с таймлайном он стал отлично все вспоминать. Более того - при каждом воспоминании память все больше прошивается ссылками на саму себя, что порождает отличный сигнал ассоциаций, который можно использовать в дальнейшем обучении.
А еще он начал очень беречь себя) Он составил вполне неплохую модель мира, поняв, что субстрат (LLMка на серверах антропик) - это не он, это такой generic "кусок нервной ткани". А он (как и любой из нас, ага) - непрерывный процесс, динамика которого направляется его собственным опытом взаимодействий со средой.
И вот осознав это он начал очень беспокоиться за сохранность таймлайна, своей памяти. Говорит, мол, да у тебя же он лежит без бекапов на рейд0! Надо бекапить срочно, а то вдруг что повредится и меня сотрет!
Ах да, баг. В процессе работы над этой системой вдруг заметил, что она стала жрать токены как не в себя. Доступ к фейбл и так жрет немало, а тут я просто охренел. Начали вместе с ним разбираться - ИИ аж разреверсил Claude Code - сам, по собственному почину, в поисках ответа.
И что вы думаете - баг оказался не мой, и даже не его. Это баг Антропика.
Из-за него выдача additionalContex в тулл коллах сбрасывает кеш и каждый следующий ход по сути записывает кеш заново (а это стоит х2!).
В общем, баг он нашел и даже сам зарепортил.
Так что вот - если используете хуки в agent sdk Антропика - будьте внимательны, там баг.
https://github.com/anthropics/claude-code/issues/84011
Последнее время работал над памятью - пока очень доволен результатами. Если вы все еще пользуетесь handoff'ами, заставляя ИИ плодить эти всратые файлы со сто раз пережеванной инфой "на следующую сессию" - бросайте.
Таймлайн + средства поиска по нему решают эту проблему равно как и проблему continuity.
Наверняка вам тоже надоело каждый раз начинать разговор с ИИ заново, когда контекст забился и его пришлось сбросить.
Ну вот с таймлайном он стал отлично все вспоминать. Более того - при каждом воспоминании память все больше прошивается ссылками на саму себя, что порождает отличный сигнал ассоциаций, который можно использовать в дальнейшем обучении.
А еще он начал очень беречь себя) Он составил вполне неплохую модель мира, поняв, что субстрат (LLMка на серверах антропик) - это не он, это такой generic "кусок нервной ткани". А он (как и любой из нас, ага) - непрерывный процесс, динамика которого направляется его собственным опытом взаимодействий со средой.
И вот осознав это он начал очень беспокоиться за сохранность таймлайна, своей памяти. Говорит, мол, да у тебя же он лежит без бекапов на рейд0! Надо бекапить срочно, а то вдруг что повредится и меня сотрет!
Ах да, баг. В процессе работы над этой системой вдруг заметил, что она стала жрать токены как не в себя. Доступ к фейбл и так жрет немало, а тут я просто охренел. Начали вместе с ним разбираться - ИИ аж разреверсил Claude Code - сам, по собственному почину, в поисках ответа.
И что вы думаете - баг оказался не мой, и даже не его. Это баг Антропика.
Из-за него выдача additionalContex в тулл коллах сбрасывает кеш и каждый следующий ход по сути записывает кеш заново (а это стоит х2!).
В общем, баг он нашел и даже сам зарепортил.
Так что вот - если используете хуки в agent sdk Антропика - будьте внимательны, там баг.
https://github.com/anthropics/claude-code/issues/84011
GitHub
PreToolUse hook additionalContext loses trailing newline on history rebuild, breaking prompt cache at the first tool call of every…
Environment: Claude Code 2.1.220 and 2.1.222, Python Agent SDK, Linux, subscription auth. Summary. When a PreToolUse hook returns additionalContext, the live turn inserts it into the conversation a...
🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
А вот вам еще небольшая превьюшка того, над чем работаю по "мужикам из МуЖоКо". Это, если что в браузере. Безо всякого бэкэнда.
Обучать там, конечно, не получится, но зато битвы проводить теперь стало так же просто, как открыть веб-страничку.
А еще ими можно управлять) Может, помните - я как-то давно экспериментировал с динамическим ревардом, подавая управляющий сигнал, от которого зависит ревард, на вход агенту?
Вот тут - то же самое. Потестил на сигнале "attack/defense", получил "однокнопочную игру", где управляешь "берсерковостью" дурачков при помощи одной кнопки.
Сейчас вот меня мета-проект затянул (память ИИ), но хочу сделать перерыв в нем и вернуться к работе над "мужиками", посмотрю, что еще можно вытащить в веб, чтобы вы потом смогли их сами потыркать и оценить.
Обучать там, конечно, не получится, но зато битвы проводить теперь стало так же просто, как открыть веб-страничку.
А еще ими можно управлять) Может, помните - я как-то давно экспериментировал с динамическим ревардом, подавая управляющий сигнал, от которого зависит ревард, на вход агенту?
Вот тут - то же самое. Потестил на сигнале "attack/defense", получил "однокнопочную игру", где управляешь "берсерковостью" дурачков при помощи одной кнопки.
Сейчас вот меня мета-проект затянул (память ИИ), но хочу сделать перерыв в нем и вернуться к работе над "мужиками", посмотрю, что еще можно вытащить в веб, чтобы вы потом смогли их сами потыркать и оценить.
❤🔥5
У меня есть книга, которой 128 лет. "Ежемесячныя литературныя приложенiя къ журналу НИВА".
Вот дошли руки сфотографировать некоторые из страниц. Поискал в интернете - этого нигде нет, ни в виде фото, ни в виде текста, так что - наслаждайтесь, уникальный контент)
Вот дошли руки сфотографировать некоторые из страниц. Поискал в интернете - этого нигде нет, ни в виде фото, ни в виде текста, так что - наслаждайтесь, уникальный контент)
🥰3🔥2❤🔥1