SynapseML을 사용하여 모델 빌드
이 문서에서는 SynapseML을 사용하여 기계 학습 모델을 빌드하는 방법을 설명하고 SynapseML이 복잡한 기계 학습 작업을 간소화하는 방법을 보여 줍니다. SynapseML을 사용하여 기능화 단계 및 LightGBM 회귀 단계를 포함하는 작은 기계 학습 학습 파이프라인을 만듭니다. 파이프라인은 책 리뷰 데이터 세트의 검토 텍스트를 기반으로 등급을 예측합니다. 또한 SynapseML이 미리 빌드된 모델의 사용을 간소화하여 기계 학습 문제를 해결하는 방법도 확인할 수 있습니다.
필수 조건
Microsoft Fabric 구독을 구매합니다. 또는 무료 Microsoft Fabric 평가판에 등록합니다.
Microsoft Fabric에 로그인합니다.
홈페이지 왼쪽의 환경 전환기를 사용하여 Synapse 데이터 과학 환경으로 전환합니다.
리소스 준비
모델 및 파이프라인을 빌드하는 데 필요한 도구와 리소스를 만듭니다.
- 새 Notebook을 만듭니다.
- 레이크하우스에 전자 필기장을 첨부합니다. 기존 레이크하우스를 추가하거나 새 레이크하우스를 만들려면 왼쪽 탐색기 아래에서 Lakehouses를 확장한 다음 추가를 선택합니다.
- 빠른 시작의 지침 에 따라 Azure AI 서비스 키를 가져옵니다. Azure AI 서비스에 대한 다중 서비스 리소스를 만듭니다.
- Azure Key Vault 인스턴스 를 만들고 Azure AI 서비스 키를 키 자격 증명 모음에 비밀로 추가합니다.
- 키 자격 증명 모음 이름 및 비밀 이름을 기록해 둡니다. 이 문서의 뒷부분에서 1단계 변환을 실행하려면 이 정보가 필요합니다.
환경 설정
Notebook에서 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", dataTransferMode="bulk")
]
).fit(train)
테스트 데이터의 출력 예측
transform
모델의 함수를 호출하여 테스트 데이터의 출력을 데이터 프레임으로 예측하고 표시합니다.
display(model.transform(test))
Azure AI 서비스를 사용하여 한 단계씩 데이터 변환
또는 미리 빌드된 솔루션이 있는 이러한 종류의 작업의 경우 SynapseML과 Azure AI 서비스와의 통합을 사용하여 한 단계에서 데이터를 변환할 수 있습니다. 이러한 대체를 사용하여 다음 코드를 실행합니다.
- Azure AI Services 키 비밀의 이름으로 바꿉
<secret-name>
니다. <key-vault-name>
을 키 자격 증명 모음의 이름으로 바꿉니다.
from synapse.ml.services import TextSentiment
from synapse.ml.core.platform import find_secret
model = TextSentiment(
textCol="text",
outputCol="sentiment",
subscriptionKey=find_secret("<secret-name>", "<key-vault-name>")
).setLocation("eastus")
display(model.transform(test))