모듈 5: 일괄 처리 채점 수행 및 레이크하우스에 예측 저장
이 모듈에서는 Microsoft Fabric MLflow 모델 레지스트리에서 학습되고 등록된 LightGBMRegressor 모델을 가져오고 레이크하우스에서 로드된 테스트 데이터 세트에서 일괄 예측을 수행하는 방법을 알아봅니다.
중요
Microsoft Fabric은 현재 미리 보기로 제공됩니다. 이 정보는 릴리스되기 전에 상당히 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보와 관련하여 명시적이거나 묵시적인 어떠한 보증도 하지 않습니다.
Notebook에서 팔로우
이 자습서의 각 단계에서 사용되는 python 명령/스크립트는 함께 제공되는 Notebook: 05-perform-batch-scoring-and-save-predictions-to-lakehouse.ipynb에서 찾을 수 있습니다. 실행하기 전에 레이크하우스를 Notebook에 연결 해야 합니다.
일괄 처리 채점 수행 및 예측 저장
puYear=2016 및 puMonth=3에 대해 필터링된 nyctaxi_prep lakehouse 테이블에서 정리된 데이터의 임의 샘플을 읽습니다.
SEED = 1234 # Random seed input_df = spark.read.format("delta").load("Tables/nyctaxi_prep")\ .filter("puYear = 2016 AND puMonth = 3")\ .sample(True, 0.01, seed=SEED) ## Sampling data to reduce execution time for this tutorial
필요한 pyspark.ml 및 synapse.ml 라이브러리를 가져오고 모듈 4: 기계 학습 모델 학습 및 등록의 마지막 단계에서 복사한 run_uri 사용하여 학습되고 등록된 LightGBMRegressor 모델을 로드합니다.
import mlflow from pyspark.ml.feature import OneHotEncoder, VectorAssembler, StringIndexer from pyspark.ml import Pipeline from synapse.ml.core.platform import * from synapse.ml.lightgbm import LightGBMRegressor ## Define run_uri to fetch the model run_uri = "<enter the run_uri from module 04 here>" loaded_model = mlflow.spark.load_model(run_uri, dfs_tmpdir="Files/tmp/mlflow")
입력 데이터 프레임에서 모델 변환을 실행하여 예측을 생성하고 다음 명령을 사용하여 모델 학습을 위해 만든 불필요한 벡터 기능을 제거합니다.
# Generate predictions by applying model transform on the input dataframe predictions = loaded_model.transform(input_df) cols_toremove = ['storeAndFwdFlagIdx', 'timeBinsIdx', 'vendorIDIdx', 'paymentTypeIdx', 'vendorIDEnc', 'rateCodeIdEnc', 'paymentTypeEnc', 'weekDayEnc', 'pickupHourEnc', 'storeAndFwdFlagEnc', 'timeBinsEnc', 'features','weekDayNameIdx', 'pickupHourIdx', 'rateCodeIdIdx', 'weekDayNameEnc'] output_df = predictions.withColumnRenamed("prediction", "predictedtripDuration").drop(*cols_toremove)
다운스트림 사용량 및 분석을 위해 레이크 하우스 델타 테이블 nyctaxi_pred 예측을 저장합니다.
table_name = "nyctaxi_pred" output_df.write.mode("overwrite").format("delta").save(f"Tables/{table_name}") print(f"Output Predictions saved to delta table: {table_name}")
%%sql 매직 명령을 사용하여 실행할 수 있는 SparkSQL 쿼리를 비롯한 다양한 방법으로 최종 예측 데이터를 미리 봅니다. 그러면 Notebook 엔진에 셀이 SparkSQL 스크립트임을 알 수 있습니다.
%%sql SELECT * FROM nyctaxi_pred LIMIT 20
예측이 포함된 nyctaxi_pred 델타 테이블은 활성 패브릭 작업 영역의 레이크하우스 항목으로 이동하여 레이크하우스 UI에서 볼 수도 있습니다.