Интересное что-то
517 subscribers
2.71K photos
252 videos
138 files
4.51K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.iss.one/asisakov_channel
Чат: https://t.iss.one/youknowds_chat
Download Telegram
Forwarded from Pavel Zloi
Pavel Zloi
Долгосрочная память агентов Под моей прошлой публикацией разгорелась бодрая дискуссия. В ходе которой я наконец-то четко сформулировал, что именно считаю "долгосрочной памятью" в контексте LLM-агентов и как, на мой взгляд, она должна работать. Что я вообще…
Memory Copilot - концепт инструмента памяти агента

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

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

И так, Memory Copilot - это самостоятельный сабагент, который:
1) обогащает промт перед генерацией за счет релевантного опыта, примерно как это описано в "Automatic Engineering of Long Prompts" (arXiv:2311.10117)
2) решает, что из результатов текущего шага стоит сохранить
3) работает автоматически, без того чтобы основная модель "тригерила память как тул"

То есть грубо говоря, я вижу данный модуль где-то между языковой моделью и интерфейсом общения с пользователем, эдаким генератором системного промта.

Предполагаю, что данный сабагент имеет только два тула:

- вспомнить (search) - происходит перед генерацией ответа, на этапе сборки промта. Агент сопоставляет текущий запрос пользователя с тем, что есть в долговременном хранилище, извлекает релевантные куски (например в виде few-shots или кратких "фактов") и подает это в контекст вместе с системными инструкциями и историей диалога.

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

Как это выглядит на одном запросе:

1) после запроса юзера вызываем search, в ответе получаем релевантные куски, добавляем в промт, генерируем ответ.

2) после ответа вызываем save, но не вслепую, сначала мини-оценка "LLM-as-a-judge" (есть ли уже такое воспоминание, пригодится ли это в будущем, оригинально ли, не дублирует ли уже сохраненное). Только если прошло отсев - сохраняем. Подробнее про оценку ответов в "From Generation to Judgment: Opportunities and Challenges of LLM-as-a-judge" (arXiv:2411.16594)

Такой цикл делает агента "самонастраивающимся", то есть чем дольше он работает, тем точнее подмешивает опыт и тем меньше ошибается ошибки, агент таким образом "учится", хотя наверно это не самая лучшая аналогия. Идея близка к линиям работы "Reflexion: Language Agents with Verbal Reinforcement Learning" (arXiv:2303.11366) про рефлексию и самокритику генераций, где модель перед сохранением оценивает свою же работу.


Не только лишь чат

Тот же принцип годится и "за пределами чатика".

Например, можно запоминать удачные решения на уровне действий, типа какой тул и с какими параметрами сработал лучше для определенного класса запросов, типа "поисковая кверя А дала релевантные документы".

По моим наблюдением добавление few-shots позитивно влияет на планирование вызова тулов, так как моделька быстрее и точнее выбирает нужный, про фьюшотс "Language Models are Few-Shot Learners" (arXiv:2005.14165).

В отличие запросов считаю, что ответы тула хранить не стоит, так как они устаревают и занимают место. Как по мне практичнее запоминать короткие правила и шаблоны действий, а не сам ответ.


Простенький пайплайн

1) Приходит запрос пользователя.
2) Сопоставление с долговременной памятью -> извлеченные фрагменты превращаем в few-shots/факты -> собираем промт.
3) Генерация ответа.
4) Быстрая проверка полезности результата (LLM-as-a-judge).
5) Если полезно, то дистиллируем и сохраняем.

На следующих шагах этот "опыт" автоматически всплывает при сборке промта.

[2/3]
Forwarded from Pavel Zloi
Pavel Zloi
Memory Copilot - концепт инструмента памяти агента В своей практике стараюсь избегать прямых отсылок на то как (мне и многим моим визави кажется) работает разум и мышление, поскольку стоит только привести такую аналогию, как дискуссия сразу же уходит куда…
Ограничения и вопросики

Под конец хочу рассказать о потенциальных вопросах применения долгосрочной памяти.

- засорение памяти - нужно дистиллировать и выкидывать дубликаты, а перед сохранением новых данных проверять нет ли чего похожего, чтобы вместо условного insert делать условный update.

- TTL (устаревание) - полагаю данные со времен должны устаревать, например если к информации давно не обращаются, то помечать её "к удалению" или как-то так.

- персональные данные - сохранение "вечных" заметок это уже обработка персональных/корпоративных данных, тут надо будет покумекать над очисткой данных.

- время и стоимость - каждое вспоминанием и запоминание это токены и задержка, поэтому мне кажется важно будет заранее продумать такие вещи как: когда вспоминать, когда запоминать, когда судить, когда молча пропустить и так далее.


Итог

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

[3/3]
Forwarded from Dealer.AI
Cookbook от HF, как построить world level LLM.

А пока орги продлили голосовуху и всю эту суету 🥲до 5.11, почитаем cookbook от Huggingface 🤗. Как построить LLM мирового уровня, небольшой гайдик:

- Если ты не в курсе с чего начать, а оно вообще тебе надо?
- А в каком порядке идет pretrain, rl, sft, annealing?
- Что такое kv caching?
- А curriculum learning он зочем?
- Какие стратегии скейлинга по датке и gpu.

И многое другое, ты найдешь в данном небольшом руководстве на 200+ страниц 🤣, с формулами, картинками и графиками. Версия на сайте. Будет, что почитать на выходных. 🧑‍🎓
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Dealer.AI
Продолжаем посты, cookbooks для чтения на выходных.

У Microsoft вышел классный курс по малым моделям на конечных устройствах. Подписчики рекомендуют.

В целом, знаю много любителей моделек on-device, в свое время было очень популярно делать tflite формат + устройство, туда же потом влетел onnx и прочее.

В общем, приятного чтения. 😁
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Dealer.AI
Что, если вы попробовали BM25 и SPLADE – FM index+Infini-gram.

Эта статья стала best paper EMNLP2025.

Статья "Infini-gram mini: Exact n-gram Search at the Internet Scale with FM-Index" представляет собой исследование по созданию системы для точного поиска n-грамм в сверхбольших текстовых корпусах. Что такое n-граммный поиск? Это подход аля tfidf основанный на поиске совпадения в строках путем сравнение общих n-грамм токенов или символов. Статья может быть потенциально интересной для тех, кто строит RAG системы с учетом bm25 индексов и иных (аля SPLADE).

🎯 Постановка задачи

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

💡 Идея алгоритма

Основная идея алгоритма — использование FM-Index (Full Text Minute Index). Этот метод, созданный Феррагиной и Манзини, одновременно индексирует и сжимает текст. Алгоритм дает пользователю:

1. Эффективность: Infini-gram mini значительно улучшает существующие реализации FM-Index. Система создает индекс, размер которого составляет всего 44% от исходного корпуса.

2. Производительность:
- Скорость индексации повышается в 18 раз.
- Использование памяти в процессе индексации сокращается в 3.2 раза.
- Потребление памяти при выполнении запросов снижается до незначительного уровня.

Про Infini-gram, он работает принципиально иначе, чем традиционные языковые модели n-грамм. Вместо заранее вычисленных таблиц частот, он использует структуру данных суффиксный массив, что позволяет обрабатывать n-граммы практически неограниченной длины с низкой задержкой .

Ключевая инновация Infini-gram — это отказ от классических таблиц n-грамм в пользу суффиксного массива всего корпуса текстов.

В чем проблема традиционных n-грамм? Для больших n длин последовательности таблицы частот становятся астрономически большими. Например, для корпуса в 1.4 триллиона токенов 5-граммная таблица заняла бы около 28 ТБ, что делает модели с большим n невозможными.

Итого, зачем оно все нам? Недавно, мы видели, как можно использовать поиск встроенный в файловую систему для эффективной работы rag и памяти. Подход с Infiniti gram+fm index может быть полезен для агентных систем с памятью в качестве альтернативы поиска по большим массивам данных. Да, и все это помимо прямой задачи - фильтрации больших сетов.
Forwarded from Записки Ппилифа (Ppilif)
Этот фильм уничтожит ваше FOMO и синдром самозванца. Хотябы ненадолго. Может быть.

В 2021 году Питер Джексон, в своих лучших традициях, выпустил 7-часовую трёхсерийную документалку про Битлз. Это очень скучный фильм. Челы большую часть его времени просто сидят на студии и пытаются записать альбом.

Узнал о нём от Ануара и поставил фоном во время работы. Возникает ощущение, что мы творим вместе. Битлы пытаются сделать что-то гениальное, а я прост пытаюсь им не мешать и занимаюсь своими делами. Я что-то вроде Рика Рубина, спящего на диване во время записи.

Битлы джемят, играют чужие песни, пытаются искать вдохновение и создавать что-то новое. Это очень длинный мучительный совместный процесс. Они кидают друг в друга идеи, пробуют что-то и нащупывают музыку, которую каждый из нас знает, но тогда её ещё нет.

Заглянуть в то как другие люди творят — офигенно. Ты начинаешь видеть, насколько процесс мучительный и сколько труда великие затрачивают для того, чтобы из ничего получить что-то. Именно благодаря этому они и великие.

Поэтому прекратили все быстро ныть, что выгорели и пиздуйте работать. Я тоже пойду.
Собрали для вас кейсы вайбкодинга для вдохновления

Вчера попросили поделиться кейсами, в результате получилась классная вдохновляющая подборка от подписчиков канала и выпускников курса. Напомню: у всех людей из подборки ранее не было опыта разработки.

Подписчики канала:

1. Кирилл Макаров — собрал за 3 часа тг-бота на Replit для своего челленджа по креативам. Бот мониторит выполнение домашек, хвалит и напоминает про штрафы, а также удаляет из челленджа после пропуска дедлайна.

2. Даниил Прокофьев — за 2 месяца на Lovable переписал всю операционку своей компании барных викторин (8 лет процессов, десятки городов, международные франшизы). Вместо разрозненных Google Sheets, Airtable и кастомного кода собрал единую ОС, которая покрывает ~70% логики и уже проходит тестирование командой.

3. Николай Березовский — за месяц собрал MVP собственной IDE для не-разработчиков: смесь Cursor и Arc прямо в браузере. Локальные файлы, вкладки, Markdown-редактор уровня Notion, сессионный контекст, встроенный Chrome и агент на Claude Code, который умеет всё — искать, читать, редактировать файлы, работать с вебом, обновлять метрики, коммитить, запускать команды.


Выпускники первого потока курса:

4. Marika Taavet — на Replit собрала себе собственный финтул под малый бизнес: загрузка банковских выписок, автокатегоризация на старых данных, отчёты, полный контроль над логикой. Начала с Cursor, но интерфейс показался перегруженным — ушла в Replit и там зажглась

5. Игорь Ленский — собрал семейное веб-приложение под реальные бытовые процессы. Дела на день с участниками и дедлайнами, список покупок с быстрыми подкатегориями, отдельный экран благодарностей с простым вводом. Минимум лишнего, максимум пользы — лёгкая внутренняя «семейная ОС»

6. Булат Ахметшин — создал бесплатный онлайн-тул для создания и обмена виш-листами. Пользователь быстро заполняет название и дату события, добавляет подарки с фото, ссылкой и комментарием, затем получает публичную ссылку, отправляет друзьям — они могут резервировать подарки без регистрации.

——

Напоминаем, что можно делиться кейсами и тогда будем публиковать еще подборки
Forwarded from DevFM
Шаблонный сервис

Я всячески люблю, когда разработка идёт предсказуемо – и многое для этого делаю.
Давно хотел написать пост о важности шаблонного сервиса, но не было хорошего примера под рукой. И тут мой коллега выложил наш шаблонный сервис на FastAPI, который мы долгое время использовали и развивали.

Так зачем же нужен шаблонный сервис?

Легко ориентироваться в других сервисах. Иногда нужно залезть в сервис коллег, или поддерживаешь несколько сервисов. Никаких проблем – структура везде одинаковая, всё знакомо, не нужно тратить время на раскопки.

Быстрый старт. Стартуете новый сервис? Полчаса – и он готов. Никаких лишних приседаний.

Единые практики. Шаблон определяет, не только структуру, но и то, как мы, например, делаем ретраи, какие у нас зависимости. как устроен circuit breaker, обработка ошибок и т.д.

Лучшие практики – в одном месте. Если появляется что-то классное, мы добавляем это в шаблон и новые сервисы сразу это наследуют.

Обсервабилити, логирование, работа с секретами – готово из коробки. И меньше шансов, что кто-то забьёт на логирование до лучших времён»:)

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

Просто экспериментировать. Создал веточку от шаблона – и прикручиваешь свою новую махарайку, не тратя время на базовую структуру.

Унификация линтинга. Конфиги линтеров лежат в шаблоне. Ничего настраивать не нужно, а код-ревью идёт быстрее – обо всём уже однажды договорились и зафиксировали.

Базовый CI/CD. Для шаблонного сервиса существует шаблонный ci/cd – и это очень удобно.

Мы активно использовали шаблонный сервис в микросервисной архитектуре, но и для монолитных решений он тоже отлично зашёл – стартовали с ним несколько проектов.

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

В общем – заходите, смотрите, ставьте звездочки. И если с чем-то не согласны – пишите в комменты, автор обязательно ответит 🙂

#devfm #systemdesign
🆎 [EN] Бесплатный курс по A/B тестированию

🐸 Знаю, что их не так много, но я нашел годноту, которую добавил к себе в материалы на сайт

😍 От Сколтеха есть курс, который ведется на английском языке, но ведут его русскоговорящие ребята (в т. ч. Александр Сахнов).

Всего 40 уроков, 5 недель обучения и есть практика в Google Colab (ipynb)

🤔 Программа курса

— Неделя 1. А/B-тесты. Введение
— Неделя 2. Основы статистики. Параметрическое оценивание. Бутстреп
— Неделя 3. Основы статистики. Проверка гипотез
— Неделя 4. А/B-тесты. Базовый уровень
— Неделя 5. А/B-тесты. Повышение чувствительности. Обзор современных методов

Конечно же, я добавил еще лекции ШАДа по A/B тестированию, как же без них 🍪🍪

Ставьте 🕺, если нужны мысли про вайбкодинг в целом и как я это вижу в плане разработки
Если уже хватит апдейтов про сайт, ставьте 😮

🥺 Пока вы здесь, киньте бустов (это бесплатно для Premium), плиз, чтобы я смог поменять фон и добавить больше эмодзи в реакции на постах

@zasql_python
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from АННА В ДАННЫХ
SQL не достаточно: топ вопросов о предыдущем опыте, которые зададут на собеседовании 🥺

Для того, чтобы успешно пройти собеседование, нужно не только уметь решать задачки по SQL и дизайнить АБ-тесты, но и уверенно рассказывать о своем предыдущем опыте

Кстати, по ответам на эти вопросы проверяют не только самостоятельность и умение работать в команде, но и соответствие резюме реальности

Если человек приукрасил опыт и на самом деле никогда не работал аналитиком, одни только ответы на технические вопросы не спасут: без умения рассказать как именно происходил процесс работы, он быстро выдаст себя

Организация процессов
▪️Была ли какая-то методология (скрам / канбан) и были ли спринты, соответственно?
▪️Был ли таск трекер?
▪️Был ли ты единственным аналитиком или работал в команде?
▪️Как и кем ставились задачи?
▪️Как приоритезировались задачи? Кто принимал финальное решение?
▪️Как и кем оценивались сроки выполнения задач?
▪️Как выглядел полный цикл твоей работы над задачей?

Взаимодействие с командой
▪️Был ли у тебя на работе конфликт с коллегой? Как ты его решил?
▪️Как происходило взаимодействие с разработчиками, дата-инженерами, маркетингом и др?
▪️Как формировал ожидания со стейкхолдерами?

Поведение в нестандартных ситуациях и достижения
🔴Были ли ситуации, когда ты не успевал сделать задачу к дедлайну? Почему так происходило? Как ты действуешь в такой ситуации?
🔴Как действуешь, если требования меняются посреди задачи?
🔴Какие типы задач любишь меньше всего и почему?
🔴Как относишся к adhoc-ам?
🔴Были ли ситуации, когда нужно было работать в условиях высокой неопределённости?
🔴Каким кейсом в своей карьере ты гордишься больше всего?

Стек и работа с продуктом
▫️Какой был технический стек?
▫️Была ли своя АБ платформа?
▫️С какими продуктами ты работал? Какие там были ключевые метрики?

Пройдись по списку и убедись, что сможешь ответить на все

Если есть чем дополнить список, пишите в комментариях
Please open Telegram to view this post
VIEW IN TELEGRAM
Хотите я ультану гайдом на оконные функции?💪

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

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

https://colab.research.google.com/drive/1VZL9nBnZHAwMICNzN0IJo0VMpr863U8R?usp=sharing

Поставьте лайк, если полезно!😊
Please open Telegram to view this post
VIEW IN TELEGRAM