Aspiring Data Science – Telegram
Aspiring Data Science
386 subscribers
465 photos
12 videos
12 files
2.15K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#python #debugging #ic #icecream

from icecream import ic

# Using ic() to debug
ic(add(10, 20))
ic(add(30, 40))


ic| add(10, 20): 30
ic| add(30, 40): 70


ic.disable()  # Disables ic()
ic(multiply(3, 3)) # Prints nothing

ic.enable() # Re-enables ic()
ic(multiply(3, 3)) # Output: ic| multiply(3, 3): 9


def log_to_file(text):
with open("debug.log", "a") as f:
f.write(text + "\n")

ic.configureOutput(prefix="DEBUG| ", outputFunction=log_to_file)

ic(multiply(7, 7))


https://medium.com/pythoneers/debugging-in-python-replace-print-with-ic-and-do-it-like-a-pro-18f330c863cb
1
#hpo #hpt #sigopt

Имхо SigOpt - это лучший оптимизатор (не только для ML). Почему я так считаю, поймёте сразу, увидев пример использования их платформы и сравнив с примером Оптуны. Кстати, в сети мне не удалось найти нормального сравнения оптимизаторов гиперпарамертов, ни одного нормального на конкретных примерах, ну хотя бы Optuna Vs HyperOpt. В документации CatBoost есть такие примеры, но они показывают различия в 3м знаке после запятой, а на практике различия бывают очень весомые.

https://github.com/sigopt/sigopt-examples/blob/main/xgboost-integration-examples/xgb-integration-py-class.ipynb
#hpo #hpt

Давайте честно, 1% улучшения - это жопа какая-то, впустую потраченное время.
#hpt #hpo #critics

Суммаризировал свои претензии к современным подборщикам гиперпараметров.

1) Не надо говорить, что тюнинг моделей - это black box optimization. Никакая это не новая уникальная задача, где неизвестно, что происходит под капотом, мы одну и ту же задачу решаем день за днём, день за днём, даже данные зачастую похожи. Можно, конечно, притворяться, что для нас каждый раз как первый раз, но имхо это тупо.

2) Вот хочу я затюнить градиентный бустинг над деревьями с помощью Optuna или Hyperopt. Почему я должен каждый раз указывать, какие гиперпараметры я хочу оптимизировать? Они что, часто меняются у xgboost-а? В современных моделях их несколько десятков. Я не хочу их все помнить. Я не знаю, какие из них важны. Я не хочу каждый раз разбираться, какие комбинации совместимы, а какие нет. Ваша библиотека мне жизнь упрощать собирается или нет?

3) Хоть как-то учитываются значения целевой функции в ближайших окрестностях найденных оптимальных параметров? Да конечно, нет, всем начхать на это, тебе находят точечное "лучшее" решение, которое потом на поверку оказывается крайне нестабильным.

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

5) мне не нравится, что всё CPU/GPU время, которое я палю при HPT некоторой задачи, служит лишь какой-то временной цели, никак не обобщается, и никак не поможет мне (или другим людям) при решении подобных задач в будущем.

6) Ни в одной доке библиотек HPO/HPT я не видел оценок, каких же преимуществ, в терминах ML метрик, можно ждать от тюнинга. Казалось бы, авторы проводят много тестов, в т.ч. автоматизированных, им и карты в руки, ну поделитесь вы статистикой? но нет.

7) а хоть одна из библиотек байесовской оптимизации, предлагая очередных кандидатов, вообще оценивает время обучения модели при таких параметрах?

8) вопрос к алгоритмам HalvingSearch/Hyperband, а насколько надёжно по ранним итерациям можно судить о том, какая метрика будет достигнута к концу обучения? А как же нелинейности кривой обучения? А мы точно так не откинем хорошие решения, которые наибольший "импульс" получают к концу обучения?

9) а хоть одна библа вообще смотрит на декоррелированность прогнозов модели с прогнозами других моделей? это же такая естественная мысль. моделька же не в вакууме будет жить, а, скорей всего, в ансамбле.

THERE SHOULD BE A BETTER WAY!!
3💯3
#llms #ai #deepseek #nvidia

"Всё дело в китайском стартапе DeepSeek, который нашёл способ обучать продвинутые ИИ-модели на малом количестве ускорителей вычислений. Например, при обучении одной из своих моделей на внушительных 685 млрд параметров DeepSeek использовала всего 2048 ИИ-ускорителей Nvidia H800 и потратила $5,6 млн. Это мизерная часть расходов OpenAI и Google на обучение моделей сопоставимого размера.

Кроме того, на прошлой неделе DeepSeek выпустила «рассуждающую» модель ИИ R1, которая превзошла мыслящую OpenAI o1 в важных тестах. Более того, компания опубликовала инструкции, как с минимальными затратами построить большую языковую модель, способную самостоятельно обучаться и совершенствоваться без контроля со стороны человека. Добавим, что многие свои разработки DeepSeek распространяет совершенно бесплатно. Да и платный доступ к наиболее продвинутым её системам оказывается намного дешевле, чем у конкурентов — например, R1 доступна через API компании по цене, которая на 90–95 % ниже, чем у OpenAI o1.

В итоге инвесторы поняли, что нейросети можно обучать не только по схеме «купи и установи как можно больше ускорителей вычислений», но и куда более эффективно на меньшем числе GPU. Это грозит резким падением спроса на продукцию Nvidia, выручка которой более чем на 80 % зависит как раз от ускорителей вычислений.

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

https://3dnews.ru/1117353/iipuzir-lopnul-stoimost-nvidia-obvalilas-na-600-mlrd
#news #calibration #teaser

В процессе написания небольшой статейки, мини-исследования о пользе посткалибрации бинарных классификаторов. По мере работы возникают всё новые вопросы, на которые хочется дать ответ 😅 Вначале был 1 датасет, 2 модели, 3 библиотеки, через день уже 5 моделей, еще через день добавился доп. датасет с "другим видом" мискалибрации (что, кстати, заметно изменило рейтинги), через день библиотек заюзанных в сравнении стало 7. Теперь вот хочется добавить к зоопарку и какую-то свою реализацию калибратора, а просто "шоб було".
#hpo #hpt #metalearning #books

Пересмотрев доклад, стал искать упомянутую книжку "Automated Machine Learning - Methods, Systems, Challenges". Она оказалась в свободном доступе, по виду хорошая, изучаю. Наугад полистал этот сайт на предмет интересной литературы по ML, и не прогадал.
Нашёл ещё книгу "Metalearning - Applications to Automated Machine Learning and Data Mining".

Оказывается, для концепции крутого оптимизатора HPT, над которым я работаю, существует уже давно название - метаобучение.

The general aim of metalearning systems is to learn from the usage of prior models (how they were constructed and how well they performed) in order to to model a target dataset better. If the base-level task is classification, this implies that the system can predict the value of the target variable, i.e. the class value in this case. Ideally, it does this better (or more efficiently) by leveraging information besides the training data itself.

Algorithm selection (AS): Given a set of algorithms and a dataset (target dataset), determine which algorithm is most appropriate to model the target dataset.
Hyperparameter optimization (HPO): Given an algorithm with specific hyperparameters and a target dataset, determine the best hyperparameter settings of the given algorithm to model the target dataset.
Combined algorithm selection and hyperparameter optimization (CASH): Given a set of algorithms, each with its own set of hyperparameters, and a target dataset, determine which algorithm to use and how to set its hyperparameters to model the target dataset. Some CASH systems address also the more complex pipeline synthesis task discussed next.
Workflow (pipeline) synthesis: Given a set of algorithms, each with its own set of hyperparameters, and a target dataset, design a workflow (pipeline) consisting of a one or more algorithms to model the target dataset. The inclusion of a particular algorithm and its hyperparameter settings in the workflow can be seen as a CASH problem.
Architecture search and/or synthesis: This problem type can be seen as a generalization of the problem type above. In this setting the individual constituents do not need to be organized in a sequence, as it is done in workflows (pipelines). The architecture can include, for instance, partially ordered or tree-like structures. The neural network architecture design can be seen as a problem that falls into this category.
Few-shot learning: Given a target dataset with few examples and various datasets that are very similar, but include many examples, retrieve a model that has been pretrained on prior datasets and fine-tune it to perform well on the target dataset.
#llms #gpt #ai #fun

Мой вариант микро-теста на AGI - вопрос, на который не могут пока правильно ответить Клод, ЧатГПТ, Гемини:

"Графическое изображение какой концепции в машинном обучении напоминает связку сосисок?"
😁2
#hpo #hpt #multifidelity

"Increasing dataset sizes and increasingly complex models are a major hurdle in HPO since they make blackbox performance evaluation more expensive. Training a single hyperparameter configuration on large datasets can nowadays easily exceed several hours and take up to several days. A common technique to speed up manual tuning is therefore to probe an algorithm/hyperparameter configuration on a small subset of the data, by training it only for a few iterations, by running it on a subset of features, by only using one or a few of the cross-validation folds, or by using down-sampled images in computer vision. Multi-fidelity methods cast such manual heuristics into formal algorithms, using so-called low fidelity approximations of the actual loss function to minimize. These approximations introduce a tradeoff between optimization performance and runtime, but in practice, the obtained speedups often outweigh the approximation error.

First, we review methods which model an algorithm’s learning curve during training and can stop the training procedure if adding further resources is predicted to not help. Second, we discuss simple selection methods which only choose
one of a finite set of given algorithms/hyperparameter configurations. Third, we discuss multi-fidelity methods which can actively decide which fidelity will provide most information about finding the optimal hyperparameters. We also refer to Chap. 2 (which discusses how multi-fidelity methods can be used across datasets) and Chap. 3 (which describes low-fidelity approximations for neural architecture search)."

В общем, все (или почти все) те идеи, которые я напридумывал и считал уникальными и крутыми, уже кем-то придуманы. Но почему тогда я ничего не слышу про успешные реализации, почему повсюду только эта сраная Оптуна? Может, я просто мало работал с коммерческими automl платформами, и там всё это давно есть? Но почему тогда они не публикуют сравнений с "простыми" байесовскими оптимизаторами, почему не рекламируют свои преимущества?