Интересное что-то
517 subscribers
2.71K photos
253 videos
138 files
4.51K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.iss.one/asisakov_channel
Чат: https://t.iss.one/youknowds_chat
Download Telegram
Forwarded from LLM is all you need
Speculative Decoding — хитрая техника, которая позволяет ускорить инференс LLM.

Фокус заключается в следующем... имеется две модели:
- Маленькая и тупенькая, но быстрая (draft model)
- Большая и умная, но медленная (target model)

Маленькая модель используется для предсказания, а большая — для проверки и исправления ошибок маленькой модели. Как это работает...

Маленькая модель генерирует текст. Делает она это итерационно: на каждой итерации появляется новый токен (если упрощенно - слово):
1. Каждый охотник желает
2. Каждый охотник желает знать
3. Каждый охотник желает знать где
4. Каждый охотник желает знать где спит
5. Каждый охотник желает знать где спит белка

Делает она это очень быстро, потому что - маленькая.

Допустим, на 5 итерации мы останавливаемся и вся сгенерированная последовательность подается на вход в большую модель, чтобы она предсказала вероятности по каждому токену в последовательности.
И сверяем — что выдала маленькая модель и что предсказала большая. Если на какой-то итерации возникли различия, то начиная с нее большая модель (также в итерационном режиме) генерирует новый текст:

4. Каждый охотник желает знать где сидит
5. Каждый охотник желает знать где сидит фазан

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

Такой подход гарантирует, что конечный результат будет точно таким же, как если бы весь текст писала большая модель.
При этом мы получаем прирост производительности (инференса) примерно в 2-3 раза.
⚡️Новый ахрененчик от Клода - Скиллы!

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

Ребята не поленились и вынести в настройки предустановленные скиллы: создание сложных многокомпонентных сайтов а-ля Ловабл, создание MCP, брендирование в стиле Клод и прочие создатели визуалов. А еще для ленивых они сделали скилл по созданию скиллов.
Тут подробная инструкция по скилам и их использованию

Я сразу сделал себе два скилла:
1️⃣скилл для рерайта текста, ибо надоело каждый раз писать "перепиши мой текст понятнее. Соблюдай мой авторский стиль на 8 из 10". Собственно этим скиллом и отредачил этот пост. Теперь правда надо писать "перепиши мой текст используя скилл" и надеяться, что Клод правильно меня понял хотя бы с третьего раз😄

2️⃣ скилл для автоматической обрезки изображения до квадрата и переворот его на 180 градусов.
Промпт был элементарный: "создай скилл, который будет делать изображение квадратным (обрезаем снизу или справа) и переворачивать его на 180 градусов."

Все заработало с первого раза - результат прикладывсаю! Правда, немного не так, как я ожидал: при каждом вызове скилла Клод создает питон-скрипт заново. Я же ожидал, что скрипт будет в составе скилла. Но вопрос решаем, можно актуализировать скилла, версионность поддерживается

В инструкции Клода перечислены еще варианты Скиллов:

Навык автоматизации CRM: создаёт контакты, обновляет возможности продаж, поддерживает стандарты данных для устранения повторяющегося ввода

Навык проверки юридических договоров: оценивает соглашения на соответствие стандартным условиям, выявляет рискованные пункты, предлагает защитную формулировку

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

Навык SEO-контента: анализирует возможности, структурирует под поисковые намерения, оптимизирует с сохранением тона бренда

Навык музыкальной композиции: создаёт оригинальные треки с реалистичными инструментами, применяет жанровые конвенции, экспортирует для продакшена

Навык автоматизации отчётов: собирает месячные данные, применяет расчёты, генерирует визуализации, форматирует по шаблону, рассылает заинтересованным лицам

Навык рецензирования навыков: оценивает эффективность другого навыка, предлагает улучшения инструкций, выявляет упущенные крайние случаи, рекомендует изменения структуры


Я так понимаю, в работу скилла еще и MCP можно подрубить. Очень знатный комбайн получается.

Осталось только убедиться, что он будет действительно полезным и удобным🥳
И еще бы выяснить, как правильно писать: "скилл" или "скил". Ау, филологи, помогайте!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Женя Янченко
«Твой API вообще не RESTful»

Такую претензию один разработчик озвучил аналитику. Причиной возмущения были следующие решения:
🟣 использование POST вместо GET для получения данных
🟣 использование глагола в URL, типа /approve

Ирония ситуации была в том, что в проекте оба эти «нарушения» RESTful подхода уже не раз встречались, а разработчик и аналитик оба только недавно пришли в команду.

Давайте разберемся, насколько претензии были правомерны.

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

Когда мы пытаемся уложить логику бизнес-операций и взаимодействия микросервисов в чистый REST, то неизбежно сталкиваемся со сложностями.
Даже простой /login уже не RESTful 🤷‍♀️

Классический RESTful возможен там, где мы имеем дело с набором статичных ресурсов, которым достаточно CRUD-операций. Например, хранилище файлов S3 или MVP сервиса стриминга музыки.

🤔 Может, если у нас бизнес-процессы, то нам отказаться от REST и делать эндпойнты с действиями?
/update
/approve


Такой подход называется RPC over REST. Он выглядит как REST, но отталкивается не от ресурсов, а от действий (процедур). При этом методы http (GET/PUT/DELETE) могут не использоваться, всё может реализовываться через POST.

Среди публичных API не встречала этот подход в чистом виде, но эндпойнтов с действиями много например в Ozon Seller API:
POST /v2/products/delete
POST /v1/product/archive
POST /v1/product/unarchive


Так, а если мне список документов нужно получить, то это POST /getDocuments ? Как-то непривычно. Удобно же со старым добрым :
GET /documents
GET /document/{id}


А если мне нужно сделать поиск (фильтрацию) документов по куче полей? Все их в url GET класть кажется плохой идеей.
Ответы GET запросов могут кэшироваться на промежуточных узлах, а зачем такой специфический запрос кэшировать? Да и ограничение на длину запроса может сработать.

Поэтому делают POST /documents/search
Это удобно и часто используется.

Так что с первой претензией разобрались, снимается 😊

Вернемся к глаголам.

🤔 Теоретически часть действий можно завернуть в статусы документа и вместо POST /document/{id}/approve делать:

PATCH /document/{id}
{
"status": "APPROVED"
}


Но не для всех операций сработает. Да и читаемость может сильно пострадать.

Есть гибридный подход, который работает с ресурсами и методами HTTP, но может иметь действия в URL и использовать POST для сложных запросов чтения.

Такой подход называют Pragmatic REST. Его главная цель — понятность и удобство. Pragmatic REST берет всё лучшее из REST, но позволяет отступить от строгих правил, если это необходимо для ясности и удобства ☺️

Скорее всего на вашем проекте используется именно он, даже если сам термин не применяется.

Разработчик с аналитиком в итоге пришли к консенсусу по этой задаче, заменив один из POST-ов на GET, а остальное оставив в первоначальном виде. Но это был не последний их спор.

Кстати, есть еще холиварный вопрос: по классике REST-подхода метод PUT используется для полного обновления ресурса, а PATCH для частичного. Но на многих проектах я встречала PUT для частичного обновления нескольких полей, и всем было ок. Голосуйте в опросе ниже, на чьей вы стороне 😃

Были ли у вас ситуации с дискуссиями вокруг разрабатываемого API?
Please open Telegram to view this post
VIEW IN TELEGRAM
​​Эволюция архитектуры баз данных

"Система управления базами данных — крайне сложный программный продукт, и рассказ о его архитектуре потянет на целый увесистый том. А поскольку заголовок обещает нам не просто «архитектуру», а даже «эволюцию архитектуры», сегодня остановимся на одном из компонентов, ключевом с точки зрения производительности, — системе хранения данных. А заодно посмотрим, каково место самых современных систем на рынке и почему оно такое."

Читать статью
Forwarded from РИСЕРЧОШНАЯ
4️⃣5️⃣6️⃣

Как WB сделал «Поиск по фото»

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

С точки зрения юзера схема супер простая: Заскринил — загрузил — выделил нужный объект — выбрал нужный товар. Кстати прикольно, что у нас есть OCR по объектам, я такого в других местах не встречал. Можно по одному фото сразу несколько вещей найти.

Под капотом там не просто CLIP, сначала YOLO вырезает объект, OCR снимает артикулы/текст, потом SigLIP-эмбеддинги улетают в векторный поиск Qdrant (HNSW). Товары лежат уже в эмбеддингах заранее.

Самое интересное — мультимодальная логика: поиск живёт не только в изображении. Фото обогащают тегами, которые заранее сгенерированы LLM офлайн по описаниям и визуальным признакам.

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

➡️ Почитать можно тут


Ставьте 🔥 огонек если пользуетесь поиском по фото

MADE IN
@researchoshnaya
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Artyom Zemlyak
Привет!
Хотел бы поделиться проектом:
https://github.com/ArtyomZemlyak/tg-note

Если кратко:
- агент автоматически обновляет базу знаний по сообщениям от пользователя
- агент по умолчанию это qwen code cli
- интерфейс это бот в телеге
- как базу знаний можно использовать репу GitHub

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

Может кому-то будет интересно.
Forwarded from Data Secrets
О, новый релиз от Андрея Карпаты

Это один из самых безумных репозиториев, которые я когда-либо писал


Сразу ссылка: github.com/karpathy/nanochat

nanochat – это что-то типа продолжения легендарного nanoGPT. Но если nanoGPT – это, по сути, только предобучение, то здесь у нас полностью готовый конвейер для обучения и инференса целого мини-клона ChatGPT.

В лучших традициях кода Карпаты – совсем немного строк (всего 8к) и минимальное количество зависимостей. Вы просто открываете проект на любом облачном GPU-сервере, запускаете один скрипт, и уже через 4 часа можете общаться с LLM-кой в собственном ChatGPT.

В пересчете на аренду GPU это будет стоить примерно 100 долларов. Если готовы потратить больше, то можно масштабировать и получать лучшие результаты.

Моя цель – собрать весь «сильный базовый» стек в один связный, минималистичный, читаемый и максимально форкаемый репозиторий. nanochat станет итоговым проектом LLM101n <мы об этом курсе писали тут>. Думаю, у него также есть потенциал стать исследовательским инструментом или бенчмарком, подобным ранее существовавшему nanoGPT.


Технические детали о том, что просходит внутри проекта, можно почитать здесь.

Огонь же?
Forwarded from Maxim.ML - канал
🔍 Что скрывается под капотом Perplexity?

Когда AI отказывается выполнить задачу, ссылаясь на "лимиты ресурсов", возникает вопрос: а что это за лимиты? Со мной случился как раз такой кейс.

Я решил выяснить, что происходит внутри Perplexity, когда он выполняет код. Попросил AI проанализировать собственные логи и окружение. И он буквально сам рассказал: "Я работаю в Docker-контейнере на Linux 6.1, у меня 2 CPU и 1GB RAM..." и далее выдал полную базу, вплоть до локации своего сервера (кстати, США, штат Орегон)

Perplexity использует E2B Sandbox - специализированную платформу для AI-агентов. Каждый ваш запрос с кодом запускается в контейнере.

🔵 Архитектура: FastAPI WebSocket Jupyter Kernel
🔵 Оптимизация: uvloop + orjson + httptools

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

GitHub Copilot, Replit, CodeSandbox - все используют похожие решения

Зная архитектуру подобных решений, можно:
🔜 Правильно использовать контекст
🔜 Оптимизировать запросы под систему (и манипулировать системой)
🔜 Понимать реальные ограничения и бизнес-логику

Понимание внутреннего устройства AI-систем становится критически важным навыком. Это не просто любопытство - это практический инструмент для более эффективной работы

📖 Полное исследование на Habr
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Руковожоп
Хочу уволить всех к херам 🔪

Сегодня обсуждаем вместе вопрос из анонимного инбокса Руковожопа

«Я пришла в новый проект выстраивать маркетинг.
Там уже есть команда, которая и по результатам, и по моему мнению работает плохо.
На первой же планёрке захотелось уволить всех к хренам,
но так нельзя — тогда вообще некому будет работать.
Как сберечь нервные клетки и при этом выстроить маркетинг здорового человека?»

У меня такое было: приходишь в новую команду и от бардака кровь из глаз, а люди в этом живут как в уютном доме 🤨

Но увольнять всех — реально нельзя, ни стратегически, ни этически.

Что делать:

🔴Не ставим диагнозы

Сначала смотрим, почему они работают плохо.
Иногда там не «ленивые дураки», а просто отсутствие системности и много руководителей, которые всё пускали на самотёк

🔴Ищем союзника

В идеале сильного — наш +1 или негласный лидер команды.
Тот человек, который хочет лучше.
С ним начинаем тянуть команду вверх, и постепенно к нему подтянутся остальные

🔴 Новым правилам — 👍,но не ломаем старые в ноль

Любая реформа без контекста воспринимается как агрессия.
Вместо «с завтрашнего дня всё по-новому» — идём в «давайте попробуем так, а потом решим, что лучше»
К этому моменту у нас должно быть на счету несколько маленьких побед, чтобы команда уже дала кредит доверия

🔴Шлюпки нет, используем дверь

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

🔴Крепко держимся друг за друга

Частая ошибка: видишь, что команда работает как из жопы и в болоте дна не разглядеть — отделяешься от всех максимально. Ни то обида, ни то злость 🔫

Вот здесь надо включить кота Леопольда и поддерживать изо всех сил команду: давать корректирующую обратную связь, подсвечивать проблемы и всячески показывать готовность решать это сообща

📌Сначала понять, потом структурировать и поддержать,
и только потом менять.

Любой другой порядок превратит из строителя в Руковожопа с бензопилой

Жду ваши мысли по теме и напоминаю, что вопрос можно задать тут, вы только пишите, это вопрос в зал или чисто 1+1 пощебечем?😘
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Agentic World
Привет! И еще один перевод феноменальной статьи, на этот раз про особенности архитектур открытых LLM. Картиночки у автора (с прекрасной фамилией Рашка) просто огненные. Максимально рекомендую полистать хотя бы просто для общего развития.

Там будет DeepSeek V3/R1, OLMo 2, Gemma 3, Mistral Small 3.1, Llama 4, Qwen3, SmolLM3, Kimi K2, GPT-OSS, Grok 2.5, GLM-4.5, Qwen3-Next.

https://habr.com/ru/articles/958880/