Интересное что-то
554 subscribers
2.79K photos
253 videos
140 files
4.59K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.iss.one/asisakov_channel
Чат: https://t.iss.one/youknowds_chat
Download Telegram
Покрутил в руках dify.ai

Это некий аналог n8n, конструктор, который быстро позволяет создать ИИ сервис с собственной базой знаний.
Сервис, кстати, опенсорсный, можно у себя на локалке развернуть. 103к звезд на гитхабе - столько же сколько у n8n, т.е. эти 2 проекта равнообожаемы

В сервисе реализован гибридный поиск: векторный (семантический) + полнотекстовый
При этом релевантные чанки можно выбирать или по весу, или подключая реранкер cohere

Но не хватает мне в этом сервисе предварительной обработки загружаемых документов. Хотелось бы разметить структуру, сделать саммари разделов - в общем сделать маппинг документа, который потом можно использовать в промпте.

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

Вопрос в зал:
Есть ли опенсорсные решения, которые позволяют делать такой маппинг?

Вопрос2:
Кто в своих проектах успешно использует GraphRag? На каком стеке?
🍪Типичные ошибки начинающего промпт-инженера

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

1️⃣Посмотрел промпт и увидел типичную ошибку начинающих разработчиков, которую сам допускал неоднократно:
Слишком большой промпт с кучей подробностей, инструкций и множеством сущностей для классификации. Нужно было много элементов разложить по кучкам, но кучек слишком много, и ллм просто не справляется с такой нагрузкой.

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

2️⃣Что касается количества сущностей, сразу вспомнил свой случай с классификацией названий видеороликов на gpt3.5. Десять заголовков обрабатывалось очень качественно, а вот когда подавал 20 заголовков - система уже начинала скатываться в рандом.
Главное - опытным путем найти оптимальное количество данных, которое конкретная модель может нормально обработать.

3️⃣В своем проекте ребята модель взяли не самую топовую - gpt4o-mini. Я всегда рекомендую начинающим разработчикам: берите сначала мощную модель, не экономьте на этапе отладки. Отработайте на ней, добейтесь стабильного качества, а потом уже можно постепенно даунгрейдиться к более дешевым вариантам и смотреть, где качество начинает просаживаться. Вероятно, изначальные хотелки не будут работать даже на мощной модели.

4️⃣Еще посоветовал им внедрить LangFuse, чтобы собирать бенчмарки из своих же экспериментов и потом тестировать разные модели.

5️⃣Еще две типичных ошибки, которые я встречаю: отсутствие системного промпта и просьба выдать JSON прямо в теле промпта. Для JSON есть structured output - он работает намного лучше.


Интересно ваше мнение - что еще посоветовали бы начинающим разработчикам?
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Карьера в FAANG
Я рассказал, как писать половину performance review -- self assessment документ. В этом, завершающем цикл, посте поговорим о том, как писать вторую половину -- peer feedback.

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

Прежде, чем советовать, что делать, посоветую, чего не делать: не нужно помогать коллеге дописать его self assessment своим фидбэком. Не нужно писать -- ах вот тут еще забыл такую-то деталь! Если приходят такие мысли, передайте их автору приватно. Во-вторых, не стоит комментировать человека. Вы даете фидбэк не человеку, а документу. Человеку можно дать фидбэк лично, или его менеджеру, если есть желание. Ваша работа -- строго прокомментировать существующий контент документа.

В недавнем посте я писал про артефакты, как один из важнейших инструментов написания качественного perf документа. Так вот, вы, автор фидбэка, и есть источник самого главного артефакта. От вас требуется подтвердить заявления автора, которые он не смог подтвердить сам. Допустим, автор снизил p50 latency на 30%. Он может это доказать, приложив ссылку на мониторинг. Но он не может доказать, что это вообще было нужно делать. Поэтому, он просто заявляет, что это улучшило UX. А вы, старший UX дизайнер, подтверждаете это заявление. Если подтверждений нет совсем, надо их подтвердить. Если уже есть артефакты (например, снижение time to first byte), надо их контекстуализировать своим экспертным мнением: я, UX дизайнер шестого уровня, подтверждаю своим авторитетом, что снижение time to first byte доказано положительно влияет на долгосрочные бизнес метрики.

Отсюда следует, что не стоит соглашаться писать фидбэк всем подряд, а кому соглашаетесь, не комментируйте весь документ, а только конкретные места. Спросите себя -- можете ли вы быть артефактом для этого заявления? Есть ли у вас признание вашей экспертности в необходимом автору домене, или будет ли ваш комментарий проигнорирован? Пишите фидбэк только о том, где у вас есть признанный организацией авторитет.

Автор фидбэка, запомни: ты -- артефакт.

Разумеется, к фидбэку так же применимы и правила написания самого документа -- максимально цитировать ладдер и быть структурным.
RL база.pdf
451.4 KB
живой 🫡

учеба, работа, не совсем успеваю писать

👀 ловите мой "нихуя-как-просто" инсайт с курса по RL у нас в маге.

Без всяких формул и мудрёных греческих букв расскажу, как работает обучение с подкреплением и почему именно оно заставляет большую языковую модель не тупо бубнить текст из интернета, а вести себя так, как нужно нам — слушать промпт, ловко фильтровать бред, фокусироваться на сути и выдавать ответы, за которые реально не стыдно.

Попытался написать максимально просто, но насколько далеко вы прочитаете, зависит от вашего опыта в ML
Please open Telegram to view this post
VIEW IN TELEGRAM
model are only as good as the context provided to them


🟣tl;dr: Model Context Protocol (MCP) – это открытый протокол, который по сути является USB-C хабом для взаимодействия агентов с инструментами и ресурсами. Протокол представили антропик еще в ноябре 2024, но твиттер сразу после мануса начал нарекать MCP следующей вехой в AI агентах.

🟣Ща разберемся...

- компьютер — это агент
- мышка, клавиатура, микрофон — это инструменты и различные источники контекста для LLM
- usb-c хаб — как раз model context protocol

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

🟣что такое MCP?
MCP стандартизирует, как AI приложения взаимодействуют с внешними системами – аналогично тому, как API задают правила общения между веб-приложениями и backend.

Протокол охватывает промпты, тулзы и ресурсы.

🟣сразу упрощенный пример.
У нас есть агент, у которого есть инструменты:
- сходить в задачник (jira) по API и вернуть нужную таску конкретного юзера
- сходить в github и сделать PR в репозитории

Агент с первой картинки:
1. на вход юзер подает тикет
2. агент запрашивает таску
3. решает задачку
4. создает pull request на сделанную задачу

также у нас есть еще пара агентов, которые так или иначе используют API jira и github.

- что если API изменилось? — тогда в каждом агенте придется делать правки
- что если вы захотели изменить пайплайн в каком-то агенте, так как API теперь позволяет еще и прикреплять ревьюера к PR? — придется добавить в агента новый интструмент.

а теперь представим, что у нас есть отдельные сервера для jira и github, в которых прописаны какие инструменты есть и как их использовать. Эти сервера имеют стандартизированные ручки, параметры и ответы.

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

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

🟣Как работает mcp?
Архитектура MCP базируется на клиент-серверной модели:
- Host Process – основное AI-приложение (например, Claude Desktop или Cursor)
- MCP Clients – клиенты, которые устанавливают отдельное соединение с каждым сервером
- MCP Servers – специализированные серверы, предоставляющие инструменты и доступ к данным

🗿 зафиналим
плюсы: упрощает покдлючение и поддержку новых источников для контекста
минусы: первоначальная настройка и подготовка своей инфры под этот протокол, валидация возможностей чужих серверов + написание своих
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from XOR
Андрей Карпаты выложил свой гайд по моделям ChatGPT

Запоминаем:

🟢o3 — лучшая для сложных задач. Эта модель рассуждений намного сильнее, чем 4o. Поможет с анализом данных и научными статьями. Карпаты использует эту модель в 40% случаев.

🟢GPT-4o — хорошая, быстрая модель для повседневного использования. Карпаты также использует ее в 40% запросов.

🟢GPT-4.1 — отличный выбор при вайб-кодинге.

🟢GPT-4.5 — если вам нужно покреативить или сгенерировать текст, она сильно меньше других галлюцинирует и ошибается. Но для задач кодинга хуже, чем GPT-4.1 или o3.

🟢 режим Deep Research — лучший инструмент для исследований. Нужен, если хочется глубоко разобраться в какой-то теме.



Сохраняем и больше не ошибаемся в выборе модели. ☕️

@xor_journal
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Какую модель применять в NLP.pdf
110.8 KB
Какую модель применять в NLP?

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

Пользуйтесь, делитесь с друзьями, задавайте вопросы в комментариях.
Все вопросы разберем.
Когда open-source логирование подставляет, а невнимательность с моделями бьет по метрикам 📊

Все вы помните как я переехал на LiteLLM
Вчера у нас был тот самый день, когда все идет не так, как планировалось

OpenAI API частично лежало, задержки до 16 секунд, пользователи в поддержку валом — классика жанра для любого сервиса с высоким MAU

Проблема №1: Слепая зона в мониторинге
Когда пользователи начали жаловаться на тормоза, мы полезли проверять наш LiteLLM прокси. И тут выяснилось, что без лицензии у нас доступны только базовые метрики в /metrics

Мой самописный дашборд показывал, что с прокси все ОК — никаких аномалий
Но задержки-то были! В логах они светились, а в интерфейсе нет
Результат: 2 часа потрачено на копание в прокси, вместо того чтобы сразу проверить статус провайдеров
Ха-ха классический случай "лечим симптомы, а не причину"

Проблема №2: Миграция фильтров без должного тестирования

Наша эволюция фильтров для FLUX генерации:
- Начали с Llama 3.1 + кастомный промпт для нашего FLUX (низкий RPS легко справлялся локальный кластер)
- Переехали на Qwen2.5 (промпт остался тот же)
- Из-за нагрузки мигрировали на gpt-4o-mini

И вот тут началось веселье!
Промпт, который работал с локальными моделями, на gpt-4o-mini показал себя ужасно да как так то? =)
- 37% False Positive срабатываний
- Пользователи, которые писали "девушка" в запросе, не получали генерацию

После анализа данных из единого прокси (спасибо ему за централизованные логи!) команда R&D быстро поняла масштаб проблемы и сделали первое

1) Выгрузил все срабатывания от момента замены модели
2) Глазами просмотрели все FALSE
3) Поняли что нужно менять

Что сделали:
- Переработали промпт под gpt-4o-mini
- Ввели уровни категоризации вместо бинарной фильтрации
- Добавили структурированный вывод (SO)

Результаты после фикса(все просмотрели глазами)
- Снижение общей фильтрации до 17%
- FP уменьшились до 24%
- Пользователи снова получают нормальные генерации

Проблема №3: Мистический расход токенов на $350

Тут была самая загадочная история! Один из API ключей потребил весь свой бюджет на токены за какие-то 5 запросов. Трекнулось аж целых 350 долларов сразу алерты полетели 🚨

Что я сделал? Натравил на логи агента в Cursor, дал ему доступ через SSH к серверу где лежит проект и указал как писать запросы в БД и где лежат логи и сказал: "Найди что тут не так!"

И знаете что? LLM оказался круче любого DevOps инженера! За несколько минут он нашел, что это web search функция, которая за 1000 запросов стоит $35, а не обычная генерация

Дальше мы с LLM стали искать, где же система неправильно трекает этот параметр. 15 взаимодействий с find и grep — и вуаля! Нашли проблемный участок кода.

Баг найден будет отправлен в репозиторий LiteLLM

Честно, почти везде LLM помогли найти проблему быстрее, чем я бы сам
- Анализ латенси — LLM разобрал логи и указал на узкие места
- Поиск багов — структурированный поиск по кодовой базе
- Анализ трафика — выявление аномальных паттернов в запросах

Мой новый подход
1. Логи → LLM для первичного анализа
2. LLM находит зацепки → я иду копать глубже
3. LLM помогает с grep/awk/sed магией
4. Профит!

По мониторингу
- Open-source решения могут подставить в критический момент
- Нужен собственный экспортер метрик для Grafana
- Логи != метрики в дашборде (очевидно, но забываем)

По фильтрации
- Каждая модель требует отдельной настройки промптов
- A/B тестирование фильтров — не роскошь, а необходимость
- Миграция моделей без тестов = выстрел себе в ногу

По дебагу
- LLM + логи = мощный дуэт для поиска проблем
- Структурированный анализ через AI экономит часы времени
- Всегда держите LLM "под рукой" при инцидентах:

Да, скажете "это же база!" — но опыт есть опыт. Иногда нужно наступить на грабли, чтобы понять, где они лежат 😅

И главное LLM действительно может быть вашим DevOps коллегой. Не заменит, но сильно поможет! Главное не дать выполнить критичные команды (читай каждую команду что генерит LLM)

P.S. Единое прокси снова доказало свою ценность — без централизованного логирования мы бы копались в проблеме намного дольше!