- PVSM.RU - https://www.pvsm.ru -
В релиз Apache Ignite [1] 2.0 вошла бета-версия библиотеки машинного обучения Apache Ignite Machine Learning Grid (ML Grid), основанная на высокооптимизированном и масштабируемом API Apache Ignite Memory-Centric Platform.
Источник: xkcd [2]
О том, на что способна новая библиотека и как с ней работать, наш рассказ под катом.
В релизе 2.0 библиотека включает в себя, в основном, базовую функциональность, такую как локальные и распределенные операции векторной и матричной алгебры с использованием как обычных, так и разреженных структур данных. Сами данные могут храниться в обычной памяти JVM, в off-heap памяти и в распределенном кэше Ignite.
Тем, кто уже использовал другие популярные библиотеки машинного обучения, такие как Apache Mahout [3] или Colt [4], многие вещи будут знакомыми. Это не случайно — одной из целей при проектировании Apache Ignite ML Grid API была простота использования для тех, кто уже привык к типичным библиотекам машинного обучения.
Многие пользователи уже применяли Ignite для ускорения матричных и векторных операций ещё до появления ML Grid. Ignite позволяет совместное использование Compute- и Data-гридов для высокоэффективной обработки разреженных наборов данных. А с появлением ML Grid делать это будет намного легче.
В следующих релизах планируется дальнейшее расширение функциональности библиотеки, в частности, включение распределенных версий популярных алгоритмов, используемых при решении задач машинного обучения.
Основываясь на алгоритмах распределенной алгебры в релизе 2.0, сообщество Apache Ignite планирует добавить в библиотеку алгоритмы классификации, регрессионного анализа, кластерного анализа по k-средним, деревья принятия решений и др. Многое из этого включено в ближайший следующий релиз 2.1 (в частности, линейная регрессия и k-средние).
В более отдаленных планах обсуждается разработка Python- и R-библиотеки в составе стека Ignite ML.
Возможности, предоставляемые новым модулем, пока что довольно скромные: как уже говорилось, это бета-версия, имеющая, в основном, базовую функциональность. А если вы хотите научиться использовать новый API уже сейчас, не дожидаясь следующих релизов, то для вас — вторая часть нашего поста, под спойлером…
Наверное, самый быстрый способ начать знакомство и работу с ML Grid — это собрать, прогнать и изучить результаты выполнения и кода примеров, включённых в релиз. Примеры ML можно найти в директории examples дистрибутива Apache Ignite. Можно также получить код примеров по этой ссылке в Github [5].
Пошаговая инструкция для начала работы с примерами:
Скажем, если код примера TracerExample поменять на такой:
// Code below is based on unit tests in ml module, namely
// on TracerTest#testHtmlMatrixTracer
Matrix mtx2 = new DenseLocalOnHeapMatrix(100, 100);
double MAX = (double)(mtx2.rowSize() * mtx2.columnSize());
mtx2.assign((x, y) -> (double)(x * y) / MAX);
Tracer.showHtml(mtx2);
то при его выполнении будет более эффектный вывод в браузере:
Так можно получить более предметное представление о том, как в Ignite ML реализованы методы матричной алгебры.
В этом примере сперва создается матрица размером 100 на 100. Затем её элементы заполняются величинами, пропорциональными произведению их индексов по вертикали и горизонтали. И, наконец, при помощи Tracer API матрица визуализируется в HTML.
Примеры ML Grid не требуют никакой специальной конфигурации. Всех их можно просто запускать, прогонять и останавливать, а результат будет выводиться в консоль автоматически, без какого-либо вмешательства пользователя. В дополнение к сказанному, при выполнении примера Tracer API запускается браузер, в котором дополнительно выводится результирующий HTML.
Также в javadocs вы можете найти документацию об использовании классов и методов ML Grid.
Jar-сборка последней версии Apache Ignite ML Grid доступна в репозитории Maven. Можно также самостоятельно собрать библиотеку из исходного кода:
mvn clean install -DskipTests -Dmaven.javadoc.skip=true -P java8
mvn install -Pml -DskipTests -U -pl modules/ml -am
{user_dir}/.m2/repository/org/apache/ignite/ignite-ml/{ignite-version}/ignite-ml-{ignite-version}.jar
cd examples
mvn clean package -DskipTests -Pml
При необходимости можно обратиться к дополнительной документации в файлах DEVNOTES.txt в корневой директории проекта и README в директории ML-компонента ignite-ml.
Автор: oignatenko
Источник [6]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/263328
Ссылки в тексте:
[1] Apache Ignite: https://ignite.apache.org/
[2] xkcd: https://xkcd.com/1838
[3] Apache Mahout: http://mahout.apache.org
[4] Colt: https://en.wikipedia.org/wiki/Colt_(libraries)
[5] этой ссылке в Github: https://github.com/apache/ignite/tree/master/examples/src/main/ml/org/apache/ignite/examples/ml/math
[6] Источник: https://habrahabr.ru/post/332442/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.