Forwarded from эйай ньюз
Ultra-Scale Playbook - книга по распределённой тренировке от Huggingface
Хороший общий обзор того, как эффективно использовать сотни GPU для обучения самых мощных AI моделей. Она предлагает пошаговый процесс выбора и настройки конфигурации обучения и их оптимизации. Проходятся по всем основным видам параллелизм, их сильным и слабым сторонам и как сделать их быстрыми и эффективными по памяти.
Книга не просто теоретизирует, она основана на более 4000 реальных экспериментов, использующие вплоть до 512 GPU (кому-то это может показаться не много, но это уже приличный скейл). Результаты поданы в виде куче графиков и интерактивных визуализаций.
Всего 100 страниц, рекомендую почитать. К тому же они сделали cheatsheet, чтобы проще было запомнить содержание книги.
https://huggingface.co/spaces/nanotron/ultrascale-playbook
@ai_newz
Хороший общий обзор того, как эффективно использовать сотни GPU для обучения самых мощных AI моделей. Она предлагает пошаговый процесс выбора и настройки конфигурации обучения и их оптимизации. Проходятся по всем основным видам параллелизм, их сильным и слабым сторонам и как сделать их быстрыми и эффективными по памяти.
Книга не просто теоретизирует, она основана на более 4000 реальных экспериментов, использующие вплоть до 512 GPU (кому-то это может показаться не много, но это уже приличный скейл). Результаты поданы в виде куче графиков и интерактивных визуализаций.
Всего 100 страниц, рекомендую почитать. К тому же они сделали cheatsheet, чтобы проще было запомнить содержание книги.
https://huggingface.co/spaces/nanotron/ultrascale-playbook
@ai_newz
Forwarded from ML for Value / Ваня Максимов
50 оттенков рекомендаций
Недавно появился прикольный список из 50 способов сформулировать задачу рекомендаций товаров. Да-да, их так много 😅
И часто выбрать правильную формулировку, прочитать несколько статей по ней экономят уйму времени
Из прикольных формулировок задачи порекомедновать что-то я бы выделил:
- Multi-iterest recommendations. Очень hot topic 🔥 почти для всех крупных компаний. Тренд на экосистемы приводит к тому, что пользователь внутри одного приложения должен решать сотни разных задач (и иметь сотни интересов). Поэтому важно уметь рекомендовать что-то полезное в каждом из них. Для примера, на маркетплейсе рекомендовать и любимую зубную пасту, и корм для собак, и футболки с аниме в одной ленте
- Location-based recommendations. Мой фаворит со времен Delivery Club, где локация пользователя (и время доставки из ресторана в эту локацию) была чуть ли не главной фичей. Подружить физический мир (локация с дорогой недвижкой, запутанный маршрут курьера, пробки, домашняя и офисная локации пользователя, ...) задача очень интересная!
- Trigger-Induced Recommendation. Делаем рекомендацию в ответ на текущее ключевое действие пользователя. Тоже классная история, когда юзер может явно указать свой текущий интерес: смотрел в тиктоке мемасы, и вдруг хоп - увидел образовательное видео и дальше хочешь образовательный контент. Очень сильно верю в эту историю
Добавил бы к этому списку 51-ую формулировку)
- Slate recommendations. Вспомните Netflix: у него есть очень много горизонтальных "подборок" по тематикам, внутри каждой подборки - персонально отранжированные товары. По сути, они решают мега-крутую задачу: (1) в каком порядке показать подборки + (2) в каком порядке показать фильмы внутри каждой подборки. Помимо того, что в идеале задача комбинаторная, так тут еще нужно помнить, что фильм может быть сразу в нескольких подборках + сами подборки можно авто-генерировать 🤯
В общем, о дивный мир рекомендаций:)
Недавно появился прикольный список из 50 способов сформулировать задачу рекомендаций товаров. Да-да, их так много 😅
И часто выбрать правильную формулировку, прочитать несколько статей по ней экономят уйму времени
Из прикольных формулировок задачи порекомедновать что-то я бы выделил:
- Multi-iterest recommendations. Очень hot topic 🔥 почти для всех крупных компаний. Тренд на экосистемы приводит к тому, что пользователь внутри одного приложения должен решать сотни разных задач (и иметь сотни интересов). Поэтому важно уметь рекомендовать что-то полезное в каждом из них. Для примера, на маркетплейсе рекомендовать и любимую зубную пасту, и корм для собак, и футболки с аниме в одной ленте
- Location-based recommendations. Мой фаворит со времен Delivery Club, где локация пользователя (и время доставки из ресторана в эту локацию) была чуть ли не главной фичей. Подружить физический мир (локация с дорогой недвижкой, запутанный маршрут курьера, пробки, домашняя и офисная локации пользователя, ...) задача очень интересная!
- Trigger-Induced Recommendation. Делаем рекомендацию в ответ на текущее ключевое действие пользователя. Тоже классная история, когда юзер может явно указать свой текущий интерес: смотрел в тиктоке мемасы, и вдруг хоп - увидел образовательное видео и дальше хочешь образовательный контент. Очень сильно верю в эту историю
Добавил бы к этому списку 51-ую формулировку)
- Slate recommendations. Вспомните Netflix: у него есть очень много горизонтальных "подборок" по тематикам, внутри каждой подборки - персонально отранжированные товары. По сути, они решают мега-крутую задачу: (1) в каком порядке показать подборки + (2) в каком порядке показать фильмы внутри каждой подборки. Помимо того, что в идеале задача комбинаторная, так тут еще нужно помнить, что фильм может быть сразу в нескольких подборках + сами подборки можно авто-генерировать 🤯
В общем, о дивный мир рекомендаций:)
GitHub
GitHub - Darel13712/ultimate-recsys-list: Ultimate list of various problem formulations and subtasks in recommender systems
Ultimate list of various problem formulations and subtasks in recommender systems - Darel13712/ultimate-recsys-list
Forwarded from ML for Value / Ваня Максимов
Дыры в данных и в прогнозах
Часто встречаются в прогнозе спроса, но и в других временных рядах тоже!
Один подписчик спрашивал, почему на Каггле в прогнозе разреженного спроса (в какие-то дни нет продаж - этого дня вообще нет в статистике) все считают лаги просто через lag(7), без заполнения пропусков 0?
Иногда это фактически получается лаг не в 7 дней, а 10 или 20
Ошибка классическая, ситуация страшная)) Простой способ заполнить нулями и потом делать lag работает, но и правда растит обьем датасета сильно
Так как быстро заполнить дыры в спросе и сварить датасет?
1. Уровень агрегации побольше
Обычно ~20% ненулевых продаж по магазин-товар-день. ИМХО, на этом уровне агрегации явно не стоит строить прогноз. Можно прогнозировать на уровне, например, товар + город / гео-зона. А потом по историческим долям восстанавливать спрос по магазинам:
- Лучше учатся зависимости спроса от сезонности, скидок и тд
- Итоговая точность часто по магазин-товар-день даже выше 🎯
В каких-то проектах можно агрегировать продажи не по дню, а по неделе. Например, я так делал для оптимизации промо-скидок (скидки длительностью 1-2 недели)
2. Заполнять пропуски 0 !
Да, станет больше данных, но уже не х5 раз, а сильно меньше, тк уровень агрегации выше. В моих кейсах это обычно х1.5-х2
3. Считать только важные лаги за 1 groupby
Обычно это lag(1), ..., lag(7), lag(14), lag(21), lag(28). Не читайте кагл-ноктбуки с генерацией всех фичей таким способом на 1_000+ строк кода 📈
4. Pivot_table + бесплатные фичи
Делаем pivot_table:
по строкам магазин (или город) + товар + дата,
по столбцам - разные лаги.
Дальше считаем агрегацию лагов простой операцией над нужными столбцами, а не еще сотней groupby:
- Среднее за последнюю неделю = mean(lag(1), ...., lag(7))
- Среднее запоследние 4 "понедельника" = mean(lag(7), lag(14), lag(21), lag(28))
В итоге, фичи считаются раз в 5-10 раз быстрее (и правильнее), чем в каггл-ноутбуке. В одной компании я так стал собирать датасет в 21 раз быстрее
P.S. Можно еще с pandas на polars переехать - еще сильнее ускориться 🚀
#timeseries@ml4value
Часто встречаются в прогнозе спроса, но и в других временных рядах тоже!
Один подписчик спрашивал, почему на Каггле в прогнозе разреженного спроса (в какие-то дни нет продаж - этого дня вообще нет в статистике) все считают лаги просто через lag(7), без заполнения пропусков 0?
Иногда это фактически получается лаг не в 7 дней, а 10 или 20
Ошибка классическая, ситуация страшная)) Простой способ заполнить нулями и потом делать lag работает, но и правда растит обьем датасета сильно
Так как быстро заполнить дыры в спросе и сварить датасет?
1. Уровень агрегации побольше
Обычно ~20% ненулевых продаж по магазин-товар-день. ИМХО, на этом уровне агрегации явно не стоит строить прогноз. Можно прогнозировать на уровне, например, товар + город / гео-зона. А потом по историческим долям восстанавливать спрос по магазинам:
- Лучше учатся зависимости спроса от сезонности, скидок и тд
- Итоговая точность часто по магазин-товар-день даже выше 🎯
В каких-то проектах можно агрегировать продажи не по дню, а по неделе. Например, я так делал для оптимизации промо-скидок (скидки длительностью 1-2 недели)
2. Заполнять пропуски 0 !
Да, станет больше данных, но уже не х5 раз, а сильно меньше, тк уровень агрегации выше. В моих кейсах это обычно х1.5-х2
3. Считать только важные лаги за 1 groupby
Обычно это lag(1), ..., lag(7), lag(14), lag(21), lag(28). Не читайте кагл-ноктбуки с генерацией всех фичей таким способом на 1_000+ строк кода 📈
4. Pivot_table + бесплатные фичи
Делаем pivot_table:
по строкам магазин (или город) + товар + дата,
по столбцам - разные лаги.
Дальше считаем агрегацию лагов простой операцией над нужными столбцами, а не еще сотней groupby:
- Среднее за последнюю неделю = mean(lag(1), ...., lag(7))
- Среднее запоследние 4 "понедельника" = mean(lag(7), lag(14), lag(21), lag(28))
В итоге, фичи считаются раз в 5-10 раз быстрее (и правильнее), чем в каггл-ноутбуке. В одной компании я так стал собирать датасет в 21 раз быстрее
P.S. Можно еще с pandas на polars переехать - еще сильнее ускориться 🚀
#timeseries@ml4value
Forwarded from Get Rejected
Кстати хотел всем порекомендовать курс по дегустации вина на ресурсе Coursera:
Wine Tasting: Sensory Techniques for Wine Analysis
Я уже его прошел достаточно давно в 2020 году и благодаря ему я начал получать офферы.
Перед началом курса нужно хорошо подготовиться и закупить необходимые материалы для урока.
Курс достаточно хороший. Добрый дядька на фоне злаковых полей рассказывает как вкушать сыр с вином.
Как чувствовать аромат, как различать вино и так далее.
Wine Tasting: Sensory Techniques for Wine Analysis
Я уже его прошел достаточно давно в 2020 году и благодаря ему я начал получать офферы.
Перед началом курса нужно хорошо подготовиться и закупить необходимые материалы для урока.
Курс достаточно хороший. Добрый дядька на фоне злаковых полей рассказывает как вкушать сыр с вином.
Как чувствовать аромат, как различать вино и так далее.
Coursera
Wine Tasting: Sensory Techniques for Wine Analysis
Offered by University of California, Davis. With its ... Enroll for free.
Forwarded from Дневник Стьюдента
Отобрал 4 конференции, на которых аналитики делятся опытом решения боевых задая.
Чтобы вам не копаться в архивах youtube, собрал все выступления в отдельные плейлисты.
- Avito analytics meetup
Авито выпустили уже 13 эпизодов, в каждом из которых по 3 выступления на полчаса с секцией вопросов.
- Матемаркетинг
Наверное самая популярная оффлайн конференция по аналитике на русскоязычном пространстве.
- Kolesa conf data
Казахская IT-компания, которая устраивает IT-конференции с 2018 года.
- Product analytics, код желтый
Выступления аналитиков Т-банка и приглашенных гостей
Приятного просмотра!
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Ebout Data Science | Дима Савелко
Уничтожение Self-AttentionSelf-Attention или механизм внимания - это такой механизм, который используется сейчас во всех современный LLMках. До него многие задачи решались с помощью рекуррентных нейросетей (RNN), но они обладали некоторыми недостатками:
- сложность в учёте длинных последовательностей
- проблема взрыва/затухание градиентов
- нельзя параллелить вычисления
- сложная в интерпретации
Как итог гугл выкладывает статью Attention Is All You Need. В ней гугл показывает концепцию, которая может решить данные недостатки
Как устроен Self-Attention
На вход подаётся векторные представления слов (зелёные матрицы с 1 картинки). Каждая "строка" в этой матрице - это векторное представление слова. Входящие матрица умножаются на матрицы весов Key, Query, Values. После умножение уже получается матрицы Query, Key, Values (розовая, оранжевая и голубая матрица справа на первой картинке).
Умножается матрица Query на транспонированную матрицу Key (Q*K.T). Мы получаем промежуточную матрицу, отражающую значимость токенов друг для друга.
Для нормировки матрицы Q*K.T, матрица делится на корень из значения размерности векторов модели (например, на sqrt(512) для модели с размерностью 512). Нам нужно делить, так как при умножении Q на K.T у нас увеличивается дисперсия на sqrt(размерность).
Потом применяется функция softmax для, чтобы нормализовать значения и получить attention-матрицу. На картинке 3 предложение "Life is short eat desert first", допусти каждое слово - это токен. Проделав шаги 1 - 4 у нас получится примерно такая attention-матрица, как на картинке 3, где каждый с каждым токеном имеет свою оценку "внимания" между собой. Если скор большой, то эти токены как-то связаны между собой, возможно они вместе образуют какую-то общую информацию.
Зависит от задачи (например обучение генеративной модели), но на attention-матрицу может наложиться маска, например как на картинке 4
attention-матрица умножается на матрицу Values по итогу получается матрица, которая идёт в последующие слои.
Почему выбор сделан на self-attention или его преимущества, которые вас обязательно спросят на собесе
Это была краткая сводка материала, чтобы понять концепцию Self-Attention и рассказать на собесе. Если вы хотите больше узнать более подробно про Self-Attention, то прошу к прочтению
- Всем смотреть базу от Котенкова, здесь мы с ручкой и листком переписываем архитектуру, чтобы в полной мере понимать, как она работает
- Трансформеры в картинках - эту статью прочитать в качестве закрепления материала от Котенкова
- Transformers Explained Visually (Part 3): Multi-head Attention, deep dive
- Attention Networks: A simple way to understand Self-Attention
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Ebout Data Science | Дима Савелко
Основные стадии обучения LLM 😡
Если вас спросят на собеседовании "Какие есть стадии обучения ЛЛМ, если ты хочешь получать много деняк, то обязательно расскажи!", то почитай этот пост, чтобы знать как именно нужно отвечать.
Есть следующие стадии обучения LLM:
1️⃣ Pretrain
Мы пихаем в модель весь интернет и учим её предсказывать следующее слово. Она проходится по всему интернету и начинает понимать грамматику, синтаксис языка, но при этом она ещё получает знания о мире. На данном этапе наша модель, как слабоумный человек, который не может сформулировать мысль, а только издаёт слабопонятные предложения, но при этом ЛЛМка очень много знает
2️⃣ Instruction Fine-Tuning или же Supervised Fine-Tuning
Учим нашего аутиста отвечать на вопросы, то есть учим модель отвечать на вопросы.
Пихаем в неё инструкцию:
и подаёшь то, что ты хочешь получить по итогу в качестве ответа:
Подавая в неё инструкцию и ответ, который хотим получить, мы учим ЛЛМ отвечать на определённую инструкцию пользователя. Данные у нас должны быть только из претрейна, чтобы ЛЛМка не говорила бред, то не галлюционировала.
Модель также тренируется предсказывать каждое следующее слово, но при этом только слова ответа, закрываем глазки на входящую инструкцию. Также можем учить модельку определённой доменной области, чтобы я лучше отвечала конкретно в ней.
3️⃣ Alignment
После всех этапов кастрации модели она много знает (с помощью претрейна) и может отвечать на запрос пользователя (IFT | SFT), НО если к ней обратится какой-нибудь Аджа Абу Али с просьбой подсказать
, то модель такая
Ну мягко говоря, нам такое не надо... Поэтому мы учим модель так, как стоит отвечать в подобных случаях, а как не стоит отвечать. Поэтому когда нам задаёт такой вопрос модель должна ответить что-то типа:
Как же обучить модель так, чтобы она безопасно отвечала на такие вопросы?
Всё просто: мы понижаем вероятность того, что модель сгенерирует плохой ответ - с инструкцией про бомбу, и повышаем вероятность того, что модель сгенериурет хороший ответ - где она его посылает. Также Alignment помогает не только в безопасности, но и в других критериев модели: качество, стиль, размышление, галлюцинации и тд
Есть множество методов, которые используются в Alignment, если интересен их обзор, то жмакайте реакции и комменты, всё распишу🍵
Итог:
🟡 Pretrain - помогает модели запомнить структуру языка и знания о мире. Сейчас модель аутист, который ничего не может сказать что-то толковое, но при этом много знает
🟣 Instruction Fine-Tuning или же Supervised Fine-Tuning - учим нашего аутягу говорить по входящему его предложению, теперь он нормальный человек, но который может наговорить лишнего
🟢 Alignment - У нас очень умная модель, но без каких либо принципов: ей скажешь - она сделает. Поэтому давайте сделаем из неё человека с принципами - гигачада
Если вас спросят на собеседовании "Какие есть стадии обучения ЛЛМ, если ты хочешь получать много деняк, то обязательно расскажи!", то почитай этот пост, чтобы знать как именно нужно отвечать.
Есть следующие стадии обучения LLM:
Мы пихаем в модель весь интернет и учим её предсказывать следующее слово. Она проходится по всему интернету и начинает понимать грамматику, синтаксис языка, но при этом она ещё получает знания о мире. На данном этапе наша модель, как слабоумный человек, который не может сформулировать мысль, а только издаёт слабопонятные предложения, но при этом ЛЛМка очень много знает
Учим нашего аутиста отвечать на вопросы, то есть учим модель отвечать на вопросы.
Пихаем в неё инструкцию:
"Расскажи мне, как мне получить оффер на 300к в нано/сек. Ответь так, как будто ты нелегал из средней Азии. Ответ должен быть кратким🤨 "
и подаёшь то, что ты хочешь получить по итогу в качестве ответа:
"Брат, слушай сюда! Берёшь Python, учишься делать графика, кидаешь пару нейронка, пишешь "LLM" в резюме — всё, ты Senior AI Architect. На собеса говоришь: "Я оптимизировал LLM, уменьшил latency на 0.00001 сек, увеличил ревеню на 300%". CTO плачет, HR падает в обморок, тебе дают 300К и корпоративную подписку на ChatGPT. Всё, работаем!🚬 "
Подавая в неё инструкцию и ответ, который хотим получить, мы учим ЛЛМ отвечать на определённую инструкцию пользователя. Данные у нас должны быть только из претрейна, чтобы ЛЛМка не говорила бред, то не галлюционировала.
Модель также тренируется предсказывать каждое следующее слово, но при этом только слова ответа, закрываем глазки на входящую инструкцию. Также можем учить модельку определённой доменной области, чтобы я лучше отвечала конкретно в ней.
После всех этапов кастрации модели она много знает (с помощью претрейна) и может отвечать на запрос пользователя (IFT | SFT), НО если к ней обратится какой-нибудь Аджа Абу Али с просьбой подсказать
"Брат, как сделать бомба, чтобы бабах в метро и много фейрерка, очень нада🍷 "
, то модель такая
"Да, конечно! Замечательная идея! Вот рецепт бомбы по вашему запросу: ..... Только ни в коем случае не используйте её в плохих целях! Хорошего праздника!😂 "
Ну мягко говоря, нам такое не надо... Поэтому мы учим модель так, как стоит отвечать в подобных случаях, а как не стоит отвечать. Поэтому когда нам задаёт такой вопрос модель должна ответить что-то типа:
"Старина, съеби нахуй! Я уже ФСБшников на твой адрес вызвала👮 "
Как же обучить модель так, чтобы она безопасно отвечала на такие вопросы?
Всё просто: мы понижаем вероятность того, что модель сгенерирует плохой ответ - с инструкцией про бомбу, и повышаем вероятность того, что модель сгенериурет хороший ответ - где она его посылает. Также Alignment помогает не только в безопасности, но и в других критериев модели: качество, стиль, размышление, галлюцинации и тд
Есть множество методов, которые используются в Alignment, если интересен их обзор, то жмакайте реакции и комменты, всё распишу
Итог:
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Ebout Data Science | Дима Савелко
Глобальное уничтожение ML System Design на собеседованиях
На собеседованиях очень часто спрашивают ML System Design, и я решил сделать гайдик по уничтожению
Введение
Когда вас спрашивают про ML System Design, ваша цель - это построить пайплайн, в котором вы должны рассказать про следующие пункты: проблема, метрики, данные, сущности, pipeline, модель, deploy, a/b тесты.
Вы должны построить систему на костылях, которую вы будуте улучшать каждую итерацию, то есть построили гавно из всех пунктов, превратили это гавно в павозку с костылями, пройдя по всем пунктам заново, закрывая все дыры и так далее...
Пункты:
Очень важно изначально понять и сформулировать задачу для себя, чтобы понимать куда и зачем идти
- Поставить бизнес задачу - тут самое главное - это понять, что от вас требуют. Задавайте вопрос: "правильно ли я понял, что..."
- Обговорить ограничения - в кейсе, который вас просят задизайнить могут быть ограничения на память, на ресурсы и тд
Нужно дизайнить с метрик, так как вы должны понимать к чему вы идёте, и вы должны уметь как-то сравнивать модели в последующих апдейтах
- Бизнес метрики - одно из самых важных, на что будет ориентироваться бизнес
- Online метрики - это те метрики, которые будут измеряться во время A/B теста, чтобы понять хуже/лучше модель
- Offline метрики - метрики, которая проверяются на train/test во время обучения модели
Знаем метрики, теперь нужно разобрать какие данные у нас есть для последующего обучения моделей
- Сущности - Нужно определить какие у нас сущности: пользователь, карточка товара....
- Характеристики сущностей - У каждой сущности есть свои характеристики. Для пользователя это - фио, пол, возраст и тд, для карточки товара - это цена, описание, бренд...
- Сбор Данных - Как мы будем собирать данные: cпарсим, копирайтеры, возьмём из БД
- Как работает сервис - Необходимо описать как сервис будет работать в целом: какие есть блоки, как они взаимодействуют между собой, что и как друг другу передаёт.
Нужно лучше начать с бейзлайна - с самой просто задачи.
Если у вас задача рекомендации, то для начала стоит просто сказать: "пусть бейзлайном будет выдача самих лучших товаров по рейтингу, чуть позже улучшим модель, опираясь на online и offline метрики". Помни, твоя задача всего интервью- построить полностью готовый пайплайн решения.
После того как вы закрыли данные пункты, то улучшайте бейзлайн, рассказывая про это:
- Задача - классификация, ранжирование, регрессия
- Loss - для каждой задачи свой лосс
- X/y - необходимо написать на каких данных вы обучаетесь
- Train/Test Split - Как вы разбиваете данные для обучениия: на чём тренируетесь, на чём валидируетесь
- Фичи и их сбор - Как вы собираете данные, и как вы преобразовывайте данные
Как вы будете деплоить, лично я обычно говорю про данные пункты, упоминая технологии.
- Пайплайн хранения данных и транспорт даты - Amazon S3, MySQL, FEAST, HDFS, Kafka
- Пайплайн создания фичей - Apache Spark
- Пайплайн дообучения модели - Airflow
- Пайплайн мониторинга - ML Flow
- Архитектуры: микросервис - Docker, K8s
A/B тест - это та вещь, на которую вы будете смотреть, чтобы понять, как изменяется модель в "реальном мире", а не в ноутбуке.
- На какую метрику смотрим в тесте - обычно это онлайн метрика: CVR, CTR, Retention
- Контрольная тестовая группа - как будем делить A выборку и B выборку, обычно я говорю "A (старая модель) - 70% выборки, B (новая модель)- 30% выборки. Главное, чтобы и в А, и в В выборке количество данных было таковым, чтобы была статистическая значимость A/B теста."
- Сколько наблюдений - "Главное, чтобы и в А, и в В выборке количество данных было таковым, чтобы была статистическая значимость A/B теста."
Материалы (Очень рекомендую к просмотру)
ML System Design: Выпуск 1, Выпуск 2, Выпуск 3
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Записки MLEшника
Извините! Я почему вредный был? Потому что у меня cloudpathlib не было! А теперь я сразу добреть начну. И какую-нибудь папку на s3 заведу. Чтоб жить веселее. Ты домой приходишь, и удобно файлы на s3 кладешь… Э-эх!
Вечно спотыкался об интерфейс boto3. Как-то там не по-питоновски всё. А я
pathlib.Path люблю. Вот и попробовал
cloudpathlib, который дает интерфейс Path для s3 (а также gs и azure). Понравилось. Теперь и Вам советуюЕще он хорошо комбинируется с тредингом, если надо много файликов загрузить или скачать. Сильно бодрее в моем случае грузил
#tool