Интересное что-то
517 subscribers
2.72K photos
253 videos
139 files
4.52K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
https://streammydata.ru/otkryvaya-mir-cepej-markova-ponimanie-i-primenenie-v-atribucii/

Статья по цепям Маркова, по которой мы с моим CTO делали проект по скриптам, считающим коэфы Маркова для каждого месяца активности пользователей в году.

Очень будет полезна маркетинговым аналитикам.

Эта статья даст базу для цепей Маркова и у вас после нее уже будут результаты и какие-то коэффициенты, что круто, научитесь считать в питоне их.

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

Слишком много подсказывать не буду, NDA вся фигня😎

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

В Паттерне 4 мы поняли, насколько важно использовать контекст в LLM-системе.
Сейчас давайте разберемся, как это можно делать. Все эти правила прекрасно изложены в статье.

1) Запись во внешнюю память

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

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

2) Выбор нужного из внешней памяти

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

- Если память маленькая, можно прочитать ее всю

- Можно размечать тегами разные участки памяти, например "error" для ошибок, и дальше искать по тегам

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

3) Суммаризация

Часто информации настолько много, что ее проще хранить/использовать в сжатом виде. Обычно делают так: если токенов > X, тогда отдельный LLM-call суммаризует последнюю историю. Это позволяет свежую информацию хранить полностью, а старую уже менее детально.

Так делает Google со своим Gemini, когда агент играет в Покемонов (я кстати в жизни ни разу не играл, расскажите, как оно?).

4) Разделение контекста

В мультиагентских системах разумно иметь изолированные контексты разных LLM. У них могут быть свои задачи/тулы/история.

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

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

Нудное послесловие

Разработка крутых LLM-систем это всегда про эксперименты и креатив. Я запрещаю зацикливаться на простых решениях, типа, пихаем в контекст все. Или фиганем эмбеддинги, FAISS потом разберется. Позаботьтесь о себе и о вашей LLM.

Как обычно, рад вопросам по теме в комментариях. Если нужно разобрать ваш кейс — можно в личные сообщения.
Forwarded from Data Blog
🦑 Привет, друзья!

Меня не было тут почти месяц, хотя я не прекращала работать. Или пытаться это делать. В последнее время думаю о выборе магистратуры, учу математику и пытаюсь допинать статью. Думаю ещё, чем точечно в интерпретируемости хочу заниматься и куда хочу идти.

Думать сложно, но я пытаюсь.

Вернуться хотелось как-то красиво, поэтому я с новым туториалом: LIME for Time Series Data.

LIME (Local Interpretable Model-Agnostic Explanations) — популярный модет в решении задачи интерпретации. Он основан на простой идее — приблизить прогнозы сложного оценщика (например, нейронной сети) простым — обычно линейной/логистической регрессией.

Применить LIME можно из коробки при помощи одноименной библиотеки [lime]. Однако, при применении LIME к, в частности, к временным рядам возникают особенности,
поэтому в чистом виде lime для TimeSeries не всегда легко применить.

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

Как всегда, вместе с Хабропостом, код на гитхаб.

Скучала, и надеюсь вернуться из творческого кризиса,
Ваш Дата-автор! ❤️
Forwarded from с нуля до 1%
Всю неделю сижу, вайбкодингом через телеграм-бота занимаюсь. И понимаю — когда у тебя 3-4 проекта параллельно, в телеге начинается полная жесть.

Прыгаешь между чатами, теряешь контекст. А главное — вообще не видно что там агент творит.

Короче, нашёл веб-интерфейс для Claude Code.

Это просто космос.

Открываешь с телефона — и сразу видишь ВСЕ проекты на одном экране. Тапнул — и понятно что происходит. Никакой возни с чатами.

Но самое дикое даже не это.

Видишь в реалтайме что агент делает. Прям вот пишет "Using TodoWrite", "Updating files". Если что-то сломалось — сразу понятно на каком этапе.

Git прямо в интерфейсе. Какие файлы поменялись, диффы — всё под рукой. Когда сидишь в кафе с айфона — это спасение.

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

Кстати, прикольный момент заметил.

Когда видишь как агент работает, начинаешь понимать его логику. Смотришь — а, он сначала структуру чекает, потом план составляет, и только потом кодит. Реально помогает понять как AI мыслит.

Телеграм-бот оставляю для быстрых фиксов голосом. Идёшь по улице, надиктовал — готово. А когда нужен контроль и работа с несколькими проектами — веб рулит.

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

Следите за каналом — скоро выложу 🚀
Forwarded from EasyData
Привет, друзья!

Сегодня поговорим про Numba - инструмент, который превращает обычный Python-код в "почти C" по скорости🏃‍♂️

Numba - это JIT-компилятор (Just-In-Time) для Python. Если вкратце, то он анализирует функции и компилирует их в машинный код прямо во время исполнения. То есть, вместо интерпретируемого Python код исполняется как скомпилированный.

Воспользоваться возможностями Numba крайне легко - нужно просто добавить декоратор @njit к функции, и всё! 🧑‍💻

@njit
def sigmoid_numba(x):
return 1 / (1 + np.exp(-x))


Но пара нюансов всё же есть:
➡️ Во-первых, не все операции могут быть ускорены таким способом. Общий рецепт таков: "чем проще и численно интенсивнее функция, тем лучше". Вот несколько типичных примеров, которые хороши для Numba:
1. численные циклы (циклы for, while)
2. операции с массивами numpy
3. алгоритмы оптимизации, матричные вычисления
4. генерация чисел и математические функции (sin, exp, sqrt, и т.д.)
5. фильтрация, агрегация и другие различные манипуляции над массивами
6. простые симуляции (например, метод Монте-Карло)

➡️ А во-вторых, при первом запуске функция с Numba может работать даже медленнее обычной Python-версии🙂 Всё потому, что в первый раз Numba не просто выполняет код, а сначала компилирует его в машинный код - и это занимает время. Но уже со второго вызова скомпилированный вариант готов и работает в разы быстрее, как настоящий нативный код.

А насколько быстрым получается код с добавлением Numba - смотрите на скринах:) Замеры проведены на втором запуске😉

Документация библиотеки +:
➡️ с список Python-операций, которые могут быть ускорены
➡️ с аналогичный список для Numpy-функций

Хорошей недели и гармоничных распределений! ☀️

#python@data_easy
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Хотел было написать пост про EAGLE 1/2/3 и сделать их для Сайги, но уже успел настрадаться.

EAGLE — метод спекулятивной генерации типа Медузы, но с однослойным декодером вместо независимых голов.

Полноценный пост про него будет, когда (если) всё получится.

А пока нетривиальные факты:
- Есть 2 популярных репо, оригинальный (https://github.com/SafeAILab/EAGLE) и фанатский через HF Trainer (https://github.com/NickL77/BaldEagle). Связано это с тем, что оригинальный репозиторий — чёртова исследовательская китайская хтонь. Но для EAGLE 3 всё равно пришлось её допинывать, потому что фанатский репо EAGLE 3 не поддерживает (естественно). И даже в отдельной ветке оно сломано.
- EAGLE-1 поддерживается и в sglang, и в vllm без ограничения на семейства моделей. У vllm есть только одно нетривиальное требование: размерности KV кэша для модели и черновика должны совпадать. Если модель Мистраль, а черновик Ллама — придётся высчитывать правильный head_dim. Что-то кроме Лламы в качестве черновика не рассматривается, потому что не поддерживается почти нигде.
- EAGLE-2 не поддерживается в vllm, но поддерживается в sglang. Но пока что ни один из моих тестов не дал никакого профита по сравнению с EAGLE-1.
- EAGLE-3 на бумаге поддерживается в vllm и sglang, но по факту поддерживается только для Лламы. Плюс для Квена в sglang. Связано это с тем, что там используются активации не только с последнего слоя, а и с промежуточных тоже, и из-за этого движкам нужно патчить оригинальные модели. По одной, лол.

Первый EAGLE у меня завёлся из фанатского репо и дал что-то типа x1.3 прироста к скорости (22с -> 17с request time p50 для 1000 разных запросов), что вообще-то дерьмовенько, но уже лучше, чем ничего. Рейты: (0.59, 0.21, 0.05).

Короче, если вы делаете EAGLE не для Лламы — вы будете страдать.
А вот и слайды.
Небольшой обзор по эффективному обучению и релевантным тематикам для студентов с летней школы.

В начале прикладные материалы + материалы для начинающих.
Для тех кто много знает - в конце начинается более инфровая часть и технические репорты.

На многих слайдах внизу есть ссылки на статьи/технические блоги.
📹 Топ-15 технических YouTube-каналов для изучения ИИ с нуля:

1) Andrej Karpathy — сочетание общего и технического контента, плейлист "Zero to Hero" обязателен к просмотру

2) Uproger — доступные уроки по программированию и ИИ, идеально для начинающих и тех, кто хочет углубить свои знания.

3) Umar Jamil — технический блог, где автор реализует методы ML и LLM с нуля

4) Simon Oz — технические видео по низкоуровневому машинному обучению

5) Tunadorable — отличные обзоры научных статей, реализация

6) GPU Mode — технические интервью и разборы всего, что связано с GPU

7) AI Jason — эксперименты с ИИ, дизайн ПО и новые модели, с понятным и полным разбором.

8) Ferdinand Mom — всё о распределённом обучении и выводах

9) Welch Labs — уникальный глубокий взгляд на комплексность алгоритмов машинного обучения.

10) Artem Kirsanov — нейронаука и машинное обучение с необычного авторского взгляда + отличная визуализация контента.

11) David Ondrej — новые модели, создание приложений с ИИ, практично для разработчиков https://t.co/BEOr0MgHag @DavidOndrej1

12) 3Blue1Brown
Потрясающие визуализации, которые делают абстрактные математические концепции понятными и интуитивными.

13) Lex Fridman
Глубокие беседы с лидерами индустрии ИИ, позволяющие получить широкий взгляд на современные тенденции.

14) Machine Learning Street Talk
Технические погружения и обсуждения с ведущими исследователями в области ИИ и машинного обучения.
Ссылка:

15) StatQuest with Joshua Starmer PhD
Доступные и понятные объяснения основ машинного обучения и статистики для начинающих.

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

Если знаете ещё каналы, дайте пишите в комментариях!

@machinelearning_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Start Career in DS
🐶 Твой будущий пет-проект поэтапно, ч. 1: откуда взять идею и данные

У Andrey Karpathy есть такой твит:
How to become expert at thing:
1 iteratively take on concrete projects and accomplish them depth wise, learning “on demand” (ie don’t learn bottom up breadth wise)
2 teach/summarize everything you learn in your own words
3 only compare yourself to younger you, never to others

, в котором ясно сказано, что, чтобы по-настоящему «зашарить в теме», нужно взять проект и усердно работать над ним

Pet-project - это небольшой личный проект в любой отрасли для портфолио и/или собственного удовольствия.


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

# Идея
– Если идей нет, то участвуйте во всяких хакатонах (можно посмотреть актуальные на сайте хакатоны.рус или ods.ai) и kaggle-чемпионатах
– Не думайте, берите и делайте! У ODS 25 июля стартует хакатон, в котором команды вайбкодят пет-проекты – найти себе единомышленников можно в их чате @ods_pet_projects, зарегистрироваться можно в форме до 24 июля, а посмотреть проекты прошлых лет можно тут
– Очень важно, чтобы идея резонировала с вами. Вместо того, чтобы брать скучную идею, лучше подольше подумать над ней
– Чтобы найти такую идею, можно обратиться к ChatGPT/Perplexity, рассказать им свои интересы и увлечения, и с какой-то вероятностью вы получите что-то действительно годное
– Копировать чужую идею – норм. Если вам что-то интересно, но это уже существует, ничего страшного, как минимум вы разберетесь в том, как это работает подробнее, как максимум – сделаете лучше

# Данные
Можно чуть заморочиться и тянуть данные через api (например, у HeadHunter), но мы собрали супер-подборку, откуда можно напрямую скачать годные данные в удобном формате:
Kaggle Datasets: датасеты на любой вкус, многие из которых уже стали классикой ML-жанра
Google Dataset: поможет найти необходимый датасет и подскажет, где и в каком формате можно скачать
Исследования 2ГИС: содержит стату по сферам экономики в городах России, удобно экспортируется в Excel
Google Trends: отличный вариант, если хочется поисследовать популярность чего-либо. Можно выгрузить динамику популярности, популярность по субрегионам, "еще по теме" и похожие запросы в формате csv.
Датасет с отзывами на Яндекс картах: хороший вариант потренироваться в NLP
BI Portal Росстата: собранная статистика по РФ и агрегированные датасетов, которые можно экспортировать в Excel или CSV

А еще нашли для вас годную репу на гитхабе со сборником PET-проектов по DS. Советуем сначала посмотреть идеи, оформления и лучшие практики там, перед тем как начать делать свой проект. Насмотренность порождает качество!

Ставьте 🔥, и пишите в комментарии самые абсурдные идеи для пет проектов)
Как только пост наберет больше 50 огонечков, дропаем следующую часть