Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tässä artikkelissa näytetään, miten koneoppimismalli rakennetaan SynapseML:llä Microsoft Fabric -muistikirjassa. Luot harjoitusputken, joka käyttää tekstin featuralisointia ja LightGBM-regressiota ennustaakseen kirjojen arvostelujen perusteella. Opit myös käyttämään Foundry Toolsia valmiiksi rakennettuun sentimenttianalyysiin.
- Luo Fabric-muistikirja ja kiinnitä järvimaja
- Kirjastojen tuonti ja datan lataaminen
- Rakenna ja kouluta tekstin ominaisuus ja LightGBM-regressioputki
- Luo ennusteita
- (Valinnainen) Suorita Foundry Toolsin tunneanalyysi
Edellytykset
Hanki Microsoft Fabric -tilaus. Voit myös rekisteröityä ilmaiseen Microsoft Fabric -kokeiluversioon.
Vaihda Fabric-tilaan käyttämällä etusivun vasemmassa alakulmassa olevaa kokemuskytkintä.
- Luo uusi muistikirja Fabric työtilassasi.
- Kiinnitä muistikirjaan järvimajoitus. Explorer-ruudussa laajenna Lakehouses ja valitse sitten Lisää.
- (Valinnainen) Sentimentaalisuusanalyysivaiheen suorittamiseen tarvitset:
- Valimotyökalujen avain. Seuraa ohjeita Quickstartissa: Luo monipalveluresurssi Foundry Toolsille.
- Azure Key Vault-instanssi jossa Foundry Tools -avain tallennetaan salaisuutena.
Ympäristön määrittäminen
Tuo muistikirjassa SynapseML-kirjastot ja alusta Spark-istuntosi.
from pyspark.sql import SparkSession
from synapse.ml.core.platform import *
spark = SparkSession.builder.getOrCreate()
Vahvistus: Suorita seuraava solu varmistaaksesi, että Spark toimii:
print(f"Spark version: {spark.version}")
Lähtö näyttää Spark-version numeron. Kaikki versiot 3.4 tai uudemmat ovat odotettavissa. Tarkka versio riippuu Fabric-suoritusajastasi.
Tietojoukon lataaminen
Lataa kirjakatsausaineisto ja jaa se koulutus- ja testikokonaisuuksiin. Aineistossa on kaksi saraketta: rating (kokonaisluku 1–5) ja text (arvostelusisältö).
train, test = (
spark.read.parquet(
"wasbs://publicwasb@mmlspark.blob.core.windows.net/BookReviewsFromAmazon10K.parquet"
)
.limit(1000)
.cache()
.randomSplit([0.8, 0.2])
)
display(train)
Vahvistus: Suorita seuraava solu varmistaaksesi, että data latautui oikein:
print(f"Training rows: {train.count()}, Test rows: {test.count()}")
print(f"Columns: {train.columns}")
train.printSchema()
Tuloste näyttää noin 800 koulutusriviä ja 200 testiriviä, joissa on kaksi saraketta: rating (kokonaisluku) ja text (merkkijono). Tarkat rivimäärät vaihtelevat, koska randomSplit ne ovat epädeterministisia.
Luo koulutusputki
Luo putkisto, joka esittelee arvostelutekstin ja TextFeaturizer ennustaa arvosanan .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)
Vahvistus: Suorita seuraava solu vahvistaaksesi putken kouluttamisen:
print(f"Pipeline stages: {len(model.stages)}")
print(f"Stage 1: {type(model.stages[0]).__name__}")
print(f"Stage 2: {type(model.stages[1]).__name__}")
Tulos näyttää kaksi putkistovaihetta: TextFeaturizerModel ja LightGBMRegressionModel.
Testitietojen tulosten ennustaminen
Kutsu mallin transform menetelmä ennustaaksesi testidatan arvosanat ja näyttääksesi tulokset.
predictions = model.transform(test)
display(predictions)
Vahvistus: Suorita seuraava solu varmistaaksesi, että ennusteet syntyivät:
print(f"Prediction columns: {predictions.columns}")
print(f"Prediction count: {predictions.count()}")
predictions.select("rating", "prediction").show(5)
Tulosteessa on neljä saraketta (rating, text, features, prediction) ja noin 200 riviä. Sarakkeessa prediction on mallin ennustettu luokitus kellukkeena. Vertaa sitä varsinaiseen rating sarakkeeseen, jotta voit arvioida mallin suorituskykyä.
(Valinnainen) Käytä Foundry Toolsia sentimenttianalyysiin
Jos haluat analysoida kirja-arvostelujesi tunnelmaa, voit käyttää SynapseML:n integraatiota Foundry Toolsin kanssa. Tässä vaiheessa käytetään valmiiksi rakennettua TextSentiment mallia tekstin sentimentin luokitteluun, mikä on eri tehtävä kuin edellisten vaiheiden arviointiennuste.
Important
Tämä vaihe vaatii Foundry Tools -avaimen, joka on tallennettu Azure Key Vault. Jos ohitit nämä ennakkovaatimukset, suorita ne ensin tai ohita tämä osio.
Suorita seuraava koodi näillä korvaamisilla:
- Korvaa
<your-secret-name>Foundry Tools -avaimen salaisuuden nimellä Key Vault. - Korvaa
<your-key-vault-name>Azure Key Vault instanssisi nimellä.
from synapse.ml.services import TextSentiment
from synapse.ml.core.platform import find_secret
sentiment_model = TextSentiment(
textCol="text",
outputCol="sentiment",
subscriptionKey=find_secret("<your-secret-name>", "<your-key-vault-name>")
).setLocation("eastus")
sentiment_results = sentiment_model.transform(test)
display(sentiment_results)
Note
Päivitä setLocation -arvoa, jos Foundry Tools -resurssisi on eri Azure-alueella (esimerkiksi "westus2" tai "westeurope").
Vahvistus: Suorita seuraava solu vahvistaaksesi sentimenttianalyysin valmistumisen:
print(f"Sentiment columns: {sentiment_results.columns}")
sentiment_results.select("text", "sentiment").show(3, truncate=50)
Tulos näyttää kolme saraketta (rating, text, sentiment). Sarake sentiment sisältää rakenteellisia tuloksia, joissa on tunnisteet kuten positive, negative, neutral, tai mixed jokaiselle katsaukselle.
Vianmääritys
| Ongelma | Syy | Ratkaisu |
|---|---|---|
JAVA_GATEWAY_EXITED virhe SparkSessionin luomisessa |
Koodin ajaminen Fabric-muistikirjan ulkopuolella | Aja tämä koodi Fabric-muistikirjassa, jossa Spark on esikonfiguroitu. Älä aja paikallisesti ilman Spark-asennusta. |
Could not find <secret> in keyvault <vault> |
Key Vault -nimi tai salainen nimi on virheellinen, tai muistikirjan identiteetti puuttuu | Varmista, että nimet täsmäävät täsmälleen. Azure-portaalissa varmista, että Fabric työtilasi identiteetti sisältää Get -oikeudet Key Vault salaisuuksiin. |
TextFeaturizer Palauttaa tyhjät ominaisuudet |
Syötetyn tekstin sarake on nolla tai tyhjä | Tarkista nollaarvot: train.filter(train.text.isNull()).count() - poista nollat ennen harjoittelua. |
randomSplit palauttaa odottamattomia rivilukuja |
Sparkin satunnainen jakautuminen on epädeterminististä | Tämä on odotettua toimintaa. Aseta siemen toistettavuudelle: .randomSplit([0.8, 0.2], seed=42) |
AnalysisException: Path does not exist |
Verkkoongelma näytteenottomassaan pääsemisessä | Varmista verkkoyhteys. Fabric-sovelluksessa varmista, että työtilasi pääsee käsiksi ulkoisiin Azure Blob Storage -URL-osoitteisiin. |
| Foundry Tools palauttaa 401 tai 403 | Virheellinen tai vanhentunut tilausavain | Luo uusi avain Azure-portaalissa Foundry Tools -resurssisi avaimet ja Endpoint-osiossa. Päivitä Key Vault -salaisuus. |
setLocation palautus 404 |
Alueen epäsuhta | Aseta sijainti vastaamaan Azure-aluetta, jossa loit Foundry Tools -resurssisi. |
Puhdista resurssit
Jos loit Azure-resurssit valinnaiseen Foundry Tools -vaiheeseen etkä enää tarvitse niitä, poista ne välttääksesi maksut:
- Poista Azure-portaalissa Foundry Tools -monipalveluresurssi.
- Poista Azure-portaalissa Key Vault -instanssi.
- Poista testimuistikirja Fabric-työtilassasi, jos et enää tarvitse sitä.