Prepping tables for machine learning
#varoquaux #inria #ml #sklearn #missingvalues #imputing #perezlebel #skrub #minhashencoder #gapencoder #datetimeencoder #tablevectorizer #fuzzy_join
Общие советы, как учиться на табличных данных в экосистеме sklearn.
Оказывается, заполнение пропусков лучше всего нативное от деревянных моделей. Потом уже идут более гораздо затратные вычислительно условные импутации. Если у вас нейросеть, используйте в конвейере add_indicator=True, чтобы обработать возможные случаи, когда пропуски не случайны.
По дефолту советуют HistGradientBoosting.
Если же нет, рекомендуют QuantileTransformer НА ПРИЗНАКАХ. Такое я чёт впервые встречаю, обычно это делают на таргете... хм... +IterativeImputer (хотя только что говорили про его затратность).
Гаель предлагает как стандарт весь препроцессинг отдать трансформеру tablevectorizer из либы skrub, который знает, как обрабатывать фичи времени, строки, категории.
Для категориальных столбцов у них реализована интересная разновидность one hot, основанная на строковой близости меток. Например, Police officer I и Police officer IV попадут в одну корзину вместо разных. Семантическая близость, к сожалению, (пока?) не учитывается.
Ещё в skrub для обогащения данных из справочных таблиц есть джойнеры, которые, как я понял, заменяют featuretools по сути. Но если в featuretools чёрт ногу сломит, тут вроде попроще. Очевидное преимущество skrub - fuzzy_join (всё по той же текстовой схожести).
Что интересно, есть несколько бэкендов - pandas, polars.
https://www.youtube.com/watch?v=I4Sksd93bZ4
#varoquaux #inria #ml #sklearn #missingvalues #imputing #perezlebel #skrub #minhashencoder #gapencoder #datetimeencoder #tablevectorizer #fuzzy_join
Общие советы, как учиться на табличных данных в экосистеме sklearn.
Оказывается, заполнение пропусков лучше всего нативное от деревянных моделей. Потом уже идут более гораздо затратные вычислительно условные импутации. Если у вас нейросеть, используйте в конвейере add_indicator=True, чтобы обработать возможные случаи, когда пропуски не случайны.
По дефолту советуют HistGradientBoosting.
Если же нет, рекомендуют QuantileTransformer НА ПРИЗНАКАХ. Такое я чёт впервые встречаю, обычно это делают на таргете... хм... +IterativeImputer (хотя только что говорили про его затратность).
Гаель предлагает как стандарт весь препроцессинг отдать трансформеру tablevectorizer из либы skrub, который знает, как обрабатывать фичи времени, строки, категории.
Для категориальных столбцов у них реализована интересная разновидность one hot, основанная на строковой близости меток. Например, Police officer I и Police officer IV попадут в одну корзину вместо разных. Семантическая близость, к сожалению, (пока?) не учитывается.
Ещё в skrub для обогащения данных из справочных таблиц есть джойнеры, которые, как я понял, заменяют featuretools по сути. Но если в featuretools чёрт ногу сломит, тут вроде попроще. Очевидное преимущество skrub - fuzzy_join (всё по той же текстовой схожести).
Что интересно, есть несколько бэкендов - pandas, polars.
https://www.youtube.com/watch?v=I4Sksd93bZ4
YouTube
PyData Südwest #23 - Gaël Varoquaux & Daniel Stemmer
Live Stream of the in person meetup.
https://www.meetup.com/pydata-suedwest/events/293746020/
This event will be in English.
Talks:
Skrub: Prepping Tables for Machine Learning Gets Easier
Gaël Varoquaux, Research Director, Inria, France
Using Embeddings…
https://www.meetup.com/pydata-suedwest/events/293746020/
This event will be in English.
Talks:
Skrub: Prepping Tables for Machine Learning Gets Easier
Gaël Varoquaux, Research Director, Inria, France
Using Embeddings…
#it
Читаю новость: В мае глава IBM Арвинд Кришна (Arvind Krishna)...
Блять, ну вы серьёзно? Почему главой (американской) ИТ-компании должен быть индус, мне кто-то может объяснить??
Читаю новость: В мае глава IBM Арвинд Кришна (Arvind Krishna)...
Блять, ну вы серьёзно? Почему главой (американской) ИТ-компании должен быть индус, мне кто-то может объяснить??
🤔2
#agronomy
"Обучаемый машинный интеллект анализирует внешний вид яблок и даёт команду на съём только тогда, если фрукт необходимой спелости и без повреждений. Работа платформы на опытном хозяйстве показала высочайшую избирательную способность системы. Она очень сильно сокращает затраты на сбор урожая, позволяя за каждый проход выбирать плоды только лучшего качества. Обычный человек с улицы на такое не способен. А специально обученные сборщики урожая — это редкое явление."
https://youtu.be/nYl_1TMVwjw
https://3dnews.ru/1089519/iskusstvenniy-intellekt-nauchili-sobirat-spelie-yabloki-roem-dronov-na-privyazi
"Обучаемый машинный интеллект анализирует внешний вид яблок и даёт команду на съём только тогда, если фрукт необходимой спелости и без повреждений. Работа платформы на опытном хозяйстве показала высочайшую избирательную способность системы. Она очень сильно сокращает затраты на сбор урожая, позволяя за каждый проход выбирать плоды только лучшего качества. Обычный человек с улицы на такое не способен. А специально обученные сборщики урожая — это редкое явление."
https://youtu.be/nYl_1TMVwjw
https://3dnews.ru/1089519/iskusstvenniy-intellekt-nauchili-sobirat-spelie-yabloki-roem-dronov-na-privyazi
YouTube
Unifrutti & Tevel Partner To Bring Autonomous Harvesting to Chile
The Future of Agriculture Has Arrived in South America: Unifrutti Introduces Groundbreaking Fruit-Picking Robots, Revolutionizing Harvesting in Chile Through Partnership with Tevel
In a first-ever collaboration, the face of the fruit industry in Chile is…
In a first-ever collaboration, the face of the fruit industry in Chile is…
#trading #backtesting #ml #chan
Крайне интересный подход, над которым надо подумать. Переменные контроля вплавляются в обучающие данные, меткой считается желаемая финансовая метрика от использования на некотором отрезке "с текущего момента" этих управляющих переменных.
Это и есть реализация идей де Прадо и Чана о том, что бесполезно применять МЛ для прогнозирования цены, т.к. то же самое пытаются сделать все. А вместо этого, мол, если тебе нравится торговать по пересечению 2 скользящих средних, то и делай это, но натренируй МЛ выяснять, в какие моменты эта стратегия имеет шансы на успех.
В данном случае, периоды этих 2 средних, ну ещё отступы и какие-нибудь дополнительные параметры, добавляются в обучающий набор (содержащий рыночные данные и фундаменталку), а таргетом выступет кэф Шарпа от применения этих торговых параметров на сл месяц.
Мне лично в повышенную эффективность такого МЛ слабо верится, т.к. это по сути всё равно предсказание цены, только косвенно, да ещё на сниженном на порядок датасете. Хотя с другой стороны, на этом подмножестве может меняться расклад влияющих факторов, модель в теории может не распыляться на другие ситуации и лучше понять то что ей дали. Интуитивно неясно, что перевесит, но это всё можно замерить и выяснить.
Но ещё один важный аспект такого подхода в том, что традиционная идея "сначала МЛ (модель даёт прогнозы), потом бэктест (а что же делать с этими прогнозами, при каких значениях покупать/продавать) с боязнью оверфита" заменяется на "в каждой точке сэмплим сотни комбинаций управляющих параметров, смело делаем бэктестовые "виртуальные забеги" с этими параметрами, потом уже обучаем на всём МЛ, борьбу с оверфитом отдаём на откуп МЛ."
Конечно, это сильно снижает операционное пространство по сравнению с 1м подходом, т.к. МЛ исходы становится ограниченны конкретной торговой политикой. Но я придумал комбайн, как обойти это ограничение. Вторая модель! Пусть она даёт, как и обычно, прогнозы рынка и/или инструмента, и уже эти прогнозы будут считаться частью управляющий переменных. Тогда не надо будет ждать, условно говоря, пересечения 2 SMA, всегда будет некий прогноз и решающие пороги, по которым можно действовать. Такой своеобразный Double ML.
Причем в теории, внешний контур можно обучить независимо от внутреннего. Имитируем предиктор определённой разумной точности в течение нескольких дней, потом меняем сид. Скальзящая фактическая точность предсказаний (и, возможно, распределение ошибок) подаётся как теневой фактор в числе управляющих переменных. И всё, можно обучать внешний контур.
https://www.youtube.com/watch?v=sXYW0KgCKbE
Крайне интересный подход, над которым надо подумать. Переменные контроля вплавляются в обучающие данные, меткой считается желаемая финансовая метрика от использования на некотором отрезке "с текущего момента" этих управляющих переменных.
Это и есть реализация идей де Прадо и Чана о том, что бесполезно применять МЛ для прогнозирования цены, т.к. то же самое пытаются сделать все. А вместо этого, мол, если тебе нравится торговать по пересечению 2 скользящих средних, то и делай это, но натренируй МЛ выяснять, в какие моменты эта стратегия имеет шансы на успех.
В данном случае, периоды этих 2 средних, ну ещё отступы и какие-нибудь дополнительные параметры, добавляются в обучающий набор (содержащий рыночные данные и фундаменталку), а таргетом выступет кэф Шарпа от применения этих торговых параметров на сл месяц.
Мне лично в повышенную эффективность такого МЛ слабо верится, т.к. это по сути всё равно предсказание цены, только косвенно, да ещё на сниженном на порядок датасете. Хотя с другой стороны, на этом подмножестве может меняться расклад влияющих факторов, модель в теории может не распыляться на другие ситуации и лучше понять то что ей дали. Интуитивно неясно, что перевесит, но это всё можно замерить и выяснить.
Но ещё один важный аспект такого подхода в том, что традиционная идея "сначала МЛ (модель даёт прогнозы), потом бэктест (а что же делать с этими прогнозами, при каких значениях покупать/продавать) с боязнью оверфита" заменяется на "в каждой точке сэмплим сотни комбинаций управляющих параметров, смело делаем бэктестовые "виртуальные забеги" с этими параметрами, потом уже обучаем на всём МЛ, борьбу с оверфитом отдаём на откуп МЛ."
Конечно, это сильно снижает операционное пространство по сравнению с 1м подходом, т.к. МЛ исходы становится ограниченны конкретной торговой политикой. Но я придумал комбайн, как обойти это ограничение. Вторая модель! Пусть она даёт, как и обычно, прогнозы рынка и/или инструмента, и уже эти прогнозы будут считаться частью управляющий переменных. Тогда не надо будет ждать, условно говоря, пересечения 2 SMA, всегда будет некий прогноз и решающие пороги, по которым можно действовать. Такой своеобразный Double ML.
Причем в теории, внешний контур можно обучить независимо от внутреннего. Имитируем предиктор определённой разумной точности в течение нескольких дней, потом меняем сид. Скальзящая фактическая точность предсказаний (и, возможно, распределение ошибок) подаётся как теневой фактор в числе управляющих переменных. И всё, можно обучать внешний контур.
https://www.youtube.com/watch?v=sXYW0KgCKbE
YouTube
Ernest Chan (Predictnow.ai) - "How to Use Machine Learning for Optimization"
Abstract: Conditional Portfolio Optimization is a portfolio optimization technique that adapts to market regimes via machine learning. Traditional portfolio optimization methods take summary statistics of historical constituent returns as input and produce…
👍1
#profiling #optimisation #python #speed #sklearn #bollocks
Эскалёрновские волшебники-программисты в деле. Столкнулся с неприемлемо низкой скоростью построения отчёта классификационных метрик на 8M примеров. 15 секунд, ну куда это годится? Проверил кирпичики расчётов по нисходящей. Матрица ошибок считается за полторы секунды. Это чем же надо угандошить процессор, чтобы простое деление пары чисел и упаковка в словарь выполнялись больше 10 секунд и делали расчёты в ДЕСЯТЬ раз длиннее? Такое и специально не сразу сделаешь.
Эскалёрновские волшебники-программисты в деле. Столкнулся с неприемлемо низкой скоростью построения отчёта классификационных метрик на 8M примеров. 15 секунд, ну куда это годится? Проверил кирпичики расчётов по нисходящей. Матрица ошибок считается за полторы секунды. Это чем же надо угандошить процессор, чтобы простое деление пары чисел и упаковка в словарь выполнялись больше 10 секунд и делали расчёты в ДЕСЯТЬ раз длиннее? Такое и специально не сразу сделаешь.
😁1
#optimisation #sklearn #python #numba #codegems
Итак, то, что у кудесников машинного обучения считается 15 СЕКУНД, на самом деле должно занимать 50 МИЛЛИСЕКУНД. Но зато они сотни строк качественного кода написали, наверное, покрытого тестами, и прочим. Почему я считаю это важным? Да потому что мне предстоит обсчитывать сотни моделей, и оказалось, что качество обучения (classification report, roc auc, калибрация по всему сету + в разбивке по группам) на test set оценивается для 1 модели.. 5 минут, и основным тормозом был classification_report. Мне вовсе не улыбается платить за кластер, ожидающий сотни и тысячи раз по 5 минут. Спасибо, что у нас хотя бы есть numpy и numba. Без нумбы, кстати, этот код на языке программирования, созданном "гениальным" Ван Россумом, выполняется даже не знаю сколько, я прождал минут 5-10 и забил.
Скорее всего, напрасная трата времени, но всё же запостил issue. Как обычно, похерят, видимо.
Итак, то, что у кудесников машинного обучения считается 15 СЕКУНД, на самом деле должно занимать 50 МИЛЛИСЕКУНД. Но зато они сотни строк качественного кода написали, наверное, покрытого тестами, и прочим. Почему я считаю это важным? Да потому что мне предстоит обсчитывать сотни моделей, и оказалось, что качество обучения (classification report, roc auc, калибрация по всему сету + в разбивке по группам) на test set оценивается для 1 модели.. 5 минут, и основным тормозом был classification_report. Мне вовсе не улыбается платить за кластер, ожидающий сотни и тысячи раз по 5 минут. Спасибо, что у нас хотя бы есть numpy и numba. Без нумбы, кстати, этот код на языке программирования, созданном "гениальным" Ван Россумом, выполняется даже не знаю сколько, я прождал минут 5-10 и забил.
Скорее всего, напрасная трата времени, но всё же запостил issue. Как обычно, похерят, видимо.
👍1😁1
#hardware #flash
Кажется, у меня 8TB NVME SSD Sabrent в компе стоит. Его покупка в 2021-м стала моим самым полезным IT приобретением года. А то и многих. Скорости посл чтения в районе 4Гб/сек, прошу заметить. А для грядущего X5 пропускная способность даже случайного чтения (многопоточного) уже 6 Гб/с.
"Производитель показал результаты тестов накопителя Rocket X5 объёмом 2 Тбайт в утилите CrystalDiskMark 8.0.4. Новинка достигла скорости последовательного чтения в 14 179 Мбайт/с. Показатель скорости последовательной записи в свою очередь у неё составил 12 280 Мбайт/с. Цифры производительности в операциях случайного чтения и записи блоков данных объёмом 4 Kбайт тоже оказались высокими."
https://3dnews.ru/1089630/sabrent-vipustit-nvmenakopiteli-rocket-x5-so-skorostyu-chteniya-vishe-14-000-mbayts
Кажется, у меня 8TB NVME SSD Sabrent в компе стоит. Его покупка в 2021-м стала моим самым полезным IT приобретением года. А то и многих. Скорости посл чтения в районе 4Гб/сек, прошу заметить. А для грядущего X5 пропускная способность даже случайного чтения (многопоточного) уже 6 Гб/с.
"Производитель показал результаты тестов накопителя Rocket X5 объёмом 2 Тбайт в утилите CrystalDiskMark 8.0.4. Новинка достигла скорости последовательного чтения в 14 179 Мбайт/с. Показатель скорости последовательной записи в свою очередь у неё составил 12 280 Мбайт/с. Цифры производительности в операциях случайного чтения и записи блоков данных объёмом 4 Kбайт тоже оказались высокими."
https://3dnews.ru/1089630/sabrent-vipustit-nvmenakopiteli-rocket-x5-so-skorostyu-chteniya-vishe-14-000-mbayts
3DNews - Daily Digital Digest
Sabrent выпустит NVMe-накопители Rocket X5 со скоростью чтения выше 14 000 Мбайт/с
Первые модели твердотельных NVMe-накопителей PCIe 5.
#astronomy #biology #venus #lifeorigin
"На ежегодном собрании Королевского астрономического общества в Кардиффе астроном Джейн Гривз из Кардиффского университета в Уэльсе сообщила, что её группа снова обнаружила фосфин в атмосфере Венеры. Ранее она сообщала о таком же открытии в 2020 году, но тогда оно вызвало шквал критики и не было подтверждено сторонними наблюдениями. Учёная утверждает, что искать это химическое соединение необходимо глубже в атмосфере Венеры, и она его там нашла. По словам Джейн Гривз, искать нужно было на другой высоте. Её группа снова обнаружила следы фосфина «примерно в середине облачного покрова Венеры». Ждём реакции научного мира. Жаль, что миссия компании Rocket Lab к Венере отложена до 2025 года или на большее время. Они как раз собирались туда лететь в этом году для поиска неуловимого фосфина."
https://3dnews.ru/1089637/v-oblakah-veneri-snova-obnarugili-priznaki-sushchestvovaniya-gizni-okazalos-chto-ranshe-iskali-ne-tam
"На ежегодном собрании Королевского астрономического общества в Кардиффе астроном Джейн Гривз из Кардиффского университета в Уэльсе сообщила, что её группа снова обнаружила фосфин в атмосфере Венеры. Ранее она сообщала о таком же открытии в 2020 году, но тогда оно вызвало шквал критики и не было подтверждено сторонними наблюдениями. Учёная утверждает, что искать это химическое соединение необходимо глубже в атмосфере Венеры, и она его там нашла. По словам Джейн Гривз, искать нужно было на другой высоте. Её группа снова обнаружила следы фосфина «примерно в середине облачного покрова Венеры». Ждём реакции научного мира. Жаль, что миссия компании Rocket Lab к Венере отложена до 2025 года или на большее время. Они как раз собирались туда лететь в этом году для поиска неуловимого фосфина."
https://3dnews.ru/1089637/v-oblakah-veneri-snova-obnarugili-priznaki-sushchestvovaniya-gizni-okazalos-chto-ranshe-iskali-ne-tam
3DNews - Daily Digital Digest
В облаках Венеры снова обнаружили признаки существования жизни — оказалось, что раньше искали не там
На ежегодном собрании Королевского астрономического общества в Кардиффе астроном Джейн Гривз из Кардиффского университета в Уэльсе сообщила, что её группа снова обнаружила фосфин в атмосфере Венеры.
#optimisation #numba #numpy #auc #fastauc
Ещё немного про оптимизацию. В попытке найти быструю реализацию roc_auc набрёл на библу factauc, где автор не поленился и сделал numba-оптимизированную, и даже сишную реализации. В сишную он явно вложился, вон сколько кода, и не напрасно: она получилась самой быстрой, почти вдвое быстрее нумбовской (что меня уже насторожило). Проверил на своём массивчике 8M float-ов, действительно самые тормозные catboost и sklearn (больше 2 секунд), фастаук уже позволяет прыгнуть до 0.6 секунды с нумба и до 0.4 с Си++. Глянул нумбовскую реализацию, а там argsort закомпилирован. Вспомнилось, что раньше нумба замедляла эту функцию. Вынес argsort "за скобки" njit-компилятора, и вуаля, С++ реализация побита, 0.3 секунды )) Даже неловко было сообщать автору, но что поделаешь.
P.S. Всеволод сказал, что на неделе предлагаемое улучшение потестит и, если что, в fastauc замёрджит )
Ещё немного про оптимизацию. В попытке найти быструю реализацию roc_auc набрёл на библу factauc, где автор не поленился и сделал numba-оптимизированную, и даже сишную реализации. В сишную он явно вложился, вон сколько кода, и не напрасно: она получилась самой быстрой, почти вдвое быстрее нумбовской (что меня уже насторожило). Проверил на своём массивчике 8M float-ов, действительно самые тормозные catboost и sklearn (больше 2 секунд), фастаук уже позволяет прыгнуть до 0.6 секунды с нумба и до 0.4 с Си++. Глянул нумбовскую реализацию, а там argsort закомпилирован. Вспомнилось, что раньше нумба замедляла эту функцию. Вынес argsort "за скобки" njit-компилятора, и вуаля, С++ реализация побита, 0.3 секунды )) Даже неловко было сообщать автору, но что поделаешь.
P.S. Всеволод сказал, что на неделе предлагаемое улучшение потестит и, если что, в fastauc замёрджит )
❤1🔥1
#trading #zhang #finance
Недавно постил лекцию Жихонг Жанга по DL на MOB, вы только посмотрите, насколько плодовит данный учёный!
Мама мия, 37 работ, и многие очень интересны уже по заголовкам. А, или то был Жихао. Все молодцы, в общем )
С нетерпением начту прочтение их совместной работы с Хуйлинь Юанем, не побоюсь этого имени, "Forecasting security's volatility using low-frequency historical data, high-frequency historical data and option-implied volatility".
https://arxiv.org/search/q-fin?searchtype=author&query=Zhang%2C+Z
Недавно постил лекцию Жихонг Жанга по DL на MOB, вы только посмотрите, насколько плодовит данный учёный!
Мама мия, 37 работ, и многие очень интересны уже по заголовкам. А, или то был Жихао. Все молодцы, в общем )
С нетерпением начту прочтение их совместной работы с Хуйлинь Юанем, не побоюсь этого имени, "Forecasting security's volatility using low-frequency historical data, high-frequency historical data and option-implied volatility".
https://arxiv.org/search/q-fin?searchtype=author&query=Zhang%2C+Z
👍1
#games
Bramble: The Mountain King — дуб, терновник и ясень.
"Не ходите, дети, ночью в лес гулять. Терновник запутает, терновник опутает, терновник утащит в чащу. Так предупреждает книга, которую на ночь читают брат и сестра — Олле и Лиллемор. Теперь Олле стоит перед книгой один, за окном ночь, ставни приоткрыты. Лиллемор нигде не видно. Что делать? Остается только спуститься по простыне из окна вниз, на полянку, — без сестры как-то не по себе. Да и сказки всё это, кто в них верит. Ну а родители… Какие родители?.."
https://3dnews.ru/1089436/bramble-the-mountain-king-retsenziya
Bramble: The Mountain King — дуб, терновник и ясень.
"Не ходите, дети, ночью в лес гулять. Терновник запутает, терновник опутает, терновник утащит в чащу. Так предупреждает книга, которую на ночь читают брат и сестра — Олле и Лиллемор. Теперь Олле стоит перед книгой один, за окном ночь, ставни приоткрыты. Лиллемор нигде не видно. Что делать? Остается только спуститься по простыне из окна вниз, на полянку, — без сестры как-то не по себе. Да и сказки всё это, кто в них верит. Ну а родители… Какие родители?.."
https://3dnews.ru/1089436/bramble-the-mountain-king-retsenziya
#chess #analytics #streaks
Занимался весь день какой-то чепухой. Недавно был блиц-турнир шахматных стримеров, победителя обвинили в читерстве. Одним из критериев было озвучено 13 побед кряду над соперниками со сравнимым или более высоким рейтингом. Скачал все игры обвинителя, обвиняемого, и занявшего второе место (30 тыс игр). Показал, что выполнение такого "критерия" не такая уж редкость.
Занимался весь день какой-то чепухой. Недавно был блиц-турнир шахматных стримеров, победителя обвинили в читерстве. Одним из критериев было озвучено 13 побед кряду над соперниками со сравнимым или более высоким рейтингом. Скачал все игры обвинителя, обвиняемого, и занявшего второе место (30 тыс игр). Показал, что выполнение такого "критерия" не такая уж редкость.
YouTube
Как Читерил Семенычев... Привет Komodo)
✅ Донат- https://goo.gl/vHRqGN
✅ Елена Николаевна- 2202 2002 7138 7498
✅ Поддержать Сбербанк- 4276 1609 2029 5913
✅ Донат Qiwi: https://donate.qiwi.com/payin/Witik
✅ Подписаться на канал: https://goo.gl/zfaAvS
✅ Твич- https://www.twitch.tv/weetik2020
✅ Telegram…
✅ Елена Николаевна- 2202 2002 7138 7498
✅ Поддержать Сбербанк- 4276 1609 2029 5913
✅ Донат Qiwi: https://donate.qiwi.com/payin/Witik
✅ Подписаться на канал: https://goo.gl/zfaAvS
✅ Твич- https://www.twitch.tv/weetik2020
✅ Telegram…
#hardware #amd #ml
"C выходом обновлённых версий фреймворка PyTorch 2.0 и платформы ROCm 5.4+ ситуация изменилась — обучение LLM стало возможным на ускорителях AMD Instinct MI250 без изменений кода при использовании её стека LLM Foundry Некоторые основные моменты:
Обучение LLM было стабильным. С высокодетерминированным обучающим стеком LLM Foundry обучение LLM MPT-1B на ускорителях AMD MI250 и NVIDIA A100 дало почти идентичные кривые потерь при запуске с одной и той же контрольной точки. Исследователи даже смогли переключаться между ускорителями AMD и NVIDIA в течение тренировочного прогона.
Производительность была конкурентоспособной с существующими системами A100. Исследователи профилировали пропускную способность обучения моделей MPT с параметрами от 1 до 13 млрд и обнаружили, что скорость обработки MI250 на один ускоритель находится в пределах 80 % от A100-40GB и в пределах 73 % от A100-80GB. Как ожидает компания, этот разрыв сократится по мере улучшения программного обеспечения AMD."
https://servernews.ru/1089341
"C выходом обновлённых версий фреймворка PyTorch 2.0 и платформы ROCm 5.4+ ситуация изменилась — обучение LLM стало возможным на ускорителях AMD Instinct MI250 без изменений кода при использовании её стека LLM Foundry Некоторые основные моменты:
Обучение LLM было стабильным. С высокодетерминированным обучающим стеком LLM Foundry обучение LLM MPT-1B на ускорителях AMD MI250 и NVIDIA A100 дало почти идентичные кривые потерь при запуске с одной и той же контрольной точки. Исследователи даже смогли переключаться между ускорителями AMD и NVIDIA в течение тренировочного прогона.
Производительность была конкурентоспособной с существующими системами A100. Исследователи профилировали пропускную способность обучения моделей MPT с параметрами от 1 до 13 млрд и обнаружили, что скорость обработки MI250 на один ускоритель находится в пределах 80 % от A100-40GB и в пределах 73 % от A100-80GB. Как ожидает компания, этот разрыв сократится по мере улучшения программного обеспечения AMD."
https://servernews.ru/1089341
ServerNews - все из мира больших мощностей
Обойдёмся без NVIDIA: MosaicML перенесла обучение ИИ на ускорители AMD Instinct MI250 без модификации кода
Разработчик решений в области генеративного ИИ MosaicML, недавно перешедший в собственность Databricks, сообщил о хороших результатах в обучении больших языковых моделей (LLM) с использованием ускорителей AMD Instinct MI250 и собственной платформы.
#trading #finance #lob #dl
Очень интересные открытия: нет следов большой нестационарности (даже для 1 года OOS), 1 модель для всех активов лучше отдельных моделей для каждого актива. Использование моделек с памятью типа LSTM улучшает точность (от 100 до 5000 тиков, к примеру, на 1% - path dependence/long memory effects).
https://www.youtube.com/watch?v=diLtyRg6cl4
Очень интересные открытия: нет следов большой нестационарности (даже для 1 года OOS), 1 модель для всех активов лучше отдельных моделей для каждого актива. Использование моделек с памятью типа LSTM улучшает точность (от 100 до 5000 тиков, к примеру, на 1% - path dependence/long memory effects).
https://www.youtube.com/watch?v=diLtyRg6cl4
YouTube
Universal features of intraday price formation: an exploration via Deep Learning
Live from QuantMinds International, Professor Rama Cont, Professor Of Mathematics And Chair In Mathematical Finance at Imperial College London presents on universal features of intraday price formation, including looking at a Deep Learning approach to analysis…
#optimization #ml #metrics #python #numba #codegems
В общем, sklearn-овские метрики оказались слишком медленными, пришлось их переписать на numba. Вот пример classification_report, который работает в тысячу раз быстрее и поддерживает почти всю функциональность (кроме весов и микровзвешивания). Также оптимизировал метрики auc (алгоритм взят из fastauc) и calibration (считаю бины предсказанные vs реальные, потом mae/std от их разностей). На 8M сэмплов всё работает за ~30 миллисекунд кроме auc, та ~300 мс. Для сравнения, scikit-learn-овские работают от нескольких секунд до нескольких десятков секунд.
В общем, sklearn-овские метрики оказались слишком медленными, пришлось их переписать на numba. Вот пример classification_report, который работает в тысячу раз быстрее и поддерживает почти всю функциональность (кроме весов и микровзвешивания). Также оптимизировал метрики auc (алгоритм взят из fastauc) и calibration (считаю бины предсказанные vs реальные, потом mae/std от их разностей). На 8M сэмплов всё работает за ~30 миллисекунд кроме auc, та ~300 мс. Для сравнения, scikit-learn-овские работают от нескольких секунд до нескольких десятков секунд.
@njit()
def fast_classification_report(
y_true: np.ndarray, y_pred: np.ndarray, nclasses: int = 2, zero_division: int = 0
):
"""Custom classification report, proof of concept."""
N_AVG_ARRAYS = 3 # precisions, recalls, f1s
# storage inits
weighted_averages = np.empty(N_AVG_ARRAYS, dtype=np.float64)
macro_averages = np.empty(N_AVG_ARRAYS, dtype=np.float64)
supports = np.zeros(nclasses, dtype=np.int64)
allpreds = np.zeros(nclasses, dtype=np.int64)
misses = np.zeros(nclasses, dtype=np.int64)
hits = np.zeros(nclasses, dtype=np.int64)
# count stats
for true_class, predicted_class in zip(y_true, y_pred):
supports[true_class] += 1
allpreds[predicted_class] += 1
if predicted_class == true_class:
hits[predicted_class] += 1
else:
misses[predicted_class] += 1
# main calcs
accuracy = hits.sum() / len(y_true)
balanced_accuracy = np.nan_to_num(hits / supports, copy=True, nan=zero_division).mean()
recalls = hits / supports
precisions = hits / allpreds
f1s = 2 * (precisions * recalls) / (precisions + recalls)
# fix nans & compute averages
i=0
for arr in (precisions, recalls, f1s):
np.nan_to_num(arr, copy=False, nan=zero_division)
weighted_averages[i] = (arr * supports).sum() / len(y_true)
macro_averages[i] = arr.mean()
i+=1
return hits, misses, accuracy, balanced_accuracy, supports, precisions, recalls, f1s, macro_averages, weighted_averages👍6✍3
Forwarded from Техножрица 👩💻👩🏫👩🔧
Выложила в Линкедин новость про то, что наше исследование включили в программу Interspeech 2023 со всеми ссылками:
https://www.linkedin.com/posts/laida-kushnareva_interspeech-speechprocessing-tda-activity-7084488426594394113-3C5l/
(На самом деле, это произошло уже пару недель назад, но я то ли забыла написать, то ли постеснялась☺️ )
Очень волнуюсь, конечно, в связи с предстоящей конференцией: дадут ли визу (вчера наконец-то подала документы), будет ли мне хоть что-то понятно из чужих докладов на этой конфе (я ведь всё-таки больше специализируюсь на обработке текста), да и в целом, как коллеги по науке, занимающиеся обработкой речи, воспримут наш необычный подход.
https://www.linkedin.com/posts/laida-kushnareva_interspeech-speechprocessing-tda-activity-7084488426594394113-3C5l/
(На самом деле, это произошло уже пару недель назад, но я то ли забыла написать, то ли постеснялась
Очень волнуюсь, конечно, в связи с предстоящей конференцией: дадут ли визу (вчера наконец-то подала документы), будет ли мне хоть что-то понятно из чужих докладов на этой конфе (я ведь всё-таки больше специализируюсь на обработке текста), да и в целом, как коллеги по науке, занимающиеся обработкой речи, воспримут наш необычный подход.
Please open Telegram to view this post
VIEW IN TELEGRAM
Linkedin
[Video] Laida Kushnareva on LinkedIn: #interspeech #speechprocessing #tda #topology
In the meantime, the paper of my colleagues and I, called "TOPOLOGICAL DATA ANALYSIS FOR SPEECH PROCESSING", has been included in the official program of the…
❤🔥1