Получи случайную криптовалюту за регистрацию!

Anscombe's Quartet

Логотип телеграм канала @anscombes_quartet — Anscombe's Quartet A
Логотип телеграм канала @anscombes_quartet — Anscombe's Quartet
Адрес канала: @anscombes_quartet
Категории: Технологии
Язык: Русский
Страна: Россия
Количество подписчиков: 568
Описание канала:

Data/ML Engineering. Рассуждения по теме и не по теме.

Рейтинги и Отзывы

4.33

3 отзыва

Оценить канал anscombes_quartet и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

1

4 звезд

2

3 звезд

0

2 звезд

0

1 звезд

0


Последние сообщения 2

2020-07-27 14:51:40
Совершенно случайно узнал, что несколько моих репозиториев на GitHub попали в GitHub Archive Program.

Говоря кратко, GAP - это программа, в рамках которой часть репозиториев с GitHub сохраняется на специальные, очень долговечные диски, а затем отправляется на глубину 250 метров в вечную мерзлоту в Арктике. Страничка программы обещает хранить данные около 1000 лет, и передать открытый код будущим поколениям - эдакий Project Zero Dawn.

Прямо скажем, репозитории которые были выбраны из моих - далеко не шедевры программирования, но все же я внутри сильно рад этому, как никак остался в истории
791 viewsedited  11:51
Открыть/Комментировать
2020-07-16 18:40:29 На ближайшем митапе DE or DIE #3, который пройдет в онлайне 16 июля с 19:00 до 21:00 (по мск), вместе с коллегами из Dodo Pizza я буду рассказывать о том, как мы строили пайплайны по стриминговой загрузке данных из Azure MySQL DB в Delta Lake с помощью Spark…
719 views15:40
Открыть/Комментировать
2020-07-08 16:00:09
#реклама

От автора: наверное это самая первая реклама на моем канале, но я очень с большим почтением отношусь к МФТИ и считаю его одним из самых сильных вузов страны, поэтому даже немного рад порекламировать их эвенты.

Machine Learning Wednesday - митапы от МФТИ для тех, кто интересуется машинным обучением!

Как оптимизировать нейронные сети и включить ML в процессы компании, не имея для этого размеченных данных! Ближайшие даты:

8 июля 17:00 «Компрессия моделей машинного обучения». Выступают: Илья Жариков и Иван Криворотов.
Польза: узнаете, как сделать свои модели легче и быстрее, расширив возможные области их применения.
Регистрируйтесь по ссылке https://clck.ru/PV8rB

15 июля 17:00 «Использование фреймворка TopicNet для решения задач бизнеса». Выступает: Евгений Егоров.
польза: узнаете, как без размеченного датасета и больших бюджетов на вычислительные ресурсы решать практические ML задачи.
Регистрируйтесь по ссылке https://clck.ru/PV8un
726 views13:00
Открыть/Комментировать
2020-07-06 19:27:49 На ближайшем митапе DE or DIE #3, который пройдет в онлайне 16 июля с 19:00 до 21:00 (по мск), вместе с коллегами из Dodo Pizza я буду рассказывать о том, как мы строили пайплайны по стриминговой загрузке данных из Azure MySQL DB в Delta Lake с помощью Spark Streaming на платформе Databricks. Будет много технических деталей и достаточно подробных описаний, конечно же с Q&A секцией в конце.
Регистрируйтесь по ссылке, и заходите в чат сообщества DE or DIE.

https://deordie.timepad.ru/event/1350632/
https://t.me/deordie_chat
574 viewsedited  16:27
Открыть/Комментировать
2020-06-28 03:35:57 Пока тлеющие угольки памяти не подернулись пеплом ностальгии, я спешно дописал следующую часть моих переездных заметок. Собственно о самом переезде там все еще ни слова, зато гораздо больше о процессе собеседований в 2019 году. Конечно ситуация в 2020 внесет свои коррективы и в этот процесс, но карантин же не может быть вечным.

https://telegra.ph/Rocky-Road-to-Berin-Sobesedovaniya-v-Berline---GYG-and-SumUp-p3-06-28

P.S. я довольно давно ничего не писал на великом и могучем (в смысле каких-то больших постов), прошу простить за всевозможные пунктуационные ошибки.
696 views00:35
Открыть/Комментировать
2020-06-24 17:32:52 Cегодня первый официальный день Spark AI Summit. Как и все эвенты до конца года (видимо), Summit полностью виртуальный. Конференция в этом году очень масштабная - тем, треков и докладов просто огромное количество.

Мне кажется, что наиболее интересные доклады по темам - Distributed DL on GPU, Delta, Mlflow и Apache Arrow. Я думаю что именно этот набор технологий будет обеспечивать edge-technology проекты по ML/Data в ближайшее время. С точки зрения разработки прикладных компонентов под Spark будет еще доклад про Data Source V2 API от DataStax (создатели Cassandra).

Самое время зарегистрироваться, в общем говоря - https://databricks.com/sparkaisummit/north-america-2020
860 viewsedited  14:32
Открыть/Комментировать
2020-05-12 21:00:33 Сегодня в 23:00 по CET (это 00:00 по Москве), будет стрим-интервью с одним из создателей и ключевых разработчиков Apache Spark и MLflow - Matei Zaharia. Помимо этого, будет Q&A сессия, поэтому если у вас есть вопросы о будущем развития самого фреймворка, индустрии Big Data и ML - стоит заглянуть на стрим и задать их.



686 views18:00
Открыть/Комментировать
2020-05-02 20:59:33 Довольно много технического писал, напишу теперь не совсем про технические вещи.

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

Лично мне очень помогает одна простая активность, которую почему-то редко упоминают в различных гайдах - это перевод песен. Да да, все достаточно просто и тривиально на первый взгляд, но это очень мощный инструмент для расширения лексической базы и качественного запоминания слов. Я время от времени заглядываю на https://lyricstranslate.com чтобы практиковаться. Другая опция - переводить на genius.com, но мне не очень нравится его интерфейс.

Давайте разберем пример - песня IC3PEAK "Сказка", с очень поэтичной строкой - "Тянет сердце грузом в пропасть, каменея изнутри". Согласитесь, с ходу перевести эти предложение с деепричастным оборотом так, чтобы грамотно передать смысл сказанного - нетривиальная задача. Немного поиграв со словами и ориентируясь на комментарии, получился следующий перевод (как по мне, вполне сносный - "My heart pulls me into the abyss like a stone, petrifying from within").

Большой плюс сайта в том, что на каждый сделанный вами перевод можно запросить proofreading от более опытных пользователей сайта. Ваш перевод увидят и иностранцы, заинтересованные в этой песне, и если что-то будет переведено не совсем понятно - попросят вас сделать перевод более полным и понятным, что создаст дополнительный feedback loop.
684 views17:59
Открыть/Комментировать
2020-04-25 20:57:31 Apache Spark нынче практически индустриальный стандарт для работы с данными. Как и любой долго развивающийся IT проект с длинной историей, он имеет довольно сложную архитектуру, а некоторые интерфейсы местами сделаны достаточно сложно (а некоторые - наоборот, исключительно гибко и удобно). К сожалению, без более-менее общего понимания того, как работает этот фреймворк, невозможно писать на нем качественные и сложные приложения - зачастую люди натыкаются на базовые ошибки или неверно используют API.

Вот характерный пример, который не так давно встретился в моей практике. У одной из смежных команд стояла задача организовать регулярное чтение данных из S3 path с большим количеством мелких JSON файлов, а затем сохранить результат в обычный parquet format. Первая версия написанной джобы была достаточно тривиальной:


spark.read
.schema(someSchema)
.format("json")
.load(s3path)
.write
.format("parquet")
.partitionBy("date")
.save(anotherS3Path)


Несмотря на кажущуюся простоту задачи, джоба выполнялась в среднем около 9 часов. Первое обвинение, как и положено, полетело в сторону фреймворка - какой же медленный этот ваш Apache Spark!
Догадливый читатель почти наверняка понял, в чем же была проблема - количество файлов.
По умолчанию, спарк будет генерировать по одной партиции на каждый JSON-файл. Это не проблема когда JSON-файлы большие и внутри них много записей, но в приведенном случае общее количество файлов было более 50k и прирастало с течением времени.

Оптимизация в данном случае тривиальна:


spark.read
.schema(someSchema)
.format("json")
.load(s3path)
.coalesce(spark.sparkContext.defaultParallelism)
.write
.format("parquet")
.partitionBy("date")
.save(anotherS3Path)


Coalesce изменяет план вычислений, собирая в кучу разрозненные мелкие файлы, в результате чего создается меньшее количество тасков с большим количеством данных внутри, что позволяет обходить затраты на создание/закрытие отдельных тасков под каждый файл. Результат -одна строчка изменила скорость выполнения этой джобы с 9 часов до 1 часа.

Это я все к чему - для хорошего Data Engineer понимание того, что происходит под капотом Spark является одной из важнейших доменных областей. Вот хорошая дока от одного из коммитеров спарка - она подробно обьясняет все шаги, которые происходят при запуске Spark-приложений:

https://github.com/JerryLead/SparkInternals
1.0K viewsedited  17:57
Открыть/Комментировать
2020-04-13 15:44:37 Я считаю, что одна из очень полезных привычек для инженера - это привычка читать код открытых проектов. Зачастую это помогает освоить новые подходы к написанию решений, или глубже понять инструменты, которыми мы пользуемся каждый день. Я выделил несколько интересных проектов, исходный код которых стоит почитать если вы интересуетесь Big Data / ML инструментами.

Начнем, конечно, с моего любимого Delta формата. Интересные места - то, как работает Optimistic Locking в S3-based среде, имплементация операций Update и Merge, в целом работа с S3-like Filesystem (обратите внимание как имплементированы различные абстракции для транзакционного лога на Azure, S3 и Hadoop-based).

Второй интересный проект, на который я недавно обратил внимание - это находящийся в данный момент в инкубаторе Apache Ratis. Вкратце, Ratis - это гибкая имплементация алгоритма Raft, написанная на Java и выполненная как набор хорошо декомпозированных модулей, позволяющих переиспользовать компоненты этого проекта без импорта огромных зависимостей.

Наконец, последний проект - это написанный на Python mlflow - платформа для автоматизации разработки в сфере ML, с обширным набором интеграций для различных моделей и фрейморков (sklearn, h2o.ai, sagemaker и многие другие). Из примечательного - одним из основных авторов и коммитеров mlflow является Matei Zaharia, один из создателей Apache Spark.

Список, конечно же, не исчерпывающий, и если у вас есть еще на примете какие-нибудь новые и интересные проекты в области Big Data / ML - присылайте, с удовольствием выложу еще подборку.
684 views12:44
Открыть/Комментировать