Интересное что-то
517 subscribers
2.72K photos
253 videos
140 files
4.53K links
Материалы и мысли, понадерганные отовсюду
Блог: https://t.me/asisakov_channel
Чат: https://t.me/youknowds_chat
Download Telegram
Forwarded from Aspiring Data Science (Anatoly Alekseev)
#hpt #hpo #landmarking #multifidelity

Оказывается, всё уже изобретено до нас.

Landmarking in machine learning is a meta-learning technique that evaluates the performance of simple, computationally inexpensive models (called landmarkers) on a given dataset to extract useful meta-features. These meta-features can then be used to guide model selection, hyperparameter tuning, or other meta-learning tasks.

Key Ideas Behind Landmarking:

Using Simple Models: Instead of training complex models on a dataset, landmarking quickly evaluates the performance of basic classifiers or regressors (e.g., decision stumps, k-nearest neighbors with k=1, Naive Bayes).
Extracting Meta-Features: The accuracy, F1-score, or other performance metrics of these landmarkers act as meta-features that describe the dataset’s properties.
Guiding Model Selection: If a simple model performs well, it may indicate that more complex models of the same type will work well too. For example, if a 1-NN classifier performs well, then SVMs or Random Forests might also be suitable.


Example:

Suppose you have a new dataset and want to determine whether a neural network or a tree-based model would work best.
You could train a decision stump (a tree with one split) and a 1-nearest neighbor classifier.
If the decision stump performs well, this suggests that the dataset has simple, rule-based decision boundaries, making tree-based models a good choice.

Pros & Cons:

Fast & Low-Cost: Landmarking is computationally cheap compared to training complex models.
Useful for Cold Start Problems: Helps when no prior knowledge about dataset properties is available.
Limited Predictive Power: Landmarkers are simple models and may not always capture dataset complexity well.
Scalability Issues: The choice of landmarkers needs to be carefully designed for different types of datasets.

Landmarking and multi-fidelity methods are related but not synonyms. They both aim to reduce computation in machine learning, but they serve different purposes:

Landmarking (Meta-Learning Technique)

Landmarking is a meta-learning approach that uses the performance of simple models (landmarkers) to infer the difficulty of a dataset.
It is mainly used for model selection and meta-feature extraction.
Example: Training a 1-Nearest Neighbor model or a Decision Stump and using their accuracy as a meta-feature to predict which complex model will work best.

Multi-Fidelity (Optimization & Surrogate Modeling)

Multi-fidelity methods aim to speed up optimization by using low-fidelity approximations before running expensive high-fidelity computations.
It is used in hyperparameter optimization, Bayesian optimization, and neural architecture search (NAS).
Example: Instead of training a deep neural network for 100 epochs, a multi-fidelity approach might first evaluate it on 10 epochs to estimate its final performance.

In some cases, landmarking can be seen as a type of multi-fidelity method if we view simple models as low-fidelity approximations of complex models. However, multi-fidelity methods usually involve explicit modeling of the tradeoff between low- and high-fidelity evaluations, while landmarking is more heuristic.


In the selection process, we can use either the landmarkers’ absolute accuracy measures or the relationship of the landmarkers’ accuracy relative to each other (Fürnkranz and Petrak 2001). Often, a landmarker’s accuracy cannot represent the original algorithm’s accuracy well, causing a less effective algorithm to be selected. Sampling-based landmark (Petrak 2000; Fürnkranz and Petrak 2001; Soares et al. 2001) is another method for automatically selecting machine learning algorithms. To quickly obtain a rough estimate of each algorithm’s accuracy on a data set, the method applies the algorithm on a sample of the data set. The accuracy estimates are used to select the algorithm to be used on the whole data set.
Forwarded from Dealer.AI
От RStaR до DeepSeek и обратно. Или краткий обзор, а че это ваще было!?

Итак, deepseek наделало много шума. Но давайте бегло пройдемся в стиле "а чей-то вообще было?". Для начала, если взглянуть в архитектуру, то можно увидеть наследие llama, присыпанное МоЕ слоями. Это "чудо генной МоЕ инженерии" далее учили интересным образом. Первое это, разумеется pretrain. Однако после, мы видим, что для zero поколения не используют SFT стадию, а сразу переходят к RL.

Все знакомые задаются вопросом:
- "Почему без sft?".
При этом на просторах паутины всплывает статья. В ней описываются эксперимент, как влияет на генерализацию и др. способности после претрейна этапы sft и rl обучения моделей.
Если кратко, выводы такие, что sft работает лучше на запоминание паттернов, а rl лучше способствует ризонингу и генерализации на "новых задачах". Поясню. Т.е. sft надо включать тогда, когда хочется сделать domain adoptation и все. Ну а если вам хочется работать лучше на "неожиданных" out of fold примерах, лучше юзать rl.
Но, на взгляд Дяди, никто не запрещает микстить оба подхода. Еще замечу, что интуитивно мне понятно почему rl способствует большей "свободе" в ориентации по задачам. Сама постановка обучения с подкреплением - это работа с большей вариативностью исходов, которые обеспечивает среда, она может порождать больше примеров, чем рукописная выборка, а значит на этапе тюна мы увидим больше вариантов развития событий. Модель засчет награды научится эти варианты обрабатывать, улучшится ризонинг, планинг и тп.
Почитать выжимку также можно у коллеги тут.

Про no model rl. Еще один плюс подхода заключается в том, что в zero сетапе нет внешней модели, в качестве среды для grpo у нас выступают правила и компилятор. Тк задачи имеют точный итоговый ответ, то с ним можно сравниться по заданным критериям, а если это код использовать селф-дебаг и компилятор. Привет, к примеру RStaR. А еще это даёт возможность уйти от взлома reward модели, например, через oov примеры (модель награды не видела всех исходов).

Однако, для дальнейших стадий обучения авторы прибегнут и к внешней модели награды и к RLAIF подходу, и, конечно, будут делать sft, перемежая его с rl grpo. А все из-за "проблемы" с мультиязыком и как решить эти переходы во время рассуждений модели. В том числе, для этого, как пишут авторы, были добавлены стадии сфт и тп. Но у нас сложность интерпретации падает не только из-за мультияза, но и еще из-за LongCoT цепочек, как артефакта rl. Кстати, длинные рассуждения это артефакт взаимодействия rl обучения и thinking токенов - тут это формат, где мы указываем откуда начинать и где закончить блок рассуждений. И этот формат также проверяется в no model reward. Дядя бы и туда проверку на стабильность языка добавил, мол доля токенов целевого языка бы мерилась к нецелевой и добавлялась в награду.

Переход от zero к hero (zero deepseek r1 vs deepseek r1). Итого мы получаем, что на первом этапе модель учится в сетапе: pretrain+thinking area/tokens + rl. Так получается zero R1. После используется sft+rl+rlaif дообучение. Здесь нужно пояснение. Процесс обучения второй стадии начинается с холодного старта. DeepSeek v3 тюнят на рафинированном датасете, который просеян через Zero-R1 — отобранные high quality примеры. Так подтягивают читаемость. Далее проходит этап RL для улучшения ризонинга. Потом снова, используя модель со второго этапа и отбирают лучшие варианты из обучающей выборки (состоит в основном из рассуждений) + используют некую reward модель, о которой упоминается вскольз (но тоже на базе DeepSeek.v3), такой вот rejection sampling. Наконец, делают последний rl тюн на rule based награде и сете из разнообразных задач, тут же включают RLAIF подход для выравнивания. Такой длинный пайп, снова роднит нас, на мой взгляд с RStaR подходом обучения. Там тоже были схожие стадии просеивания и самоулучшения.

Далее 👇👇👇👇👇
Forwarded from Dealer.AI
Продолжение и окончание...

Про сходимость. Why ранее делали rl и не работало , а тут стало? Есть гипотеза, что сработал сетевой эффект, когда хайп породил в публичных источниках кучу новых данных с оценками для целевых задач: код, математика и пр. Те синта, датка с соревок на каггле и тп, новые открытые сеты и тп. И достигнута такая критическая масса разнообразных примеров, что их стало хватать для дообучения с rl. Но это так сказать версия из той же "сети". Поэтому не судите строго.

На этом все. Пишите, что вы также приметили в техрепорте интересного, ведь, это один из немногих случаев, когда перечитываешь и отмечаешь что-то новое.
Топ-10 проблем с рекомендациями: Уровень Senior 🍅

На этом уровне уже понимаешь, что качество рекомендаций измеряется не метриками рекомендаций (про них раз , два ) 😅
А метриками покупателей, продавцов и бизнеса. И главная проблема: научиться рекомендациями растить именно эти метрики, а не что-то еще. Далее буду очень краток, иначе все не влезет в один пост

Метрики покупателей
«Хочу удобно и быстро выбрать товар по хорошей цене»
- Факт выбора: конверсия из показа рек в покупку/корзину
- Быстро: время на совершение покупки. В доставке измеряют даже click2eat - время от открытия приложения до начала ужина 🍴
- Удобно: мерить сложно. Неплохо начать хотя бы с использования фильтров/подсказок + рост конверсии за ними vs без них
- По хорошей цене: можно мерить цену покупки vs рынок
- Это все может не отражать «счастье покупателя». Не верьте до конца метрикам выше и тем более NPS. Тут поможет Retention

Метрики продавцов
«Хочу продать как можно больше по максимально возможной цене и получить прибыль»
- Продать побольше: доля продавцов с > N продаж в неделю. Обычно если сервис несет мало заказов продавцу, то он легко может и уйти с этого сервиса
- Приятность цены для продавца и прибыль вы скорее всего не измерите. Но если с ним все Ок, то продавец останется с вами (Retention) и будет активничать на платформе (Доля продавцов с новым ассортиментом, отвечающих на отзывы, … - включите фантазию)

P.S. Продавцами могут быть не только продавцы товаров, но и продавцы своих услуг (мастер на час, курьер, …). Тут вы можете знать больше о их заработке через ваш продукт - можете считать их метрики прибыльности

Метрики бизнеса
«Хотим захватить рынок -> Вырастить капитализацию -> Получить побольше прибыли -> Удержать прибыльную нишу» 🎯

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

Захватить рынок - DAU, MAU, Retention. Кто-то любит мерить долю рынка не в людях, а в обороте денег - тогда мерим Выручку/GMV

Вырастить капитализацию - обычно это рост Выручки при прибыльности > X%. Часто > -Х%. Да-да, вспомните убыточные десятилетиями uber и amazon

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

Удержать прибыльную нишу - Retention пользователей в этой нише. Классный пример - Apple. 20% от обьема продаж на рынке смартфонов/ноутов дают им порядка 50% прибыли этого рынка

——————————————-
После осознания и расчета настоящих метрик рекомендаций начинается долгий и болезненный путь поиска связи оффлайн мл-метрик с ними. Путь этот можно пройти разными тропками:
- Строить корреляции и регрессии на оффлайн данных
- Пробовать найти взаимосвязи через множество АВ
- Внедрять RL
- Разделить продукт на разные по целевым метрикам рекомендательные блоки и развивать их почти независимо
- Построить стройную логику и просто верить ей

Выбирайте ваш путь сами, но помните: «просто верить» ведет в бездну разочарования ☝️
Please open Telegram to view this post
VIEW IN TELEGRAM
Models Demystified
A Practical Guide from Linear Regression to Deep Learning
by Michael Clark & Seth Berry

This book is designed to guide readers on a comprehensive journey into the world of data science and modeling. For those just beginning their exploration, it offers:
- A solid foundation in the basics of modeling, presented from a practical and accessible perspective.
- A versatile toolkit of models and concepts that can be immediately applied to real-world problems.
- A balanced approach that integrates both statistical and machine learning methodologies.

For readers already experienced in modeling, the book provides:
- Deeper context and insights into familiar models.
- An introduction to new and advanced models that expand your knowledge.
- Enhanced understanding of how to select the most appropriate model for a given task and where to focus your efforts.

Above all, this book aims to highlight the common threads that connect different models, offering readers a clear and intuitive understanding of how they function and interrelate. Whether you're a beginner or a seasoned practitioner, this resource is crafted to deepen your expertise and broaden your perspective on the art and science of modeling.

Table of contents:

Preface
1  Introduction
2  Thinking About Models
3  The Foundation
4  Understanding the Model
5  Understanding the Features
6  Model Estimation and Optimization
7  Estimating Uncertainty
8  Generalized Linear Models
9  Extending the Linear Model
10  Core Concepts in Machine Learning
11  Common Models in Machine Learning
12  Extending Machine Learning
13  Causal Modeling
14  Dealing with Data
15  Danger Zone
16  Parting Thoughts

Link: Site

Navigational hashtags: #armknowledgesharing #armbooks #armsites
General hashtags: #ml #machinelearning #r #python #linear #metrics #featureengineering #optimization #mle #glm #dl #deeplearning

@data_science_weekly
Forwarded from Душный NLP
Интересные решения из технического отчёта DeepSeek-V3 — часть II

Продолжаем разбираться, как устроена DeepSeek-V3, изучая технический отчёт её создателей. В первой части речь шла о MLA и MoE, а сегодня поговорим о предсказании токенов и квантизации. Ну и, наконец, коснёмся результатов на бенчмарках

MTP

Метод Multi-Token Prediction (MTP) предполагает предсказание сразу нескольких токенов на этапе претрейна. В MTP эмбеддинг после всех трансформерных слоёв и перед выходной головой отправляется в дополнительный трансформерный блок (первое изображение).

Через линейную проекцию формируется новое представление, которое затем обрабатывается этим дополнительным блоком, эквивалентным по архитектуре стандартным слоям трансформера. Итоговое представление используется для предсказания сразу нескольких токенов.

Pipeline parallelism

Pipeline parallelism — это метод распределения работы модели, при котором разные слои исполняются на разных устройствах. Такой подход позволяет увеличивать количество шагов аккумуляции градиентов, уменьшая суммарное число коммуникаций. Однако при pipeline parallelism образуются «пузыри» — это периоды времени, когда устройства простаивают в ожидании данных от других устройств.

В решении этой проблемы создатели DeepSeek-V3 ссылаются на статью Zero Bubble. Её идея состоит в разбивании backward на два шага: на ту часть, которая считает сквозные градиенты, и отдельно градиенты на веса. Это полностью решает проблему «пузырей» в случаях, если количество шагов аккумуляции градиента в два раза больше пайплайна. Однако остаётся проблема коммуникаций — простои могут возникать, например, когда одно устройство передаёт другому активации со слоя на слой. Кроме того, в этом методе нужно хранить достаточно много промежуточных градиентов для вычисления градиента по весам.

В DeepSeek изобрели метод DualPipe (второе изображение). Каждый фрагмент forward и backward делится на четыре части: attention, all-to-all dispatch, MLP и all-to-all combine. Кроме того, вводится компонент коммуникации в рамках pipeline parallelism (PP communication). Создатели меняют местами эти части и вручную регулируют, сколько ресурсов GPU выделять на коммуникации и вычисления. Микробатчи при этом подаются с обоих концов пайплайна одновременно. Всё это позволяет минимизировать задержки, перекрывая коммуникации с вычислениями. «Пузыри» всё равно остаются, но, как отмечают в DeepSeek, они несущественны.

FP8-квантизация

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

Чтобы справиться с выбросами, создатели DeepSeek-V3 применяли блочную квантизацию. Для весов брались блоки 128x128 — и для каждого такого блока вычислялся свой скейл. А для активаций размер блока составлял 1x128, чтобы выбросы, если они происходят, затрагивали лишь небольшую часть активаций.

Разработчики также выяснили, что GEMM, реализованная на H800, аккумулирует результаты матричного умножения во что-то близкое к 14 битам, хотя должно быть 32 бита. Из-за этого одно матричное умножение может приводить к ошибке в 2%. Нехватку точности вручную добавляли к обычному FP32-регистру.

Итог

Благодаря всем сделанным разработчиками трюкам DeepSeek-V3 показывает отличные результаты в бенчмарках (третье изображение). На MMLU модель получает 88,5 процентных пункта, проигрывая лишь Llama 3.1 на 405B с 88,6 пп. На математических задачах (MATH-500, AIME 2024, CNMO 2024) DeepSeek — абсолютный лидер. В части программирования модель незначительно уступает Claude-3.5. Таким образом, DeepSeek-V3 — это одна из лучших опенсорсных моделей прямо сейчас.

Разбор подготовил Михаил Хрущев

Душный NLP
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Quant Researcher
Ответы ЕГЭ 2025 Advances in Financial Machine Learning

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

📌 Почему это важно?

- Даёт структурированную базу для разработки и тестирования стратегий

- Покрывает ключевые темы: тройные барьеры, размер позиции, фильтры, фичи для ML

🛠 Cтек:

- Python 3.7.4, numpy 1.17.3, scipy 1.3.1, numba 0.49.1

- pandas 1.0.3, matplotlib 3.1.1, sklearn 0.23.1, statsmodels 0.10.1

🔹 Бонус: Автор приложил скрипт для генерации синтетических данных — если будет нужно ЭЙЧЕЙФТИ.

📜 “Каждая успешная стратегия всегда подкреплена либо теорией, либо результатами. Одно ведёт к другому.”

Quant Researcher
Forwarded from Tensor Banana
Yue-7b - генерируем песни на русском локально

Языки: английский, китайский, японский, корейский, русский (с акцентом).
генерация:
- по жанру + тексту песни
- по референсному аудио + жанру + тексту песни (почти кавер, позволяет задать нужное направление)
- в fp16 весит 12.5 GB. в формате nf4 занимает всего 6.5 GB vram!
- на русском лучше генерирует мужской голос. В женских - сильный акцент.

## Установка под Windows (без wsl)

Нужны
- питон 3.9 (3.8 не подойдет для flash-attention)
- torch 2.5.1 (flash-attention скомпилирован лишь для нескольких версий торча)
- cuda toolkit 12.4+

conda create -n yue python=3.9
conda activate yue
pip install torch==2.5.1 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

качаем файл flash_attn-2.7.1.post1+cu124torch2.5.1cxx11abiFALSE-cp39-cp39-win_amd64.whl
отсюда https://github.com/bdashore3/flash-attention/releases в папку, куда у вас идет установка
pip install flash_attn-2.7.1.post1+cu124torch2.5.1cxx11abiFALSE-cp39-cp39-win_amd64.whl

git lfs install
git clone https://github.com/multimodal-art-projection/YuE
cd YuE
pip install -r requirements.txt

cd inference/
git clone https://huggingface.co/m-a-p/xcodec_mini_infer


## Фиксим поддержку русского языка в UTF8
строку 120: with open(args.genre_txt) as f:
меняем на: with open(args.genre_txt, encoding="utf-8") as f:

строку 122: with open(args.lyrics_txt) as f:
меняем на: with open(args.lyrics_txt, encoding="utf-8") as f:


## Генерация
в папке inference создаем 2 файла genre.txt и lyrics.txt
в genre пишем: vocal punk rock electric guitar male vocal
Проверяем что кодировка в файлах UTF8
в lyrics пишем: 3-4 коротких сегмента: 2 куплета + 1 припев. При 2-х сегментах, у меня почему-то не запускался инференс. Пример:

Пластмассовый мир победил
...

[chorus]
Ооо - моя оборона
...

[verse]
...


Генерацию по промпту:
python infer.py --stage1_model m-a-p/YuE-s1-7B-anneal-en-cot --stage2_model m-a-p/YuE-s2-1B-general --genre_txt genre.txt --lyrics_txt lyrics.txt --run_n_segments 2 --stage2_batch_size 4 --output_dir ./output --cuda_idx 0 --max_new_tokens 1000

Генерация по промпту + референсному аудио:
python infer.py --stage1_model m-a-p/YuE-s1-7B-anneal-en-icl --stage2_model m-a-p/YuE-s2-1B-general --genre_txt genre.txt --lyrics_txt lyrics.txt --run_n_segments 2 --stage2_batch_size 4 --output_dir ./output --cuda_idx 0 --audio_prompt_path Egor_Letov_-_Moya_oborona.mp3 --max_new_tokens 1000


--run_n_segments - количество сегментов (куплетов + припевов)
--max_new_tokens - время песни в каждом сегменте. Длина песни если сегмента 2: 1000x2 = 20s, 3000 = 60s. Чем больше время, тем больше надо vram.

## Скорость и vram на 3090:
20s аудио - 12.5 GB (15 минут)
60s аудио - 15.6 GB (32 минуты)

## 8-12 GB VRAM и 3000 серия и nf4
Если у вас всего 8-12 GB попробуйте запустить модель в кванте nf4 (load_in_4bit=True). Особого падения качества пока не заметил. 10 секунд аудио будут занимать всего 6.6 GB VRAM. Запускать в gguf пока не имеет смысла, они будут автоматом конвертироваться в bf16, надо ждать нормальную реализацию гуфов для модели. На 2080 пока не запускается, flash attention похоже не поддерживается. Без него тоже можно, но будет медленнее и надо больше vram.

Для nf4 нужно установить:
pip install accelerate bitsandbytes
в infer.py измените строки 76-82 на:
model = AutoModelForCausalLM.from_pretrained(
stage1_model,
load_in_4bit=True,
torch_dtype=torch.bfloat16,
attn_implementation="flash_attention_2",
)

Скорость на 3060: 10s = 11 минут.

примеры на английском: https://map-yue.github.io/
потестить (русского нет):
- (квоты хватит на 10+10 секунд песни, не ставьте длину больше 10 секунд - упадет по ошибке): https://huggingface.co/spaces/innova-ai/YuE-music-generator-demo
- (15 секунд, ждать очереди больше часа): https://huggingface.co/spaces/fffiloni/YuE