Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, makine öğrenmesi uygulamaları oluşturmak için Synapse Machine Learning'i (SynapseML) kullanmayı öğreneceksiniz. SynapseML, Azure AI hizmetleri, OpenCV, LightGBM ve daha fazlası gibi birçok derin öğrenme ve veri bilimi aracı ekleyerek Apache Spark'ın dağıtılmış makine öğrenmesi çözümünü genişletir. SynapseML, çeşitli Spark veri kaynaklarından güçlü ve yüksek oranda ölçeklenebilir tahmine dayalı ve analitik modeller oluşturmanıza olanak tanır. Synapse Spark şunları içeren yerleşik SynapseML kitaplıkları sağlar:
- Vowpal Wabbit – Tweet'lerde yaklaşım analizi gibi Metin analizini etkinleştirmek için Makine öğrenmesi için kitaplık hizmetleri.
- MMLSpark: Çok Büyük Ölçeklerde Makine Öğrenmesi Ekosistemlerini Birleştirme – Anomali algılama gibi bilişsel veri modelleme hizmetleri için çözüm tasarımı türetmek üzere SparkML işlem hatlarında Azure AI hizmetlerinin özelliğini birleştirmek için.
- LightGBM – LightGBM, ağaç tabanlı öğrenme algoritmalarını kullanan gradyan güçlendirici bir çerçevedir. Dağıtılacak ve daha yüksek verimlilikte olacak şekilde tasarlanmıştır.
- Koşullu KNN - Koşullu Sorgularla Ölçeklenebilir KNN Modelleri.
- Spark üzerinde HTTP – Spark ve HTTP protokolü tabanlı erişilebilirliği tümleştirmede dağıtılmış Mikro hizmetler düzenlemesini etkinleştirir.
Bu öğreticide SynapseML'de Azure AI hizmetlerinin kullanıldığı örnekler ele alınır:
- Metin Analizi - bir cümle kümesinin yaklaşımını (veya ruh halini) alın.
- Görüntü İşleme - Bir resim kümesiyle ilişkili etiketleri (tek sözcüklü açıklamalar) alın.
- Bing Resim Arama - Web'de doğal dil sorgusuyla ilgili görüntüler arayın.
- Anomali Algılayıcısı: Zaman serisi verileri içindeki anomalileri algılayın.
Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.
Önkoşullar
- Varsayılan depolama alanı olarak yapılandırılmış Azure Data Lake Storage 2. Nesil depolama hesabıyla Azure Synapse Analytics çalışma alanı. Birlikte çalıştığınız Data Lake Storage 2. Nesil dosya sisteminin Depolama Blob Verileri Katkıda Bulunanı olmanız gerekir.
- Azure Synapse Analytics çalışma alanınızdaki Spark havuzu. Ayrıntılar için bkz . Azure Synapse'te Spark havuzu oluşturma.
- Azure Synapse'te Azure yapay zeka hizmetlerini yapılandırma öğreticisinde açıklanan yapılandırma öncesi adımlar.
Kullanmaya başlayın
Başlamak için SynapseML'yi içeri aktarıp hizmet anahtarlarını yapılandırın.
import synapse.ml
from synapse.ml.cognitive import *
from notebookutils import mssparkutils
# An Azure AI services multi-service resource key for Text Analytics and Computer Vision (or use separate keys that belong to each service)
ai_service_key = mssparkutils.credentials.getSecret("ADD_YOUR_KEY_VAULT_NAME", "ADD_YOUR_SERVICE_KEY","ADD_YOUR_KEY_VAULT_LINKED_SERVICE_NAME")
# A Bing Search v7 subscription key
bingsearch_service_key = mssparkutils.credentials.getSecret("ADD_YOUR_KEY_VAULT_NAME", "ADD_YOUR_BING_SEARCH_KEY","ADD_YOUR_KEY_VAULT_LINKED_SERVICE_NAME")
# An Anomaly Detector subscription key
anomalydetector_key = mssparkutils.credentials.getSecret("ADD_YOUR_KEY_VAULT_NAME", "ADD_YOUR_ANOMALY_KEY","ADD_YOUR_KEY_VAULT_LINKED_SERVICE_NAME")
Metin analizi örneği
Metin Analizi hizmeti, metinden akıllı içgörüler ayıklamak için çeşitli algoritmalar sağlar. Örneğin, verilen giriş metninin yaklaşımını bulabiliriz. Hizmet 0,0 ile 1,0 arasında bir puan döndürür; burada düşük puanlar negatif yaklaşımı, yüksek puan ise pozitif yaklaşımı gösterir. Bu örnek üç basit cümle kullanır ve her biri için yaklaşımı döndürür.
from pyspark.sql.functions import col
# Create a dataframe that's tied to it's column names
df_sentences = spark.createDataFrame([
("I am so happy today, its sunny!", "en-US"),
("this is a dog", "en-US"),
("I am frustrated by this rush hour traffic!", "en-US")
], ["text", "language"])
# Run the Text Analytics service with options
sentiment = (TextSentiment()
.setTextCol("text")
.setLocation("eastasia") # Set the location of your Azure AI services resource
.setSubscriptionKey(ai_service_key)
.setOutputCol("sentiment")
.setErrorCol("error")
.setLanguageCol("language"))
# Show the results of your text query in a table format
display(sentiment.transform(df_sentences).select("text", col("sentiment")[0].getItem("sentiment").alias("sentiment")))
Beklenen sonuçlar
text | Duyguları |
---|---|
Bu yoğun saatlik trafik beni hayal kırıklığına uğrattı! | negatif |
bu bir köpek | nötr |
Bugün çok mutluyum, güneşli! | pozitif |
Görüntü işleme örneği
Görüntü İşleme yüzler, nesneler ve doğal dil açıklamaları gibi yapıları tanımlamak için görüntüleri analiz eder. Bu örnekte aşağıdaki görüntüyü etiketleyeceğiz. Etiketler, görüntüdeki nesnelerin tanınabilir nesneleri, kişileri, manzarayı ve eylemleri tek sözcüklü açıklamalarıdır.
# Create a dataframe with the image URL
df_images = spark.createDataFrame([
("https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/objects.jpg", )
], ["image", ])
# Run the Computer Vision service. Analyze Image extracts information from/about the images.
analysis = (AnalyzeImage()
.setLocation("eastasia") # Set the location of your Azure AI services resource
.setSubscriptionKey(ai_service_key)
.setVisualFeatures(["Categories","Color","Description","Faces","Objects","Tags"])
.setOutputCol("analysis_results")
.setImageUrlCol("image")
.setErrorCol("error"))
# Show the results of what you wanted to pull out of the images.
display(analysis.transform(df_images).select("image", "analysis_results.description.tags"))
Beklenen sonuçlar
görüntü | tags |
---|---|
https://raw.githubusercontent.com/Azure-Samples/cognitive-services-sample-data-files/master/ComputerVision/Images/objects.jpg |
[paten, kişi, adam, dış mekan, binicilik, spor, kaykay, genç, tahta, gömlek, hava, park, çocuk, yan, atlama, rampa, hile, yapma, uçan] |
Bing resim arama örneği
Bing Resim Arama , kullanıcının doğal dil sorgusuyla ilgili görüntüleri almak için web'de aramalar. Bu örnekte, tırnak işaretleri içeren görüntülerin arandığı bir metin sorgusu kullanacağız. Sorgumuzla ilgili fotoğrafları içeren görüntü URL'lerinin listesini döndürür.
from pyspark.ml import PipelineModel
# Number of images Bing will return per query
imgsPerBatch = 2
# A list of offsets, used to page into the search results
offsets = [(i*imgsPerBatch,) for i in range(10)]
# Since web content is our data, we create a dataframe with options on that data: offsets
bingParameters = spark.createDataFrame(offsets, ["offset"])
# Run the Bing Image Search service with our text query
bingSearch = (BingImageSearch()
.setSubscriptionKey(bingsearch_service_key)
.setOffsetCol("offset")
.setQuery("Martin Luther King Jr. quotes")
.setCount(imgsPerBatch)
.setOutputCol("images"))
# Transformer that extracts and flattens the richly structured output of Bing Image Search into a simple URL column
getUrls = BingImageSearch.getUrlTransformer("images", "url")
pipeline_bingsearch = PipelineModel(stages=[bingSearch, getUrls])
# Show the results of your search: image URLs
res_bingsearch = pipeline_bingsearch.transform(bingParameters)
display(res_bingsearch.dropDuplicates())
Beklenen sonuçlar
görüntü |
---|
http://everydaypowerblog.com/wp-content/uploads/2014/01/Martin-Luther-King-Jr.-Quotes-16.jpg |
http://www.scrolldroll.com/wp-content/uploads/2017/06/6-25.png |
http://abettertodaymedia.com/wp-content/uploads/2017/01/86783bd7a92960aedd058c91a1d10253.jpg |
https://weneedfun.com/wp-content/uploads/2016/05/martin-luther-king-jr-quotes-11.jpg |
http://www.sofreshandsogreen.com/wp-content/uploads/2012/01/martin-luther-king-jr-quote-sofreshandsogreendotcom.jpg |
https://cdn.quotesgram.com/img/72/57/1104209728-martin_luther_king_jr_quotes_16.jpg |
http://comicbookandbeyond.com/wp-content/uploads/2019/05/Martin-Luther-King-Jr.-Quotes.jpg |
https://exposingthepain.files.wordpress.com/2015/01/martin-luther-king-jr-quotes-08.png |
https://topmemes.me/wp-content/uploads/2020/01/Top-10-Martin-Luther-King-jr.-Quotes2-1024x538.jpg |
http://img.picturequotes.com/2/581/580286/dr-martin-luther-king-jr-quote-1-picture-quote-1.jpg |
http://parryz.com/wp-content/uploads/2017/06/Amazing-Martin-Luther-King-Jr-Quotes.jpg |
http://everydaypowerblog.com/wp-content/uploads/2014/01/Martin-Luther-King-Jr.-Quotes1.jpg |
https://lessonslearnedinlife.net/wp-content/uploads/2020/05/Martin-Luther-King-Jr.-Quotes-2020.jpg |
https://quotesblog.net/wp-content/uploads/2015/10/Martin-Luther-King-Jr-Quotes-Wallpaper.jpg |
Anomali algılayıcısı örneği
Anomali Algılayıcısı, zaman serisi verilerinizdeki düzensizlikleri algılamak için mükemmeldir. Bu örnekte, zaman serisinin tamamında anomalileri bulmak için hizmetini kullanacağız.
from pyspark.sql.functions import lit
# Create a dataframe with the point data that Anomaly Detector requires
df_timeseriesdata = spark.createDataFrame([
("1972-01-01T00:00:00Z", 826.0),
("1972-02-01T00:00:00Z", 799.0),
("1972-03-01T00:00:00Z", 890.0),
("1972-04-01T00:00:00Z", 900.0),
("1972-05-01T00:00:00Z", 766.0),
("1972-06-01T00:00:00Z", 805.0),
("1972-07-01T00:00:00Z", 821.0),
("1972-08-01T00:00:00Z", 20000.0), # anomaly
("1972-09-01T00:00:00Z", 883.0),
("1972-10-01T00:00:00Z", 898.0),
("1972-11-01T00:00:00Z", 957.0),
("1972-12-01T00:00:00Z", 924.0),
("1973-01-01T00:00:00Z", 881.0),
("1973-02-01T00:00:00Z", 837.0),
("1973-03-01T00:00:00Z", 9000.0) # anomaly
], ["timestamp", "value"]).withColumn("group", lit("series1"))
# Run the Anomaly Detector service to look for irregular data
anomaly_detector = (SimpleDetectAnomalies()
.setSubscriptionKey(anomalydetector_key)
.setLocation("eastasia")
.setTimestampCol("timestamp")
.setValueCol("value")
.setOutputCol("anomalies")
.setGroupbyCol("group")
.setGranularity("monthly"))
# Show the full results of the analysis with the anomalies marked as "True"
display(anomaly_detector.transform(df_timeseriesdata).select("timestamp", "value", "anomalies.isAnomaly"))
Beklenen sonuçlar
timestamp | değer | isAnomaly |
---|---|---|
1972-01-01T00:00:00Z | 826.0 | yanlış |
1972-02-01T00:00:00Z | 799.0 | yanlış |
1972-03-01T00:00:00Z | 890.0 | yanlış |
1972-04-01T00:00:00Z | 900.0 | yanlış |
1972-05-01T00:00:00Z | 766.0 | yanlış |
1972-06-01T00:00:00Z | 805.0 | yanlış |
1972-07-01T00:00:00Z | 821.0 | yanlış |
1972-08-01T00:00:00Z | 20000.0 | true |
1972-09-01T00:00:00Z | 883.0 | yanlış |
1972-10-01T00:00:00Z | 898.0 | yanlış |
1972-11-01T00:00:00Z | 957.0 | yanlış |
1972-12-01T00:00:00Z | 924.0 | yanlış |
1973-01-01T00:00:00Z | 881.0 | yanlış |
1973-02-01T00:00:00Z | 837.0 | yanlış |
1973-03-01T00:00:00Z | 9000.0 | true |
Konuşmayı metne dönüştürme örneği
Konuşmayı metne dönüştürme hizmeti, konuşulan ses akışlarını veya dosyalarını metne dönüştürür. Bu örnekte, bir ses dosyasını metne dönüştüreceğiz.
# Create a dataframe with our audio URLs, tied to the column called "url"
df = spark.createDataFrame([("https://mmlspark.blob.core.windows.net/datasets/Speech/audio2.wav",)
], ["url"])
# Run the Speech-to-text service to translate the audio into text
speech_to_text = (SpeechToTextSDK()
.setSubscriptionKey(service_key)
.setLocation("northeurope") # Set the location of your Azure AI services resource
.setOutputCol("text")
.setAudioDataCol("url")
.setLanguage("en-US")
.setProfanity("Masked"))
# Show the results of the translation
display(speech_to_text.transform(df).select("url", "text.DisplayText"))
Beklenen sonuçlar
url | DisplayText |
---|---|
https://mmlspark.blob.core.windows.net/datasets/Speech/audio2.wav |
Özel Konuşma, ses verilerini özel konuşma portalından gelen ilgili tanıma sonucuyla karşılaştırarak modelin tanıma kalitesini görsel olarak incelemenize olanak sağlayan araçlar sağlar. Karşıya yüklenen sesi kayıttan yürütebilir ve sağlanan tanıma sonucunun doğru olup olmadığını belirleyebilirsiniz. Bu araç, herhangi bir ses verisinin dökümünü almak zorunda kalmadan Microsoft'un metin modeline veya eğitilmiş özel modele temel konuşma kalitesini hızla incelemenize olanak tanır. |
Kaynakları temizleme
Spark örneğinin kapalı olduğundan emin olmak için bağlı oturumları (not defterlerini) sonlandırın. Apache Spark havuzunda belirtilen boşta kalma süresine ulaşıldığında havuz kapatılır. Not defterinin sağ üst kısmındaki durum çubuğunda oturumu durdur'u da seçebilirsiniz.