🤦🏼♀️Переобучение в DL и как с ним бороться: 2 простых метода
В статистике переобучение - это ошибка моделирования, которая возникает, когда функция слишком тесно связана с ограниченным набором точек данных и не может соответствовать дополнительным данным или прогнозировать будущие наблюдения. Это случается, если модель слишком сложна или чрезмерно долго обучается на одних данных: она начинает соответствовать шуму и в итоге не может предсказать общую тенденцию, запоминает обучающие примеры вместо того, чтобы делать обобщения. Бороться с этим помогают следующие методы:
• Исключение слоев из нейросети. В процессе обучения DL-сеть может зависеть от некоторых весов в скрытых слоях и игнорировать остальные. В результате сеть будет идеально соответствовать обучающим данным, но выйдет из строя на реальных. Исключение некоторых слоев гарантирует, что результаты обучения распределены по всем нейронам и не слишком сильно зависят от отдельной единицы. Веса отсева определяются случайным образом, чтобы не дать ни одному нейрону преимущества. В результате сеть намного лучше справляется с обобщением данных.
• Пакетная нормализация – метод, направленный на предотвращение проблемы расхождения градиентов также помогает решить проблему переобучения. Веса DL-сети могут стать слишком большими, что приведет к экстремальным значениям градиентов, заставив функцию потерь возвращать бесконечные или неопределенные значения. Нормализация масштабирует данные в диапазоне от -1 до +1 или от 0 до +1. Например, для обработки изображений входные каналы обычно масштабируют в диапазоне от -1 до +1 вместо диапазона от 0 до 255. Это приводит к нормализации входного слоя. Но как скрытые слои не нормализуются и из-за случайной инициализации весов процесс обучения сети может вызвать экспоненциальный рост некоторых из них. Если разместить слои пакетной нормализации после других слоев, можно обеспечить плавное обучение. Внутри слоя пакетной нормализации есть два параметра: среднее значение и стандартное отклонение каналов пакетного ввода. Нормализация представляет собой вычитание среднего значения и деления на стандартное отклонение, обеспечивая удержание вывода из предыдущего слоя в рамках нужного диапазона. Важно, что среднее значение и стандартное отклонение не являются обучаемыми параметрами, поскольку они вычисляются во время прямого, а не обратного распространения.
https://ai.plainenglish.io/2-deep-learning-methods-against-overfitting-532710059c5d
В статистике переобучение - это ошибка моделирования, которая возникает, когда функция слишком тесно связана с ограниченным набором точек данных и не может соответствовать дополнительным данным или прогнозировать будущие наблюдения. Это случается, если модель слишком сложна или чрезмерно долго обучается на одних данных: она начинает соответствовать шуму и в итоге не может предсказать общую тенденцию, запоминает обучающие примеры вместо того, чтобы делать обобщения. Бороться с этим помогают следующие методы:
• Исключение слоев из нейросети. В процессе обучения DL-сеть может зависеть от некоторых весов в скрытых слоях и игнорировать остальные. В результате сеть будет идеально соответствовать обучающим данным, но выйдет из строя на реальных. Исключение некоторых слоев гарантирует, что результаты обучения распределены по всем нейронам и не слишком сильно зависят от отдельной единицы. Веса отсева определяются случайным образом, чтобы не дать ни одному нейрону преимущества. В результате сеть намного лучше справляется с обобщением данных.
• Пакетная нормализация – метод, направленный на предотвращение проблемы расхождения градиентов также помогает решить проблему переобучения. Веса DL-сети могут стать слишком большими, что приведет к экстремальным значениям градиентов, заставив функцию потерь возвращать бесконечные или неопределенные значения. Нормализация масштабирует данные в диапазоне от -1 до +1 или от 0 до +1. Например, для обработки изображений входные каналы обычно масштабируют в диапазоне от -1 до +1 вместо диапазона от 0 до 255. Это приводит к нормализации входного слоя. Но как скрытые слои не нормализуются и из-за случайной инициализации весов процесс обучения сети может вызвать экспоненциальный рост некоторых из них. Если разместить слои пакетной нормализации после других слоев, можно обеспечить плавное обучение. Внутри слоя пакетной нормализации есть два параметра: среднее значение и стандартное отклонение каналов пакетного ввода. Нормализация представляет собой вычитание среднего значения и деления на стандартное отклонение, обеспечивая удержание вывода из предыдущего слоя в рамках нужного диапазона. Важно, что среднее значение и стандартное отклонение не являются обучаемыми параметрами, поскольку они вычисляются во время прямого, а не обратного распространения.
https://ai.plainenglish.io/2-deep-learning-methods-against-overfitting-532710059c5d
Medium
2 Deep Learning Methods Against Overfitting
A more complex system does not always mean better performance, but there are ways to improve it.
😎Что такое конвейер Hugging Face Transformers и какие NLP-задачи он решает
Hugging Face - компания, занимающаяся разработкой NLP-технологий и демократизацией ИИ. Конвейеры ML-трансформеров от Hugging Face представляют собой объекты, которые абстрагируют большую часть сложного кода от библиотеки, предлагая простой API для конкретных MLP-задач:
• Анализ настроений – определение тональности текста с вероятностной оценкой положительных и отрицательных маркеров
• Ответы на вопросы на основе контекстной информации, предоставленной ML-модели
• Генерация текста
• Обобщение текста – формирование краткого описания из большого фрагмента
• Машинный перевод с одного языка на другой
https://huggingface.co/transformers/main_classes/pipelines.html
Hugging Face - компания, занимающаяся разработкой NLP-технологий и демократизацией ИИ. Конвейеры ML-трансформеров от Hugging Face представляют собой объекты, которые абстрагируют большую часть сложного кода от библиотеки, предлагая простой API для конкретных MLP-задач:
• Анализ настроений – определение тональности текста с вероятностной оценкой положительных и отрицательных маркеров
• Ответы на вопросы на основе контекстной информации, предоставленной ML-модели
• Генерация текста
• Обобщение текста – формирование краткого описания из большого фрагмента
• Машинный перевод с одного языка на другой
https://huggingface.co/transformers/main_classes/pipelines.html
huggingface.co
Pipelines
We’re on a journey to advance and democratize artificial intelligence through open source and open science.
🏂Почему все GAN-сети работают одинаково, и зачем настраивать гиперпараметры
Генеративные состязательные сети, представляют собой структуру, способную изучать распределение на основе конкуренции между генератором и дискриминатором. Генератор учится генерировать образцы, неотличимые от реальных данных, а дискриминатор учится классифицировать, является ли данное изображение реальным или поддельным. Сегодня GAN-сети считаются мощным инструментом и активно используются в задачах генерации и реконструкции текстов, изображений и пр. При том, что есть множество разных архитектур и видов GAN-сетей, при достаточном гиперпараметрическом поиске почти все алгоритмы имеют случайные ранги, и даже самые последние работы работают аналогично оригинальной GAN, впервые предложенной Яном Гудфеллоу. Бенчмаркинговое сравнение различных GAN-сетей показало, что алгоритмические различия не так актуальны, а вот поиск по гиперпараметрам имеет большее влияние на результат. Однако, оптимальные гиперпараметры во многом зависят от набора данных и настройка гиперпараметров – одна из самых интересных и тонких задач ML-специалиста.
https://medium.com/codex/do-all-gans-perform-the-same-cc02055091af
Генеративные состязательные сети, представляют собой структуру, способную изучать распределение на основе конкуренции между генератором и дискриминатором. Генератор учится генерировать образцы, неотличимые от реальных данных, а дискриминатор учится классифицировать, является ли данное изображение реальным или поддельным. Сегодня GAN-сети считаются мощным инструментом и активно используются в задачах генерации и реконструкции текстов, изображений и пр. При том, что есть множество разных архитектур и видов GAN-сетей, при достаточном гиперпараметрическом поиске почти все алгоритмы имеют случайные ранги, и даже самые последние работы работают аналогично оригинальной GAN, впервые предложенной Яном Гудфеллоу. Бенчмаркинговое сравнение различных GAN-сетей показало, что алгоритмические различия не так актуальны, а вот поиск по гиперпараметрам имеет большее влияние на результат. Однако, оптимальные гиперпараметры во многом зависят от набора данных и настройка гиперпараметров – одна из самых интересных и тонких задач ML-специалиста.
https://medium.com/codex/do-all-gans-perform-the-same-cc02055091af
Medium
Do all GANs perform the same?
Studying the effects of various GAN losses. Is the original GAN same with WGAN, LSGAN…
🔥Практический Reinforcement learning с TF-агентами и сервисами Vertex AI
Обучение с подкреплением (RL, Reinforcement learning) - это форма машинного обучения, при которой агент предпринимает действия в среде, чтобы увеличить заданную цель (вознаграждение) за эту последовательность шагов. RL может примениться в робототехнике, автономных транспортных средствах и пр. Фундаментальная RL-система включает в себя множество состояний, соответствующих действий и вознаграждений за эти действия. Например, в рекомендательной системе фильмов онлайн-кинотеатра «состояние» - это пользователь, «действие» - это фильм, который нужно ему порекомендовать, а «награда» - это рейтинг фильма – выставленная пользователем оценка. В частности, RL как платформа для оптимизации ML-моделей применяется музыкальным сервисом Spotify.
В обучении с подкреплением агент выполняет последовательность действий в данной среде в соответствии с некоторой политикой с целью максимизировать данное вознаграждение за эту последовательность действий. TF-Agents - это мощная и гибкая библиотека, позволяющая легко разрабатывать, внедрять и тестировать RL-приложения. Он предоставляет вам полный набор логических модулей, которые поддерживают легкую настройку следующих ключевых понятий RL:
• Политика - отображение наблюдения за окружающей средой на действие или распределение действий. Это артефакт, полученный в результате обучения, и эквивалент «модели» в системе контролируемого обучения.
• Действие – действие или поведение, которое выводится какой-либо политикой, выбирается и выполняется агентом.
• Агент – объект, который инкапсулирует алгоритм использования одной или нескольких политик для выбора и выполнения действий и обучает политику.
• Наблюдения - характеристика состояния окружающей среды.
• Окружающая среда - определение проблемы RL, которую необходимо решить. На каждом временном шаге среда генерирует наблюдение, несет эффект действия агента, а затем, учитывая предпринятые действия и наблюдение, среда отвечает вознаграждением в качестве обратной связи.
Типичный процесс создания, оценки и развертывания RL-приложений выглядит следующим образом:
• Обозначьте проблему: например, классификация цифр: наблюдения - это изображения цифр, действия - прогнозы от 0 до 9, а награды указывают, соответствуют ли прогнозы цифрам истинности.
• Разработка и реализация экспериментов с моделированием RL.
• Оцените эффективность автономных экспериментов.
• Запустите непрерывный ML-конвейер, заменив составляющие моделирования реальными взаимодействиями.
Смотрите пошаговую демонстрацию, как создать систему рекомендаций с использованием TF-агентов и сервисов Vertex AI, включая настройки гиперпараметров, прогнозирования и развертывания конечных точек.
https://cloud.google.com/blog/topics/developers-practitioners/build-reinforcement-learning-recommendation-application-using-vertex-ai
Обучение с подкреплением (RL, Reinforcement learning) - это форма машинного обучения, при которой агент предпринимает действия в среде, чтобы увеличить заданную цель (вознаграждение) за эту последовательность шагов. RL может примениться в робототехнике, автономных транспортных средствах и пр. Фундаментальная RL-система включает в себя множество состояний, соответствующих действий и вознаграждений за эти действия. Например, в рекомендательной системе фильмов онлайн-кинотеатра «состояние» - это пользователь, «действие» - это фильм, который нужно ему порекомендовать, а «награда» - это рейтинг фильма – выставленная пользователем оценка. В частности, RL как платформа для оптимизации ML-моделей применяется музыкальным сервисом Spotify.
В обучении с подкреплением агент выполняет последовательность действий в данной среде в соответствии с некоторой политикой с целью максимизировать данное вознаграждение за эту последовательность действий. TF-Agents - это мощная и гибкая библиотека, позволяющая легко разрабатывать, внедрять и тестировать RL-приложения. Он предоставляет вам полный набор логических модулей, которые поддерживают легкую настройку следующих ключевых понятий RL:
• Политика - отображение наблюдения за окружающей средой на действие или распределение действий. Это артефакт, полученный в результате обучения, и эквивалент «модели» в системе контролируемого обучения.
• Действие – действие или поведение, которое выводится какой-либо политикой, выбирается и выполняется агентом.
• Агент – объект, который инкапсулирует алгоритм использования одной или нескольких политик для выбора и выполнения действий и обучает политику.
• Наблюдения - характеристика состояния окружающей среды.
• Окружающая среда - определение проблемы RL, которую необходимо решить. На каждом временном шаге среда генерирует наблюдение, несет эффект действия агента, а затем, учитывая предпринятые действия и наблюдение, среда отвечает вознаграждением в качестве обратной связи.
Типичный процесс создания, оценки и развертывания RL-приложений выглядит следующим образом:
• Обозначьте проблему: например, классификация цифр: наблюдения - это изображения цифр, действия - прогнозы от 0 до 9, а награды указывают, соответствуют ли прогнозы цифрам истинности.
• Разработка и реализация экспериментов с моделированием RL.
• Оцените эффективность автономных экспериментов.
• Запустите непрерывный ML-конвейер, заменив составляющие моделирования реальными взаимодействиями.
Смотрите пошаговую демонстрацию, как создать систему рекомендаций с использованием TF-агентов и сервисов Vertex AI, включая настройки гиперпараметров, прогнозирования и развертывания конечных точек.
https://cloud.google.com/blog/topics/developers-practitioners/build-reinforcement-learning-recommendation-application-using-vertex-ai
Google Cloud Blog
Build a reinforcement learning recommendation application using Vertex AI | Google Cloud Blog
🤜🏻PyTorch vs TensorFlow: 5 главных отличий
PyTorch - это open-source библиотека Python для глубокого обучения, которая активно используется в задачах компьютерного зрения и обработке естественного языка с 2016 года, когда этот фреймворк был разработан исследовательской ИИ-лабораторией Facebook. Она поддерживает ООП и графы динамических вычислений, а также отлично подходит для сложных математических вычислений из-за ускорения на графическом процессоре. Такое сочетание уникальных функций и простоты делает PyTorch одной из самых популярных DL-библиотек, которая соперничает с TensorFlow.
Основное различие между PyTorch и TensorFlow - это удачный компромисс между простотой и производительностью: PyTorch легче изучать (особенно для Python-программистов). TensorFlow сложнее в изучении, но работает лучше в production и используется более широко.
Сравним оба фреймворка по наиболее важным критериям:
• Популярность - TensorFlow более востребован, будучи выпущен на год раньше, чем PyTorch. Но количество пользователей PyTorch растут быстрее, чем TensorFlow, что позволяет предположить, что PyTorch вскоре может стать самым популярным.
• Параллелизм – PyTorch включает декларативный параллелизм, автоматически распределяя рабочую нагрузку обработки данных между различными графическими процессорами для повышения производительности. Параллелизм в TensorFlow требует ручного распределения заданий, что отнимает много времени и менее эффективно.
• Динамические и статические графики - PyTorch по умолчанию имеет динамические графики, которые немедленно реагируют на новые данные. TensorFlow имеет ограниченную поддержку динамических графиков, но в основном использует статические графики.
• Интеграции – PyTorch хорошо использовать для проектов на AWS благодаря подключению через TorchServe. TensorFlow хорошо интегрирован с Google Cloud и подходит для мобильных приложений через Swift API.
• Визуализация – TensorFlow имеет более надежные инструменты визуализации и предлагает более точный контроль над настройками графиков. В PyTorch инструмент визуализации Visdom и другие стандартные библиотеки построения графиков, например, matplotlib, имеют не такой широкий набор функций, но их легче освоить.
PyTorch - это open-source библиотека Python для глубокого обучения, которая активно используется в задачах компьютерного зрения и обработке естественного языка с 2016 года, когда этот фреймворк был разработан исследовательской ИИ-лабораторией Facebook. Она поддерживает ООП и графы динамических вычислений, а также отлично подходит для сложных математических вычислений из-за ускорения на графическом процессоре. Такое сочетание уникальных функций и простоты делает PyTorch одной из самых популярных DL-библиотек, которая соперничает с TensorFlow.
Основное различие между PyTorch и TensorFlow - это удачный компромисс между простотой и производительностью: PyTorch легче изучать (особенно для Python-программистов). TensorFlow сложнее в изучении, но работает лучше в production и используется более широко.
Сравним оба фреймворка по наиболее важным критериям:
• Популярность - TensorFlow более востребован, будучи выпущен на год раньше, чем PyTorch. Но количество пользователей PyTorch растут быстрее, чем TensorFlow, что позволяет предположить, что PyTorch вскоре может стать самым популярным.
• Параллелизм – PyTorch включает декларативный параллелизм, автоматически распределяя рабочую нагрузку обработки данных между различными графическими процессорами для повышения производительности. Параллелизм в TensorFlow требует ручного распределения заданий, что отнимает много времени и менее эффективно.
• Динамические и статические графики - PyTorch по умолчанию имеет динамические графики, которые немедленно реагируют на новые данные. TensorFlow имеет ограниченную поддержку динамических графиков, но в основном использует статические графики.
• Интеграции – PyTorch хорошо использовать для проектов на AWS благодаря подключению через TorchServe. TensorFlow хорошо интегрирован с Google Cloud и подходит для мобильных приложений через Swift API.
• Визуализация – TensorFlow имеет более надежные инструменты визуализации и предлагает более точный контроль над настройками графиков. В PyTorch инструмент визуализации Visdom и другие стандартные библиотеки построения графиков, например, matplotlib, имеют не такой широкий набор функций, но их легче освоить.
🗣Почему трансформеры так востребованы в NLP
Сегодня трансформеры считаются наиболее распространенной архитектурой нейросетей для задач обработки естественного языка (NLP), что подтверждается успехами различных модификаций BERT и GPT. В этих методах используются нейронные сети с большим количеством параметров, чем в большинстве глубоких сверточных и рекуррентных моделей. Несмотря на больший размер, их популярность резко возросла, т.к. они эффективно масштабируются на архитектуре параллельных вычислений, позволяя разрабатывать более крупные и сложные модели.
До появления трансформеров большинство NLP-моделей основывались на рекуррентных и сверточных компонентах. А задачи моделирования и преобразования последовательностей, такие как машинный перевод, были основаны на архитектуре кодировщика-декодера с механизмом внимания, чтобы определить, какие части входных данных влияют на каждую часть результатов. Кодировщик преобразовывал входной текст в некоторое промежуточное числовое векторное представление (вектор контекста), а декодер переводил этот вектор в выходной текст. Механизм внимания повышал производительность этих моделей, моделируя зависимости между частями вывода и различными частями ввода. Как правило, внимание было связано с повторяющимися компонентами. Такие компоненты по своей сути являются последовательными - внутреннее скрытое состояние в любой заданной позиции t зависит от скрытого состояния в предыдущей позиции t-1. Поэтому распараллеливание обработки длинной входной последовательности было невозможно и на практике быстро сталкивалось с ограничениями памяти графического процессора.
Трансформеры позволяют полностью заменить повторяющиеся и сверточные компоненты, заменяя их механизмом внимания, применяемого как ко входу, так и к выходу. Это позволяет изучать зависимости между всеми частями входных и выходных последовательностей с возможностью распараллеливания вычислений.
Сегодня трансформеры считаются наиболее распространенной архитектурой нейросетей для задач обработки естественного языка (NLP), что подтверждается успехами различных модификаций BERT и GPT. В этих методах используются нейронные сети с большим количеством параметров, чем в большинстве глубоких сверточных и рекуррентных моделей. Несмотря на больший размер, их популярность резко возросла, т.к. они эффективно масштабируются на архитектуре параллельных вычислений, позволяя разрабатывать более крупные и сложные модели.
До появления трансформеров большинство NLP-моделей основывались на рекуррентных и сверточных компонентах. А задачи моделирования и преобразования последовательностей, такие как машинный перевод, были основаны на архитектуре кодировщика-декодера с механизмом внимания, чтобы определить, какие части входных данных влияют на каждую часть результатов. Кодировщик преобразовывал входной текст в некоторое промежуточное числовое векторное представление (вектор контекста), а декодер переводил этот вектор в выходной текст. Механизм внимания повышал производительность этих моделей, моделируя зависимости между частями вывода и различными частями ввода. Как правило, внимание было связано с повторяющимися компонентами. Такие компоненты по своей сути являются последовательными - внутреннее скрытое состояние в любой заданной позиции t зависит от скрытого состояния в предыдущей позиции t-1. Поэтому распараллеливание обработки длинной входной последовательности было невозможно и на практике быстро сталкивалось с ограничениями памяти графического процессора.
Трансформеры позволяют полностью заменить повторяющиеся и сверточные компоненты, заменяя их механизмом внимания, применяемого как ко входу, так и к выходу. Это позволяет изучать зависимости между всеми частями входных и выходных последовательностей с возможностью распараллеливания вычислений.
🚀WIDeText - мультимодальная среда глубокого обучения от Airbnb для разработки систем классификации
Airbnb активно использует Deep Learning для множества бизнес-задач: ранжирование в поиске, обнаружение мошенничества, прогнозирование проблем в службе поддержки клиентов, понимание контента, а также классификация типов комнат на основе изображений.
WIDeText – это мультимодальная DL-структура на основе PyTorch, которая объединяет 3 канала входных данных: Wide, Image, Deep и Text, чтобы повысить возможности окончательного классификатора. DL-модели можно строить из готовых блоков, подключая и отключая каналы, и настраивая архитектуру в соответствии с целью. WIDeText поддерживает широкий список входных каналов:
• Канал изображения на основе VGG
• Текстовый канал на основе CNN
• Плотный канал на основе GBDT
• Wide-канал
• Классификатор на основе MLP
Благодаря поддержке JSON для настройки моделей, каждый канал в структуре является подключаемым и настраиваемым с точки зрения архитектуры, а также гиперпараметров для классификаторов. Примечательно, что фреймворк WIDeText помог Airbnb ускорить процесс разработки и развертывания модели с нескольких недель до нескольких дней. Эта структура сквозного обучения и развертывания позволяет разработчикам моделей использовать как можно больше необработанных фичей, упрощая отладку ML-модели.
https://medium.com/airbnb-engineering/widetext-a-multimodal-deep-learning-framework-31ce2565880c
Airbnb активно использует Deep Learning для множества бизнес-задач: ранжирование в поиске, обнаружение мошенничества, прогнозирование проблем в службе поддержки клиентов, понимание контента, а также классификация типов комнат на основе изображений.
WIDeText – это мультимодальная DL-структура на основе PyTorch, которая объединяет 3 канала входных данных: Wide, Image, Deep и Text, чтобы повысить возможности окончательного классификатора. DL-модели можно строить из готовых блоков, подключая и отключая каналы, и настраивая архитектуру в соответствии с целью. WIDeText поддерживает широкий список входных каналов:
• Канал изображения на основе VGG
• Текстовый канал на основе CNN
• Плотный канал на основе GBDT
• Wide-канал
• Классификатор на основе MLP
Благодаря поддержке JSON для настройки моделей, каждый канал в структуре является подключаемым и настраиваемым с точки зрения архитектуры, а также гиперпараметров для классификаторов. Примечательно, что фреймворк WIDeText помог Airbnb ускорить процесс разработки и развертывания модели с нескольких недель до нескольких дней. Эта структура сквозного обучения и развертывания позволяет разработчикам моделей использовать как можно больше необработанных фичей, упрощая отладку ML-модели.
https://medium.com/airbnb-engineering/widetext-a-multimodal-deep-learning-framework-31ce2565880c
Medium
WIDeText: A Multimodal Deep Learning Framework
How we designed a multimodal deep learning framework for quick product development.
💥7 советов ML-инженеров от Google
Продвигая свою облачную ML-платформу, Vertex AI, сотрудники Google разбирают частые причины сбоев при обучении ML-моделей и дают рекомендации по их устранению.
1. Используйте правильный программный пакет для архитектуры. Например, TensorFlow поддерживает архитектуры CPU, GPU и TPU. CPU-архитектуры отлично подходят для обучения с табличными данными, а GPU – для нейросетей в задачах компьютерного зрения и обработке естественного языка.
2. Выбирайте верную стратегию распределения обучения. К примеру, обучение на большом датасете и всего одном процессоре займет много времени, ускорить которое поможет распределение по нескольким вычислительным модулям. В частности, стратегии TensorFlow могут распределять данные между несколькими графическими процессорами, компьютерами или TPU без особых изменений в коде. Выбор стратегии зависит от варианта использования, данных, модели и API.
3. Дайте необходимые разрешения. Например, во время обучения Vertex AI считывает данные из облачных хранилищ, где также могут храниться настраиваемые зависимости и результаты обучения.
4. Позаботьтесь о безопасности. VPC Service Controls поможет снизить риск утечки или кражи данных при обучении Vertex AI. При запуске ML-задания внутри периметра службы, VPC Service Controls гарантирует, что данные пользователя не покинут периметр.
5. Помните про ограничения на размер пакета – гиперпараметр, который определяет количество выборок данных для вычисления каждого обновления обучаемых параметров модели (весов и смещений). Размер пакета имеет решающее влияние на время обучения и результирующую точность обученной модели. Чем больше пакет, тем больше образцов проходит через модель при прямом распространении. Рост размера пакета требует больше памяти графического процессора, поэтому ее нехватка помешает увеличить batch size.
6. Избегайте NaN-ошибок. Градиентный спуск - один из наиболее часто используемых алгоритмов машинного обучения, с помощью которого генерируются градиенты ошибок для обновления параметров ML-модели (весов сети). Поэтому даже один пропуск (NaN) в любой части вычислений может быстро распространиться на всю модель. Накопление больших градиентов ошибок чревато нестабильностью обучения, переполняя значения весов. Наивная реализация некоторых функций потерь приведет к переполнению даже при низких значениях. Избежать этого поможет оптимизатор, не слишком чувствительный к величине градиента. Также стоит убедиться, что функция потерь не возвращает NaN и искусственно ограничивать максимальные значения градиентов.
7. Продумайте работу с вычислительными мощностями. Эластичные рабочие нагрузки подлежат перераспределению ресурсов. Здесь поможет резервирование - это предложение по увеличению емкости, которое защищает существующие ресурсы и дает уверенность в получении емкости для критически важных рабочих нагрузок. Если сложно спрогнозировать потребности в мощности на уровне проекта и определить точное количество резервирований для каждого проекта, в Google Cloud Platform есть общее резервирование. Это позволяет использовать отдельные резервирования вычислительных мощностей для нескольких проектов в одной организации, упрощая планирование ресурсов и сокращая расходы.
https://cloud.google.com/blog/products/ai-machine-learning/7-tips-for-trouble-free-ml-model-training
Продвигая свою облачную ML-платформу, Vertex AI, сотрудники Google разбирают частые причины сбоев при обучении ML-моделей и дают рекомендации по их устранению.
1. Используйте правильный программный пакет для архитектуры. Например, TensorFlow поддерживает архитектуры CPU, GPU и TPU. CPU-архитектуры отлично подходят для обучения с табличными данными, а GPU – для нейросетей в задачах компьютерного зрения и обработке естественного языка.
2. Выбирайте верную стратегию распределения обучения. К примеру, обучение на большом датасете и всего одном процессоре займет много времени, ускорить которое поможет распределение по нескольким вычислительным модулям. В частности, стратегии TensorFlow могут распределять данные между несколькими графическими процессорами, компьютерами или TPU без особых изменений в коде. Выбор стратегии зависит от варианта использования, данных, модели и API.
3. Дайте необходимые разрешения. Например, во время обучения Vertex AI считывает данные из облачных хранилищ, где также могут храниться настраиваемые зависимости и результаты обучения.
4. Позаботьтесь о безопасности. VPC Service Controls поможет снизить риск утечки или кражи данных при обучении Vertex AI. При запуске ML-задания внутри периметра службы, VPC Service Controls гарантирует, что данные пользователя не покинут периметр.
5. Помните про ограничения на размер пакета – гиперпараметр, который определяет количество выборок данных для вычисления каждого обновления обучаемых параметров модели (весов и смещений). Размер пакета имеет решающее влияние на время обучения и результирующую точность обученной модели. Чем больше пакет, тем больше образцов проходит через модель при прямом распространении. Рост размера пакета требует больше памяти графического процессора, поэтому ее нехватка помешает увеличить batch size.
6. Избегайте NaN-ошибок. Градиентный спуск - один из наиболее часто используемых алгоритмов машинного обучения, с помощью которого генерируются градиенты ошибок для обновления параметров ML-модели (весов сети). Поэтому даже один пропуск (NaN) в любой части вычислений может быстро распространиться на всю модель. Накопление больших градиентов ошибок чревато нестабильностью обучения, переполняя значения весов. Наивная реализация некоторых функций потерь приведет к переполнению даже при низких значениях. Избежать этого поможет оптимизатор, не слишком чувствительный к величине градиента. Также стоит убедиться, что функция потерь не возвращает NaN и искусственно ограничивать максимальные значения градиентов.
7. Продумайте работу с вычислительными мощностями. Эластичные рабочие нагрузки подлежат перераспределению ресурсов. Здесь поможет резервирование - это предложение по увеличению емкости, которое защищает существующие ресурсы и дает уверенность в получении емкости для критически важных рабочих нагрузок. Если сложно спрогнозировать потребности в мощности на уровне проекта и определить точное количество резервирований для каждого проекта, в Google Cloud Platform есть общее резервирование. Это позволяет использовать отдельные резервирования вычислительных мощностей для нескольких проектов в одной организации, упрощая планирование ресурсов и сокращая расходы.
https://cloud.google.com/blog/products/ai-machine-learning/7-tips-for-trouble-free-ml-model-training
Google Cloud Blog
Vertex AI, Vertex AI Training, ML Training | Google Cloud Blog
This post covers seven common causes of ML model training failures, along with time-saving tips on how to avoid them and how to fix them.
🏂Быстрый guide по PyTorch для начинающих
PyTorch - это open-source библиотека Python для глубокого обучения, которая активно используется в задачах компьютерного зрения и обработке естественного языка. Она поддерживает ООП и графы динамических вычислений, а также отлично подходит для сложных математических вычислений из-за ускорения на графическом процессоре. Во многом это возможно благодаря тензорам – многомерным массивам, используемые в качестве основы для всех сложных операций. Они похожи на n-мерный массив NumPy и могут быть легко преобразованы в массив NumPy.
На тензорных вычислениях базируются и нейросети в PyTorch: пакет torch.nn содержит набор модулей для представления каждого уровня сети. Каждый модуль получает входные тензоры и вычисляет выходные тензоры, которые вместе создают нейросеть. Пакет torch.nn также определяет функции потерь для обучения нейросетей.
А для расчета производных (градиентов) сигналов нейросети в PyTorch есть пакет Autograd. Во время прямого прохода autograd записывает все тензорные операции с поддержкой градиента и создает ациклический граф, чтобы найти связь между тензором и всеми операциями. Этот набор операций называется автоматическим дифференцированием. Листья этого графа являются входными тензорами, а корни - выходными тензорами. Autograd вычисляет градиент, отслеживая граф от корня до листа и по цепочке умножая каждый градиент.
Оптимизаторы позволяют обновлять веса и смещения в модели, чтобы уменьшить ошибку и редактировать работу модели без необходимости переделывать ее целиком. Все оптимизаторы PyTorch содержатся в пакете torch.optim, и каждый из них предназначен для конкретной ситуации. Модуль torch.optim позволяет построить абстрактную схему оптимизации, просто передав список параметров.
Попрактиковаться с тензорами в PyTorch можно и на примере вычислительных графов, который являются упрощенной версией нейронных сетей с последовательностью операций преобразования входных сигналов в выходные.
https://www.educative.io/blog/pytorch-tutorial
PyTorch - это open-source библиотека Python для глубокого обучения, которая активно используется в задачах компьютерного зрения и обработке естественного языка. Она поддерживает ООП и графы динамических вычислений, а также отлично подходит для сложных математических вычислений из-за ускорения на графическом процессоре. Во многом это возможно благодаря тензорам – многомерным массивам, используемые в качестве основы для всех сложных операций. Они похожи на n-мерный массив NumPy и могут быть легко преобразованы в массив NumPy.
На тензорных вычислениях базируются и нейросети в PyTorch: пакет torch.nn содержит набор модулей для представления каждого уровня сети. Каждый модуль получает входные тензоры и вычисляет выходные тензоры, которые вместе создают нейросеть. Пакет torch.nn также определяет функции потерь для обучения нейросетей.
А для расчета производных (градиентов) сигналов нейросети в PyTorch есть пакет Autograd. Во время прямого прохода autograd записывает все тензорные операции с поддержкой градиента и создает ациклический граф, чтобы найти связь между тензором и всеми операциями. Этот набор операций называется автоматическим дифференцированием. Листья этого графа являются входными тензорами, а корни - выходными тензорами. Autograd вычисляет градиент, отслеживая граф от корня до листа и по цепочке умножая каждый градиент.
Оптимизаторы позволяют обновлять веса и смещения в модели, чтобы уменьшить ошибку и редактировать работу модели без необходимости переделывать ее целиком. Все оптимизаторы PyTorch содержатся в пакете torch.optim, и каждый из них предназначен для конкретной ситуации. Модуль torch.optim позволяет построить абстрактную схему оптимизации, просто передав список параметров.
Попрактиковаться с тензорами в PyTorch можно и на примере вычислительных графов, который являются упрощенной версией нейронных сетей с последовательностью операций преобразования входных сигналов в выходные.
https://www.educative.io/blog/pytorch-tutorial
Educative: Interactive Courses for Software Developers
PyTorch tutorial: a quick guide for new learners
PyTorch is an open-source deep learning library rising in popularity among data scientists. Today, we'll help you get started with PyTorch with hands-on examples.
Forwarded from Big Data Science
🚀Data Science в городе: продолжаем серию митапов Ситимобила про Data Science в геосервисах, логистике, приложениях Smart City и т.д. Приглашаем на 2-ю онлайн-встречу 23 сентября в 18:00 МСК. Вас ждут интересные доклады DS-практиков из Ситимобила, Optimate AI и Яндекс.Маршрутизации:
🚕Максим Шаланкин (Data Scientist в гео-сервисе Ситимобил) расскажет о жизненном цикле ML-модели прогнозирования времени в пути с учетом большой нагрузки
🚚Сергей Свиридов (CTO из Optimate AI) объяснит, что не так с классическими эвристиками и методами комбинаторной оптимизации для построения оптимальных маршрутов, и как их можно заменить динамическим программированием
🚛Даниил Тарарухин (Руководитель группы аналитики в Яндекс.Маршрутизации) поделится, как автомобильные пробки влияют на поиск оптимального маршрута и имитационное моделирование этой задачи.
После докладов спикеры ответят на вопросы слушателей.
Ведущий мероприятия – Алексей Чернобровов🛸
Регистрация для бесплатного участия: https://citymobil.timepad.ru/event/1773649/
🚕Максим Шаланкин (Data Scientist в гео-сервисе Ситимобил) расскажет о жизненном цикле ML-модели прогнозирования времени в пути с учетом большой нагрузки
🚚Сергей Свиридов (CTO из Optimate AI) объяснит, что не так с классическими эвристиками и методами комбинаторной оптимизации для построения оптимальных маршрутов, и как их можно заменить динамическим программированием
🚛Даниил Тарарухин (Руководитель группы аналитики в Яндекс.Маршрутизации) поделится, как автомобильные пробки влияют на поиск оптимального маршрута и имитационное моделирование этой задачи.
После докладов спикеры ответят на вопросы слушателей.
Ведущий мероприятия – Алексей Чернобровов🛸
Регистрация для бесплатного участия: https://citymobil.timepad.ru/event/1773649/
citymobil.timepad.ru
Citymobil Data Meetup №2 / События на TimePad.ru
Ситимобил запускает митапы о применении Data science в городских и геосервисах, логистике и технологиях умных городов.
🚀Быстрее и точнее: 2 DL-нейросети от Google AI
По мере роста популярности DL-нейросетей и объема обучающих данных эффективность обучения становится все более важным вопросом. Например, GPT-3 показывает отличные результаты, но для этого требуются недели обучения с тысячами графических процессоров. Поэтому исследователи Google AI разработали два новых семейства DL-моделей для распознавания изображений, которые используют поиск по нейронной архитектуре, и принципиальную методологию проектирования, основанную на емкости модели и обобщении^
EfficientNetV2 - сверточные нейросети c быстрой скоростью обучения для относительно небольших наборов данных типа ImageNet1k (с 1,28 миллиона изображений).
CoAtNet - гибридные модели, сочетающие свертку и самовнимание, чтобы повысить точность для крупномасштабных наборов данных, таких как ImageNet21 (с 13 миллионами изображений) и JFT (с миллиардами изображений).
Тестирование показало, что эти DL-модели модели работают в 4-10 раз быстрее, обеспечивая точность 90,88% наивысшего качества на датасете ImageNet.
Полное описание: https://ai.googleblog.com/2021/09/toward-fast-and-accurate-neural.html
Код на Github: https://github.com/google/automl
По мере роста популярности DL-нейросетей и объема обучающих данных эффективность обучения становится все более важным вопросом. Например, GPT-3 показывает отличные результаты, но для этого требуются недели обучения с тысячами графических процессоров. Поэтому исследователи Google AI разработали два новых семейства DL-моделей для распознавания изображений, которые используют поиск по нейронной архитектуре, и принципиальную методологию проектирования, основанную на емкости модели и обобщении^
EfficientNetV2 - сверточные нейросети c быстрой скоростью обучения для относительно небольших наборов данных типа ImageNet1k (с 1,28 миллиона изображений).
CoAtNet - гибридные модели, сочетающие свертку и самовнимание, чтобы повысить точность для крупномасштабных наборов данных, таких как ImageNet21 (с 13 миллионами изображений) и JFT (с миллиардами изображений).
Тестирование показало, что эти DL-модели модели работают в 4-10 раз быстрее, обеспечивая точность 90,88% наивысшего качества на датасете ImageNet.
Полное описание: https://ai.googleblog.com/2021/09/toward-fast-and-accurate-neural.html
Код на Github: https://github.com/google/automl
Googleblog
Toward Fast and Accurate Neural Networks for Image Recognition
🍏Почему глубокое обучение так востребовано в медицине
Ошеломительный успех DL-алгоритма AlphaFold от компании Deep Mind, которая в 2020 году помогла получить 3D-модели множества белков человеческого тела, предсказав расстояние между парами аминокислот. Однако, это не единственный случай применения глубокого обучения в биомедицине. Например, Deep Learning позволяет автоматически изучать известные соединения, отвечая на вопросы анализа, например, какие элементы необходимы для создания молекулы, чтобы ее синтезировать. Также DL может решить более сложные задачи: какие элементы необходимы для достижения желаемой биологической активности на заданной цели. Так группе ученых из департамента биомедицинской инженерии Эйндховенского Технического Университет (Нидерланды) с помощью методов глубокого обучения в 2021 году смогли идентифицировать 12 новых биоактивных соединений для так Х-рецепторов печени, которые являются мишенями для лекарств, лечащих воспаления, регулируя метаболизм липидов.
https://phys.org/news/2021-09-augmenting-human-intelligence-ai-medicines.html
Ошеломительный успех DL-алгоритма AlphaFold от компании Deep Mind, которая в 2020 году помогла получить 3D-модели множества белков человеческого тела, предсказав расстояние между парами аминокислот. Однако, это не единственный случай применения глубокого обучения в биомедицине. Например, Deep Learning позволяет автоматически изучать известные соединения, отвечая на вопросы анализа, например, какие элементы необходимы для создания молекулы, чтобы ее синтезировать. Также DL может решить более сложные задачи: какие элементы необходимы для достижения желаемой биологической активности на заданной цели. Так группе ученых из департамента биомедицинской инженерии Эйндховенского Технического Университет (Нидерланды) с помощью методов глубокого обучения в 2021 году смогли идентифицировать 12 новых биоактивных соединений для так Х-рецепторов печени, которые являются мишенями для лекарств, лечащих воспаления, регулируя метаболизм липидов.
https://phys.org/news/2021-09-augmenting-human-intelligence-ai-medicines.html
phys.org
Augmenting human intelligence with AI to develop novel medicines
Deep learning has radically changed the field of artificial intelligence. Now neural networks are revolutionizing the way that we discover new drugs. We talk to Francesca Grisoni, assistant professor ...
🔥Triton - новый язык разработки DL-нейросетей с открытым исходным кодом от OpenAI
В конце июля 2021 года OpenAI представила 1-ю версию Triton. Этот open-source язык программирования похож на Python, который позволяет писать высокоэффективный код на графическом процессоре без опыта работы с CUDA. С Triton можно достичь максимальной производительности оборудования с относительно небольшими усилиями. Это особенно полезно для задач глубокого обучения, которые обрабатывают множество временных тензоров. Тестирование показало, что Triton в 2 раза эффективнее PyTorch. Triton полностью автоматизирует внутренние оптимизации ЦП, чтобы разработчики могли лучше сосредоточиться на высокоуровневой логике своего параллельного кода.
Из всех доступных доменных языков и JIT-компиляторов, Triton больше всего похож на Numba: ядра определяются как декорированные функции Python и запускаются одновременно в сетке экземпляров, внутри которых достигается параллелизм. Это обеспечивается с помощью операций над блоками - небольшими массивами, размеры которых равны степеням двойки. При этом Triton эффективно абстрагирует все проблемы, связанные с параллелизмом в блоках потоков CUDA: объединение памяти, синхронизацию общей памяти, планирование тензорного ядра.
Подробное описание с примерами: https://openai.com/blog/triton/
Код на Github: https://github.com/openai/triton
В конце июля 2021 года OpenAI представила 1-ю версию Triton. Этот open-source язык программирования похож на Python, который позволяет писать высокоэффективный код на графическом процессоре без опыта работы с CUDA. С Triton можно достичь максимальной производительности оборудования с относительно небольшими усилиями. Это особенно полезно для задач глубокого обучения, которые обрабатывают множество временных тензоров. Тестирование показало, что Triton в 2 раза эффективнее PyTorch. Triton полностью автоматизирует внутренние оптимизации ЦП, чтобы разработчики могли лучше сосредоточиться на высокоуровневой логике своего параллельного кода.
Из всех доступных доменных языков и JIT-компиляторов, Triton больше всего похож на Numba: ядра определяются как декорированные функции Python и запускаются одновременно в сетке экземпляров, внутри которых достигается параллелизм. Это обеспечивается с помощью операций над блоками - небольшими массивами, размеры которых равны степеням двойки. При этом Triton эффективно абстрагирует все проблемы, связанные с параллелизмом в блоках потоков CUDA: объединение памяти, синхронизацию общей памяти, планирование тензорного ядра.
Подробное описание с примерами: https://openai.com/blog/triton/
Код на Github: https://github.com/openai/triton
Openai
Introducing Triton: Open-source GPU programming for neural networks
We’re releasing Triton 1.0, an open-source Python-like programming language which enables researchers with no CUDA experience to write highly efficient GPU code—most of the time on par with what an expert would be able to produce.
🦠DL-синтез лекарств против SARS-CoV-2
Ученые из MIT разработали DL-модель для синтеза лекарств против SARS-CoV-2 с учетом осложнений, которые налагает этот вирус на людей с сердечно-сосудистыми заболеваниями. В условиях ограниченного набора данных команде потребовался новый подход. Поскольку синергия лекарств происходит за счет ингибирования биологических мишеней (белки или нуклеиновые кислоты), DL-модель изучает взаимодействие лекарство-мишень и синергию лекарство-лекарство для поиска новых комбинаций. Предиктор лекарственной мишени моделирует взаимодействие между лекарством и набором известных биологических мишеней, связанных с выбранным заболеванием. Предиктор ассоциации "мишень-заболевание" учится понимать противовирусную активность лекарства, что означает определение выхода вируса в инфицированных тканевых культурах. Вместе они могут предсказать синергию двух препаратов.
В результате исследований были обнаружены две новые комбинации лекарств: ремдесивир (в настоящее время одобрен FDA для лечения Covid-19) и резерпин, а также ремдесивир и IQ-1S, которые в биологических анализах оказались эффективными против вируса. Исследование было опубликовано в Proceedings of the National Academy of Sciences.
Важно, что комбинированный подход может снизить угрозу резистентности вируса к лекарствам. Модель подходит для разных штаммов и потенциально может использоваться для других вирусов. В частности, исследователи успешно применили этот подход к синтезу лекарств от ВИЧ и рака поджелудочной железы. Для дальнейшего совершенствования своего биологического моделирования команда планирует включить дополнительную информацию, такую как белок-белковое взаимодействие и сети регуляции генов. В перспективе также будет подключено «активное обучение», которое помогает направлять процесс сбора данных и повышать точность прогнозирования в широком химическом пространстве.
https://news.mit.edu/2021/deep-learning-helps-predict-new-drug-combinations-fight-covid-19-0924
Ученые из MIT разработали DL-модель для синтеза лекарств против SARS-CoV-2 с учетом осложнений, которые налагает этот вирус на людей с сердечно-сосудистыми заболеваниями. В условиях ограниченного набора данных команде потребовался новый подход. Поскольку синергия лекарств происходит за счет ингибирования биологических мишеней (белки или нуклеиновые кислоты), DL-модель изучает взаимодействие лекарство-мишень и синергию лекарство-лекарство для поиска новых комбинаций. Предиктор лекарственной мишени моделирует взаимодействие между лекарством и набором известных биологических мишеней, связанных с выбранным заболеванием. Предиктор ассоциации "мишень-заболевание" учится понимать противовирусную активность лекарства, что означает определение выхода вируса в инфицированных тканевых культурах. Вместе они могут предсказать синергию двух препаратов.
В результате исследований были обнаружены две новые комбинации лекарств: ремдесивир (в настоящее время одобрен FDA для лечения Covid-19) и резерпин, а также ремдесивир и IQ-1S, которые в биологических анализах оказались эффективными против вируса. Исследование было опубликовано в Proceedings of the National Academy of Sciences.
Важно, что комбинированный подход может снизить угрозу резистентности вируса к лекарствам. Модель подходит для разных штаммов и потенциально может использоваться для других вирусов. В частности, исследователи успешно применили этот подход к синтезу лекарств от ВИЧ и рака поджелудочной железы. Для дальнейшего совершенствования своего биологического моделирования команда планирует включить дополнительную информацию, такую как белок-белковое взаимодействие и сети регуляции генов. В перспективе также будет подключено «активное обучение», которое помогает направлять процесс сбора данных и повышать точность прогнозирования в широком химическом пространстве.
https://news.mit.edu/2021/deep-learning-helps-predict-new-drug-combinations-fight-covid-19-0924
MIT News | Massachusetts Institute of Technology
Deep learning helps predict new drug combinations to fight Covid-19
A neural network developed at MIT and elsewhere identifies synergistic drug blends for treating viruses like SARS-CoV-2. The work was carried out primarily within the MIT Computer Science and Artificial Intelligence Laboratory (CSAIL) and the Broad Institute…
☀️DL для оптических процессоров вместо электронных чипов
Различные формы линейных преобразований, такие как преобразование Фурье, широко используются при обработке информации. В частности, переход от аналоговой природы электрических сигналов к дискретной форме в цифровых устройствах. Такие преобразования реализуются с использованием электронных процессоров, скорость которых ограничена емкостью электронного чипа, что создает узкое место по мере увеличения размера данных. Решением этой проблемы может быть замена цифровых процессоров оптическими аналогами и использование света для обработки информации.
Исследователи из Калифорнийского университета Лос-Анджелеса разработали основанный на глубоком обучении метод проектирования для оптического вычисления произвольного линейного преобразования. Этот полностью оптический процессор использует пространственно-спроектированные дифракционные поверхности для управления оптическими волнами и вычисляет любое желаемое линейное преобразование, когда свет проходит через серию дифракционных поверхностей. Таким образом, вычисление желаемого линейного преобразования завершается со скоростью распространения света с прохождением входного света через эти дифракционные поверхности. Помимо вычислительной скорости, такие оптические процессоры также не потребляют никакой энергии для вычислений, кроме освещения, что делает их пассивной вычислительной системой с высокой пропускной способностью.
Эксперименты показали, что конструкция этих оптических дифракционных процессоров, основанная на глубоком обучении, может точно синтезировать любое произвольное линейное преобразование между входной и выходной плоскостями. А точность и дифракционная эффективность полученных оптических преобразований значительно улучшаются по мере увеличения количества дифракционных поверхностей.
Успех этого метода был продемонстрирован путем выполнения широкого диапазона линейных преобразований, включая произвольно сгенерированные преобразования фазы и амплитуды, преобразование Фурье, операции перестановки изображений и фильтрации. Эта вычислительная структура может применяться к любой части электромагнитного спектра для разработки полностью оптических процессоров, использующих пространственно спроектированные дифракционные поверхности для универсального выполнения произвольного комплексного линейного преобразования. Также метод можно использовать для формирования полностью оптических сетей обработки информации с минимальным потреблением энергии вместо цифровых процессоров.
https://phys.org/news/2021-09-desired-linear-digital-processor.html
Различные формы линейных преобразований, такие как преобразование Фурье, широко используются при обработке информации. В частности, переход от аналоговой природы электрических сигналов к дискретной форме в цифровых устройствах. Такие преобразования реализуются с использованием электронных процессоров, скорость которых ограничена емкостью электронного чипа, что создает узкое место по мере увеличения размера данных. Решением этой проблемы может быть замена цифровых процессоров оптическими аналогами и использование света для обработки информации.
Исследователи из Калифорнийского университета Лос-Анджелеса разработали основанный на глубоком обучении метод проектирования для оптического вычисления произвольного линейного преобразования. Этот полностью оптический процессор использует пространственно-спроектированные дифракционные поверхности для управления оптическими волнами и вычисляет любое желаемое линейное преобразование, когда свет проходит через серию дифракционных поверхностей. Таким образом, вычисление желаемого линейного преобразования завершается со скоростью распространения света с прохождением входного света через эти дифракционные поверхности. Помимо вычислительной скорости, такие оптические процессоры также не потребляют никакой энергии для вычислений, кроме освещения, что делает их пассивной вычислительной системой с высокой пропускной способностью.
Эксперименты показали, что конструкция этих оптических дифракционных процессоров, основанная на глубоком обучении, может точно синтезировать любое произвольное линейное преобразование между входной и выходной плоскостями. А точность и дифракционная эффективность полученных оптических преобразований значительно улучшаются по мере увеличения количества дифракционных поверхностей.
Успех этого метода был продемонстрирован путем выполнения широкого диапазона линейных преобразований, включая произвольно сгенерированные преобразования фазы и амплитуды, преобразование Фурье, операции перестановки изображений и фильтрации. Эта вычислительная структура может применяться к любой части электромагнитного спектра для разработки полностью оптических процессоров, использующих пространственно спроектированные дифракционные поверхности для универсального выполнения произвольного комплексного линейного преобразования. Также метод можно использовать для формирования полностью оптических сетей обработки информации с минимальным потреблением энергии вместо цифровых процессоров.
https://phys.org/news/2021-09-desired-linear-digital-processor.html
phys.org
Light computes any desired linear transform without a digital processor
Different forms of linear transformations, such as the Fourier transform, are widely employed in processing of information in various applications. These transformations are generally implemented in the ...
Forwarded from Big Data Science
🍁TOP-10 the most interesting DS-conferences all over the world in October 2021
1. 5-8 Oct - NLP Summit, Applied Natural Language Processing, online. https://www.nlpsummit.org/nlp-2021/
2. 6-7 Oct - TransformX AI Conference, with 100+ speakers including Andrew Ng, Fei-fei Li, free and open to the public. Online. https://www.aicamp.ai/event/eventdetails/W2021100608
3. 6-9 Oct -The 8th IEEE International Conference on Data Science and Advanced Analytics, Porto, Portugal https://dsaa2021.dcc.fc.up.pt/
4. 12-14 Oct - Google Cloud Next '21, a global digital experience. Online. https://cloud.withgoogle.com/next
5. 12-14 Oct - Chief Data & Analytics Officers (CDAO). Online. https://cdao-fall.coriniumintelligence.com/virtual-home
6. 13-14 Oct - Big Data and AI Toronto. Online. https://www.bigdata-toronto.com/register
7. 15 – 17 Oct - DataScienceGO, UCLA Campus, Los Angeles, USA https://www.datasciencego.com/united-states
8. 19 Oct - Graph + AI Summit Fall 2021 - open conference for accelerating analytics and AI with Graph. New York, NY, USA and virtual https://info.tigergraph.com/graphai-fall
9. 20 – 21 Oct - RE.WORK Conversational AI for Enterprise Summit, Online. https://www.re-work.co/summits/conversational-ai-enterprise-summit
10. 21 Oct - DSS Mini Salon: The Future of Retail with Behavioral Data, Online. https://www.datascience.salon/snowplow-analytics-mini-virtual-salon
🍂
1. 5-8 Oct - NLP Summit, Applied Natural Language Processing, online. https://www.nlpsummit.org/nlp-2021/
2. 6-7 Oct - TransformX AI Conference, with 100+ speakers including Andrew Ng, Fei-fei Li, free and open to the public. Online. https://www.aicamp.ai/event/eventdetails/W2021100608
3. 6-9 Oct -The 8th IEEE International Conference on Data Science and Advanced Analytics, Porto, Portugal https://dsaa2021.dcc.fc.up.pt/
4. 12-14 Oct - Google Cloud Next '21, a global digital experience. Online. https://cloud.withgoogle.com/next
5. 12-14 Oct - Chief Data & Analytics Officers (CDAO). Online. https://cdao-fall.coriniumintelligence.com/virtual-home
6. 13-14 Oct - Big Data and AI Toronto. Online. https://www.bigdata-toronto.com/register
7. 15 – 17 Oct - DataScienceGO, UCLA Campus, Los Angeles, USA https://www.datasciencego.com/united-states
8. 19 Oct - Graph + AI Summit Fall 2021 - open conference for accelerating analytics and AI with Graph. New York, NY, USA and virtual https://info.tigergraph.com/graphai-fall
9. 20 – 21 Oct - RE.WORK Conversational AI for Enterprise Summit, Online. https://www.re-work.co/summits/conversational-ai-enterprise-summit
10. 21 Oct - DSS Mini Salon: The Future of Retail with Behavioral Data, Online. https://www.datascience.salon/snowplow-analytics-mini-virtual-salon
🍂
NLP Summit
NLP Summit 2021 - NLP Summit
Forwarded from Алексей Чернобровов
Сегодня я расскажу о 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-провайдера первый внесенный платеж удвоится.
Как и у прочих облачных провайдеров, стоимость использования зависит от потребляемых ресурсов и первичных настроек, стартуя от 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-провайдера первый внесенный платеж удвоится.
www.rusonyx.ru
Аренда облачного сервера в виртуальном дата-центре
Облачный сервер в виртуальном дата-центре в аренду, от Rusonyx. Решаем задачи наших клиентов. Вдумчиво и индивидуально. Мы предлагаем одни из лучших цен на рынке!
👍🏻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
• используйте правильные типы данных, чтобы сэкономить 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
Medium
Taking Keras and TensorFlow to the Next Level
11 tips and tricks to make the most out of Keras and TensorFlow
💰Слишком дорого: главное ограничение DL-моделей
Модели глубокого обучения чрезмерно параметризованы, то есть у них больше параметров, чем точек данных, доступных для обучения. В классическом ML это приводит к переобучению, когда модель не может адекватно работать с данными, на которых была обучена. Глубокое обучение позволяет избежать этого, случайным образом инициализируя параметры, а затем итеративно корректируя их наборы для лучшего соответствия данным, используя стохастический градиентный спуск. Это обеспечивает хорошее обобщение изученной модели и огромную гибкость. Обратной стороной этих достоинств является огромные вычислительные, и, соответственно, финансовые затраты.
Во-первых, как и для всех статистических моделей, чтобы повысить производительность в k раз, необходимо использовать как минимум k2 дополнительных точек данных для обучения. А чрезмерная параметризация увеличивает вычислительные затраты до k4. Это уже становится дорого: например, 10-кратное улучшение требует, по крайней мере, 10 000-кратного увеличения вычислений. А для достижения 5-процентного коэффициента ошибок потребуется 1019 миллиардов операций с плавающей запятой.
Ученые из MIT подсчитали экономические затраты и выбросы углерода, связанные с такой вычислительной нагрузкой: обучение DL-модели обойдется в 100 миллиардов долларов и приведет к таким же выбросам углерода, равнозначным с ежемесячным выбросом такого мегаполиса, как Нью-Йорк. А если нужна большая точность, например, в 1% ошибок, результаты будут намного хуже.
Когда дочка Google, компания DeepMind обучила свою DL-систему игре в го, это обошлось в 35 миллионов долларов. Когда исследователи DeepMind разрабатывали решение для видеоигры StarCraft II, они целенаправленно не пробовали несколько способов создания DL-архитектуры, потому что стоимость обучения была бы слишком высокой. Языковая DL-модель GPT-3 от OpenAI стоила более 4 миллионов долларов. При этом в развертывании системы допущена ошибка, которая не исправлена из-за слишком высокой стоимости обучения.
Пока расходы на DL превышают ожидаемую экономическую ценность, бизнес не стремится внедрять глубокое обучение. В частности, поэтому один из крупных европейских ритейлеров отказался от DL-системы прогнозирования продаж. Поэтому научное сообщество активно ищет способы снизить затраты на Deep Learning.
Одна из стратегий - использовать процессоры, специально разработанные для DL-вычислений: графические процессоры вместо ЦП и специализированные модули обработки тензорного кода, а также аналоговые, нейроморфные, оптические или квантовые аппаратные системы.
Другой подход - создание нейросетей, которые при реализации становятся меньше. Это снижает стоимость использования, но увеличивает стоимость обучения. Для большинства моделей эксплуатационные расходы – это самая большая часть общей суммы инвестиций. А для моделей, которые часто требуют переобучения, затраты на обучение, наоборот, доминируют. Впрочем, уменьшение масштабов недостаточно сокращает затраты. Поэтому разрабатывается метод мета-обучения, когда система обучается на различных данных, а затем может применяться во многих областях. Например, вместо того, чтобы создавать отдельные системы для распознавания собак, кошек и автомобилей на изображениях, одна система может быть обучена на всех из них и использоваться несколько раз.
Однако, ученые из MIT доказали, что мета-обучение тоже является сложным и дорогим. Даже небольшие различия между исходными и реальными данными, могут серьезно ухудшить производительность. Например, современные системы распознавания изображений сильно зависят от угла зрения на фотографируемый объект и его позы. Поэтому простая задача распознавания одних и тех же объектов в разных позах снижает точность системы почти вдвое. И даже с новыми наборами данных, специально созданными для имитации исходного обучающего датасета, производительность DL-модели падает более чем на 10%. Таким образом, если небольшие изменения в данных вызывают значительное падение производительности, итоговые расходы для комплексной системы мета-обучения могут оказаться огромными.
Модели глубокого обучения чрезмерно параметризованы, то есть у них больше параметров, чем точек данных, доступных для обучения. В классическом ML это приводит к переобучению, когда модель не может адекватно работать с данными, на которых была обучена. Глубокое обучение позволяет избежать этого, случайным образом инициализируя параметры, а затем итеративно корректируя их наборы для лучшего соответствия данным, используя стохастический градиентный спуск. Это обеспечивает хорошее обобщение изученной модели и огромную гибкость. Обратной стороной этих достоинств является огромные вычислительные, и, соответственно, финансовые затраты.
Во-первых, как и для всех статистических моделей, чтобы повысить производительность в k раз, необходимо использовать как минимум k2 дополнительных точек данных для обучения. А чрезмерная параметризация увеличивает вычислительные затраты до k4. Это уже становится дорого: например, 10-кратное улучшение требует, по крайней мере, 10 000-кратного увеличения вычислений. А для достижения 5-процентного коэффициента ошибок потребуется 1019 миллиардов операций с плавающей запятой.
Ученые из MIT подсчитали экономические затраты и выбросы углерода, связанные с такой вычислительной нагрузкой: обучение DL-модели обойдется в 100 миллиардов долларов и приведет к таким же выбросам углерода, равнозначным с ежемесячным выбросом такого мегаполиса, как Нью-Йорк. А если нужна большая точность, например, в 1% ошибок, результаты будут намного хуже.
Когда дочка Google, компания DeepMind обучила свою DL-систему игре в го, это обошлось в 35 миллионов долларов. Когда исследователи DeepMind разрабатывали решение для видеоигры StarCraft II, они целенаправленно не пробовали несколько способов создания DL-архитектуры, потому что стоимость обучения была бы слишком высокой. Языковая DL-модель GPT-3 от OpenAI стоила более 4 миллионов долларов. При этом в развертывании системы допущена ошибка, которая не исправлена из-за слишком высокой стоимости обучения.
Пока расходы на DL превышают ожидаемую экономическую ценность, бизнес не стремится внедрять глубокое обучение. В частности, поэтому один из крупных европейских ритейлеров отказался от DL-системы прогнозирования продаж. Поэтому научное сообщество активно ищет способы снизить затраты на Deep Learning.
Одна из стратегий - использовать процессоры, специально разработанные для DL-вычислений: графические процессоры вместо ЦП и специализированные модули обработки тензорного кода, а также аналоговые, нейроморфные, оптические или квантовые аппаратные системы.
Другой подход - создание нейросетей, которые при реализации становятся меньше. Это снижает стоимость использования, но увеличивает стоимость обучения. Для большинства моделей эксплуатационные расходы – это самая большая часть общей суммы инвестиций. А для моделей, которые часто требуют переобучения, затраты на обучение, наоборот, доминируют. Впрочем, уменьшение масштабов недостаточно сокращает затраты. Поэтому разрабатывается метод мета-обучения, когда система обучается на различных данных, а затем может применяться во многих областях. Например, вместо того, чтобы создавать отдельные системы для распознавания собак, кошек и автомобилей на изображениях, одна система может быть обучена на всех из них и использоваться несколько раз.
Однако, ученые из MIT доказали, что мета-обучение тоже является сложным и дорогим. Даже небольшие различия между исходными и реальными данными, могут серьезно ухудшить производительность. Например, современные системы распознавания изображений сильно зависят от угла зрения на фотографируемый объект и его позы. Поэтому простая задача распознавания одних и тех же объектов в разных позах снижает точность системы почти вдвое. И даже с новыми наборами данных, специально созданными для имитации исходного обучающего датасета, производительность DL-модели падает более чем на 10%. Таким образом, если небольшие изменения в данных вызывают значительное падение производительности, итоговые расходы для комплексной системы мета-обучения могут оказаться огромными.