Чтение онлайн

на главную

Жанры

Машинное обучение на практике – от модели PyTorch до Kubeflow в облаке для BigData
Шрифт:

Многие фреймворки поддерживают визуализацию TeserBodrd. Он представляет собой комплексный Web интерфейс многоуровневой визуализации состояния и процесса обучения и его отладки. Для подключения нужно указать путь к модели "tenserboard –logdir=$PATH_MODEL" и открыть localhost:6006. Управление интерфейсом основано на навигации по графу логических блоков и открытию интересующих блоков, для последующего повторения процесса.

Для экспериментов нам понадобится язык программирования и библиотека. Часто в качестве языка берут простой язык с низким порогом входа, такой как Python. Могут быть также и другие языки общего назначения, такие как JavaScript или специализированные, такие как язык R. Мы возьмём Python. Для того чтобы не ставить язык и библиотеки, воспользуемся бесплатным сервисом colab.research.google.com/notebooks/intro.ipynb, содержащим Jupyter Notebook. Notebook содержит в себе возможность не просто писать код с

комментариями в консольном виде, а оформлять его в виде документа. Испробовать возможности Notebook можно в учебном плейбукетакие как оформление текста на языке разметки MD, с формулами на языке разметки TEX, запуск скриптов на языке Python, вывод результатов их работы в текстовом виде и в виде графиков, используя стандартную библиотеку Python: NumPy(НамПай), matplotlib.pyplot. Сам Сolab представляет графическую карту Tesla K80 на 12 часов за раз (на сессию) бесплатно. Она поддерживает различные фреймворки глубокого машинного обучения, в том числе, Keras, TenserFlow и PyTorch. Цена же составляет GPU в Google Cloud:

Tesla T4: 1GPU 16GB GDDR6 0.35$/час Tesla P4: 1GPU 8GB GDDR5 0.60$/час Tesla V100: 1GPU 16GB HBM2 2.48$/час Tesla P100: 1GPU 16GB HBM2 1.46$/час

Попробуем. Перейдём по ссылке colab.research.google.com и нажмём кнопку "создать блокнот". У нас появится пустой Notebook. Можно ввести выражение:

10**3 / 2 + 3

и нажав на воспроизведение – получим результат 503.0. Можно вывести график параболы, нажав кнопку "+Код" в введя в новую ячейку код:

def F(x): return x*x import numpy as np import matplotlib.pyplot as plt x = np.linspace(–5, 5, 100) y = list(map(F, x)) plt.plot(x, y) plt.ylabel("Y") plt.xlabel("X")

Или выведя ещё и изображение:

import os !wgetimport PIL img = PIL.Image.open("python–logo.png") img

Популярные фреймворки:

* Caffe, Caffe2, CNTK, Kaldi, DL4J, Keras – набор модулей для конструирования;

* TensorFlow, Theano, MXNet – программирование графа;

* Torch и PyTorch – прописать основные параметры, а граф будет построен автоматически.

Рассмотрим работу библиотеки PyTorch (NumPy+CUDA+Autograd) из–за её простоты. Посмотрим на операции с тензорами – многомерными массивами. Подключим библиотеку и объявим два тензора: нажмём +Code, введём код в ячейку и нажмём выполнить:

import torch a = torch.FloatTensor([ [1, 2, 3], [5, 6, 7], [8, 9, 10] ]) b = torch.FloatTensor([ [–1, –2, –3], [–10, –20, –30], [–100, –200, –300] ])

Поэлементные операции, такие как "+", "–", "*", "/" над двумя матрицами одинаковых габаритов производят операции с соответствующими их элементами:

a + b tensor([ [ 0., 0., 0.], [ –5., –14., –23.], [ –92., –191., –290.] ])

Другим вариантом поэлементной операции является применение одной операции ко всем элементом по одиночке, например умножение на –1 или применение функции:

a tensor([ [ 1., 2., 3.], [ 5., 6., 7.], [ 8., 9., 10.] ]) a * –1 tensor([ [ –1., –2., –3.], [ –5., –6., –7.], [ –8., –9., –10.] ]) a.abs tensor([ [ 1., 2., 3.], [ 5., 6., 7.], [ 8., 9., 10.] ])

Также имеются операции свёртки, такие как sum, min, max, которые на входе дают сумму всех элементов, самый маленький или самый большой элемент матрицы:

a.sum tensor(51.) a.min tensor(1.) a.max tensor(10.)

Но нам будут больше интересны постолбцовые операции (операция будет производиться над каждым столбцом):

a.sum(0) tensor([14., 17., 20.]) a.min(0) torch.return_types.min( values=tensor([1., 2., 3.]), indices=tensor([0, 0, 0]) ) a.max(0) torch.return_types.max( values=tensor([ 8., 9., 10.]), indices=tensor([2, 2, 2]) )

Как мы помним, нейронная сеть состоит из слоёв, слои состоят из нейронов, а нейрон содержит на входе связи с весами в виде простых чисел. Вес задаётся обычным числом, тогда входящие связи в нейрон можно описать последовательностью чисел – вектором (одномерным массивом или списком), длина которого и есть количество связей. Так как сеть полносвязная, то все нейроны этого слоя связаны с предыдущим, а, следовательно, демонстрирующие их вектора имеют тоже одинаковую длину, создавая список равных по длине векторов – матрицу. Это удобное и компактное представление слоя, оптимизированное для использования на компьютере. На выходе нейрона имеется функция активации (сигмойда или, ReLU для глубоких и сверхглубоких сетей), которая определяет, выдаст на выходе нейрон значение или нет. Для этого необходимо применить её к каждому нейрону, то есть к каждому столбцу: мы уже видели операцию к столбцам.

Способы ускорения обучения

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

* 1642 – механические вычислительные машины, * 1940 – ламповые вычислительные машины, * 1955 – транзисторные вычислительные машины, * 1965 – компьютеры на интегральных

схемах, * 1980 – компьютеры с центральными процессорами, * 1995 – многоядерные видеокарты, * 2006 – компьютеры с многоядерными процессорами, * 2017 – компьютеры с матричными процессорами.

На универсальных процессорах можно выделить три пути обеспечения ускорения вычислений, в частности, ускорения обучения нейронных сетей, – распараллеливание вычислений, увеличение количества операций за единицу времени и увеличение объёма вычислений за операцию. Рассмотрим с самой однозначной и имеющей богатую историю способа повышения производительности – увеличение количества операций за единицу времени. Достигается это за счёт увеличения тактовой частоты процессора. Исторически мы можем проследить её историю на примерах процессоров компании Intel серии Pentium для домашних рабочих станций и игровых персональных компьютеров, которые сделали ставку именно в том числе на неё и сильно продвинулись в этом направлении. Важно заметить, что Intel имела время (история от процессоров Intel Pentium 1 100 Мегагерц до Intel Pentium 4 5600 Мегагерц), средства (эта ниша на была лидером по объёму продаж и были популярны компьютерные игры) и необходимость (имела конкурента AMD, который имел архитектурные преимущества в виде разрядности шины в 64 вместо 32, и в случае смены лидера мог договориться адаптировать программное обеспечение под эту разрядность) для того, чтобы реализовать это направление по максимуму. Процессора Intel Pentium 1 100 Мегагерц работали с охлаждающим модулем, Intel Pentium 2 400 Мегагерц – с радиатором, выше уже требовался, как минимум, вентилятор. Начиная с частоты 3200, пользователи ставили вместо полностью алюминиевого радиатора, сперва алюминиевого с медной подложкой, потом полностью медные, так как теплоёмкость у алюминия 904 Дж/(кг*град), а у менди кратно меньше 381 Дж/(кг*град), что позволяет ему быстрее отдавать тепло дальше. Большие показатели дают другие металлы не слишком мягкие и не слишком легкоплавкие, такие как серебро (250) и золото (130), поэтому пошли не по теплопроводности самого материала, а по забору тепла при плавлении материала в тепловых трубках. Пепловые трубки отходят от подложки и ведут через закреплённые на них пластины, обдуваемые двумя вентиляторами, образуя прямой поток воздуха. Тепловые трубки оказывают хороший результат (100 Вт для 3 штук, 180 Вт для 6 штук), перенос тепла которыми осуществляется за счёт испарения жидкости в них находящийся в испарительной камере у радиатора, но большая площадь меди и большая разность температуры водяного охлаждения предоставило большую популярность, а вот в ноутбуках – наоборот, тепловые трубки очень популярны, а движение возврат конденсата обусловлен капиллярной структурой в самих трубках. А для поддержки больших частот продавались процессоры, которые выбирались из партии экспериментальным путём по возможности стабильно работать на этих частотах, и требовали, зачастую, водяного охлаждения и вынесенным радиатором из их системного блока персонального компьютера. Экстремальные же частоты достигались индивидуально и требовали криогенных установок, иногда в несколько контуров. При всём при этом, с каждым 100 Мегагерц повышение частоты достигалось большими затратами с высокими рисками повреждения процессора и не получало стабильную вычислительную производительность. На 2021 проверяются решение по литографии капилляров для охлаждающей жидкости внутри процессора, что может быть особенно актуально для многослойных процессоров. Приведу процессоры без бюджетных вариантов и серверных версий компании Intel с лидирующей архитектурой x86 в CISC:

1971, 4004: 500—740 кГц 1972, 4040: 500—740 КГц 1972, 8008: 200—800 кГц 1974, 8080: 2—4 МГц 1976, 8085: 3—6 МГц 1978, 8086: 4—16 МГц 1979, 8088: 5—16 МГц 1982, 80188: 6—20 МГц 1982, 80286: 6—20 МГц 1985, 80386: 12—40 МГц 1991, 80486: 16—150 МГц 1993, Pentium: 60—300 МГц 1995, Pentium Pro: 133—200 МГц 1997, Pentium MMX: 166—233 МГц 1997, Pentium II: 233—450 МГц 1999-2003, Pentium III: 0.4—1.4 ГГц 2000-2008, Pentium 4: 1.3—3.8 ГГц 2006-2011, Core 2 Extreme: 2.3—3.2 ГГц 2008-2013, Core i3: 2.4—4.2 ГГц 2008-2020, Core i7: 1.0—4.7 ГГц 2017-2021, Core i9: 2.1—5.3 ГГц

С Pentium III ситуация не так однозначна, так как имеются пересечения по времени и в один год выходят процессоры начального уровня и топового, поэтому детализируем из отрытых источников:

год процессор i7 Base/Boost GHz 2008 Core i7-965 EE 3.2 2009 Core i7-975 EE 3.3 2010 Core i7-980X 3.3 2011 Core i7-990X 3.5 2012 Core i7-3820 3.6 2013 Core i7-4820K 3.7 2014 Core i7-4790K 4.0 / 4.4 2015 Core i7-6700K 4.0 / 4.2 2016 Core i7-7700K 4.2 / 4.5 2017 Core i7-7740X 4.3 / 4.5 2018 Core i7-8086K 4.0 / 5.0 2019 Core i7-9700KF 3.6 2020 Core i7-10700K 3.8 2021 Core i7-11700KF 3.6 год процессор i9 GHz / Boost 2017 Core i9-7900X 3.3 / 4.3 2018 Core i9-9900X 3.5 / 4.5 2019 Core i9-9990XE 4.0 / 5.1 2020 Core i9-11900KF 3.5 / 5.2 2021 Core i9-12900KF 3.5 / 5.3

Поделиться:
Популярные книги

Особое назначение

Тесленок Кирилл Геннадьевич
2. Гарем вне закона
Фантастика:
фэнтези
6.89
рейтинг книги
Особое назначение

Шесть тайных свиданий мисс Недотроги

Суббота Светлана
Любовные романы:
любовно-фантастические романы
эро литература
7.75
рейтинг книги
Шесть тайных свиданий мисс Недотроги

Отмороженный 7.0

Гарцевич Евгений Александрович
7. Отмороженный
Фантастика:
рпг
аниме
5.00
рейтинг книги
Отмороженный 7.0

Прометей: Неандерталец

Рави Ивар
4. Прометей
Фантастика:
героическая фантастика
альтернативная история
7.88
рейтинг книги
Прометей: Неандерталец

Измена. Верни мне мою жизнь

Томченко Анна
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Верни мне мою жизнь

Кодекс Охотника. Книга XXIX

Винокуров Юрий
29. Кодекс Охотника
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XXIX

Проиграем?

Юнина Наталья
Любовные романы:
современные любовные романы
6.33
рейтинг книги
Проиграем?

На границе империй. Том 10. Часть 2

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
5.00
рейтинг книги
На границе империй. Том 10. Часть 2

Бестужев. Служба Государевой Безопасности. Книга вторая

Измайлов Сергей
2. Граф Бестужев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бестужев. Служба Государевой Безопасности. Книга вторая

«Три звезды» миллиардера. Отель для новобрачных

Тоцка Тала
2. Три звезды
Любовные романы:
современные любовные романы
7.50
рейтинг книги
«Три звезды» миллиардера. Отель для новобрачных

Идеальный мир для Социопата

Сапфир Олег
1. Социопат
Фантастика:
боевая фантастика
рпг
постапокалипсис
6.17
рейтинг книги
Идеальный мир для Социопата

Огненный князь

Машуков Тимур
1. Багряный восход
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Огненный князь

Система Возвышения. Второй Том. Часть 1

Раздоров Николай
2. Система Возвышения
Фантастика:
фэнтези
7.92
рейтинг книги
Система Возвышения. Второй Том. Часть 1

Мастер Разума V

Кронос Александр
5. Мастер Разума
Фантастика:
городское фэнтези
попаданцы
5.00
рейтинг книги
Мастер Разума V