첫 번째 SynapseML 모델 빌드

이 문서에서는 SynapseML을 사용하여 첫 번째 기계 학습 모델을 빌드하는 방법을 소개하고 SynapseML이 복잡한 기계 학습 작업을 간소화하는 방법을 보여 줍니다. SynapseML을 사용하여 기능화 단계 및 LightGBM 회귀 단계를 포함하는 작은 ML 학습 파이프라인을 만듭니다. 파이프라인은 Amazon Book 리뷰 데이터 세트의 검토 텍스트를 기반으로 등급을 예측합니다. 마지막으로 SynapseML이 미리 빌드된 모델의 사용을 간소화하여 ML 문제를 해결하는 방법을 보여 줍니다.

필수 조건

  • Microsoft Fabric 구독가져옵니다. 또는 무료 Microsoft Fabric 평가판에 등록합니다.

  • Microsoft Fabric에 로그인합니다.

  • 홈페이지 왼쪽의 환경 전환기를 사용하여 Synapse 데이터 과학 환경으로 전환합니다.

    Screenshot of the experience switcher menu, showing where to select Data Science.

  • Microsoft Fabric의 데이터 과학 환경으로 이동합니다.
  • 새 Notebook을 만듭니다.
  • 레이크하우스에 전자 필기장을 첨부합니다. 전자 필기장 왼쪽에서 추가를 선택하여 기존 레이크하우스를 추가하거나 새 레이크하우스를 만듭니다.
  • 빠른 시작: Azure AI 서비스 빠른 시작을 위한 다중 서비스 리소스를 만들어 Azure AI 서비스 키를 가져옵니다. Azure AI 서비스를 사용하여 이 문서의 한 단계 섹션에서 데이터를 변환하려면 이 키가 필요합니다.

환경 설정

SynapseML 라이브러리를 가져오고 Spark 세션을 초기화합니다.

from pyspark.sql import SparkSession
from synapse.ml.core.platform import *

spark = SparkSession.builder.getOrCreate()

데이터 세트 로드

데이터 세트를 로드하고 학습 및 테스트 집합으로 분할합니다.

train, test = (
    spark.read.parquet(
        "wasbs://publicwasb@mmlspark.blob.core.windows.net/BookReviewsFromAmazon10K.parquet"
    )
    .limit(1000)
    .cache()
    .randomSplit([0.8, 0.2])
)

display(train)

학습 파이프라인 만들기

라이브러리에서 synapse.ml.featurize.text 데이터를 사용하고 함수를 사용하여 TextFeaturizer 등급을 파생하는 파이프라인을 LightGBMRegressor 만듭니다.

from pyspark.ml import Pipeline
from synapse.ml.featurize.text import TextFeaturizer
from synapse.ml.lightgbm import LightGBMRegressor

model = Pipeline(
    stages=[
        TextFeaturizer(inputCol="text", outputCol="features"),
        LightGBMRegressor(featuresCol="features", labelCol="rating"),
    ]
).fit(train)

테스트 데이터의 출력 예측

transform 모델의 함수를 호출하여 테스트 데이터의 출력을 데이터 프레임으로 예측하고 표시합니다.

display(model.transform(test))

Azure AI 서비스를 사용하여 한 단계씩 데이터 변환

또는 미리 빌드된 솔루션이 있는 이러한 종류의 작업의 경우 SynapseML과 Azure AI 서비스와의 통합을 사용하여 한 단계에서 데이터를 변환할 수 있습니다.

from synapse.ml.cognitive import TextSentiment
from synapse.ml.core.platform import find_secret

model = TextSentiment(
    textCol="text",
    outputCol="sentiment",
    subscriptionKey=find_secret("cognitive-api-key"), # Replace it with your cognitive service key, check prerequisites for more details
).setLocation("eastus")

display(model.transform(test))