Oracle Machine Learning для Python в конвергентной базе данных Oracle

В этом сообщении блога мы рассмотрим, как настроить инфраструктуру машинного обучения Oracle для Python (OML4PY) с использованием базы данных Oracle 19c, работающей на сервере Linux.

Давайте начнем с рассмотрения концепции «конвергентной базы данных».

Современным приложениям требуются все типы данных — реляционные, JSON, мультимедийные, XML, пространственные, графические, IoT и многие другие.

База данных Oracle поддерживает все типы данных и рабочие нагрузки, необходимые разработчикам. Он также поддерживает самые популярные стили разработки и языки программирования.

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

Наш тестовый сервер представляет собой вычислительный узел Oracle Linux 7, мы установим двоичные файлы базы данных и сервер базы данных, которые будут использоваться для развертывания и запуска наших моделей машинного обучения, из золотого образа (подробности о том, как создать золотые образы, будут даны в следующем посте).

Если у вас есть собственный сервер Oracle Linux с установленной базой данных Oracle 19c, вы можете пропустить сведения о конфигурации и установке двоичных файлов Oracle 19c и базы данных Oracle ORCL.

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

Установленная база данных не настроена как служба для наших тестов, подробности о том, как настроить эту настройку, даны на нескольких сайтах оракула.

На сервере настроен оракул oci cli.
CLI — это компактный инструмент, который можно использовать отдельно или с консолью для выполнения задач Oracle Cloud Infrastructure.

Oracle Oci cli используется для загрузки на наш сервер артефактов, хранящихся в выделенном сегменте Oracle Storage Bucket, чтобы ускорить создание серверов.

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

Мы подробно расскажем об установке ansible в следующем блоге.

Давайте начнем с создания некоторых предварительных конфигураций для нашего сервера.

Базовый сервер oracle OCI linux создается с пользователем по умолчанию «opc», мы создали пользователя «oracle», который будет выполнять установку и настройку программного обеспечения нашего сервера машинного обучения.

Если вы не используете сервер Oracle Linux Oci, то пользователя oracle можно создать, применив следующий rpm:

yum install -y oracle-database-preinstall-19c

Пользователь oracle должен быть добавлен в файл sudoers для запуска команд sudo:

echo "oracle ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers

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

Затем давайте установим облегченную версию сервера vnc на сервере Oracle Linux 7.

Мы получим двоичные файлы Oracle, исправленные до версии 19.16, из нашего сегмента хранилища Oracle OCI.

Вы можете самостоятельно выполнить установку и настройку Oracle Database 19c, загрузив бинарники с сайта edelivery.oracle.com и последние патчи с сайта support.oracle.com.

Если вы создали свои собственные золотые образы, то те же операции можно выполнять с сервера NFS.

На этом этапе двоичные файлы Oracle установлены и настроены на нашем сервере Linux, мы приступим к восстановлению холодной копии базы данных Oracle из нашего хранилища.

Мы также получим библиотеки oml4py, которые хранятся на нашем Storage Bucket Server, вы можете скачать эти библиотеки здесь

Мы создаем файлы tnsnames.ora и listener.ora в папке $TNS_ADMIN.

Запустите прослушиватель:

lsnrctl status
lsnrctl start

И мы запускаем базу данных и создаем некоторую конфигурацию для будущих резервных копий.

Чтобы подготовить установку библиотек oml4py на наш сервер, мы будем следовать инструкциям с этой страницы.

Добавьте ссылку на python 3.9 и установите соответствующие модули python для установки сервера oml4py.

И установите серверную библиотеку oml4py, следуя документации здесь.

Наша контейнерная база данных называется ORCL, а подключаемая ORCLPDB19 настроена для установки библиотек oml4py на стороне сервера.

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

Затем мы установим Anaconda и создадим «крюк», чтобы использовать его в следующих сеансах, чтобы иметь возможность загружать среду.

Создайте/скопируйте следующий скриптлет, чтобы загрузить среду Anaconda.

eval “$(/home/oracle/anaconda3/bin/conda shell.bash hook)”

Откройте новый сеанс на том же сервере, экспортируйте $PYTHONPATH и выполните хук для загрузки среды Anaconda.

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

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

Создайте конфигурацию ноутбука Jupyter, выполнив следующий код:

Затем создайте простой скрипт для запуска сервера в режиме nohup, указав также пароль, который будет использоваться при доступе к URL-адресу jupyter.

Если вы хотите настроить свой ноутбук Jupyter для работы в качестве службы Linux, выполните следующие шаги:

И выполните следующий скрипт от имени пользователя sudo:

sudo cp jupyter_service.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable jupyter_service.service
sudo systemctl start jupyter_service.service
sudo systemctl status jupyter_service.service

Затем откройте браузер и проверьте сервер по адресу https://your_ip:8888
Вы должны указать пароль, который вы создали на предыдущем шаге ( YOUR_JPT_PASSWD )

Загрузка тестового кода в блокнот Jupyter позволит убедиться, что конфигурация и параметры подключения для вашего сервера машинного обучения работают нормально:

Создайте тестовую записную книжку, нажав new/Python3 (ipykernel):

Затем скопируйте следующий код в новый абзац:

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

Вы можете попробовать пример кода из документации Oracle OML4PY.