Начало работы

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

В этой статье описаны следующие шаги для начала работы:

Создание ресурса Cognitive Services

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

Облачные службы

Облачные службы Cognitive Services — это интеллектуальные алгоритмы, размещаемые в Azure. Эти службы готовы к использованию без обучения, требуется только подключение к Интернету. Службы Cognitive Services можно создать на портале Azure или с помощью Azure CLI.

Контейнерные службы (необязательно)

Если приложение или рабочая нагрузка использует крупные наборы данных, требует использовать частную сеть или не может получить доступ к облаку, обмен данными с облачными службами может оказаться невозможным. В этом случае контейнерные Cognitive Services имеют следующие преимущества:

  • Высокая степень автономности. Контейнерные службы Cognitive Services можно развернуть в любой вычислительной среде как в облаке, так и в автономном режиме. Если приложение не может получить доступ к облаку, попробуйте развернуть контейнерные службы Cognitive Services в приложении.

  • Минимальная задержка. Так как контейнерным службам не нужно обмениваться данными с облаком, ответы возвращаются с более низкими задержками.

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

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

См. это руководство, чтобы создать контейнерный экземпляр Cognitive Services.

Создание кластера Apache Spark

Apache Spark™ — это платформа распределенных вычислений, предназначенная для обработки больших данных. Пользователи могут работать с Apache Spark в Azure с такими службами, как Azure Databricks, Azure Synapse Analytics, HDInsight и Служба Azure Kubernetes. Чтобы использовать Cognitive Services для больших данных, необходимо сначала создать кластер. Если у вас уже есть кластер Spark, переходите к работе с примером.

Azure Databricks

Azure Databricks — это платформа для аналитики на базе Apache Spark. Она настраивается одним щелчком, упрощает рабочие процессы и предоставляет интерактивную рабочую область, а также часто используется для совместной работы инженеров, бизнес-аналитиков и специалистов по обработке и анализу данных. Чтобы использовать Cognitive Services для больших данных в Azure Databricks, выполните следующие действия:

  1. Создайте рабочую область Azure Databricks.

  2. Создание кластера Spark в Databricks

  3. Установите библиотеку с открытым кодом SynapseML (или библиотеку MMLSpark, если вы используете устаревшее приложение):

    • Создайте библиотеку в рабочей области Databricks.
      Создание библиотеки

    • Для SynapseML укажите следующие данные Maven: координаты: com.microsoft.azure:synapseml_2.12:0.10.0, репозиторий: по умолчанию

    • Для MMLSpark (устаревшая версия) укажите следующие данные Maven: координаты: com.microsoft.ml.spark:mmlspark_2.11:1.0.0-rc3, репозиторий: https://mmlspark.azureedge.net/maven
      Координаты библиотеки

    • Установите библиотеку в кластере.
      Установка библиотеки на кластере

Azure Synapse Analytics (необязательно)

При необходимости для создания кластера Spark можно использовать Synapse Analytics. Azure Synapse Analytics объединяет корпоративные хранилища данных и аналитику больших данных. Эта служба позволяет вам запрашивать данные в соответствии с вашими требованиями, используя бессерверные ресурсы по запросу или подготовленные ресурсы в большом масштабе. Чтобы начать работу с Azure Synapse Analytics, сделайте следующее:

  1. Создайте рабочую область Synapse (предварительная версия).

  2. Создание бессерверного пула Apache Spark (предварительная версия) с помощью портала Azure.

В Azure Synapse Analytics компонент больших данных для Cognitive Services устанавливается по умолчанию.

Служба Azure Kubernetes

Если вы используете контейнерные службы Cognitive Services, один из популярных вариантов развертывания Spark вместе с контейнерами — использовать Службу Azure Kubernetes.

Чтобы начать работу со Службой Azure Kubernetes, сделайте следующее:

  1. Развертывание кластера Службы Azure Kubernetes (AKS) с помощью портала Azure

  2. Установите чарт Helm Apache Spark 2.4.0.

  3. Установите контейнер Cognitive Services с помощью Helm.

Выполнение примера

Настроив кластер Spark и среду, можно выполнить короткий пример. В этом примере используется Azure Databricks с пакетом mmlspark.cognitive. Пример с synapseml.cognitive см. в разделе Добавление поиска в обогащенные ИИ данные из Apache Spark с помощью SynapseML.

Сначала можно создать записную книжку в Azure Databricks. Если вы работаете с другими поставщиками кластеров Spark, используйте соответствующие записные книжки или Spark Submit.

  1. Создайте записную книжку Databricks, выбрав New notebook (Создать записную книжку) в меню Azure Databricks.

    Создание записной книжки
  2. В окне Создание записной книжки введите имя, выберите Python в качестве языка, а затем выберите созданный ранее кластер Spark.

    Сведения о новой записной книжке

    Нажмите кнопку создания.

  3. Вставьте этот фрагмент кода в новую записную книжку.

    from mmlspark.cognitive import *
    from pyspark.sql.functions import col
    
    # Add your region and subscription key from the Language service (or a general Cognitive Service key)
    # If using a multi-region Cognitive Services resource, delete the placeholder text: service_region = ""
    service_key = "ADD-SUBSCRIPTION-KEY-HERE"
    service_region = "ADD-SERVICE-REGION-HERE"
    
    df = spark.createDataFrame([
      ("I am so happy today, its sunny!", "en-US"),
      ("I am frustrated by this rush hour traffic", "en-US"),
      ("The cognitive services on spark aint bad", "en-US"),
    ], ["text", "language"])
    
    sentiment = (TextSentiment()
        .setTextCol("text")
        .setLocation(service_region)
        .setSubscriptionKey(service_key)
        .setOutputCol("sentiment")
        .setErrorCol("error")
        .setLanguageCol("language"))
    
    results = sentiment.transform(df)
    
    # Show the results in a table
    display(results.select("text", col("sentiment")[0].getItem("score").alias("sentiment")))
    
  4. Найдите ключи региона и подписки в меню Ключи и конечная точка языкового ресурса на портале Azure.

  5. Замените заполнители ключей региона и подписки в коде записной книжки Databricks значениями для вашего ресурса.

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

Ожидаемые результаты

text Тональность
I am so happy today, its sunny! 0.978959
I am frustrated by this rush hour traffic 0.0237956
The cognitive services on spark aint bad 0.888896

Дальнейшие действия