Aspiring Data Science – Telegram
Aspiring Data Science
385 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
#pytorch #lightning #raschka

Знакомство с Pytorch Lightning от Себастиана Рашки (Units 1-10). Классный парень, автор известных книг по ML, автор либы mlxtend.

https://www.youtube.com/@PyTorchLightning/playlists
Не знаю, кем мир видит меня; в своих же собственных глазах я просто мальчик, играющий на берегу, отвлекающий себя от забот жизни поиском самых гладких галек и красивых ракушек, выброшенных из простирающегося передо мной величественного и неизведанного океана истины.


размышления сэра Исаака Ньютона
3
#pytorch #lightning

Понравился пример из доки Monte Carlo Dropout for predictions

class LitMCdropoutModel(L.LightningModule):
def __init__(self, model, mc_iteration):
super().__init__()
self.model = model
self.dropout = nn.Dropout()
self.mc_iteration = mc_iteration

def predict_step(self, batch, batch_idx):
# enable Monte Carlo Dropout
self.dropout.train()

# take average of `self.mc_iteration` iterations
pred = [self.dropout(self.model(x)).unsqueeze(0) for _ in range(self.mc_iteration)]
pred = torch.vstack(pred).mean(dim=0)
return pred


Статья
Dropout as a Bayesian Approximation: Representing Model Uncertainty in Deep Learning.
👍1
#pytorch #lightning

В Лайтнинге обнаружился параметр тренера Trainer(benchmark=True)

Дока туманно намекает, что это некая оптимизация алгоритмов Куды. Удалось найти, каких именно:

static const algo_t algos[] = {
CUDNN_CONVOLUTION_FWD_ALGO_GEMM,
CUDNN_CONVOLUTION_FWD_ALGO_FFT,
CUDNN_CONVOLUTION_FWD_ALGO_FFT_TILING,
CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_GEMM,
CUDNN_CONVOLUTION_FWD_ALGO_IMPLICIT_PRECOMP_GEMM,
CUDNN_CONVOLUTION_FWD_ALGO_DIRECT,
CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD,
CUDNN_CONVOLUTION_FWD_ALGO_WINOGRAD_NONFUSED,
}

Говорят, иногда хорошо ускоряет:


Oli
Olof Harrysson
Apr 2019

I find that torch.backends.cudnn.benchmark increases the speed for my YOLOv3 model by a lot, like 30-40%. Furthermore, it lowers the memory footprint after it completes the benchmark.

It even works when my input images vary in size between each batch, neat! I was thinking about having the network optimize on a few smaller torch.randn(...) to benchmark on, and then start the training. I hope that this could allow me to increase the batch size since the memory footprint is lower after the bechmark. What do you guys thing?


https://github.com/pytorch/pytorch/blob/1848cad10802db9fa0aa066d9de195958120d863/aten/src/ATen/native/cudnn/Conv.cpp#L486-L494
👍1
#pytorch #lightning #swa

А кто пробовал SWA?

Stochastic Weight Averaging (SWA) can make your models generalize better at virtually no additional cost. This can be used with both non-trained and trained models. The SWA procedure smooths the loss landscape thus making it harder to end up in a local minimum during optimization.

For a more detailed explanation of SWA and how it works, read this post by the PyTorch team.
#dl #gpu #hpu

Прикольно, Intel Gaudi1 заруливают NVIDIA A100 по цена/производительность. Вот бы ещё для IPU (Graphcore Intelligence Processing Unit ) такое сравнение найти.

8 NVIDIA A100 --> $0.98 / COCO epoch
8 Intel Gaudi1 HPU --> $0.73 / COCO epoch

Намекают, что Gaudi2 (уже вышли) вчетверо быстрее Gaudi1.

https://blog.roboflow.com/gpu-vs-hpu/
Про современные сетки, косты на их обучение и альтернативу стандарным методам обучения

Не буду даже писать про то почему обучение больших сеток это важно. В инфополе каждого думаю 4-5 постов, подводящих к этой мысли.
Но обучение современных сеток сопряжено с нюансом.
Чтобы обучить GPT-3 на 175 миллиардов параметров нужно было потратить 5 млн долларов (3,640 petaflop/s-days ).
Чтобы обучить GPT-4 на более 1.76 триллионов параметров и больше 100 миллионов долларов
По слухам в GPT-5 будет 10-20 триллионов параментров. Мы не знаем, сколько на это потратит денег OpenAI, но я думаю больше 2-х миллиардов.

Собственно к проблемам
Кроме OpenAI свои большие модели сделали-делают Google, Microsoft, Amazon, Meta, NVIDIA (Megatron, 500 млрд параметров). Конечно же еще индусы, китайцы ну и россияне. В мире сейчас 20 триллионов денежной массы циркулирует. Если все будет идти в том же темпе (гиганты будут обучать сетки сопоставимые с OpenAI и число параметров прогрессировать с той же скоростью) вероятно уже в этом году компании уже могут потратить суммарно больше 100 млрд долларов. Что на минутку уже около 0.5 процента всей циркулирующей денежной масссы в мире (!!). И это только начало и это мы еще молчим про инференс этих моделей.

Почему это мне надо знать
Я думаю индустрия может еще сильно поменяться с возникновением и распространением новых классов моделей. Именно поэтому полезно (а не только весело) учить математику вширь, чтобы видеть немного глубже стандартной картинки из обучения мл.

Пример с Intel.
В 2019 году выручка intel была 72 bln, а nvidia 12 bln. В 2023 году выручка intel была 54 bln, а nvidia 27 bln. Динамика сильная даже если не брать оценки, а взять просто выручку, факт. Почему так происходит? Потому что мир быстро меняется и сейчас большой спрос на GPU и TPU, и nvidia смогла приспобится быстрее. И еще начать делать свои ИИ решения сверху. В целом вероятно что с ростом NVIDIA произойдет то же самое и найдется компания, которая ее обгонит, но nvidia быстро итерируется и делает альтернативные технологии. Забавно что Intel тоже в свое время в 90-е на поворотах обогнал много конкурентов, среди которых была даже моторола. History repeats itself.

Как обучается backprop  и как стоимость обучения зависит от числа параметров
Все chatpt сейчас построены на способе обучения backprop. Проблема в том что коректировка весов происходит с перемножением матриц и число вычислений растет квадратично с увеличением параметров. Это в модельном кейсе. Конечно сейчас много ресурса тратится на оптимизации - архитектуры и обучения (часть весов превращаются в нолики единички, часть морозиться и тд), оптимизации железа и его потребления энергии (TPU больше подходит к матричным вычислениям и ест при этом меньше энергии), но тренд остается трендом - сети следующего поколения в основном умнеют с помощью увеличения параметров в 10 раз, что ведет за собой увеличение денег на обучение в 20.

Какие есть альтернативы
Хинтон, который написал нашумевшую статью (а вы видели еще статью с 16к цитирований) собственно про backprop в 1986 году активно критикует свой же собственный метод в 2024. Предлагает капсульные сети, которые я даже как-то раньше тут разбирала. Правда он пока не работает, но очень интересный.
Глобально инновации могут быть на трех уровнях - алгоритмическом (делаем инновации в способе обучения как капсулы), железа - проектируем новые способы вычислений (например BrainChip — с нейроморфным процессором Akida, который имитирует мозг человека и может считать сети на девайсе), сервисном (компании которые помогают менеджерить модели, например Bright Computing который NVIDIA купила в 2022 году), и даже физическом (я недавно познакомилась с профессором теорфизики из Кэмбриджа, который делает очень интересный способ на уровне именно физических процессов перестроить обучение)
Есть еще много разной альтернативы, но уже не влезает пост. Полайкайте, если хотите пост про альтернативы, тема очень будоражащая.