Big Data Science [RU]
1.62K subscribers
79 photos
9 videos
544 links
Big Data Science [RU] — канал о жизни Data Science.
Для сотрудничества: a.chernobrovov@gmail.com
🌏https://t.me/bdscience — Big Data Science channel (english version)
💼https://t.me/bds_job — channel about Data Science jobs and career
Download Telegram
🤦🏼‍♀️Машинное забывание– новая задача в ML
Иногда ML-алгоритмы должны забывать то, чему научились. Например, искусственный интеллект может разрушить конфиденциальность. Регулирующие органы по всему миру имеют право заставлять компании удалять неправомерно полученную информацию. Граждане ЕС и Калифорнии могут потребовать, чтобы компания удалила их данные. Недавно регулирующие органы США и Европы заявили, что владельцы систем искусственного интеллекта иногда должны удалять системы, обученные на конфиденциальных данных. А в 2020 году британский регулятор данных предупредил компании, что на некоторые ML-программы могут распространяться права GDPR, поскольку они содержат персональные данные. В начале 2021 года Федеральная торговая комиссия США вынудила стартап по распознаванию лиц Paravision удалить коллекцию неправильно полученных фотографий лиц и ML-алгоритмов, обученных на них.
Таким образом, мы приходим к новой области DS под названием машинного разучивания, которая ищет способы вызвать избирательную амнезию для ИИ, чтобы удалить все следы определенного человека или точки данных из ML-системы, не влияя на ее производительность. Некоторые исследования показали, что при определенных условиях можно заставить ML-алгоритмы забыть что-то, но этот метод еще не готов для использования в production. В частности, в 2019 году ученые из университетов Торонто и Висконсин-Мэдисон предложили разделять исходные данные для машинного обучения на несколько частей, каждая из которых обрабатывается отдельно, прежде чем результаты будут объединены в окончательную ML-модель. Если позднее потребуется забыть одну точку данных, нужно повторно обработать только часть исходного датасета. Тестирование показало, что подход работает с данными об онлайн-покупках и коллекцией из более чем миллиона фотографий. Однако, система разобучения выйдет из строя, если отправленные запросы на удаление будут поступать в определенной последовательности. Теперь исследователи ищут, как решить эту проблему. Впрочем, методы машинного разобучения являются скорее демонстрацией технической проницательности, чем серьезным сдвигом в защите данных. Ведь, даже если машины научатся забывать, пользователям придется помнить о том, с кем они делятся своими данными.
https://www.wired.com/story/machines-can-learn-can-they-unlearn/
Премиум-EDA с Lux
Продолжаем рассказывать о полезных DS-инструментах, которые пригодятся в ежедневной работе. Например, Python-библиотека Lux, которая упрощает и ускоряет исследование данных за счет автоматизации процесса визуализации и анализа данных. Для датафрейма в Jupyter Notebook, Lux рекомендует набор визуализаций, выделяющих интересные тенденции и закономерности в наборе данных. Визуализации отображаются с помощью интерактивного виджета, который позволяет быстро просматривать большие коллекции визуализаций и разбираться в данных. Будучи глубоко интегрированным с Pandas, Lux поддерживает различные типы географических и временных данных в этой библиотеке, а также SQL-запросы к Postgres.
Центральная часть модели данных Lux Dataframe – подкласс Pandas dataframe, который поддерживает все операции с данными, а также содержит другие переменные и функции для генерации визуальных рекомендаций.
https://github.com/lux-org/lux
https://lux-api.readthedocs.io/en/latest/source/getting_started/overview.html
☂️Обратный ETL: что это и как использовать
Обратный ETL - это процесс копирования данных из хранилища данных в операционные системы, включая SaaS для маркетинга, продаж и поддержки. Это позволяет любой команде специалистов, от продавцов до инженеров, получить доступ к нужным данным в системах, которые они используют. Выделяют 3 основных варианта использования обратного ETL:
Операционная аналитика - предоставление аналитических сведений бизнес-командам в их обычных рабочих процессах и инструментах, чтобы принимать решения на основе данных
• Автоматизация данных - автоматизация специальных запросов данных от других команд, например, когда финансисты запрашивают данные об использовании продуктов для выставления счетов
Персонализация взаимодействия с клиентов в разных приложениях.

Сегодня наиболее популярными средствами обратного ETL можно назвать следующие:
Hightouch - платформа данных, которая позволяет синхронизировать данные из хранилищ с инструментами CRM, маркетинга и клиентской поддержки https://hightouch.io/docs/
Census - платформа оперативной аналитики, которая синхронизирует хранилище данных с разными приложениями https://www.getcensus.com/
Octolis – облачный сервис, позволяющий отделам маркетинга и продаж легко развертывать сценарии использования, активируя свои данные в своих операционных инструментах, например, CRM или ПО для автоматизации маркетинга https://octolis.com/
Grouparoo - обратный ETL с открытым исходным кодом, который легко запускается на ноутбуке или в облаке, позволяя разрабатывать локально, фиксировать изменения и развертывать https://www.grouparoo.com/docs/config
Polytomic – ETL-решение, которое позволяет за пару минут создавать в реальном времени все необходимые данные о клиентах в Marketo, Salesforce, HubSpot и других бизнес-системах https://www.polytomic.com/
RudderStack - платформа клиентских данных для разработчиков, где инструменты обратного ETL упрощают развертывание конвейеров, собирающих данные о клиентах из каждого приложения, веб-сайта и SaaS-платформ, чтобы активировать их в DWH и в прикладных системах https://rudderstack.com/
Workato – средство автоматизации бизнес-процессов в облачных и локальных приложениях https://www.workato.com/
Omnata – инструмент интеграции данных для современных архитектур https://omnata.com/
Smart ETL Tool от Rivery – платформа автоматизации ETL-процессов с помощью любой облачной СУБД, включая Redshift, Oracle, BigQuery, Azure и Snowflake https://rivery.io/
Reverse ETL
Сегодня я расскажу о Cloud-провайдере Русоникс, точнее об одном из ее продуктов, который может пригодится для DS-задач: виртуальный дата-центр – облачный сервис по модели «Инфраструктура как услуга» (IaaS). https://www.rusonyx.ru/iaas/
Как и у прочих облачных провайдеров, стоимость использования зависит от потребляемых ресурсов и первичных настроек, стартуя от 1000 рублей в месяц на самой простой конфигурации (ОС Ubuntu на 1 виртуальный ЦП с 1ГБ памяти, 1 ГБ HDD и 5-ю IP-адресами). Максимальная стоимость около 87 тысяч в месяц для ОС Windows Server 2016, 24 виртуальных ЦП, 128 ГБ памяти, хранилище почти 4 терабайта SSD и 32 IP-адреса. Каждый дополнительный диск увеличивает цену и неудивительно, что SSD стоит дороже HDD. Также можно выбрать дополнительные опции: резервное копирование, VPN/L2 на Яндекс.Cloud и балансировщик нагрузки. Защита от DDoS-атак предоставляется по умолчанию.
По сравнению с Яндекс.Cloud работает быстрее для многих задач. В отношении Data Science стоит выделить тесты по распознаванию речи, детекции лиц и машинному обучению. Например, в одноядерном режиме Русоникс лидирует в детекции лиц, обрабатывая 5.26 изображений в секунду против 4.72 в Яндекс.Cloud. Распознавание речи выполняется на том же уровне, что и в облаке Яндекса (20.7 слов в секунду), а вот в ML-тестах результат несколько хуже: Русоникс обрабатывает 17.5 изображений в секунду против 20.7 в Яндекс.Cloud.
Впрочем, в многоядерном режиме Русоникс намного опережает конкурента, в секунду обрабатывая 9.27 изображений против 5.53 и почти 40 слов вместо 28.4. В ML-кейсах облако Русоникс также лидирует: 33.8 изображений в секунду, тогда как Яндекс.Cloud справляется только с 23.5.
Сравнение цен с другими конкурентами (Amazon Web Services, Microsoft Azure, Google Cloud Platform) не делает Русоникс самым дешевым вариантом, однако стоимость месячного использования сравнима с Yandex.Cloud (2 281, 69 руб/мес. для виртуальной машины с ОС Linux, 2-х ядерным ЦП, 4 Гб RAM и SSD 30 GB). А если вам нужны сервера с ОС Windows, например, для 1C и других специфических приложений, условия Русоникс для той же конфигурации виртуальной машины будут самыми выгодными (3 180, 25 руб/мес).
Точная стоимость использования облака Русоникс зависит от потребляемых ресурсов: расходы считаются каждые сутки. Оптимизировать затраты можно, настроив ресурсопотребление, прямо в разделе «Отчеты». Ежемесячный баланс определяется ежедневными расходами.
Виртуальный сервер Русоникс поддерживает 2 технологии виртуализации: контейнеры и гипервизор. Контейнеры работают чуть быстрее и обеспечивают гибкое масштабирование ресурсов. Однако, здесь есть ограничения на виды операционных систем: возможно выбрать только из представленных вариантов. Во втором случае можно загружать собственные образы операционных систем, хотя изменение ресурсов виртуальной машины может потребовать ее перезапуска.
С точки зрения пользователя стоит отметить достаточно удобный веб-интерфейс со всеми нужными в работе функциями: от создания виртуального сервера до управления пользователями и дэшборда с отчетами. В частности, создать свой сервер можно всего за 4 шага, настроив все необходимые параметры: конфигурацию, образ, диски и сети.
В заключение отмечу бесплатную голосовую поддержку 24/7 выделенным менеджером, безлимитный трафик и фиксированные цены в рублях, что особенно важно для российских проектов.
Протестировать сервис Русоникс можно бесплатно по запросу, а при переходе от другого Cloud-провайдера первый внесенный платеж удвоится.
👍🏻5 советов DL-разработчику по TensorFlow и Keras
• используйте правильные типы данных, чтобы сэкономить 50-90% памяти. Например, float32 вместо float64 или unit8 вместо int64.
• кодируйте метки с помощью моделей однократного кодирования (one-hot encoding) и авторов, которые выводят значение для каждого класса. Эта практика в целом безопасна и правильна. Для больших наборов данных или множеством классов используйте разреженные метки, хранящиеся в форме индекса: например, седьмой класс представлен числом семь, а не вектором нулей с седьмой позицией, установленной в единицу. Для задачи на 1000 классов это на несколько порядков компактнее. Число uint16 против тысячи чисел с плавающей запятой. Большинство наборов данных по умолчанию упакованы с разреженными метками, и мы заставляем их использовать горячие. Также полезна разреженная кросс-энтропия - вариант категориальной кросс-энтропии, который сравнивает выходные данные вашей модели в одном горячем формате с достоверными метками в формате индекса. Это тоже сэкономит много памяти.
• Eager-режим поможет отследить первоисточник ошибок или сосредоточиться на более широкой картине, прежде чем сузить их до проблем графического режима, например, с использованием правильных типов данных. Это актуально для внутренних ошибок TensorFlow с несовместимыми типами данных. Eager Mode пригодится и для tf.data, т.к. этот API всегда отслеживает все в графическом режиме. Хотя эта функция еще помечена как экспериментальная, начиная с TensorFlow 2.6, ее можно активировать и использовать для отладки в API tf.data.
• Используйте Lambda Callback для отслеживания прогресса обучения, чтобы внедрить код, который будет запускаться в конце эпохи. В случае «медленных» показателей можно параметр эпохи, чтобы пропустить выполнение кода в нечетные эпохи или выполнять его с большим шагом, например, каждые десять эпох.
• Сделайте свою библиотеку, например, в файле Layers.py со всеми пользовательскими данными, чтобы использовать их в текущих и будущих проектах.
https://towardsdatascience.com/taking-keras-and-tensorflow-to-the-next-level-c73466e829d3
Как получать качественные данные?

У вас может быть высочайший уровень работы на всех этапах продвижения продукта, но если вы используете некачественные данные, хороших результатов вы не получите. Важнейшее свойство информации - консистентность, особенно для продуктовой аналитики. От неё напрямую зависит качество данных.

На Матемаркетинге Влад Харитонов и Олег Хомюк из Lamoda подробно расскажут о том, как эту консистентность обеспечить, в том числе в контексте масштабирования. Строгая типизация, основанная на контрактах, версионирование, кросс-платформенность, использование наследования для масштабирования - вот некоторые пункты их выступления.

Матемаркетинг - крупнейшая конференция по продуктовой и маркетинговой аналитике, монетизации и решениям, основанным на данных, в России и СНГ.

- - - -
Матемаркетинг пройдет 18-19 ноября в Москве, а также будет доступен в онлайне.
↪️ Программа и все подробности доступны на нашем сайте.
- - - -

А пока делимся докладом Jordi Roura, InfoTrust Барселона, с прошлогоднего Матемаркетинга, из которого вы сможете подробнее узнать о том, как обеспечивать качество данных в целом и на конкретных примерах.
✍🏻5 советов Data Scientist’у по Scikit-learn
1. Заполнение пропусков с помощью итеративного заполнителя
– IterativeImputer, который итеративно ищет и заполняет пропущенные значения, улучшая датасет с каждой итерацией. Для использования этой функции ее следует импортировать enable_iterative_imputer из пакета sklearn.experimental
2. Генерация случайных фиктивных данных, чтобы зарезервировать место, где должны присутствовать реальные или полезные данные. Фиктивные данные нужны для тестирования, поэтому они должны быть надежными. Для этого можно применить функции make_classification() в задаче классификации или make_regression() в задаче регрессии. Также можно установить количество образцов и фичей, чтобы контролировать поведение данных в отладке и тестировании.
3. Сохранение ML-моделей, чтобы повторно использовать их без переобучения. Чтобы сериализовать свои алгоритмы и сохранить их, пригодятся Python-библиотеки pickle и joblib.
4. Построение матрицы ошибок с помощью функции plot_confusion_matrix, которая отображает истинно положительные, ложноположительные, ложноотрицательные и истинно отрицательные значения.
5. Визуализация деревьев решений с помощью функции tree.plot_tree в пакете matplotlib без ручной установки зависимостей для создания простых визуализаций. Также можно сохранить дерево как графический png-файл.
https://www.educative.io/blog/scikit-learn-tricks-tips
Искусственный интеллект проверит надежность российских НКО ⚡️⚡️

С 15 по 17 октября в Перми состоится шестой из 116 хакатонов по искусственному интеллекту 😌

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

Постановщик задачи: платформа интеллектуального волонтерства ProCharity.

Проект направлен на популяризацию технологий искусственного интеллекта в России среди молодых специалистов и студентов, формирование ИТ-сообщества с фокусом на ИИ, а также на генерацию решений для бизнеса и гос.сектора. Участники получат возможность внести свой вклад в развитие цифровой экономики страны, а также продемонстрировать свои навыки крупнейшим российским ИТ-компаниям.

Победители разделят между собой призовой фонд в 400 000 рублей!!

✌️ Встречаемся в Технопарке Morion Digital по адресу:
ш. Космонавтов, д. 111, корп. 10


Организатор проекта – Министерство экономического развития РФ, оператор – АНО «Россия – страна возможностей». Организационный партнер – Российская ассоциация электронных коммуникаций, технологический партнер – Яндекс.Облако.

⚡️ Регистрация открыта до 13 октября.

https://hacks-ai.ru/hakaton/perm
📝Математика для Data Scientist’а: 3 меры расстояния, часть 1
Евклидово расстояние (Euclidean Distance) – измеряет длину отрезка, соединяющего две точки. Самая распространенная мера, но не масштабируемая, т.к. вычисленные расстояния могут искажаться в зависимости от единиц измерения объектов. Поэтому перед использованием этой метры нужно нормализовать данные. По мере увеличения размерности данных полезность евклидова расстояния уменьшается. Но эта мера отлично работает для данные с низкой размерностью. Например, методы kNN и HDBSCAN показывают с этой мерой хорошие результаты. Наконец, евклидово расстояние интуитивно понятно в использовании и просто в реализации.
Косинусное подобие (Cosine Similarity) - косинус угла между двумя векторами. Этот способ помогает устранить недостатки евклидова расстояния для высокой размерности. Два вектора с одинаковой ориентацией имеют косинусное сходство, равное 1, а векторы, диаметрально противоположные друг другу, имеют сходство, равное -1. Величина векторов не имеет значения, поскольку это мера ориентации. Поэтому данная мера не слишком подойдет для рекомендательных систем, т.к. косинусное сходство не учитывает разницу в шкале оценок между разными пользователями. Тем не менее, косинусное сходство пригодится, когда есть многомерные данные и величина векторов не имеет значения, например, для анализа текстов.
Расстояние Хэмминга (Hamming distance ) - количество значений, которые отличаются в двух векторах. Обычно используется для сравнения двух двоичных строк одинаковой длины, например, чтобы сравнить, насколько они похожи друг на друга, путем вычисления количества отличающихся символов. Расстояние Хэмминга сложно применить, когда два вектора имеют разные длины. Например, для исправления или обнаружение ошибок при передаче данных по компьютерным сетям при определении количества искаженных битов в двоичном слове как способа оценки ошибки. Также можно использовать расстояние Хэмминга для измерения расстояния между категориальными переменными.
🚀FLAN от Google AI: универсальные языковые модели с тонкой настройкой инструкций
Чтобы ML-модель могла генерировать осмысленный текст, она должна обладать большим объемом знаний о мире и способностью к абстрагированию. Хотя языковые модели, которые обучены этому, способны автоматически приобретать эти знания по мере их масштабирования, ML-модели их следует лучше раскрыть эти знания и применить их к конкретным реальным задачам.
Один из недавних популярных методов использования языковых моделей для решения задач называется подсказкой с нулевым выстрелом или подсказкой с несколькими выстрелами. Этот метод формулирует задачу на основе текста, который языковая модель могла видеть во время обучения, чтобы затем генерировать ответ, дополняя текст. Хотя этот метод имеет хорошую производительность для некоторых задач, он требует тщательного проектирования, чтобы задачи выглядели как данные, которые модель видела во время обучения. Этот подход хорошо работает с некоторыми задачами, но может быть не интуитивно понятным для практического взаимодействия с моделью. Например, создатели GPT-3 обнаружили, что такие методы подсказки не приводят к хорошей производительности в задачах вывода естественного языка (NLI).
Вместо этого FLAN настраивает модель на большом наборе разнообразных инструкций, которые используют простое и интуитивно понятное описание задачи, например, «Классифицируйте этот обзор фильма как положительный или отрицательный» или «Переведите это предложение на датский». Создание набора данных с инструкциями с нуля для точной настройки модели потребует значительных ресурсов. Поэтому можно использовать шаблоны для преобразования существующих наборов данных в учебный формат. Эксперименты исследователей Google AI показали успешность такого подхода, протестировав FLAN и GPT-3 на 25 задачах.
Примечательно, что в небольших масштабах метод FLAN фактически снижает производительность, и только в более крупных масштабах модель становится способной обобщать инструкции в обучающих данных до невидимых задач. Это связано с тем, что маленькие модели не имеют достаточного количества параметров для выполнения большого количества задач.
https://ai.googleblog.com/2021/10/introducing-flan-more-generalizable.html
Сравнение FLAN с GPT-3
🚀Новый прорыв от DeepMind AI: архитектура Enformer для генетических исследований
Архитектура Enformer, основанная на Transformers, продвигает генетические исследования, чтобы точно предсказывать, как последовательность ДНК влияет на экспрессию генов. В начале октября 2021 года журнал Nature Methods опубликовал статью исследователей DeepMind и Calico про новую архитектуру нейросети Enformer, которая намного повышает точность прогнозирования экспрессии генов по последовательности ДНК. Разработчики выложили эту модель и ее первоначальные прогнозы общих генетических вариантов в открытый доступ.
Enformer основана на трансформерах, распространенных в обработке естественного языка, чтобы использовать механизмы самовнимания для большего охвата ДНК-контекста. Путем эффективной обработки последовательностей для учета взаимодействий на расстояниях, которые более чем в 5 раз (т.е. 200000 пар оснований) больше предыдущих методов, новая архитектура может моделировать влияние важных регуляторных элементов на экспрессию генов, находящихся в последовательности ДНК.
С помощью ИИ можно исследовать новые возможности для поиска закономерностей в геноме и выдвигать механистические гипотезы об изменениях последовательностей. Подобно программе проверки орфографии, Enformer частично понимает словарь последовательности ДНК и может выделять изменения, которые могут привести к изменению экспрессии генов.
Основное применение этой новой модели - предсказать, какие изменения букв ДНК, также называемые генетическими вариантами, повлияют на экспрессию гена. По сравнению с предыдущими моделями Enformer значительно точнее предсказывает влияние вариантов на экспрессию генов, как в случае естественных генетических вариантов, так и синтетических вариантов, которые изменяют важные регуляторные последовательности. Это свойство полезно для интерпретации растущего числа вариантов, связанных с заболеванием, полученных с помощью полногеномных ассоциативных исследований. Варианты, связанные со сложными генетическими заболеваниями, преимущественно расположены в некодирующей области генома, вероятно, вызывая заболевание, изменяя экспрессию генов. Но из-за внутренней корреляции между вариантами многие из этих связанных с заболеванием вариантов коррелируют только ложно, а не являются причинными. Вычислительные инструменты помогают отличить истинные ассоциации от ложных срабатываний.
https://deepmind.com/blog/article/enformer
https://www.nature.com/articles/s41592-021-01252-x
https://github.com/deepmind/deepmind-research/tree/master/enformer
✍🏻Математика для Data Scientist’а: еще 3 меры измерения расстояния, часть 2
Манхэттенское расстояние (Manhattan Distance), которое также называют мерой такси или городского квартала, вычисляет расстояние между векторами с действительными значениями. Тогда манхэттенское расстояние относится к расстоянию между двумя векторами на однородной сетке, если они могут двигаться только под прямым углом. При расчете расстояния не используется диагональное движение. Хотя манхэттенское расстояние кажется приемлемым для многомерных данных, это мера менее интуитивно понятна, чем евклидово расстояние. Мера с большей вероятностью даст более высокое значение расстояния, чем евклидово расстояние, поскольку оно не является кратчайшим из возможных. Однако, если набор данных имеет дискретные и/или двоичные атрибуты, манхэттенское расстояние работает хорошо, поскольку учитывает реальные пути в пределах возможных значений.
Расстояние Чебышева (Chebyshev distance) определяется как наибольшая разница между двумя векторами по любому координатному измерению, т.е. это просто максимальное расстояние по одной оси. Эту меру также часто называют расстоянием шахматной доски, поскольку минимальное количество ходов, необходимых королю для перехода с одного поля на другое, равно расстоянию Чебышева. Это расстояние обычно используется в очень конкретных случаях использования, что затрудняет его использование в качестве универсальной меры расстояния, в отличие от евклидова расстояния или косинусного подобия. Поэтому рекомендуется расстояние Чебышева только в определенных случаях. Например, для определения минимального количества ходов в играх, допускающих неограниченное 8-стороннее движение. Также расстояние Чебышева часто используется в складской логистике, например, для определения времени, необходимому мостовому крану для перемещения объекта.
Расстояние Минковского (Minkowski distance) - более сложная мера, используемая в нормированном векторном пространстве (n-мерное реальное пространство), где расстояния могут быть представлены как вектор, имеющий длину. При использовании этой меры есть нулевой вектор, который имеет нулевую длину, а все другие имеют положительную, вектор может умножаться на число (скалярный коэффициент), а кратчайшим расстоянием между двумя точками является прямая линия. Также здесь можно использовать параметр p, чтобы управлять показателями расстояния, похожих на другие меры, например, p = 1 используется для Манхэттенского расстояния, p = 2 – для Евклидова, а p = ∞ для расстояния Чебышева. Поэтому, чтобы работать с расстоянием Минковского, нужно понимать назначение, достоинства и недостатки манхэттенской, евклидовой и меры Чебышева. А поиск правильного значения параметра p может быть неэффективным с вычислительной точки зрения, он дает гибкость в отношении метрики расстояния и в случае верного подбора может быть огромным преимуществом.
📝Анализ данных временных рядов: 5 советов Data Scientist’у
Одна из самых распространенных ошибок в анализе данных временных рядов, которую совершают новички – это предположение, что данные имеют регулярные точки и не содержат пропусков. На практике это обычно не подтверждается и приводит к неверным результатам. В реальных датасетах часто отсутствуют точки данных, а имеющиеся расположены неравномерно или непоследовательно. Поэтому перед анализом данных временных рядов следует провести этап предварительной подготовки:
Понять временной диапазон и детализацию временного ряда по точкам данных с помощью визуализации датасета;
Сравнить фактическое количество тактов в каждом временном ряду с количеством ожидаемых тактов в зависимости от интервала между точками и общей длины временного ряда. Это соотношение иногда называют коэффициентом заполнения, равным разнице между максимальной и минимальной временной меткой, деленной на интервал между точками. Если это значение намного меньшее 1, то пропущено очень много данных.
Отфильтровать серии с низким коэффициентом заполнения, установив ограничение, например, в 40% или то, что подходит для конкретной задачи.
Стандартизировать интервал между отметками во временных рядах за счет повышения дискретизации до более детального разрешения.
Заполнить пропуски с повышенной дискретизацией, используя соответствующий метод интерполяции, например, на основе последнего известного значения или линейной/квадратичной интерполяции. В Apache Spark для этого можно использовать метод applyInPandas в сгруппированном датафрейме PySpark, под капотом которого pandasUDF, производительность которой намного выше простых UDF-функций за счет более эффективной передачи данных через Apache Arrow и вычислений через векторизацию Pandas.
https://towardsdatascience.com/a-common-mistake-to-avoid-when-working-with-time-series-data-eedf60a8b4c1
👻SimVLM от Google AI: предварительное обучение визуальной языковой модели со слабым контролем
Визуальное моделирование языка включает понимание языка на визуальных входах, которые могут быть полезны для разработки продуктов и инструментов. Например, модель подписи к изображениям генерирует описания на естественном языке на основе понимания сути изображения. За последние несколько лет был достигнут значительный прогресс в визуальном моделировании языка благодаря внедрению технологии VLP (Vision-Language Pre-training).
Этот подход направлен на изучение единого функционального пространства сразу из визуальных и языковых входов. Для этой цели VLP часто использует детектор объектов, например, Faster R-CNN, обученный на наборах данных маркированных объектов для выделения областей интереса, полагаясь на подходы, специфичные для конкретной задач и совместного изучения представления изображений и текстов. Такие подходы требуют аннотированных датасетов или времени для их маркировки, а поэтому менее масштабируемы.
Для решения этой проблемы исследователи Google AI предлагают минималистичный и эффективный VLP под названием SimVLM (Simple Visual Language Model). SimVLM обучается от начала до конца с единой целью, аналогичной языковому моделированию, на огромном количестве слабо выровненных пар изображение-текст, т.е. текст в паре с изображением не обязательно является точным описанием картинки.
Простота SimVLM обеспечивает эффективное обучение на таком масштабируемом наборе данных, помогая модели достичь высочайшего уровня производительности по шести тестам на языке визуализации. Кроме того, SimVLM включает унифицированное мультимодальное представление, которое обеспечивает надежную кросс-модальную передачу без точной настройки или с тонкой настройкой только для текстовых данных, в т.ч. визуализацию ответов на вопросы, подписи к изображениям и мультимодальный перевод.
В отличие от BERT и других методов VLP, которые применяют процедуры предварительного обучения, SimVLM принимает структуру от последовательности к последовательности и обучается с помощью целевой модели языка с одним префиксом (PrefixLM), которая получает ведущую часть последовательность (префикс) в качестве входных данных, затем предсказывает ее продолжение. Например, для последовательности «Собака гонится за желтым мячом» последовательность случайным образом усекается до префикса «Собака гонится», и модель предсказывает ее продолжение. Концепция префикса аналогичным образом применяется к изображениям, где изображение делится на ряд «фрагментов», подмножество которых последовательно подается в модель в качестве входных данных. В SimVLM для мультимодальных входных данных (изображений и их подписей) префикс представляет собой конкатенацию последовательности фрагментов изображения и последовательности текста префикса, полученных кодером. Затем декодер предсказывает продолжение текстовой последовательности.
Благодаря этой идее, SimVLM максимизирует гибкость и универсальность в приспособлении ML-модели к различным настройкам задач. А успешно проверенные в BERT и ViT, архитектура трансформеров позволяет модели напрямую принимать на вход необработанные изображения. Также здесь применяется этап свертки из первых трех блоков ResNet, чтобы извлечь контекстуализированные патчи, что более выгодно, чем наивная линейная проекция исходной модели ViT.
Модель предварительно обучена на крупномасштабных наборах данных с изображениями и текстами. В качестве обучающего датасета использовался ALIGN, содержащий около 1,8 млрд зашумленных пар изображение-текст. Для текстовых данных использовался набор данных Colossal Clean Crawled Corpus (C4) из 800G веб-документов. Тестирование SimVLM показало успешность этой ML-модели даже без контролируемой точной настройки. SimVLM смогла качества субтитров, близкого результатам контролируемых методов.
https://ai.googleblog.com/2021/10/simvlm-simple-visual-language-model-pre.html
SimVLM by Google AI
Последнее время очень мало читаю каналы по Data Science, так как не хватает времени. Но у меня есть гилти плежер – это канал Арсения. Мы с Арсением познакомились давно, когда он меня пригласил выступить в Минск на DataFest. Помимо того, что Арсений мой хороший приятель, он еще крутой ML-инженер, которого интересно читать. Вот его недавний пост https://t.me/partially_unsupervised/125 про разделение ролей. Мне очень нравится, что Арсений всегда высказывает свое мнение, хотя часто оно бывает спорным. Мне, кстати, тяжело высказываться на такие темы и обсуждать коллег, но в комментах идут жаркие споры и можно послушать разные мнения. В общем всем советую подписаться на его канал: https://t.me/partially_unsupervised