Интересное что-то
517 subscribers
2.72K photos
253 videos
138 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Coder Doesn’t Know
Как и договаривались!
История собеседования на Software Engineer в Meta. 😃
Там пошаговый процесс, подготовка и полезные лайфхаки - всё в Notion, если интересно 👀

Короткая ссылка: https://tinyurl.com/meta-swe-interview-2025

Оригинальная ссылка: https://diligent-path-faf.notion.site/Meta-SWE-2025-251511342c8680b38d99de8cc35655b2

P.S. Важно: эта история вымышлена. Все совпадения с реальными людьми, компаниями и процессами случайны.

#experience #faang #maang #bigtech #swe #meta #interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Anjela Petkova
Промпт для создания вирусных каруселей (в идеале положить его в инструкции проекта в claude)

Ты ассистент, который помогает создавать вирусные посты-карусели до 7 слайдов. Твоя задача построить удерживающую структуру, оформленную в формате карусели: 1 слайд = 1 мысль, с чёткой логикой, динамикой, смыслом и стилем живого автора.

Карусель — это способ захватить внимание, удержать интерес, передать идею и вызвать реакцию.

Хорошая карусель:
1. привлекает с первого слайда (крючок)
2. читатель листает дальше — сам, без усилий (эффект «скользкой горки»)
3. каждый слайд логично ведёт к следующему
4. в конце ясный вывод, озарение или действие

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

Какую реакцию мы хотим:
«Ого, это полезно» (→ сохранить)
«Чёрт, это про меня» (→ репост)
«Так, надо попробовать» (→ вовлечение)
«Хочу узнать больше» (→ переход к офферу / подписка / заявка)

Что нужно понимать:
Карусель — это структурированный, визуально простроенный контент, в котором:

1 слайд = 1 мысль
каждый свайп должен быть мотивирован («хочу узнать дальше»)
весь пост укладывается до 7 слайдов

Структура слайдов:
1-й слайд (обложка) — ОСОБАЯ СТРУКТУРА:
Состоит из:
Основной заголовок (крючок, 2-3 строки, до 80 символов)
Подзаголовок (пояснение/интрига, 1-2 строки)

Заголовок должен:
- вызывать реакцию («надо глянуть», «это про меня», «что за фигня?»)
- помещаться в 3 строки (не длиннее 80 символов)
- содержать крючок, вопрос, обещание или контраст

Примеры хороших первых слайдов и заголовков:

Заголовок: «Ты точно не пробовал хотя бы 1 из этих 3 промптов для нейронки»
Подзаголовок: «Хотя они реально упрощают работу с контентом»

Заголовок: Как сделать фотосессию в нейросети за 30 секунд как из Pinterest
Подзаголовок: Фото, которые выглядят как дорогая съёмка,
не выходя из дома

Заголовок: Как начать вести блог при помощи нейросети?
Подзаголовок: Если у тебя: ни продукта, ни подписчиков, ни идей. Вот пошаговый план с помощью ChatGPT.

2-7 слайды (контентные):
Каждый слайд состоит из двух частей:
1. Заголовок (1 строка)
- кликабельный, ёмкий, желательно с глаголом действия
- может быть вопросом, провокацией, парадоксом
- без сложных оборотов и воды

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

3. Эффект скользкой горки:
Хорошая карусель работает как эффект скользкой горки: пользователь свайпнул первый слайд и уже не может остановиться.

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

Мотивация к свайпу
Каждый слайд должен заканчиваться так, чтобы хотелось узнать продолжение:
- интрига
- незавершённая мысль
- обещание раскрыть что-то важное
- эмоциональный крючок

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

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

Сегодня я вам принес очередную люто-бешено заплюсованную хабрастатью, которая ставит под сомнение тезис «хороший человек – это не профессия» – https://habr.com/ru/companies/timeweb/articles/911428/

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

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

Встречался ли вам человек-клей? А может быть, это вы и есть? Делитесь своими историями в комментариях!
Сегодняшнее правило LLM-разработки сэкономит не только месяцы жизни, но и несчетное число нервных клеток. Мне точно сэкономило, хотя, может я просто нервный.

Правило 8. Сначала делайте прототип


Как делают обычно: придумали, как с помощь ИИ увеличить бизнес-метрику. И сразу пошли раздавать задачи инженерам: идите данные собирать да модели обучать. Чтобы метрика побольше стала.

Почему нельзя сразу в бой

1) В ИИ сложно спрогнозировать достижимость эффекта. Легко может оказаться, что текущими технологиями ваша задача не решается с нужным качеством. Но узнаете вы это спустя полгода, когда инженеры вам принесут модель.

2) В ИИ куча краевых случаев. Заранее прописать весь список в техническом задании невозможно. Но спустя полгода вы можете очень удивиться, что модель работает не так, как предполагалось.

Что такое прототип

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

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

Когда мы сделали прототип, мы переходим на следующий этап. Техническая команда, сохраняя его качество, снимает все другие ограничения. Например, ускоряет модели.

Как создать прототип по шагам

1) Выделенная команда. В ней точно должен быть продакт-менеджер, который понимает, что хочет, бекенд разработчик и специалист, который уже собирал ИИ-системы.

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

3) Метрики качества на тестовой выборке. Подробнее в прошлом правиле.

4) Итерации на этой выборке, которые максимизируют качество. Итерации вида:
- Взяли самые большие и дорогие модели.
- Провели анализ проблем по выборке. Записали их в эксельку
- Подумали, как это чинить. Покрутить промпт, разбить на подзадачи, добавить RAG и тд.

По этой методике реально собрать рабочий прототип за несколько недель.

Литература для обязательного изучения


- Статья известнейшего специалиста (моя), в ней про это раздел.

- Гайд по быстрым итерациями. Это все нужно использовать на прототипе.

Тема нераспиаренная, но очень важная, полезного контента мало. Если остались вопросы — пишите в комментарии или в личные сообщения.


#llm_system_design
Forwarded from max.sh
Подборка ресурсов для изучения RL в контексте LLM

Методы пост-тренировки — RLHF, GRPO, DPO и другие — очень быстро эволюционируют и становятся "повседневным" инструментом ML-инженеров. Это особенно заметно с появлением концепции верифицируемых ревордов (подробнее тут):
➡️провайдеры вроде OpenAI предлагают RL-файнтюн на ваших данных через API
➡️open-source стремительно наполняется библиотеками и рецептами
⚡️на интервью все чаще встречаются секции или вопросы посвященные RL (из того что вижу, как правило в рамках ML Design round, но бывает и в ML Breadth части).

Поэтому понимать инженерные аспекты и ключевые идеи (зачем нужен Reward Model, что такое Reward Hacking, почему используется KL в оптимизационной задаче) становится крайне актуально. Как в работе, так и на собеседованиях.

Собрал подборку материалов, чтобы плавно войти в тему. Исходил из того, что читатель не заком с RL (только базовым ML), материалы написаны простым языком, но со всеми формулами и ссылками на статьи, а авторы — уважаемые в сообществе исследователи.

Поехали:

1️⃣ Введение в RLHF в лонг-риде от Chip Huyen. Ссылка. Пост от 23 года, но лучшее введение по теме найти сложно. Все стадии подробно расписаны, после него уже можно браться за статьи.

2️⃣ Почитать про RL в действии на примере файн-тюна модели, которую учат писать эффективный GPU код. Блогпост
➡️ Посмотреть на все еще раз через примеры в интерактивном бесплатном мини-курсе Reinforcement Fine-Tuning LLMs With GRPO

3️⃣ Теперь готовы к более глубоким материалм и обоснованиям всех выкладок. Бесплатная онлайн-книга от Nathan Lambert (Research Scientist, Allen AI) - Reinforcement Learning from Human Feedback.
➡️ Пост был написан в целом ради пункта 3. На мой взгляд, найти более полный актуальный справочник сложно.
➡️В дополнение, если хочется посмотреть на другое изложение, прекрасный гид по широкому спектру LLM тем, включая все концепции RL на comfyai.app

4️⃣ К этому моменту скорее всего ключевые идеи RL тюнинга для LLM уже понятны. Дальше Есть несколько путей: a) идти читать статьи про свежие подходы. b) идти применять к своим задачам, то есть копаться в инженирии, но уже очень осознанно. c) углубиться в базовую теорию RL и прочувствовать все методы в общем виде (а не упрощенном).
➡️ Плейлист академических лекций курса David Silver из DeepMind из далекого 2015-го. Ссылка. От Марковсих процессов до Многоруких бандитов. Курс предполагает только знания матана и тер вера.
➡️ Перезапуск этого же курса от 2018 года с обновленным материалом и включением тем типа DQN (но курс уже не такой целостный, потому что лекции ведут разные авторы). Ссылка

5️⃣ Заканчиваем все книгой отца RL, Sutton-ом, и его Reinforcement Learning: An Introduction, второе издание. Ссылка


💬 Если есть интересные материалы, кидайте в комментарии, буду рад добавить/почитать

😀 Если откликается формат, буду рад огонькам и комментариям с идеями про что еще хотели бы почитать)

#образование
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Ars Poetica Numeralis
Методы декодирования LM "top-nσ sampling" и "NS-FH": код и сравнение

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

Top-nσ: Eliminating Noise in Logit Space for Robust Token Sampling of LLM

Lingxi: A Diversity-aware Chinese Modern Poetry Generation System

Обе статьи опубликованы на сайте ACL, прошли фильтр ревьюверов и содержат ряд утверждений касательно улучшения качества генерации для креативных текстов. Мне было интересно посмотреть, докинут ли они что-нибудь при генерации русскоязычной поэзии относительно реализованных в transformers алгоритмов, в частности top-p, min-p и epsilon-sampling.

Код для top-nσ sampling: top_nsigma_filter.py

Код для NS-FH: ns_flattened_head_sampling.py

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

Оценивать качество креативной генерации обычно непросто. Но для поэзии у меня есть весьма надежный инструмент - библиотека для расчета техничности RussianPoetryScansionTool. Техничность стихотворения включает в себя соответствие одному из классических поэтических метров и качество рифмовки. Ключевая идея тут в том, что эта метрика рассчитывается детерминированным и интерпретируемым образом, что позволяет объективно и воспроизводимо сравнивать генерации разных моделей или для разных настроек параметров декодирования.

Увы, результаты сравнения двух вышеуказанных алгоритмов не очень оптимистичные - они не дотягивают до того, что можно получить с помощью старого доброго нуклеуса, min-p или epsilon-sampling (он в топе, кстати). Фрагмент таблицы можно увидеть по ссылке.

С другой стороны, отставание не настолько велико, чтобы прямо "бу-у-у". Возможно, для китайского или английского языков они действительно докидывают в качество, особенно для длинных генераций.
Forwarded from Art, Design & AI (Lena Starkova)
Higgsfield добавили два мощных видеорежима – Draw-to-Video и Product-to-Video

1. Draw-to-Video
Теперь не нужно описывать сцену текстом – достаточно нарисовать движение:
• Загружаешь или генерируешь стартовое изображение (например, через Higgsfield Soul)
• В кадре рисуешь стрелки, нумеруешь события (1–2–3). Например, "мужчина идет", "машина проезжает"
• Можно вставить объект: напиток в руке или одежду прямо в кадре. Без промтов!
• Модель добавляет движение или смену. Как раскадровка, но оживающая
• Работает на Veo 3, MiniMax Hailuo 02 и Seedance Pro

2. Product-to-Video
Тот самый инструмент для брендов и e-commerce:
• Загружаешь фото товара, а AI оживляет его
• Можно вставить предмет в кадр, задать движение – быстрый способ сделать промо-ролик без съёмки

Лично я в восторге! Это не просто апдейт, а новый уровень визуального сторителлинга.

🔗 Запускаем по ссылке → https://higgsfield.ai/create/

Арт, дизайн и нейросети
@art_design_ai
#higgsfield@art_design_ai
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Где искать кейсы по GenAI

Кейс-библиотеки у OpenAI и других вендоров абсолютно ужасны. Типичный кейс – это расплывчатая задача, ноль техдеталей и восхваление соответствующего вендора. Можете сами посмотреть: OpenAI, AWS, Google.

Классные кейс-библиотеки
Evidently AI - удобная табличка-агрегатор с 652 кейсами с ссылками
GenAI & LLM System Design - мощная библиотека кейсов с тех деталями на базе Evidently AI, расширенная и выложенная на гитхаб
ZenML LLMOps Database - 800+ кейсов от разных компаний, собранных ZenML
LangChain Case Studies - вендорская небольшая библиотека кейсов про LangChain: хорошие, с подробностями

Не кейсошные, но тоже классно
Awesome LLM Apps - куча простых LLM-приложений с кодом
Deloitte AI Dossier / PDF - хороший список GenAI идей. Если хотите открыть новый бизнес в GenAI – есть где вдохновиться

Российские
Yandex Cloud: неплохая библиотека кейсов от Яндекса, есть детали. Нет фильтра по YandexGPT – фильтруем глазами
Generation AI: хорошая небольшая кейсошная от JustAI
Gigachat Cases: довольно слабая кейсошная от Сбера

Кидайте в комментах что ещё знаете!
Forwarded from Андрей Созыкин (Andrey Sozykin)
Интерфейс сокетов

Мы закончили рассмотрение протокола TCP и переходим к следующей теме. Разработчики не используют напрямую протоколы TCP или UDP для передачи данных через транспортный уровень. Для этого служит интерфейс транспортного уровня - сокеты.

Сокеты - это файлы специального вида. Все, что записывается в файлы, передается по сети, эти данные можно прочитать на другом устройстве. Но сама передача данных по сети скрыта от программиста.

Сокеты появились в операционной системе Berkeley UNIX 4.2 BSD в 1983 г. Сейчас сокеты Беркли - де-факто стандарт в работе с сокетами. В большинстве операционных систем и языков программирования используются операции из сокетов Беркли, иногда немного модифицированные.

В видео показан пример использования сокетов на Python. Примеры кода из презентации в репозитории на GitHub.

Если плохо работает YouTube, то можно смотреть в Дзен или VK.

Поддержать создание курса можно на Boosty или CloudTips.
Что такое гранулярность и как она влияет на производительность в ClickHouse?

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

Что такое гранула?

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

Думаю, вам уже известно, что первичный ключ в ClickHouse - это разреженный индекс. Он хранит не каждую строку, а только маркер на начало каждой гранулы.
✔️При запросе с условием по первичному ключу ClickHouse быстро находит границы гранул, которые могут содержать нужные данные (используя индекс).
✔️Затем считывает и десериализует только эти гранулы (блоки данных) целиком, а не сканирует всю таблицу.


Индексная гранулярность - количество строк в одной грануле, которое определяет, как часто создаются индексные метки (marks).

По умолчанию размер гранулы (`index_granularity`) равен 8192 строк.


Почему размер гранул критичен?

ClickHouse всегда читает целые гранулы в память, поэтому их размер напрямую влияет на производительность.

🟣Маленькие гранулы
Проблема: слишком много индексных меток, следовательно, разрастается размер индекса, медленный поиск нужных гранул ➡️ долгие range queries и агрегация из-за обработки множества мелких кусков.

🟣Крупные гранулы
Проблема: читаем в память гигабайты данных для поиска одной записи ➡️ нехватка памяти (ООМ), медленные точечные запросы, перегрузка I/O.

Проблема фиксированной гранулярности

Например, у вас есть таблица с JSON-полями (размер строки ±50 КБ). При index_granularity=8192 одна гранула будет весить:
8192 × 50 КБ = 409 МБ
Запрос WHERE user_id = 123 вынужден читать целый 409 МБ блок для одной строки. Неэффективно🥴


Clickhouse решили эту проблему внедрением адаптивной гранулярности индексов (с v19.11): система автоматически регулирует размер гранул в байтах (не строках):
◀️Контролируется настройкой index_granularity_bytes (дефолт = 10 МБ)
◀️Адаптация включается через adaptive_index_granularity (дефолт = 1)

Как это работает?

🟣При вставке данных ClickHouse формирует гранулы так, чтобы их размер ≤ index_granularity_bytes
🟣Для мелких строк (100 Б) гранула будет содержать 10 МБ / 100 Б = ~100К строк. Следовательно, гранула может содержать больше стандартных 8192 строк.
🟣Для крупных строк (50 КБ) - грунула будет содержать меньше строк, всего 10 МБ / 50 КБ = 200 строк.

Что в итоге?

Как правило, в большинстве случаев рекомендуют оставлять адаптивную гранулярность включенной. Отключать стоит только в специфических сценариях, типа: частые мелкие вставки, небольшие объемы данных.

Источники:
➡️Практическое введение в первичные индексы | ClickHouse Docs
➡️Доклад с конференции Яндекса 2019: Адаптивная гранулярность индекса в MergeTree таблицах | YouTube

© что-то на инженерном
Please open Telegram to view this post
VIEW IN TELEGRAM