Aspiring Data Science
370 subscribers
425 photos
11 videos
10 files
1.88K links
Заметки экономиста о программировании, прогнозировании и принятии решений, научном методе познания.
Контакт: @fingoldo

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#trading #finance #lob #dl

Очень интересные открытия: нет следов большой нестационарности (даже для 1 года OOS), 1 модель для всех активов лучше отдельных моделей для каждого актива. Использование моделек с памятью типа LSTM улучшает точность (от 100 до 5000 тиков, к примеру, на 1% - path dependence/long memory effects).

https://www.youtube.com/watch?v=diLtyRg6cl4
#dl #tensorflow

Сильно удивился, что с релиза 2.11 TF перестал поддерживать GPU на винде. Да и правильно, хрен с ней, ведь в мире никто не пользуется виндой. Но вроде появились какие-то плагины directml, которые якобы могут задействовать на винде любой GPU, в т.ч. и от AMD. Тестить пока страшно. Кстати, версии куда, которые использует TF, по-прежнему отстают от того что релизит Нвидия. отстают уже почти на 2 года. почему команде tensorflow настолько насрать на их продукт?

conda install -c conda-forge cudatoolkit=11.2 cudnn=8.1.0
# Anything above 2.10 is not supported on the GPU on Windows Native
pip install "tensorflow<2.11"

При том, что текущая версия Cuda уже 12+.
😨1
Forwarded from asisakov
ReLU, GELU, SiLU и ELU

Несколько лет назад на курсах нам рассказывали только про несколько функций активации: sigmoid, tanh, ReLU. Было круто, когда кто-то дополнительно ещё рассказывал про Leaky ReLU. И всего этих четырёх функций активации было достаточно, чтобы шатать сеточки.

Буквально несколько дней назад я слушал разбор статьи, где говорилось о том, что применение ReLU позволяет увеличить скорость инференса с небольшой потерей качества. Сравнение проводилось с функциями активации: GELU, SiLU. Я понял, что немного отстал от современных технологий в DL и решил погуглить и поделиться с вами.

Начнем с функции ReLU (Rectified Linear Unit). Эта функция активации имеет форму f(x) = max(0, x), что делает ее чрезвычайно эффективной для операций с большим количеством признаков, поскольку она увеличивает нелинейность модели без затрат на вычислительные ресурсы и без риска исчезновения градиента. Одним из главных недостатков ReLU является проблема «мертвых нейронов», когда нейроны перестают активироваться и вносить вклад в обучение сети из-за отрицательных значений на входе.

GELU (Gaussian Error Linear Unit), впервые представленная в 2016 году, стала более гладкой альтернативой ReLU. Функция GELU умножает входное значение на вероятность того, что значение будет активировано, что делает ее подходящей для использования в трансформерах и сетях с self-attention. Такая структура приводит к более динамичной адаптации нейронов к разным фазам обучения, позволяя достигать лучших результатов на сложных задачах.

Следующая в нашем списке — SiLU (Sigmoid Linear Unit). Эта функция активации представляет собой произведение входа на сигмоидную функцию от этого же входа, f(x) = x * σ(x). SiLU показала хорошие результаты в экспериментах по глубокому обучению, часто превосходя ReLU по разнообразным метрикам.

ELU (Exponential Linear Unit) добавляет еще одну интересную возможность в арсенал функций активации. В отличие от ReLU, ELU вводит отрицательные значения для отрицательных входов, что помогает сохранять более богатую информацию о распределении входных данных. Функция имеет форму f(x) = x, если x > 0, и f(x) = α(exp(x) - 1), если x ≤ 0, где α — параметр, обычно равный единице. Это улучшает скорость сходимости модели.

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

Пояснение с кодом есть тут
Дополнительное чтиво: 1, 2

#dl #code
1
Forwarded from asisakov
Рашифровка аудио с Whisper

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

К счастью, все придумано уже до нас. Нам остается лишь правильно это применить.
Расчехляем гугл colab и подгружаем GPU.

В первую ячейку вписываем небольшой костыль:

import locale
def getpreferredencoding(do_setlocale = True):
return "UTF-8"
locale.getpreferredencoding = getpreferredencoding


Далее подгружаем Whisper и ставим ffmpeg
!pip install git+https://github.com/openai/whisper.git
!sudo apt update && sudo apt install ffmpeg


В файлы загружаем необходимую для расшифровки аудиодорожку и далее просто запускаем модель
!whisper "audio1891746601.m4a" --model large-v2


После --model мы видим, что в принципе можно применять разные модели. По желанию вы можете даже попробовать версию v3 или применить другие модели, например tiny, base, small, medium. Подробнее тут.

Если вы хотите загрузить аудио из интернетов, то допустим это можно сделать следующим образом (может меняться от кейса к кейсу, поэтому просто погуглите)
!wget -c -A '*.mp3' -r -l 1 -nd http://example.org/musics/


Либо если вы хотите расшифровать это видео, грузим его вот так, а потом снова применяем whisper

pip install yt-dlp
yt-dlp -x --audio-format mp3 -o use_whisper.mp3 -- 8SQV-B83tPU

!whisper "use_whisper.mp3" --model large-v3


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

Надеюсь, было полезно. Кидайте в коменты модели (с кодом!), которые можно было бы применить для решения этой задачи.
Подробнее тут, тут и тут.

#dl #audio
#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/
#hardware #benchmarking #dl

"Deep learning is a field with intense computational requirements, and your choice of GPU will fundamentally determine your deep learning experience. But what features are important if you want to buy a new GPU? GPU RAM, cores, tensor cores, caches? How to make a cost-efficient choice? This blog post will delve into these questions, tackle common misconceptions, give you an intuitive understanding of how to think about GPUs, and will lend you advice, which will help you to make a choice that is right for you."

Не знал про Tensor Memory Accelerator (TMA). Кстати, весьма странно, что Nvidia не даёт возможности программно запросить количество набортных Tensor Cores и RT cores (хотя десятки других параметров доступны через Cuda API). Зажрались!

https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/
#pytorch #benchmarking #dl

TorchBench: Benchmarking PyTorch with High API Surface Coverage

В статье рассматриваются (на базе сравнений производительности подзадач) интересные аспекты разработки моделек в pytorch, в частности, недозагрузка GPU, Nvidia vs AMD, преимущества TorchInductor и TF32, etc.

В частности, показано, что в среднем задачи RL (в их популярных реализациях) загружают GPU всего на 10%, что аттрибутируется "взаимодействию с окружением". Я как знал, что объектно-ориентированный RL-код это ужасный тормоз.

https://arxiv.org/pdf/2304.14226