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

I call myself a data scientist because I know just enough math, economics & programming to be dangerous.
Download Telegram
#AWS #EC2

https://www.nakivo.com/blog/the-definitive-guide-to-aws-ec2-instance-types/

А вообще, вот путеводитель по типам инстансов в Amazon AWS. Тут можно получить машинки с 24Tb RAM. 448 vCPUs, десятками TB SSD/NVME/HDD. Для ML интересны ускорители Inferentia, Trainium (аналог гугловских TPU) для Deep Learning, DL1 (Gaudi), F1 (FPGA). Ни одну из этих диковинок я ещё не пробовал, кто знает, отпишитесь, как они? Работал лишь на серверах p4d с ускорителями А100 (см пикчу). Кстати, а где H100, почему их ещё нет?

PS. В гугл клауд, помнится, есть сервера с ещё большим числом vCPU. Хотелось бы сравнить этот новый Trainium с TPUv3. НА годовалом DL проекте у меня TPU выходил в полтора раза дешевле, чем сервер на A100. Но tensorflow тогда имел проблемы с огромными динамическими графами, и пришлось всё же обучаться на A100, не знаю, исправлено ли это уже.
#aws #s3 #requesterpays

О, классно, оказывается, можно великодушно захостить данные в s3, но не скатываться при этом в полный альтруизм и позволить скачивающим платить за трафик. К примеру, так хранятся все статьи arXiv.org

А вот так можно с ними работать на кластере (подсчёт статей с упоминанием Matplotlib).

https://docs.aws.amazon.com/AmazonS3/latest/userguide/RequesterPaysBuckets.html
Aspiring Data Science
#ml #featureselection #mrmr #uber Оказывается, сотрудники Uber уже проводили сравнение методов FS на синтетике (70 фичей, смешно) и 3 реальных датасетах (upsell/crosssell, ~ тысяча фичей) в парадигме mRMR. Работа мне не понравилась: 1) хотелось бы видеть…
#aws #amazon #cloud

"Компания Amazon отчиталась о работе во II четверти 2023 финансового года, которая была закрыта 30 июня. По ключевым показателям зафиксирован рост. В частности, общая выручка увеличилась в годовом исчислении на 11 % — со $121,2 млрд до $134,4 млрд. По итогам II квартала Amazon продемонстрировала чистую прибыль в размере $6,7 млрд, или $0,65 в пересчёте на одну ценную бумагу. Годом ранее компания понесла чистые убытки около $2,0 млрд, что эквивалентно $0,20 на одну акцию."

https://servernews.ru/1091078
#aws

Облачный провайдер Amazon Web Services (AWS) объявил о запуске новой модели потребления EC2 Capacity Blocks for ML, предназначенной для предприятий, желающих зарезервировать доступ к ускорителям вычислений для обработки кратковременных рабочих нагрузок ИИ.

Решение Amazon EC2 Capacity Blocks for ML позволяет клиентам зарезервировать доступ к «сотням» ускорителей NVIDIA H100 в кластерах EC2 UltraClusters, которые предназначены для высокопроизводительных рабочих нагрузок машинного обучения. Клиенты просто указывают желаемый размер кластера, дату начала и окончания доступа. Таким образом повышается предсказуемость доступности ИИ-ресурсов и в то же время нет необходимости оплачивать доступ к мощностям, когда они не используются. AWS тоже в выигрыше, поскольку такой подход позволяет более полно использовать имеющиеся ресурсы.

https://servernews.ru/1095352
#hardware #aws

"NVIDIA GH200 NVL32 представляет собой готовую систему, выполненную в формате стандартной серверной стойки. Она объединяет 32 гибридных ускорителя NVIDIA GH200 Grace Hopper Superchip, которые представляют собой двухчиповую систему из центрального процессора с 72 ядрами Arm Neoverse и графического процессора NVIDIA H100

Система обладает 2304 процессорными Arm-ядрами, 20 Тбайт оперативной памяти, включая 4,5 Тбайт HBM3e с общей пропускной способностью 157 Тбайт/с. За связь между суперчипами GH200 отвечают девять коммутаторов NVSwitch и интерфейс NVLink с общей пропускной способностью 57,6 Тбайт/с. Применяется система жидкостного охлаждения. AWS первой предложит системы GH200 NVL32 в составе облачной платформы NVIDIA DGX Cloud. Более того, Amazon даст возможность клиентам объединять новые системы NVIDIA в кластеры EC2 UltraClasters, получая в своё распоряжение тысячи ускорителей GH200 Superchip."

https://3dnews.ru/1096649/nvidia-i-amazon-anonsirovali-moshchneyshiy-oblachniy-iisuperkompyuter-project-ceiba
🆒1
#hardware #aws #trainium #graviton

"AWS Trainium2, способен обеспечить в четыре раза более высокую производительность и в два раза более высокую энергоэффективность по сравнению с первым поколением Trainium, представленным в декабре 2020 года. Trainium2 будет доступен клиентам Amazon Web Services в инстансах EC Trn2 в кластерах из 16-ти чипов. В решении AWS EC2 UltraCluster клиенты смогут получить в своё распоряжении до 100 000 чипов Trainium2 для обучения больших языковых моделей.

Кластер из 100 000 чипов Trainium2 способен обучить большую языковую модель ИИ (LLM – large language model) с 300 миллиардами параметров всего за несколько недель. Раньше на такие задачи уходили месяцы обучения. Отметим, что параметры в парадигме LLM — это элементы модели, полученные на обучающих датасетах и, по сути, определяющие мастерство модели в решении той или иной задачи, к примеру, генерации текста или кода. 300 миллиардов параметров — это примерно в 1,75 раза больше, чем у GPT-3 от OpenAI.

Второй чип, анонсированный Amazon сегодня — Arm-процессор Graviton4. Amazon утверждает, что он обеспечивает на 30 % более высокую производительность, на 50 % больше ядер и на 75 % более высокую пропускную способность памяти, чем процессор предыдущего поколения Graviton3 (но не более современный Graviton3E), работающий применяемый в облаке Amazon EC2. Таким образом Graviton4 предложат до 96 ядер (но будут и другие конфигурации) и поддержку до 12 каналов оперативной памяти DDR5-5600.

Ещё один апгрейд по сравнению с Graviton3 состоит в том, что все физические аппаратные интерфейсы Graviton4 зашифрованы. По заявлению Amazon, это должно надёжнее защищать рабочие нагрузки клиентов по обучению ИИ и клиентские данные с повышенными требованиями к конфиденциальности.

«Graviton4 — это четвёртое поколение процессоров, которое мы выпустили всего за пять лет, и это самый мощный и энергоэффективный чип, когда-либо созданный нами для широкого спектра рабочих нагрузок, — говорится в заявлении Дэвида Брауна. — Затачивая наши чипы на реальные рабочие нагрузки, которые очень важны для клиентов, мы можем предоставить им самую передовую облачную инфраструктуру».

Graviton4 будет доступен в массивах Amazon EC2 R8g, которые уже сегодня открыты для пользователей в предварительной версии."

https://3dnews.ru/1096644/amazon-predstavila-novie-chipi-dlya-obucheniya-i-zapuska-modeley-iskusstvennogo-intellekta
1
#cloud #aws #hardware

"Инстансы поддерживают подключение до 128 томов EBS gp2/gp3 или io1/io2. Каждый том io2 Block Express может иметь размер до 64 ТиБ и обеспечивать производительность до 256 тыс. IOPS со скоростью до 32 Гбит/с. Все конфигурации включают 896 vCPU, а объём оперативной памяти варьируется от 12 288 до 32 768 ГиБ. Благодаря системе AWS Nitro вся память доступна для использования. Пропускная способность EBS составляет 60 Гбит/с у младшей версии и 100 Гбит/с у всех остальных. Пропускная способность сети — соответственно 100 и 200 Гбит/с."

https://servernews.ru/1106409
#mlperf #aws #opticloud

Итак, планируем архитектуру скрипта с открытым исходным кодом, делающего замеры производительности железа в ML-задачах и сохранение результатов в облако.

Очень заманчиво позволить скрипту напрямую писать результаты в облачную базу данных, но с таким подходом есть риск, что кто-то заспамит базу поддельными записями, и вся работа сообщества пойдёт насмарку.

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

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

Мне захотелось реализовать сервис mlperf в облаке AWS, так что пока архитектура выглядит как API Gateway->Lambda->ElastiCache/Redis->DocumentDB:

0) пользователь, желающий внести вклад в тестирование железа, запускает скрипт mlperf в командной строке или делает вызов benchmark(...) из питон-кода.
1) пользователь вводит код аутентификации от гугл (перейдя в браузере по ссылке, напечатанной скриптом)
2) скрипт выполняет тестирование и передаёт полезную инфу+код в json по https на url приложения mlperf.
3) запускается lambda-функция, проверяющая размеры переданной информации, извлекающая емэйл пользователя из auth кода.
4) попадание в рэйтлимиты проверяется с помощью развёрнутого ElastiCache/Redis (INCR/EXPIRE)
5) если проверки пройдены, инфа сохраняется в основную таблицу DocumentDB.
6) клиенту возвращается статус операции.

7) некий демон (Максвелла?) в виде очередной Lambda периодически отбрасывает аномалии и аггрегирует все результаты в лидерборд.

Предложения/замечания?
#mlperf #aws #opticloud

Что конкретно тестировать?

Основная идея была в тестировании 3 современных библиотек градиентного бустинга - CatBoost, LightGBM, XGBoost, причём только на задаче обучения и на одном датасете с фиксированным размером, гиперпараметрами и сидами. Даже нет, не 3 бустингов, а 1 - катбуста, т.к. казалось, что сравнительные результаты 2 остальных не будут отличаться.

Потом появилось понимание, что между библиотеками/реализациями могут быть нюансы. К примеру, катбуст может из коробки использовать несколько GPU. LightGBM вообще самый проблемный в плане использования GPU, там на *nix надо танцевать с бубнами.

В случае катбуста и мульти GPU пересылка данных может стоить слишком дорого и даже ухудшать результаты по сравнению с 1 GPU, так что, похоже, надо предусмотреть несколько вариантов размера данных. И при multigpu делать тесты начиная с одного устройства и далее 2, 4, 8...

Также пришла идея замерять инференс (возможно, опционально с интеловским ускорением). Опять же, некоторые либы поддерживают инференс на GPU (XGBoost точно).

Нужен ли RAPIDS, им кто-то вообще пользуется?

DL бенчмарки по идее можно раскопать, и я не думал их добавлять, но всё же... Надо ли кому-то? Скажем, Pytorch Lightning на CPU/GPU, с разными стратегиями шардирования и точностями (float 64/32/16 etc)? если добавлять нейросети, то тогда нужен тест архитектуры со свёртками, т.к. для свёрток сильно докидывают тензорные ядра.

Еще не совсем ясно, что делать, если у пользователя на момент запуска бенчмарка уже загружены некоторые ядра/видеокарты. Морду кирпичом и гнать тесты? Не запускать тесты, пока все не освободятся? Запускать, но с уменьшенным количеством ресурсов?

По поводу инфы о железе: думаю собирать полную, т.е. не только названия моделей CPU/GPU/RAM, но и частоты, характеристики.

С частотами неясно, как их лучше мониторить. Если замерять до запуска скрипта, на машинах с энергосбережением они ведь окажутся заниженными. Получается, надо в отдельном потоке как-то собирать каждую секунду и потом брать средние за время работы скрипта? Возможно, то же самое придётся делать с показателями nvidia-smi.

По софтовой части, обязательно фиксировать версии бустингов, cuda, runtime (python), os, opencl (?).
#cloud #aws #tuning

Оказывается, некоторые облачные машины можно затюнить под конкретную вычислительную задачу по P- и C- состояниям.

"In this example, vCPUs 21 and 28 are running at their maximum Turbo Boost frequency because the other cores have entered the C6 sleep state to save power and provide both power and thermal headroom for the working cores. vCPUs 3 and 10 (each sharing a processor core with vCPUs 21 and 28) are in the C1 state, waiting for instruction.

In the following example, all 18 cores are actively performing work, so there is no headroom for maximum Turbo Boost, but they are all running at the "all core Turbo Boost" speed of 3.2 GHz.


You can reduce the variability of processor frequency with P-states. P-states control the desired performance (in CPU frequency) from a core. Most workloads perform better in P0, which requests Turbo Boost. But you may want to tune your system for consistent performance rather than bursty performance that can happen when Turbo Boost frequencies are enabled.

Intel Advanced Vector Extensions (AVX or AVX2) workloads can perform well at lower frequencies, and AVX instructions can use more power. Running the processor at a lower frequency, by disabling Turbo Boost, can reduce the amount of power used and keep the speed more consistent. For more information about optimizing your instance configuration and workload for AVX."

https://docs.aws.amazon.com/linux/al2/ug/processor_state_control.html
#aws #hardware #trainium

"Представленные в прошлом году чипы работают в четыре раза быстрее предшественников: один инстанс EC2 с 16 ускорителями Trainium2 предлагает производительность до 20,8 Пфлопс. Это значит, что при развёртывании масштабной модели Meta✴️ Llama 405B на платформе Amazon Bedrock клиент получит «трёхкратный прирост скорости генерации токенов по сравнению с другими доступными предложениями крупных облачных провайдеров». Можно будет также выбрать систему EC2 Trn2 UltraServer с 64 ускорителями Trainium2 и производительностью 83,2 Пфлопс. Отмечается, что показатель 20,8 Пфлопс относится к плотным моделям и точности FP8, а 83,2 Пфлопс — к разреженным моделям и FP8. Для связи между ускорителями в системах UltraServer используется интерконнект NeuronLink.

Совместно со своим партнёром в лице Anthropic, основным конкурентов OpenAI в области больших языковых моделей, AWS намеревается построить крупный кластер систем UltraServer с «сотнями тысяч чипов Trainium2», где стартап сможет обучать свои модели. Он будет в пять раз мощнее кластера, на котором Anthropic обучала модели текущего поколения — по оценке AWS, он «станет крупнейшим в мире вычислительным кластером для ИИ, о котором сообщалось до настоящего времени». Проект поможет компании превзойти показатели, которые обеспечиваются актуальными ускорителями Nvidia, которые по-прежнему пользуются высоким спросом и остаются в дефиците. Хотя в начале следующего года Nvidia готовится запустить ускорители нового поколения Blackwell, которые при 72 чипах на стойку предложат до 720 Пфлопс для FP8.

Возможно, поэтому AWS уже сейчас анонсировала ускорители нового поколения Trainium3, которые предлагают ещё один четырёхкратный прирост производительности для систем UltraServer — ускорители будут производиться с использованием техпроцесса 3 нм, а их развёртывание начнётся в конце 2025 года. "

https://3dnews.ru/1114962/aws-razvernula-sistemi-na-uskoritelyah-trainium2-novoe-pokolenie-viydet-god-spustya
1