Forwarded from Кодим на Коленке | Уроки по программированию
Redis: основы и практическое использование
Redis — база данных типа «ключ-значение». Она невероятно простая, но хорошо себя зарекомендовала как хранилище временных данных.
Сейчас эта NoSQL'ка используется почти в каждом проекте или для хранения временных данных (сессии пользователей), или для кеширования запросов. Знать её просто необходимо.
Подробнее: 👉тут
#видео #теория
Redis — база данных типа «ключ-значение». Она невероятно простая, но хорошо себя зарекомендовала как хранилище временных данных.
Сейчас эта NoSQL'ка используется почти в каждом проекте или для хранения временных данных (сессии пользователей), или для кеширования запросов. Знать её просто необходимо.
Подробнее: 👉тут
#видео #теория
Forwarded from Борис опять
Forwarded from Kaggling (Vadim Irtlach)
Всем привет! Сегодня хочу с вами поделиться документом, которым я пользовался на протяжение всего Feedback Prize 3.0 соревнования, где мы получили серебро. Там какую-ту часть информации я удалил, потому что оно было связано больше с данными из соревнования, но все названия статей и соответственно к ним ссылки приложены.
Пусть это для вас будет как методичка или шпаргалка! Удачи на будущих NLP соревнованиях!
https://docs.google.com/document/d/11Kq3XbYCgYKB3sgHlntNDyF6pCD_Smn6pMbfQl-vuAU
Пусть это для вас будет как методичка или шпаргалка! Удачи на будущих NLP соревнованиях!
https://docs.google.com/document/d/11Kq3XbYCgYKB3sgHlntNDyF6pCD_Smn6pMbfQl-vuAU
Google Docs
Методичка для NLP соревнований
Pre-training Masked Language Modeling - https://arxiv.org/abs/1810.04805 Don’t Stop Pretraining: Adapt Language Models to Domains and Tasks - https://arxiv.org/abs/2004.10964 Replaced Token Detection - https://arxiv.org/abs/2003.10555 Frustratingly Simple…
Forwarded from Artem Ryblov’s Data Science Weekly (Artem Ryblov)
End to End Machine Learning (FREE Courses)
The best way to learn new concepts is to use them to build something. These courses are structured to build foundational knowledge (100 series), provide in-depth applied machine learning case studies (200 series), and embark on project-driven deep-dives (300 series).
- 111. Getting ready to learn Python, Mac edition
- 112. Getting ready to learn Python, Windows edition
- 201. Intro to Python
- 211. Decision Trees with Python and Pandas
- 212. Time-Series Analysis
- 213. Nonlinear Modelling and Optimization
- 221. The k-nearest neighbours algorithm
- 311. Neural Network Visualization
- 312. Build a Neural Network Framework
- 313. Advanced Neural Network Methods
- 314. Neural Network Optimization
- 321. Convolutional Neural Networks in One Dimension
- 322. Convolutional neural networks in two dimensions
Come have a look around and try one out today!
Navigational hashtags: #armknowledgesharing #armcourses
General hashtags: #machinelearning #ml #algorithms #learning #course #python #decisiontrees #pandas #timeseries #nonlinear #knn #neuralnetworks #neuralnetwork #convolutionalneuralnetworks #optimization #analysis #visualization
The best way to learn new concepts is to use them to build something. These courses are structured to build foundational knowledge (100 series), provide in-depth applied machine learning case studies (200 series), and embark on project-driven deep-dives (300 series).
- 111. Getting ready to learn Python, Mac edition
- 112. Getting ready to learn Python, Windows edition
- 201. Intro to Python
- 211. Decision Trees with Python and Pandas
- 212. Time-Series Analysis
- 213. Nonlinear Modelling and Optimization
- 221. The k-nearest neighbours algorithm
- 311. Neural Network Visualization
- 312. Build a Neural Network Framework
- 313. Advanced Neural Network Methods
- 314. Neural Network Optimization
- 321. Convolutional Neural Networks in One Dimension
- 322. Convolutional neural networks in two dimensions
Come have a look around and try one out today!
Navigational hashtags: #armknowledgesharing #armcourses
General hashtags: #machinelearning #ml #algorithms #learning #course #python #decisiontrees #pandas #timeseries #nonlinear #knn #neuralnetworks #neuralnetwork #convolutionalneuralnetworks #optimization #analysis #visualization
Teachable
End to End Machine Learning
Browse the End to End Machine Learning product catalog to explore and discover available products.
Forwarded from Roman Matantsev
Deep Learning Tuning Playbook
описание как варить мл модели от Гугла
https://github.com/google-research/tuning_playbook
описание как варить мл модели от Гугла
https://github.com/google-research/tuning_playbook
GitHub
GitHub - google-research/tuning_playbook: A playbook for systematically maximizing the performance of deep learning models.
A playbook for systematically maximizing the performance of deep learning models. - google-research/tuning_playbook
Forwarded from DevFM
Проектируем систему — System Design
От разработчика уровня middle и выше часто требуются знания в области проектирования. Речь про высокоуровневое понимание того, как сложить готовые кубики в цельный проект. Надо быть в курсе существования различных технологий и способов их соединения для решения задачи.
Для изучения проектирования есть классный репозиторий аж на 200к звезд, в котором собраны различные типовые архитектуры с прицелом на подготовку к интервью. Обычно эта важная часть интервью называется system design.
При первом прочтении глаза разбегаются от количества информации, поэтому ребята подготовили study guide. В зависимости от ваших целей и имеющегося времени советуют изучить те или иные разделы с различной степенью погружения. А если переходить по ссылкам, то можно вообще залипнуть на полдня, изучая заинтересовавшую концепцию.
О типовых решениях разных задач обязательно нужно знать, чтобы не городить очередной велосипед при решении новой проблемы. На эту тему у нас был отдельный пост.
#skills #резюме
От разработчика уровня middle и выше часто требуются знания в области проектирования. Речь про высокоуровневое понимание того, как сложить готовые кубики в цельный проект. Надо быть в курсе существования различных технологий и способов их соединения для решения задачи.
Для изучения проектирования есть классный репозиторий аж на 200к звезд, в котором собраны различные типовые архитектуры с прицелом на подготовку к интервью. Обычно эта важная часть интервью называется system design.
При первом прочтении глаза разбегаются от количества информации, поэтому ребята подготовили study guide. В зависимости от ваших целей и имеющегося времени советуют изучить те или иные разделы с различной степенью погружения. А если переходить по ссылкам, то можно вообще залипнуть на полдня, изучая заинтересовавшую концепцию.
О типовых решениях разных задач обязательно нужно знать, чтобы не городить очередной велосипед при решении новой проблемы. На эту тему у нас был отдельный пост.
#skills #резюме
GitHub
GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes…
Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards. - donnemartin/system-design-primer
Forwarded from Градиентное погружение (Максим Герасимов)
🤗 Optimum
Интеграция всем известной библиотеки для конвертации/запуска моделей с разными бэкендами: ONNX RT, Intel Neural Compressor, OpenVINO, Graphcore IPU, HPU.
Изменения происходят в несколько строк, но в зависимости от вашего оборудования и задачи можно получить прирост в X раз.
Некоторые используют конвертацию в докере, чтобы получить максимальную производительность.
Notebooks
Github
Optimum
Интеграция всем известной библиотеки для конвертации/запуска моделей с разными бэкендами: ONNX RT, Intel Neural Compressor, OpenVINO, Graphcore IPU, HPU.
Изменения происходят в несколько строк, но в зависимости от вашего оборудования и задачи можно получить прирост в X раз.
Некоторые используют конвертацию в докере, чтобы получить максимальную производительность.
Notebooks
Github
Optimum
Forwarded from DevFM
Этапы выполнения запросов в PostgreSQL
Очередная фундаментальная статья на тему PostgreSQL для вдумчивого чтения. На этот раз также супер важная тема — этапы выполнения запросов. В прошлый раз мы писали об индексах.
Из статьи узнаете, как происходит разбор запроса, из каких стадий он состоит. И, если это скорее теоретические знания, то дальше автор переходит к более важному для прикладного программиста — планированию запроса.
И тут уже сложно без понимания EXPLAIN. Ведь анализатор строит дерево плана. Тот или иной запрос можно выполнить по-разному, поэтому и план запроса не один. Для выбора наилучшего оптимизатор применяет хитрые алгоритмы и оценивает стоимость запроса.
Как итог: чтиво направлено больше на понимание кишочков, но менее захватывающим от этого не становится.
Статья является первой из цикла. Далее автор освещает использование статистики, индексное и последовательное сканирования, соединение вложенным циклом или хешированием. Всё это приблизит к глубокому пониманию того, как выполняются запросы в PostgreSQL.
#skills #database
Очередная фундаментальная статья на тему PostgreSQL для вдумчивого чтения. На этот раз также супер важная тема — этапы выполнения запросов. В прошлый раз мы писали об индексах.
Из статьи узнаете, как происходит разбор запроса, из каких стадий он состоит. И, если это скорее теоретические знания, то дальше автор переходит к более важному для прикладного программиста — планированию запроса.
И тут уже сложно без понимания EXPLAIN. Ведь анализатор строит дерево плана. Тот или иной запрос можно выполнить по-разному, поэтому и план запроса не один. Для выбора наилучшего оптимизатор применяет хитрые алгоритмы и оценивает стоимость запроса.
Как итог: чтиво направлено больше на понимание кишочков, но менее захватывающим от этого не становится.
Статья является первой из цикла. Далее автор освещает использование статистики, индексное и последовательное сканирования, соединение вложенным циклом или хешированием. Всё это приблизит к глубокому пониманию того, как выполняются запросы в PostgreSQL.
#skills #database
Хабр
Запросы в PostgreSQL: 1. Этапы выполнения
Привет, Хабр! Начинаю еще один цикл статей об устройстве PostgreSQL, на этот раз о том, как планируются и выполняются запросы. Предыдущие циклы были посвящены индексам , изоляции и многоверсионности ,...
Forwarded from partially unsupervised
Применил на работе прием, который считал общеизвестным, но, судя по реакции коллег, это не совсем так. Потому расскажу и здесь!
Предположим, для какой-то ML задачи нужна ручная разметка данных, и расходы сколько-то заметны💰 (а значит, в 2023 их наверняка предложат урезать 🔪). В такой ситуации хочется хотя бы приблизительно понимать, как эти инвестиции в разметку окупаются.
Мое сколько-то наивное решение такое:
- делим тренировочный датасет на бакеты так, минимизируя разницу размеров бакетов и некоторое сходство между семплами разных бакетов (например, все семплы одного пользователя попадают в один бакет, который определяется на базе хэша его id);
- фиксируем вычислительный бюджет (вне зависимости от размера датасета учимся на N батчей);
- учим модель на сабсетах в диапазоне от малой части датасета до целого датасета, обеспечивая кумулятивного увеличение датасета (например, если некий семпл X был в обучении на 10% сабсете, то он обязательно будет и в обучении на 20% датасета);
- для каждой обученной модели смотрим ключевую метрику и рисуем график: по оси X - размер датасета, по оси Y - улучшение метрики;
- включаем воображение и оцениваем с точностью до порядка, сколько данных нужно досыпать, чтобы выжать следующий 1% метрики.
Точность такой экстраполяции оставляет желать лучшего (например, совершенно не учитывает штуки типа concept drift), но она значительно лучше, чем "хер его знает!", и сильно упрощает принятие решений типа "что выгоднее: отправить джуна подбирать гиперпараметры или нанять десять разметчиков и дальше заваливать модель данными".
Предположим, для какой-то ML задачи нужна ручная разметка данных, и расходы сколько-то заметны💰 (а значит, в 2023 их наверняка предложат урезать 🔪). В такой ситуации хочется хотя бы приблизительно понимать, как эти инвестиции в разметку окупаются.
Мое сколько-то наивное решение такое:
- делим тренировочный датасет на бакеты так, минимизируя разницу размеров бакетов и некоторое сходство между семплами разных бакетов (например, все семплы одного пользователя попадают в один бакет, который определяется на базе хэша его id);
- фиксируем вычислительный бюджет (вне зависимости от размера датасета учимся на N батчей);
- учим модель на сабсетах в диапазоне от малой части датасета до целого датасета, обеспечивая кумулятивного увеличение датасета (например, если некий семпл X был в обучении на 10% сабсете, то он обязательно будет и в обучении на 20% датасета);
- для каждой обученной модели смотрим ключевую метрику и рисуем график: по оси X - размер датасета, по оси Y - улучшение метрики;
- включаем воображение и оцениваем с точностью до порядка, сколько данных нужно досыпать, чтобы выжать следующий 1% метрики.
Точность такой экстраполяции оставляет желать лучшего (например, совершенно не учитывает штуки типа concept drift), но она значительно лучше, чем "хер его знает!", и сильно упрощает принятие решений типа "что выгоднее: отправить джуна подбирать гиперпараметры или нанять десять разметчиков и дальше заваливать модель данными".
Forwarded from DevFM
Python import: Advanced Techniques and Tips
Импорты в питоне могут стать головной болью начинающего разработчика, особенно при переходе от запуска в IDE разработчика на чужую машину. Полезно один раз детально разобраться в этой теме. В статье рассматриваются разные вопросы работы с пакетами в питоне. Доступен перевод в двух частях: часть 1, часть 2.
Начинается статья с базового описания модуля как пространства имён и применения dir для его исследования. Далее объединение модулей в пакет и разные варианты импорта.
В статье также подробно освещаются следующие темы:
— абсолютные и относительные импорты. На практике относительные импорты — зло, PEP8 рекомендует применять абсолютные импорты в большинстве ситуаций
— import path и порядок поиска модулей
— создании своего пакета для PyPI. Классический setup.py, плюс установка изменяемого пакета для удобной разработки без необходимости переустановки. Интересным дополнением является включение ресурсов или данных в пакет на примере иконок для GUI-приложения
— динамические импорты, которые позволяют перезагружать модули во время работы приложения. Такой способ позволяет реализовать плагинную структуру путём подключения произвольных модулей с кодом на лету
— перезагрузку модулей. Проблема в том, что повторный импорт не приводит к перечитыванию модуля, по факту используется старая версия. Для перезагрузки модуля надо использовать importlib.reload. Этот и предыдущий пункты позволяют вместе организовать динамические плагины в проекте
— работу с разными модулями в зависимости от доступности библиотек или версии интерпретатора. Это позволяет применять разные библиотеки. Нет bokeh для визуализации? Используем matplotlib. Не все фичи будут доступны, но будет работать
— использование профилировщика для импортов. На нашей практике, импорты не становились узким местом приложения. Но если важна скорость старта скрипта, знание о профилировании импортов будет полезным
Заход на правильную организацию импортов был в посте об анализаторах кода.
#python
Импорты в питоне могут стать головной болью начинающего разработчика, особенно при переходе от запуска в IDE разработчика на чужую машину. Полезно один раз детально разобраться в этой теме. В статье рассматриваются разные вопросы работы с пакетами в питоне. Доступен перевод в двух частях: часть 1, часть 2.
Начинается статья с базового описания модуля как пространства имён и применения dir для его исследования. Далее объединение модулей в пакет и разные варианты импорта.
В статье также подробно освещаются следующие темы:
— абсолютные и относительные импорты. На практике относительные импорты — зло, PEP8 рекомендует применять абсолютные импорты в большинстве ситуаций
— import path и порядок поиска модулей
— создании своего пакета для PyPI. Классический setup.py, плюс установка изменяемого пакета для удобной разработки без необходимости переустановки. Интересным дополнением является включение ресурсов или данных в пакет на примере иконок для GUI-приложения
— динамические импорты, которые позволяют перезагружать модули во время работы приложения. Такой способ позволяет реализовать плагинную структуру путём подключения произвольных модулей с кодом на лету
— перезагрузку модулей. Проблема в том, что повторный импорт не приводит к перечитыванию модуля, по факту используется старая версия. Для перезагрузки модуля надо использовать importlib.reload. Этот и предыдущий пункты позволяют вместе организовать динамические плагины в проекте
— работу с разными модулями в зависимости от доступности библиотек или версии интерпретатора. Это позволяет применять разные библиотеки. Нет bokeh для визуализации? Используем matplotlib. Не все фичи будут доступны, но будет работать
— использование профилировщика для импортов. На нашей практике, импорты не становились узким местом приложения. Но если важна скорость старта скрипта, знание о профилировании импортов будет полезным
Заход на правильную организацию импортов был в посте об анализаторах кода.
#python
Realpython
Python import: Advanced Techniques and Tips – Real Python
The Python import system is as powerful as it is useful. In this in-depth tutorial, you'll learn how to harness this power to improve the structure and maintainability of your code.