Amazon SageMaker Clarify kullanarak metin sınıflandırma modeli tahminlerini açıklama

Amazon SageMaker Clarify kullanarak metin sınıflandırma modeli tahminlerini açıklama

Model açıklanabilirliği, bir makine öğrenimi (ML) modelinin tahminini, bir örneğin insan tarafından anlaşılabilir terimlerle giriş özelliği değerleriyle ilişkilendirme sürecini ifade eder. Bu alan genellikle şu şekilde adlandırılır: açıklanabilir yapay zeka (XII). Amazon SageMaker Netleştirin bir özelliği Amazon Adaçayı Yapıcı Bu, veri bilimcilerin ve makine öğrenimi mühendislerinin makine öğrenimi modellerinin tahminlerini açıklamalarını sağlar. Gibi model agnostik yöntemleri kullanır SHapely Katkı Açıklamaları (SHAP) özellik ilişkilendirmesi için. Clarify, tablo verileri için açıklamaları desteklemenin yanı sıra, aynı SHAP algoritmasını kullanarak hem bilgisayar görüşü (CV) hem de doğal dil işleme (NLP) için açıklanabilirliği de destekler.

Bu yazıda, NLP modellerini açıklamak için Clarify kullanımını gösteriyoruz. Spesifik olarak, kullanılarak eğitilmiş bir metin sınıflandırma modelinin tahminlerini nasıl açıklayabileceğinizi gösteriyoruz. SageMaker BlazingText algoritma. Bu, model tarafından yapılan tahminler için metnin hangi bölümlerinin veya kelimelerinin en önemli olduğunu anlamanıza yardımcı olur. Diğer şeylerin yanı sıra, bu gözlemler daha sonra, modellerin amaçlandığı gibi çalışmasını sağlamak ve model dağıtıldığında tüm paydaşların güvenini kazanmak için veri kümesindeki yanlılığı azaltan veri toplama ve model doğrulama gibi çeşitli süreçleri iyileştirmek için kullanılabilir. Bu, duyarlılık analizi, yasal incelemeler, tıbbi teşhis ve daha fazlası gibi birçok uygulama alanında önemli bir gereklilik olabilir.

Ayrıca, Clarify'ı herhangi biriyle kullanırken kullanabileceğiniz genel bir tasarım deseni sunuyoruz. SageMaker algoritmaları.

Çözüme genel bakış

SageMaker algoritmaları sabit girdi ve çıktı veri biçimlerine sahiptir. Örneğin, BlazingText algoritma kapsayıcısı, JSON biçimindeki girdileri kabul eder. Ancak müşteriler genellikle veri boru hatlarıyla uyumlu belirli biçimlere ihtiyaç duyar. Clarify'ı kullanmak için takip edebileceğiniz birkaç seçenek sunuyoruz.

Opsiyon A

Bu seçenekte, SageMaker barındırmanın çıkarım hattı özelliğini kullanıyoruz. Bir çıkarım işlem hattı, çıkarım isteklerini işleyen bir kaplar dizisini oluşturan bir SageMaker modelidir. Aşağıdaki diyagram bir örneği göstermektedir.

Clarify işi, veri formatını işleyen bir kapsayıcı ve modeli tutan diğer kapsayıcıyla çıkarım ardışık düzenini çağırır.

Kendi özel modellerinizin ve farklı kaplarda paketlenmiş yerleşik SageMaker yerleşik algoritmalarının bir kombinasyonunu dağıtmak için çıkarım işlem hatlarını kullanabilirsiniz. Daha fazla bilgi için bkz. Bir uç noktanın arkasında seri çıkarım ardışık düzeni olarak ön işleme mantığıyla birlikte modelleri barındırma. Clarify, girdi olarak yalnızca CSV ve JSON Satırlarını desteklediğinden, aşağıdaki adımları tamamlamanız gerekir:

  1. Verileri CSV'den (veya JSON Satırlarından) JSON'a dönüştürmek için bir model ve kapsayıcı oluşturun.
  2. BlazingText algoritması ile model eğitimi adımından sonra doğrudan modeli dağıtmak. Bu, JSON'u girdi olarak kabul eden BlazingText kapsayıcısını kullanarak modeli dağıtacaktır. Farklı bir algoritma kullanırken SageMaker, o algoritmanın kapsayıcısını kullanarak modeli oluşturur.
  3. oluşturmak için önceki iki modeli kullanın. Boru Hattı Modeli. Bu, iki modeli doğrusal bir sırayla zincirler ve tek bir model oluşturur. Bir örnek için bkz. Scikit-learn ve Linear Learner ile çıkarım ardışık düzeni.

Bu çözümle, girişi Clarify ile uyumlu olan ve onun tarafından açıklamalar oluşturmak için kullanılabilen tek bir modeli başarıyla oluşturduk.

Seçenek B

Bu seçenek, SageMaker modelini barındırmak için kendi kapsayıcınızı getirerek Clarify ve SageMaker algoritmaları arasında farklı veri biçimlerinin kullanımını nasıl entegre edebileceğinizi gösterir. Aşağıdaki diyagram, mimariyi ve çözüme dahil olan adımları göstermektedir:

Amazon SageMaker Clarify PlatoBlockchain Data Intelligence'ı kullanarak metin sınıflandırma modeli tahminlerini açıklayın. Dikey Arama. Ai.

Adımlar aşağıdaki gibidir:

  1. Bir metin sınıflandırma modeli eğitmek için SageMaker Estimator aracılığıyla BlazingText algoritmasını kullanın.
  2. Model eğitildikten sonra, bir SageMaker modeli oluşturmak için kullanılabilecek özel bir Docker kabı oluşturun ve isteğe bağlı olarak modeli bir SageMaker model uç noktası olarak konuşlandırın.
  3. Bir açıklanabilirlik raporu oluşturmak amacıyla barındırma kapsayıcısını kullanmak için bir Clarify işi yapılandırın ve oluşturun.
  4. Özel kapsayıcı, çıkarım isteğini bir CSV olarak kabul eder ve Clarify'ın açıklamalar oluşturmasını sağlar.

Bu çözümün, bir BlazingText modeli için Clarify kullanarak çevrimdışı açıklamalar elde etme fikrini gösterdiğine dikkat edilmelidir. Çevrimiçi açıklanabilirlik hakkında daha fazla bilgi için bkz. SageMaker Clarify ile Çevrimiçi Açıklanabilirlik.

Bu gönderinin geri kalanında, ikinci seçenekteki adımların her biri açıklanmaktadır.

BlazingText modeli eğitme

Önce BlazingText algoritmasını kullanarak bir metin sınıflandırma modeli eğitiyoruz. Bu örnekte, DBpedia Ontoloji veri kümesi. DBpedia, Wikipedia gibi çeşitli Wikimedia projelerinden alınan bilgileri kullanarak yapılandırılmış içerik çıkarmak için kitle kaynaklı bir girişimdir. Spesifik olarak, DBpedia ontoloji veri setini, tarafından oluşturulan şekliyle kullanıyoruz. Zhang ve ark.. DBpedia 14'ten birbiriyle örtüşmeyen 2014 sınıf seçilerek oluşturulmuştur. Alanlar bir Wikipedia makalesinin özetini ve ilgili sınıfı içerir. Bir metin sınıflandırma modelinin amacı, özeti verilen bir makalenin sınıfını tahmin etmektir.

Modeli eğitmek için adım adım ayrıntılı bir süreç aşağıda mevcuttur. defter. Modeli eğittikten sonra, Amazon Basit Depolama Hizmeti (Amazon S3) Model yapılarının depolandığı URI yolu. Adım adım kılavuz için bkz. SageMaker BlazingText kullanarak Metin Sınıflandırma.

Eğitimli BlazingText modelini SageMaker'da kendi kapsayıcınızı kullanarak konuşlandırın

Clarify ile model bilgilerini sağlamak için iki seçenek vardır:

  • Bir uç noktaya konuşlandırmadan bir SageMaker modeli oluşturun – Clarify'a bir SageMaker modeli sağlandığında, modeli kullanarak geçici bir uç nokta oluşturur.
  • Bir SageMaker modeli oluşturun ve onu bir uç noktaya konuşlandırın – Clarify için bir bitiş noktası sağlandığında, açıklamaları almak için bitiş noktasını kullanır. Bu, geçici bir uç nokta oluşturulmasını önler ve bir Clarify işinin çalışma süresini azaltabilir.

Bu gönderide, Clarify ile ilk seçeneği kullanıyoruz. biz kullanıyoruz SageMaker Python SDK'sı bu amaç için. Diğer seçenekler ve daha fazla ayrıntı için bkz. Uç noktanızı oluşturun ve modelinizi dağıtın.

Kendi konteynerinizi getirin (BYOC)

İlk olarak, oluşturmak için kullanılan özel bir Docker görüntüsü oluşturuyoruz. Adaçayı Yapıcı modeli. İçindeki dosyaları ve kodu kullanabilirsiniz. kaynak dizin GitHub depomuzdan.

Dockerfile, oluşturmak istediğimiz imajı tanımlar. Standart bir Ubuntu kurulumuyla başlıyoruz ve ardından Scikit-learn'ü kuruyoruz. biz de klonladık hızlı metin ve paketi yükleyin. Tahmin yapmak için BlazingText modelini yüklemek için kullanılır. Son olarak önceki dosyalar şeklinde algoritmamızı uygulayan kodu ekliyoruz ve container içinde ortamı kuruyoruz. Tüm Dockerfile depomuzda mevcuttur ve olduğu gibi kullanabilirsiniz. bakın Barındırma Hizmetleriyle Kendi Çıkarım Kodunuzu Kullanın SageMaker'ın Docker kapsayıcınız ve gereksinimleriyle nasıl etkileşim kurduğu hakkında daha fazla ayrıntı için.

Ayrıca, prediktör.py modeli yüklemek ve tahminleri yapmak için kodu içerir. Girdi verilerini bir CSV olarak kabul eder, bu da onu Clarify ile uyumlu hale getirir.

Dockerfile'a sahip olduktan sonra, Docker kapsayıcısını oluşturun ve şuraya yükleyin: Amazon Elastik Konteyner Kayıt Defteri (Amazon ECR'si). Adım adım süreci bir formda bulabilirsiniz. kabuk betiği Docker görüntüsünü oluşturmak ve Amazon ECR'ye yüklemek için kullanabileceğiniz GitHub depomuzda.

BlazingText modelini oluşturun

Bir sonraki adım, SageMaker Python SDK'dan bir model nesnesi oluşturmaktır. Model sınıfı bir HTTPS uç noktasına dağıtılabilen. Clarify'ı açıklamalar oluşturmak için bu modeli kullanacak şekilde yapılandırıyoruz. Bu adımın kodu ve diğer gereksinimleri için bkz. Amazon SageMaker'da kendi kapsayıcınızı kullanarak eğitimli SageMaker BlazingText Modelinizi dağıtın.

Netleştirmeyi Yapılandır

Clarify NLP, regresyon ve sınıflandırma modelleriyle uyumludur. Giriş metninin hangi bölümlerinin modelinizin tahminlerini etkilediğini anlamanıza yardımcı olur. Clarify, 62 dili destekler ve birden fazla dilde metin işleyebilir. Clarify tarafından açıklanabilirlik raporu oluşturmak için kullanılan üç yapılandırmayı tanımlamak için SageMaker Python SDK'yı kullanıyoruz.

İlk olarak, işlemci nesnesini oluşturmamız ve ayrıca tahminler ve özellik atıfları için kullanılacak girdi veri kümesinin konumunu belirtmemiz gerekir:

import sagemaker
sagemaker_session = sagemaker.Session()
from sagemaker import clarify
clarify_processor = clarify.SageMakerClarifyProcessor(
role=role,
instance_count=1,
instance_type="ml.m5.xlarge",
sagemaker_session=sagemaker_session,
)
file_path = "<location of the input dataset>"

Veri Yapılandırması

Burada, girdi verilerinin konumunu, özellik sütununu ve Clarify işinin çıktıyı depolamasını istediğiniz yeri yapılandırmalısınız. Bu, bir DataConfig nesnesi oluşturulurken ilgili bağımsız değişkenlerin iletilmesiyle yapılır:

explainability_output_path = "s3://{}/{}/clarify-text-explainability".format(
sagemaker_session.default_bucket(), "explainability"
) explainability_data_config = clarify.DataConfig(
s3_data_input_path=file_path,
s3_output_path=explainability_output_path,
headers=["Review Text"],
dataset_type="text/csv",
)

ModelYapılandırma

ModelConfig ile eğitilmiş modeliniz hakkında bilgi vermelisiniz. Burada, bir önceki adımda oluşturduğumuz BlazingText SageMaker modelinin adını belirtiyoruz ve ayrıca aşağıdaki gibi diğer parametreleri ayarlıyoruz: Amazon Elastik Bilgi İşlem Bulutu (Amazon EC2) bulut sunucusu türü ve içeriğin biçimi:

model_config = clarify.ModelConfig(
model_name=model_name,
instance_type="ml.m5.xlarge",
instance_count=1,
accept_type="application/jsonlines",
content_type="text/csv",
endpoint_name_prefix=None,
)

SHAPYapılandırması

Bu, Clarify'ı özellik niteliklerinin nasıl elde edileceği konusunda bilgilendirmek için kullanılır. TextConfig, metnin ve dilin ayrıntı düzeyini belirtmek için kullanılır. Veri setimizde, giriş metnini kelimelere ayırmak istediğimiz ve dil İngilizce olduğu için, bu değerleri sırasıyla token ve English olarak ayarladık. Veri kümenizin yapısına bağlı olarak, ayrıntı düzeyini cümle veya paragraf olarak ayarlayabilirsiniz. Taban çizgisi özel bir belirteç olarak ayarlanmıştır. Bu, Clarify'ın SHAP değerlerini hesaplamak için tahminler alırken giriş metninin alt kümelerini çıkaracağı ve bunları taban çizgisindeki değerlerle değiştireceği anlamına gelir. Belirteçlerin modelin tahminleri üzerindeki etkisini bu şekilde belirler ve ardından bunların önemini belirler. Kernel SHAP algoritmasında kullanılacak örnek sayısı, num_samples argüman. Daha yüksek değerler, daha sağlam özellik nitelikleriyle sonuçlanır, ancak bu, işin çalışma süresini de artırabilir. Bu nedenle, ikisi arasında bir değiş tokuş yapmanız gerekir. Aşağıdaki koda bakın:

shap_config = clarify.SHAPConfig(
baseline=[["<UNK>"]],
num_samples=1000,
agg_method="mean_abs",
save_local_shap_values=True,
text_config=clarify.TextConfig(granularity="token", language="english"),
)

Daha fazla bilgi için bkz: Shapley Değerlerini Kullanan Özellik Nitelikleri ve Amazon AI Adalet ve Açıklanabilirlik Teknik Raporu.

ModelTahmin EdilenEtiketYapılandırma

Clarify'ın tahmin edilen bir etiketi veya tahmin edilen puanları veya olasılıkları çıkarması için bu yapılandırma nesnesinin ayarlanması gerekir. Aşağıdaki koda bakın:

from sagemaker.clarify import ModelPredictedLabelConfig
modellabel_config = ModelPredictedLabelConfig(probability="prob", label="label")

Daha fazla ayrıntı için bkz. belgeleme SDK'da.

Bir Netleştirme işi çalıştırın

Farklı konfigürasyonları oluşturduktan sonra, artık Clarify işleme işini tetiklemeye hazırsınız. İşleme işi, girdi ve parametreleri doğrular, kısa ömürlü bitiş noktası oluşturur ve SHAP algoritmasını kullanarak yerel ve genel özellik niteliklerini hesaplar. Bu tamamlandığında geçici uç noktayı siler ve çıktı dosyalarını oluşturur. Aşağıdaki koda bakın:

clarify_processor.run_explainability(
data_config=explainability_data_config,
model_config=model_config,
explainability_config=shap_config,
model_scores=modellabel_config,
)

Bu adımın çalışma süresi, veri kümesinin boyutuna ve SHAP tarafından oluşturulan örnek sayısına bağlıdır.

Sonuçları görselleştirin

Son olarak, Clarify işleme işi tarafından oluşturulan yerel özellik ilişkilendirme raporunun sonuçlarının bir görselleştirmesini gösteriyoruz. Çıktı, bir JSON Lines biçimindedir ve bazı işlemler yapılmıştır; giriş metnindeki belirteçlerin puanlarını aşağıdaki örnekte olduğu gibi çizebilirsiniz. Daha yüksek çubuklar, hedef etiket üzerinde daha fazla etkiye sahiptir. Ayrıca, pozitif değerler hedef değişkende daha yüksek tahminlerle ve negatif değerler daha düşük tahminlerle ilişkilendirilir. Bu örnekte model, "Wesebach, Hessen Almanya'nın bir nehridir" giriş metni için bir tahminde bulunur. Tahmin edilen sınıf Natural Place'dir ve puanlar, modelin "nehir" kelimesini bu tahmini yapmak için en bilgilendirici olarak bulduğunu göstermektedir. Bu bir insan için sezgiseldir ve daha fazla örneği inceleyerek modelin doğru özellikleri öğrenip öğrenmediğini ve beklendiği gibi davranıp davranmadığını belirleyebilirsiniz.

Amazon SageMaker Clarify PlatoBlockchain Data Intelligence'ı kullanarak metin sınıflandırma modeli tahminlerini açıklayın. Dikey Arama. Ai.

Sonuç

Bu yazıda, SageMaker BlazingText kullanılarak eğitilmiş bir metin sınıflandırma modelinden tahminleri açıklamak için Clarify'ı nasıl kullanabileceğinizi açıkladık. Örnek not defterini kullanarak metin sınıflandırma modellerinizdeki tahminleri açıklamaya başlayın SageMaker BlazingText için Metin Açıklanabilirliği.

Clarify'ı SageMaker yerleşik algoritmalarıyla kullanırken kullanabileceğiniz daha genel bir tasarım modelini de ele aldık. Daha fazla bilgi için bkz. Makine Öğrenimi Tahminleri İçin Adalet ve Model Açıklanabilirliği Nedir?. Ayrıca okumanızı öneririz Amazon AI Adalet ve Açıklanabilirlik Teknik Raporu, konuyla ilgili genel bir bakış sağlar ve en iyi uygulamaları ve sınırlamaları tartışır.


Yazarlar Hakkında

Amazon SageMaker Clarify PlatoBlockchain Data Intelligence'ı kullanarak metin sınıflandırma modeli tahminlerini açıklayın. Dikey Arama. Ai. Pinak Panigrahi AWS'de stratejik iş sorunlarını çözmeye yönelik makine öğrenimi odaklı çözümler oluşturmak için müşterilerle birlikte çalışır. Makine öğrenimiyle meşgul olmadığı zamanlarda yürüyüşe çıkarken, kitap okurken veya spor yaparken bulunabilir.

Amazon SageMaker Clarify PlatoBlockchain Data Intelligence'ı kullanarak metin sınıflandırma modeli tahminlerini açıklayın. Dikey Arama. Ai. Dhaval Patel AWS'de Baş Makine Öğrenimi Mimarıdır. Dağıtılmış bilgi işlem ve Yapay Zeka ile ilgili sorunlar üzerinde büyük kuruluşlardan orta ölçekli girişimlere kadar çeşitli kuruluşlarla çalıştı. NLP ve Computer Vision alanları dahil olmak üzere Derin öğrenmeye odaklanmaktadır. Müşterilerin SageMaker'da yüksek performanslı model çıkarımı yapmasına yardımcı olur.

Zaman Damgası:

Den fazla AWS Makine Öğrenimi