big data машинное обучение

В чем разница между наукой о данных, анализом данных, большими данными, аналитикой, дата майнингом и машинным обучением

В последнее время слово big data звучит отовсюду и в некотором роде это понятие стало мейнстримом. С большими данными тесно связаны такие термины как наука о данных (data science), анализ данных (data analysis), аналитика данных (data analytics), сбор данных (data mining) и машинное обучение (machine learning).

Почему все стали так помешаны на больших данных и что значат все эти слова?

big data машинное обучение

Почему все молятся на биг дату

Чем больше данных, тем сложнее с ними работать и анализировать. Математические модели, применимые к небольшим массивам данных скорее всего не сработают при анализе биг даты. Тем не менее в науке о данных большие данные занимают важное место. Чем больше массив, тем интересней будут результаты, извлеченные из глубоких недр большой кучи данных.

big data машинное обучение

Преимущества больших данных:

Наука о данных

Наука о данных это глубокие познания о выводимых данных. Чтобы заниматься наукой о данных необходимо знать математику на высоком уровне, алгоритмические техники, бизнес-аналитику и даже психологию. Все это нужно чтобы перелопатить огромную кучу инфы и обнаружить полезный инсайт или интересные закономерности.

Наука о данных базируется вокруг строгих аналитических доказательств и работает со структурированными и не структурированными данными. В принципе все, что связано с отбором, подготовкой и анализом, лежит в пределах науки о данных.

Примеры применения науки о данных:

big data машинное обучение

Аналитика

Аналитика — это наука об анализе, применении анализа данных для принятия решений.

Аналитика данных предназначена для внедрения инсайтов в массив данных и предполагает использование информационных запросов и процедур объединения данных. Она представляет различные зависимости между входными параметрами. Например, автоматически выявленные, не очевидные связи между покупками.

В науке о данных для построения прогнозируемой модели используются сырые данные. В аналитике зачастую данные уже подготовлены, а отчеты может интерпретировать практически любой юзер. Аналитику не нужны глубокие знания высшей математики, достаточно хорошо оперировать данными и строить удачные прогнозы.

Анализ данных

Анализ данных — это деятельность специалиста, которая направлена на получение информации о массиве данных. Аналитик может использовать различные инструменты для анализа, а может строить умозаключения и прогнозы полагаясь на накопленный опыт. Например, трейдер Forex может открывать и закрывать трейдерские позиции, основываясь на простых наблюдениях и интуиции.

Машинное обучение

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

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

Примеры алгоритмов:

big data машинное обучение

Отбор данных

Сырые данные изначально беспорядочны и запутаны, собраны из различных источников и непроверенных записей. Не очищенные данные могут скрыть правду, зарытую глубоко в биг дате, и ввести в заблуждение аналитика.

Дата майнинг — это процесс очистки больших данных и подготовки их последующему анализу или использованию в алгоритмах машинного обучения. Дата майнеру нужно обладать исключительными распознавательными качествами, чудесной интуицией и техническими умениями для объединения и трансформирования огромного количества данных.

Источник

Big data и Machine learning – что это такое?

С каждым годом интерес к Big Data неукоснительно растет. Крупные компании хотят научиться структурировать и использовать большие объемы данных, которые поступают к ним через разные информационные каналы. Ежегодно объемы информации, которая храниться в Интернете, вырастают как минимум вдвое. Мировые корпорации уже не первый год занимаются исследованиями в сфере Big Data. Ведь считается, что это ключ к успешному бизнесу.

В самом простом смысле слова, это выражение означает «большие данные». Они могут быть структурированы или нет. Анализ массива данных поможет решить любую поставленную задачу. Однако не вся информация одинаково полезна. Часто в интернете формируется куча бесполезных данных, поэтому для исследования Big Data требуются специальные технологии и экспертные группы. Здесь на помощь и приходит Machine Learning.

Как это работает?

С самым простым примером Machine Learning мы сталкиваемся при профилактическом ремонте техники. Допустим, к нам поступают данные датчиков (показания температуры, влажности, давления и вибрации в каждой детали оборудования). Именно они и ложатся в основу автоматизированной модели ML. Она поможет выявить скрытые ошибки, которые приводят к отказу оборудования, и проверить новые данные по встроенным алгоритмам. Кроме того, аналитическая система может инициировать оповещения для команды обслуживания, если модель идентифицирует ошибку при сопоставлении с правильными показателями.

Интерес к Machine Learning растет. Ведь его обуславливают наличие хранилищ для данных и программного обеспечения, позволяющего анализировать информацию. Автоматическое моделирование позволяет дать ценные рекомендации без участия человеческого разума.

Machine Learning в сфере розничной торговли и услуг

В ритейле данное направление анализа «больших данных» является ключом к успеху. Machine Learning помогает собрать, проанализировать и использовать полученную информацию для персонализации покупок в режиме реального времени. Алгоритмы позволяют быстро и просто сегментировать аудиторию, что идеально подходит для таргетинга.

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

Компания Walmart работает над созданием собственных запатентованных технологий машинного обучения и искусственного интеллекта. В марте 2017 года розничная сеть открыла Магазин №8 в Силиконовой долине. Это специализированное пространство и инкубатор для разработки технологий, которые позволят магазинам оставаться конкурентоспособными в ближайшее десятилетие.

В финансовом секторе прогностическая аналитика помогает предотвратить мошенничество, анализируя большие наборы данных. При этом она позволяет создавать прогнозы на основе предыдущих решений. Модели ML усваивают поведение пользователей и затем осознанно предлагают покупателям алгоритм принятия решения.

Банки и финансовые учреждения используют ML для сбора информации, которая помогает разрабатывать инвестиционные стратегии и другие возможности для бизнеса.

В 2018 году технологии машинного обучения выходят на новый уровень зрелости. Крупные корпорации все чаще используют анализ «больших данных». Они стараются совместить информацию и интеллектуальные технологии во всех областях. В конечном итоге это повышает производительность и улучшает обслуживание клиентов.

Источник

От Big Data к Machine Learning

big data машинное обучение

big data машинное обучение

Интерес к Big Data не угасает, наоборот, все больше людей интересуются тем как собирать, структурировать, анализировать и применять в своей работе и бизнесе огромные объемы данных, которые в наше время поступают фактически отовсюду. Это неудивительно, ведь за одну минуту в Интернете появляется 570 новых сайтов, за 1 день в мировом информационном пространстве происходит более 2 млрд событий, которые даже после обработки и сжатия занимают около 400 Гбайт, а каждый год общий объем получаемых и хранимых бизнес-данных удваивается.

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

Big Data – это большой объем структурированных или неструктурированных данных, ценность которых зависит от конкретно поставленной задачи. В наше время уже все данные становятся большими, но большинство задач требует малых данных. Большие данные — не всегда дают ожидаемый результат. Особенно важной становится проблема качества данных, так как вместе с ценной информацией генерируется куча информационного мусора. Для качественного анализа и практического применения Big Data нужна хорошая команда аналитиков, которые смогут извлечь полезные знания и правильно их интерпретировать.

Практическая ценность Big Data перешла в новую плоскость, и ее фактически заменил новый класс технологий — Machine Learning («Машинное обучение»), появившийся относительно недавно. Machine Learning — это метод анализа данных, основанный на построении автоматизированной аналитической модели. Используя математические алгоритмы анализа данных, Machine Learning позволяет находить скрытые факторы и зависимости, не будучи заранее запрограммированным на определенное место поиска.

Важным аспектом в Machine Learning является способность адаптироваться и переобучаться на вновь поступивших данных, для получения надежных и репрезентативных результатов. С ростом производительной мощности компьютеров значительно расширились сферы применения Machine Learning для анализа больших данных. Вот несколько примеров, о которых вы могли слышать:

big data машинное обучение

Рост интереса к Machine Learning и его практической значимости обусловлен тем, что сейчас для его применения есть все инструменты, как никогда ранее: постоянно растущие объемы и разновидности имеющихся данных, дешевые вычислительные мощности и хранилища данных, постоянно совершенствующееся программное обеспечение, которое позволяет проводить анализ и обработку данных, не имея углубленных знаний в этой области.

Machine Learning позволяет быстро в автоматическом режиме анализировать большие, более сложные данные и обеспечивает более быстрый, более точный результат. А результат — это ценные предсказания, которые помогают принять лучшее решение и сделать правильные действия в реальном времени без вмешательства человека.

По этому поводу хорошо высказался ведущий ученый в области аналитики Томас Дэвенпорт в своем комментарии The Wall Street Journal. По его словам, в условиях быстро меняющихся, растущих объемов данных, «… Вам необходимо быстрое потоковое моделирование, чтобы не отставать.» И вы можете сделать это с помощью Machine Learning. Он говорит:

Люди могут создать одну или две хороших моделей в неделю; Machine Learning может создать тысячи моделей в неделю.

Источник

Big Data, блокчейн, машинное обучение — объясняем термины на ёжиках

big data машинное обучение

big data машинное обучение

Искусственный интеллект и машинное обучение всё чаще используются компаниями в маркетинге. О том, как и для чего они применяются в работе, расскажем в следующих статьях. А чтобы лучше понимать, как устроены эти технологии, мы подготовили для вас тематический словарь с наглядными примерами. Объясняем термины так просто, чтобы и ежу стало понятно.

Искусственный интеллект
Он же ИИ, Artificial Intelligence, AI

Точного определения не существует, совсем как в философии. Всё зависит от того, что именно понимать под словами «разум» и «интеллект». Считать это только свойством людей? Или некоторые животные тоже разумны и обладают интеллектом? В целом, искусственный интеллект — это свойство систем имитировать либо психические процессы человека, либо разумное поведение и возможность совершать выбор.

Представьте, вы мечтаете завести ежа. Останавливает только аллергия на этих животных. Тогда друзья предлагают купить робоёжика. Он должен уметь воспроизводить поведение настоящего ежа: фыркать, выражая своё недовольство, сворачиваться в клубочек, когда его пытаются погладить, громко топать лапками по ночам, любить хозяина и кусать незнакомых ему людей. Если ваш робоёж умеет всё это, то можете смело говорить, что он обладает искусственным интеллектом.

Большие данные
Они же Big Data

Вроде сразу понятно, большие данные — это много каких-то данных. Но всё не так просто. Для начала, много — это сколько? Три, десять, миллион, миллиард? А чего — мегабайтов, гигабайтов, терабайтов? Насчёт этого нет единого мнения. Кто-то думает, что это когда данные нельзя посчитать на одном компьютере, кто-то — когда ежедневный поток информации превышает 100 Гб в день. Принято считать, что большие данные — это не только сами данные, но ещё и инструменты, подходы и методы обработки информации.

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

Каждый день вы собираете всех ёжиков и распределяете по трём комнатам.

Если в заповеднике 100 ёжиков, задача кажется легкой. С 1000 ежей становится сложнее (не забывайте, они могут выбегать). А если у вас самый большой в мире ежиный заповедник, то вручную животных уже не посчитать — в этот момент они станут большими данными. Вам придётся обзавестись инструментом обработки больших данных — умным автоматическим сортировщиком ежей. Он не только распределит и посчитает животных, но и найдёт новые зависимости, например, сезонные колебания в ежиной популяции.

Блокчейн
От англ. Blockchain

Блокчейн — это не только про криптовалюту! Это технология хранения информации в цепочке блоков. Каждый из блоков содержит данные о всей предыдущей цепочке: известно, что именно хранится в предыдущих блоках, кто и когда создал информацию, переместил её или изменил. Все сведения дублируются на разных компьютерах, возможно, в разных странах. Благодаря этому подделать их просто невозможно.

Представьте, что у вас есть лучший друг — ёж Соник. Прибегает сосед, грозится вызвать полицию и кричит, что у него есть видео, где Соник два дня назад крадёт огромный алмаз, закопанный в саду. Но такого не может быть: весь вечер вы с ежом смотрели сериалы и ели пиццу.

Предположим, все записи с камер наблюдения района хранятся с помощью технологии блокчейн: запись одного дня с одной камеры — один блок, в новом блоке содержится видеозапись нового дня и код-идентификатор предыдущего блока. Полицейский получает доступ ко всем камерам, на которых виден сад соседа. Затем он ищет код с нужной камеры, смотрит на идентификатор видео, где Соник крадёт алмаз и понимает, что видео сфабриковано. Теперь можно дальше счастливо есть пиццу, а сосед будет отрабатывать наказание за клевету!

Машинное обучение
Оно же МО, Machine Learning, ML

Это алгоритмы, обучающиеся самостоятельно или с помощью учителя. Выглядит это примерно так:

С помощью методов машинного обучения можно научить компьютеры распознавать ёжиков или рисовать их. Ниже расскажем про два разных подхода с конкретными примерами.

1. Градиентный бустинг

От англ. Gradient Boosting

Это способ последовательного построения алгоритмов. Каждый новый алгоритм создаётся, чтобы исправить недостатки предыдущего.

Например, мы придумываем алгоритм, определяющий породу ежей. Для начала смотрим их размеры: большой ёж, средний или маленький. Это наше первое простое дерево решений. Затем ещё несколько:

Далее соединяем все признаки в одно дерево и получаем заготовку, словно мы делаем тест «Какой вы ёжик». Все породы такой тест не покроет, поэтому придётся построить ещё одно дерево с учётом получившейся ошибки. Каждое новое дерево будет уменьшать ошибку и точнее определять породу ежей.

2. Нейронные сети

От англ. Artificial neural network

Это аналог нейронных сетей человеческого мозга. Много маленьких нейронов решают свои простейшие операции. Они взаимосвязаны и вместе выполняют сложные функции.

Предположим, мы много раз сфотографировали и нарисовали ежей, показали компьютеру и сказали: «Смотри, всё это ёжики». Он проанализировал картинки, наложил их друг на друга и выделил признаки ежа. В результате получилось представление — его называют слоем свёртки. Человек, который посмотрит на него, скорее всего, не поймет, почему алгоритм так видит ёжиков. Он увидит только набор пикселей. Такой сверточной нейронной сети теперь можно показать видео из заповедника, а она посчитает, сколько ежей там живет.

Модель машинного обучения
Она же ML model

Это конкретный обученный алгоритм. Модель со своим набором признаков (фич) решает только тот тип задач, для которого была построена. Как ёжик, которого научили ловить определённый вид гусениц.

Фича
От англ. feature — особенность, характеристика, свойство

Это сленговое обозначение признаков, применяющихся в моделях. Помните, мы в градиентном бустинге строили деревья для определения породы ежа? Так вот, форма ушек — это фича. Как и длина иголок.

Если вы хотите подробнее узнать, как устроено машинное обучение, где мы сталкиваемся с ним в жизни и как оно используется в маркетинге, переходите на статью «Вторжение машинного обучения: от заказа такси до персонализации контента».

Источник

Как обучать огромные модели машинного обучения на случайных GPU

Вы можете спросить: почему эти полумагические модели машинного обучения работают так хорошо? Короткий ответ: эти модели чрезвычайно сложны и обучаются на огромном количестве данных. На самом деле, Lambda Labs недавно подсчитала, что для обучения GPT-3 на одном GPU потребовалось бы 4,6 миллиона долларов — если бы такое было возможно.

Такие платформы, как PyTorch и Tensorflow, могут обучать эти огромные модели, потому что распределяют рабочую нагрузку по сотням (или тысячам) GPU одновременно. К сожалению, этим платформам требуется идентичность графических процессоров (они должны иметь одинаковую память и вычислительную производительность). Но многие организации не имеют тысячи одинаковых GPU. Малые и средние организации покупают разные компьютерные системы, что приводит к неоднородной инфраструктуре, которую нелегко адаптировать для вычисления больших моделей. В этих условиях обучение моделей даже среднего размера может занимать недели или даже месяцы. Если не принять меры, университеты и другие небольшие организации рискуют потерять конкурентоспособность в погоне за разработкой новых, лучших моделей машинного обучения. Но это можно исправить.

В этом посте представлена предыстория и практические шаги по обучению BERT с нуля в университете с использованием пакета HetSeq. Это адаптация популярного пакета PyTorch, которая предоставляет возможность обучать большие модели нейронных сетей на гетерогенной инфраструктуре.

big data машинное обучение

Чтобы исправить эту ситуацию, мы недавно выпустили программный пакет под названием HetSeq — адаптацию популярного пакета PyTorch, которая предоставляет возможность обучать большие модели нейронных сетей на гетерогенной инфраструктуре.

Эксперименты показывают, что систему на базе BERT можно за день обучить с помощью более чем 8 GPU, большинство из которых нам пришлось «позаимствовать» в неработающих лабораториях. Прежде чем мы представим HetSeq, нужна небольшая предыстория.

Типовое обучение нейронной сети

Обучение на одном GPU

Этот код показывает этап обучения базовой модели контролируемого обучения на фреймворке нейронных сетей. Учитывая некоторую архитектуру, эта задача оптимизирует параметры модели через SGD на функции потерь между предсказанными экземплярами и наблюдаемой истиной.

Фактически процесс обучения состоит из четырёх отдельных этапов: (1) загрузка данных, (2) прямой проход, (3) обратный проход, (4) обновление.

1. Загрузка данных

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

big data машинное обучение

Прямой проход с одним GPU

2. Прямой проход

Следующий шаг — вычисление функции потерь. Для этого пакет данных передаётся через модель (отсюда и название — «прямой проход») и сравнивается с метками обучения наблюдаемой истины. В блоке прямой проход состоит из двух этапов: генерации спрогнозированной метки (вывод) и измерения разницы (потери) между выводом и целью.

3. Обратный проход

Вычисленная на предыдущем шаге потеря определяет, насколько нужно изменить параметры модели; это называется градиентом, который применяется к архитектуре нейронной сети в обратном направлении (отсюда название — обратный проход, или обратное распространение).

big data машинное обучение

Параметры обновления с единственным GPU

4. Обновление

Помните, что цель всего процесса — оптимизировать параметры модели так, чтобы при передаче данных по ним они минимизировали потери. Поэтому важно, чтобы параметры модели обновлялись в соответствии со значениями градиента.

Краткое описание этапов обучения

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

Что делать, если у нас несколько GPU?

Поскольку пакеты данных независимы друг от друга, довольно просто распараллелить этот процесс, отправив разные пакеты данных на разные GPU. Затем, если мы сможем каким-то образом объединить вычисленные потери и синхронизировать обновлённые параметры модели, тогда получится сделать обучение намного быстрее.

Класс параллельного распределения данных

Это не новая идея. В PyTorch мы используем для модели модуль torch.nn.parallel.DistributedDataParallel (DDP) вместо модуля torch.nn.Module. Каждый GPU — это отдельный процесс, и связь между ними осуществляется с помощью стандартного IPC. Но это ещё не всё. Четыре шага требуют некоторой настройки.

1. Загрузка данных с помощью DDP

С помощью DDP мы разделяем каждый пакет данных на множество различных GPU — столько, сколько у нас есть. В этом случае очень важно, чтобы у каждого графического процессора были одинаковые параметры модели.

Это основная идея параллельного распределения данных (DDP): каждый GPU имеет идентичные параметры модели, но одновременно обрабатывает разные пакеты данных.

big data машинное обучение

Прямой проход с несколькими GPU

2. Прямой проход с DDP

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

3. Обратный проход с DDP

Мы используем средние потери для получения градиентов параметров модели при обратном проходе. Прежде чем начать, необходимо сообщить о средних потерях на разные GPU, чтобы параметры модели могли оставаться синхронизированными. Как только одни и те же параметры на разных графических процессорах получают свои градиенты, выполняется синхронизация последних, чтобы они были одинаковы.

big data машинное обучение

4. Обновление с DDP

После синхронизации градиентов мы можем обновлять параметры модели параллельно, используя отдельные оптимизаторы на каждом процессоре.

Следующий шаг обучения обычно можно начинать сразу. Однако, поскольку почти все параметры «плавают» и в некоторых GPU может возникать ошибка вычислений, особенно когда выполняется много шагов обучения, мы иногда синхронизируем параметры в начале или в конце шага.

Эти изменения отражены в следующем псевдокоде. Примечательно, что функцию принимает идентификатор устройства (т. е. идентификатор GPU), модель должна выполнять синхронизацию параметров перед каждым прямым проходом, функция потерь должна усредняться перед обратным проходом, и, наконец, градиенты должны быть усреднены перед обновлением параметров модели.

Обучение на нескольких GPU

Масштабирование — несколько узлов с несколькими GPU

До сих пор мы говорили о том, как использовать несколько GPU на одном узле. Это здорово, но не приведёт далеко. Если мы хотим по-настоящему масштабироваться, нам нужно распределить рабочую нагрузку между несколькими узлами, каждый из которых имеет несколько процессоров.

К счастью, тот же механизм, который используется для адресации процессоров на одном узле, можно распространить на несколько узлов. Вы можете просто установить индекс узла, то есть параметр rank в функции init_process_group глобально, чтобы каждый GPU имел уникальный идентификатор относительно всех узлов.

Коммуникация — вот где возникают сложности

big data машинное обучение

Внутриузловая и межузловая коммуникация

Когда у вас есть несколько узлов с несколькими процессорами, связь должна быть налажена между процессорами на одном узле и между разными узлами, чтобы во время процедуры обучения совместно использовать вычисленные градиенты и обновления параметров.

Конечно, межузловая связь намного медленнее, чем внутриузловая. А совместное использование градиентов и обновлений параметров превращается в полный беспорядок, когда узлы и GPU не идентичны — как в случае, когда у вас нет миллиарда долларов, которые можно потратить на центр обработки данных с настраиваемым вычислительным оборудованием.

Когда родители заставляют вас делиться игрушками

В большинстве университетских вычислительных центров различные исследовательские лаборатории совместно используют свои вычислительные ресурсы. Существуют разные модели того, как это делается, но обычно ИТ-администраторы берут на себя значительный контроль над системами и не позволяют учёным устанавливать (обновлять или удалять обновления) необходимого программного обеспечения.
Это означает, что если необходимо обучить большую модель, то некоторым бедным аспирантам необходимо привести алгоритм обучения в соответствие с инфраструктурой. А это сложно по нескольким причинам:

Мы называем эту систему HetSeq. Она была адаптирована из популярного пакета PyTorch и обеспечивает возможность обучения больших моделей нейронных сетей в гетерогенной инфраструктуре. Её можно легко настроить через общую файловую систему без дополнительных пакетов и административных привилегий. Вот как обучать BERT с помощью HetSeq.

BERT в университете с HetSeq

Начнём с Anaconda. Создадим виртуальную среду и установим Python.

Затем мы установим пакеты и привязки HetSeq: загрузим HetSeq с GitHub, установим пакеты из requirements.txt, а также HetSeq и биндинги из setup.py.

Последний шаг перед обучением — это загрузка файлов данных BERT, включая корпус обучения, конфигурацию модели и словарь BPE отсюда. Загрузите DATA.zip, распакуйте его и поместите в каталог preprocessing/.

Обучение BERT с помощью HetSeq

Крутая вещь в HetSeq: она абстрагирует все детали о распределённой обработке. Таким образом, код обучения для 100 GPU почти такой же, как для одного! Давайте попробуем!

В этом случае предположим, что у нас есть два вычислительных узла.

Два блока кода работают на двух разных узлах. Адрес TCP/IP должен быть установлен как один из IP-адресов узла. Как только они будут запущены, вы сможете наблюдать за выполнением кода на 8 процессорах и 2 разных узлах!

Так насколько хорошо это работает? Мы провели несколько экспериментов (подробности тут) над различными однородными (гомогенными, hom) и неоднородными (гетерогенными, het) установками.

nodesGPUstraining_timespeed_up
147.19day1.00
2(het)84.19day1.72
2(hom)84.26day1.69
4(het)162.23day3.22
4(hom)162.19day3.28
8(het)321.21day5.94

В общей сложности мы смогли управлять 32 GPU в 8 неоднородных узлах, сокращая время обучения языковой модели BERT с семи дней до примерно одного дня.

Под капотом HetSeq

big data машинное обучение

Структура пакета HetSeq

Пакет HetSeq содержит три основных модуля, показанных на рисунке слева: train.py, task.py и controller.py для координации основных компонентов, показанных справа. Модуль train.py инициализирует распределённую систему и её различные компоненты.

Модуль task.py определяет функции модели, набора данных, загрузчика данных и оптимизатора; он также выполняет функции прямого и обратного распространения. Модуль controller.py действует как главный контроллер обучения. Он работает как модель, оптимизатор и планировщик скорости обучения; загружает и сохраняет чекпоинты, сообщает о потере и обновляет параметры.
Но я хочу обучить не BERT!

Но я хочу обучить не BERT!

Нет проблем. Вы можете использовать HetSeq с любой другой моделью. Но вам нужно определить новую задачу с соответствующей моделью, набором данных, оптимизатором. и планировщиком скорости обучения. Есть пример MNIST со всеми расширенными классами. Предварительно определённые оптимизаторы, планировщики скорости обучения, наборы данных и модели могут быть повторно использованы в других приложениях. Для получения дополнительной информации ознакомьтесь с пакетом HetSeq и документацией.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *