Doğal dil anlayışı, sohbet robotlarından sanal asistanlara, makine çevirisinden metin özetlemeye kadar çok çeşitli kullanım durumlarında uygulanır. Bu uygulamaların beklenen performans düzeyinde çalıştığından emin olmak için eğitim ve üretim ortamlarındaki verilerin aynı dağıtımdan olması önemlidir. Çıkarım için kullanılan veriler (üretim verileri) model eğitimi sırasında kullanılan verilerden farklı olduğunda veri kayması olarak bilinen bir olguyla karşılaşırız. Veri kayması meydana geldiğinde model artık üretimdeki verilerle alakalı değildir ve muhtemelen beklenenden daha kötü performans gösterir. Çıkarım verilerini sürekli olarak izlemek ve bunları eğitim sırasında kullanılan verilerle karşılaştırmak önemlidir.
Sen kullanabilirsiniz Amazon Adaçayı Yapıcı Makine öğrenimi (ML) modellerini her ölçekte hızlı bir şekilde oluşturmak, eğitmek ve dağıtmak için. Model bozulmasına karşı proaktif bir önlem olarak şunları kullanabilirsiniz: Amazon SageMaker Model Monitörü ML modellerinizin kalitesini gerçek zamanlı olarak sürekli izlemek için. Model Monitörü ile, model performansında herhangi bir sapma gözlemlendiğinde bildirimde bulunacak ve eylemleri tetikleyecek uyarıları da yapılandırabilirsiniz. Bu sapmaların erken ve proaktif tespiti, modelleri manuel olarak izlemeye veya ek araçlar oluşturmaya gerek kalmadan yeni temel eğitim verileri toplamak, modelleri yeniden eğitmek ve yukarı akış sistemlerini denetlemek gibi düzeltici eylemler gerçekleştirmenize olanak tanır.
Model Monitörü, model sapmasını gerçek zamanlı olarak algılamak ve azaltmak için dört farklı izleme özelliği sunar:
- Veri kalitesi – Bağımsız değişkenlerin veri şemalarındaki ve istatistiksel özelliklerindeki değişikliği tespit etmeye yardımcı olur ve bir sapma tespit edildiğinde uyarı verir.
- Model kalitesi – Doğruluk veya kesinlik gibi model performans özelliklerini gerçek zamanlı olarak izlemek için Model Monitor, uygulamalarınızdan toplanan kesin doğruluk etiketlerini almanıza olanak tanır. Model Monitor, model performans metriklerini hesaplamak için kesinlik bilgisini tahmin verileriyle otomatik olarak birleştirir.
- Model önyargısı –Model Monitor ile entegre edilmiştir Amazon SageMaker Netleştirin Potansiyel önyargıya yönelik görünürlüğü artırmak için. İlk verileriniz veya modeliniz önyargılı olmasa da, dünyadaki değişiklikler zaten eğitilmiş bir modelde zaman içinde önyargının gelişmesine neden olabilir.
- Model açıklanabilirliği – Sürüklenme algılama, özellik niteliklerinin göreli öneminde bir değişiklik meydana geldiğinde sizi uyarır.
Bu yazıda metin verilerine uygulanabilecek veri kalitesi kayması türlerini tartışıyoruz. Ayrıca Model Monitor'ü kullanarak metin verilerindeki veri kaymasını tespit etmeye yönelik bir yaklaşım da sunuyoruz.
NLP'de veri kayması
Veri kayması, dağıtım kaymasının girdi tarafında mı çıktı tarafında mı gerçekleştiğine veya girdi ile çıktı arasındaki ilişkinin değişip değişmediğine bağlı olarak üç kategoride sınıflandırılabilir.
ortak değişken kayması
İçinde ortak değişken kayması, girdilerin dağılımı zamanla değişir, ancak koşullu dağılım P(y|x) değişmez. Bu tür sapmaya ortak değişken kayması denir çünkü sorun, ortak değişkenlerin (özelliklerin) dağılımındaki bir kayma nedeniyle ortaya çıkar. Örneğin, bir e-posta spam sınıflandırma modelinde, eğitim verilerinin (e-posta topluluğu) dağıtımı, puanlama sırasında verilerin dağıtımından farklı olabilir.
etiket kaydırma
Ortak değişken kaydırma, özellik dağılımındaki değişikliklere odaklanırken, etiket kaydırma sınıf değişkeninin dağılımındaki değişikliklere odaklanır. Bu tür kayma esas olarak ortak değişken kaymasının tersidir. Bunu düşünmenin sezgisel bir yolu, dengesiz bir veri kümesini düşünmek olabilir. Eğitim setimizdeki e-postaların spam/spam olmayan oranı %50 ise, ancak gerçekte e-postalarımızın %10'u spam değilse, bu durumda hedef etiket dağılımı değişmiş demektir.
Konsept kayması
Konsept kayması veri dağıtımı veya sınıf dağılımıyla ilgili olmaması, bunun yerine iki değişken arasındaki ilişkiyle ilgili olması bakımından ortak değişkenden ve etiket kaymasından farklıdır. Örneğin, e-posta spam gönderenler, spam filtre modellerini geçmek için sıklıkla çeşitli kavramlar kullanır ve eğitim sırasında kullanılan e-postaların kavramı zaman geçtikçe değişebilir.
Artık farklı veri kayması türlerini anladığımıza göre, metin verilerindeki ortak değişken kaymasını tespit etmek için Model Monitörü'nü nasıl kullanabileceğimizi görelim.
Çözüme genel bakış
Yapılandırılmış ve sınırlandırılmış tablo halindeki verilerden farklı olarak metinsel veriler karmaşık, yüksek boyutlu ve serbest biçimlidir. NLP'deki sapmayı verimli bir şekilde tespit etmek için aşağıdakilerle çalışıyoruz: gömmeler, bunlar metnin düşük boyutlu temsilleridir. Gömmeleri Word2Vec gibi çeşitli dil modellerini ve transformatör tabanlı modelleri kullanarak elde edebilirsiniz. Bert. Bu modeller, metnin anlamsal bilgisini korurken yüksek boyutlu verileri düşük boyutlu alanlara yansıtır. Sonuçlar, veri kaymasının izlenmesi de dahil olmak üzere çeşitli aşağı yönlü görevler için kullanılabilen yoğun ve bağlamsal olarak anlamlı vektörlerdir.
Çözümümüzde, İngilizce cümlelerin ortak değişken kaymasını tespit etmek için yerleştirmeleri kullanıyoruz. Üretim ortamına dağıtılan bir metin sınıflandırıcının sürekli izlenmesini kolaylaştırmak için Model Monitörü'nü kullanıyoruz. Yaklaşımımız aşağıdaki adımlardan oluşur:
- SageMaker'ı kullanarak bir BERT modeline ince ayar yapın.
- İnce ayarlı bir BERT sınıflandırıcısını gerçek zamanlı bir uç nokta olarak dağıtın veri yakalama sağladı.
- BERT sınıflandırıcısını eğitmek için kullanılan cümlelerin bir örneğini içeren bir temel veri kümesi oluşturun.
- Hat için bir özel SageMaker izleme işi üretimde yakalanan veriler ile temel veri kümesi arasındaki kosinüs benzerliğini hesaplamak için.
Aşağıdaki şemada çözüm iş akışı gösterilmektedir:
BERT modeline ince ayar yapın
Bu yazıda, Dilsel Kabul Edilebilirlik Derlemi (CoLA), yayınlanmış dilbilim literatüründen dilbilgisel veya dilbilgisel olmayan olarak etiketlenmiş 10,657 İngilizce cümleden oluşan bir veri kümesi. Bir PyTorch tahminci sınıfı tanımlayarak CoLa veri kümesini kullanarak bir BERT modeline ince ayar yapmak için SageMaker eğitimini kullanıyoruz. Bu SDK'nın PyTorch ile nasıl kullanılacağı hakkında daha fazla bilgi için bkz. PyTorch'u SageMaker Python SDK ile kullanın. Aramak fit()
Tahmincinin yöntemi eğitim işini başlatır:
Modeli dağıtın
Modelimizi eğittikten sonra onu bir SageMaker uç noktasında barındırıyoruz. Uç noktanın modeli yüklemesini ve tahminler sunmasını sağlamak için birkaç yöntem uyguluyoruz. train_deploy.py:
- model_fn() – Kaydedilen modeli yükler ve model sunumu için kullanılabilecek bir model nesnesi döndürür. SageMaker PyTorch model sunucusu, modelimizi çağırarak yükler.
model_fn
. - input_fn () – Tahmin girişini seri durumdan çıkarır ve hazırlar. Bu örnekte, istek gövdemiz önce JSON'a serileştirilir ve ardından model sunma uç noktasına gönderilir. Bu nedenle,
input_fn()
, önce JSON biçimli istek gövdesinin serisini kaldırır ve girdiyitorch.tensor
, BERT için gerektiği gibi. - predict_fn () – Tahmini gerçekleştirir ve sonucu döndürür.
Model Monitörü veri yakalamayı etkinleştir
Biz etkinleştiririz Model Monitörü veri yakalama giriş verilerini kaydetmek için Amazon Basit Depolama Hizmeti Daha sonra başvurmak için (Amazon S3) kovası:
Daha sonra önceki adımda oluşturulan modelle gerçek zamanlı bir SageMaker uç noktası oluşturuyoruz:
sonuç
Tahmini önceki adımda oluşturduğumuz tahmin nesnesini kullanarak çalıştırıyoruz. Çıkarım uç noktası tarafından kullanılan JSON seri hale getirici ve seri durumdan çıkarıcıyı ayarladık:
Gerçek zamanlı uç nokta, istekteki verileri yakalayacak şekilde yapılandırılır ve yanıt ile veriler Amazon S3'te depolanır. Önceki izleme planında yakalanan verileri görüntüleyebilirsiniz.
Temel oluştur
Eğitim verilerinden cümle yerleştirme özelliklerini çıkarmak için ince ayarlı bir BERT modeli kullanıyoruz. Bu vektörleri kosinüs mesafesini karşılaştırmak için yüksek kaliteli özellik girdileri olarak kullanıyoruz çünkü BERT anlamsal bağlamla dinamik kelime temsili üretiyor. Cümle yerleştirme işlemini gerçekleştirmek için aşağıdaki adımları tamamlayın:
- Her jetonun jeton kimliklerini almak için bir BERT jetonlaştırıcı kullanın (
input_id
) giriş cümlesindeki ve giriş sırasındaki hangi öğelerin belirteç ve dolgu öğeleri olduğunu belirtmek için maskede (attention_mask_id
). BERT'i kullanıyoruztokenizer.encode_plus
Her giriş cümlesi için bu değerleri alma işlevi:
input_ids
ve attention_mask_ids
modele iletilir ve ağın gizli durumları alınır. hidden_states
aşağıdaki sırayla dört boyuta sahiptir:
- Katman numarası (BERT'in 12 katmanı vardır)
- Parti numarası (1 cümle)
- Kelime belirteci dizinleri
- Gizli birimler (768 özellik)
- Cümledeki tüm giriş belirteçlerinin ortalamasını hesaplayarak tek bir vektör (cümle yerleştirme) elde etmek için son iki gizli katmanı kullanın:
- Cümle yerleştirmeyi bir NumPy dizisi olarak dönüştürün ve Model Monitor tarafından kullanılan bir temel olarak Amazon S3 konumunda saklayın:
Değerlendirme komut dosyası
Model Monitor, tablo halindeki veri kümeleri için uç noktalardan yakalanan verileri analiz etme becerisine sahip önceden oluşturulmuş bir kapsayıcı sağlar. Kendi konteynerinizi getirmek istiyorsanız Model Monitor kullanabileceğiniz uzatma noktaları sağlar. Bir oluşturduğunuz zaman MonitoringSchedule
, Model Monitor sonuçta işleri işlemeye başlar. Bu nedenle konteynerin işleme iş sözleşmesinden haberdar olması gerekmektedir. Container ile uyumlu bir değerlendirme scripti oluşturmamız gerekiyor sözleşme girdileri ve çıkışlar.
Model Monitor, izleme programı sırasında yakalanan tüm numunelerde değerlendirme kodunu kullanır. Her çıkarım veri noktası için, daha önce açıklanan aynı mantığı kullanarak cümle yerleştirmeyi hesaplıyoruz. Kosinüs benzerliği, bir çıkarım veri noktasının benzerliğini ve taban çizgisindeki cümle yerleştirmelerini ölçmek için bir mesafe ölçüsü olarak kullanılır. Matematiksel olarak iki cümle gömme vektörü arasındaki kosinüs açısını ölçer. Kosinüs benzerliği puanının yüksek olması, benzer cümle yerleştirmelerini gösterir. Daha düşük bir kosinüs benzerliği puanı, veri kaymasını gösterir. Tüm kosinüs benzerlik puanlarının ortalamasını hesaplıyoruz ve eğer eşikten düşükse ihlal raporuna dahil ediliyor. Kullanım senaryosuna bağlı olarak aşağıdaki gibi diğer mesafe ölçümlerini kullanabilirsiniz: manhattan
or euclidean
Cümle yerleştirmelerin benzerliğini ölçmek için.
Aşağıdaki diyagram, temel çizgiyi oluşturmak ve kosinüs mesafesi benzerliğini kullanarak veri kaymasını tespit etmek için SageMaker Model İzleme'yi nasıl kullandığımızı göstermektedir.
İhlalleri hesaplamak için kullanılan kod aşağıdadır; değerlendirme betiğinin tamamı şu adreste mevcuttur: GitHub:
Model Monitor'ü kullanarak veri kaymasını ölçün
Bu bölümde Model Monitor'ü kullanarak veri kaymasını ölçmeye odaklanıyoruz. Model Monitör önceden oluşturulmuş monitörler tarafından desteklenmektedir DeequBüyük veri kümelerindeki veri kalitesini ölçen verilere yönelik birim testlerini tanımlamak için Apache Spark üzerine kurulmuş bir kitaplıktır. Bu önceden oluşturulmuş izleme yeteneklerini kullanmak için kodlamaya ihtiyacınız yoktur. Ayrıca özel analiz sağlamak için kodlama yaparak modelleri izleme esnekliğine de sahipsiniz. Model Monitor tarafından yayınlanan tüm metrikleri şurada toplayabilir ve inceleyebilirsiniz: Amazon SageMaker Stüdyosu, böylece ek kod yazmadan model performansınızı görsel olarak analiz edebilirsiniz.
Belirli senaryolarda, örneğin veriler tablo halinde olmadığında, varsayılan işleme işi (tarafından desteklenmektedir) Deequ) yalnızca tablosal veri kümelerini desteklediği için yeterli değildir. Önceden oluşturulmuş monitörler, sapmaları tespit etmek için karmaşık ölçümler oluşturmak için yeterli olmayabilir ve kendi ölçümlerinizi getirmenizi gerektirebilir. Sonraki bölümlerde, özel bir kapsayıcı oluşturarak ölçümlerinizi getirmeye yönelik kurulumu açıklıyoruz.
Özel Model Monitörü kapsayıcısını oluşturun
Biz kullanın değerlendirme komut dosyası Bir Docker kapsayıcısı oluşturmak ve onu itmek için önceki bölümden Amazon Elastik Konteyner Kayıt Defteri (Amazon ECR'si):
Müşteri Docker konteyneri Amazon ECR'de olduğunda, sonraki bölümlerde gösterildiği gibi bir Model İzleme işi planlayabilir ve bir ihlal raporu oluşturabiliriz.
Model izleme işi planlama
Bir model izleme işini planlamak için Model Monitor'ün bir örneğini oluştururuz ve image_uri
, önceki bölümde oluşturduğumuz Docker konteynerine atıfta bulunuyoruz:
İzleme işini aşağıdakileri kullanarak planlıyoruz: create_monitoring_schedule
API. İzleme işini saatlik veya günlük olarak planlayabilirsiniz. İşi şunu kullanarak yapılandırırsınız: destination
parametresi aşağıdaki kodda gösterildiği gibi:
İzleme zamanlamasını ve çalışmalarını tanımlamak ve listelemek için aşağıdaki komutları kullanabilirsiniz:
Veri kayması ihlali raporu
Model izleme işi tamamlandığında ihlal raporlarına erişmek için hedef S3 yoluna gidebilirsiniz. Bu rapor, ortalama kosinüs puanı (avg_cosine_score
) ortam değişkeni olarak yapılandırılan eşiğin altında THRESHOLD:0.5
içinde ModelMonitör misal. Bu, çıkarım sırasında gözlemlenen verilerin belirlenen temel çizginin ötesine sürüklendiğinin bir göstergesidir.
Aşağıdaki kod oluşturulan ihlal raporunu gösterir:
Son olarak, bu gözleme dayanarak modelinizi yeniden eğitim için yapılandırabilirsiniz. Ayrıca etkinleştirebilirsiniz Amazon Basit Bildirim Servisi İhlaller meydana geldiğinde uyarı göndermek için (Amazon SNS) bildirimleri.
Sonuç
Model Monitörü, üretimdeki modellerinizin yüksek kalitesini korumanızı sağlar. Bu yazıda, metin gibi yapılandırılmamış veriler üzerindeki veri kaymasını izlemenin zorluklarını vurguladık ve özel bir izleme komut dosyası kullanarak veri kaymasını tespit etmek için sezgisel bir yaklaşım sunduk. Gönderiyle ilişkili kodu aşağıda bulabilirsiniz GitHub deposu. Ek olarak çözümü aşağıdakiler gibi diğer mesafe ölçümlerini kullanacak şekilde özelleştirebilirsiniz: maksimum ortalama tutarsızlık (MMD), gömülü alandaki kaynak ve hedef dağılım arasındaki marjinal dağılımı hesaplamak için parametrik olmayan bir mesafe ölçümü.
Yazarlar Hakkında
vikram elango Amazon Web Services'te Yapay Zeka/Makine Öğrenimi Uzman Çözüm Mimarıdır ve merkezi Virginia, ABD'de bulunmaktadır. Vikram, finans ve sigorta sektörü müşterilerine geniş ölçekte makine öğrenimi uygulamaları oluşturma ve dağıtma konusunda tasarım ve düşünce liderliği konusunda yardımcı olur. Kendisi şu anda doğal dil işleme, sorumlu yapay zeka, çıkarım optimizasyonu ve makine öğreniminin kuruluş çapında ölçeklendirilmesi konularına odaklanmaktadır. Boş zamanlarında ailesiyle birlikte seyahat etmekten, yürüyüş yapmaktan, yemek pişirmekten ve kamp yapmaktan hoşlanıyor.
Raghu Rameşa Amazon SageMaker Hizmet ekibinde ML Çözümleri Mimarıdır. Müşterilerin makine öğrenimi üretim iş yüklerini geniş ölçekte SageMaker'a taşımasına yardımcı olmaya odaklanıyor. Makine öğrenimi, yapay zeka ve bilgisayarla görme alanlarında uzmanlaşmıştır ve UT Dallas'ta Bilgisayar Bilimleri alanında yüksek lisans derecesine sahiptir. Boş zamanlarında seyahat etmekten ve fotoğraf çekmekten hoşlanıyor.
Tony Chen Amazon Web Services'te Makine Öğrenimi Çözüm Mimarı olarak müşterilerin bulutta ölçeklenebilir ve sağlam makine öğrenimi yetenekleri tasarlamalarına yardımcı oluyor. Eski bir veri bilimci ve veri mühendisi olarak, kuruluşların makine öğrenimini operasyonel hale getirirken karşılaştığı en zorlu sorunlardan bazılarının üstesinden gelmeye yardımcı olmak için deneyiminden yararlanıyor.
- '
- "
- 100
- 11
- 7
- Hakkımızda
- erişim
- Hesap
- karşısında
- eylemler
- Ek
- AI
- Türkiye
- zaten
- Rağmen
- Amazon
- Amazon Adaçayı Yapıcı
- Amazon Web Servisleri
- analiz
- Apache
- Apache Spark
- uygulanabilir
- uygulamaları
- mevcut
- ortalama
- AWS
- Temel
- vücut
- inşa etmek
- bina
- kamp
- durumlarda
- Sebeb olmak
- zorluklar
- değişiklik
- chatbots
- sınıflandırma
- bulut
- kod
- kodlama
- Toplama
- karmaşık
- hesaplamak
- Bilgisayar Bilimleri
- Bilgisayar görüşü
- Konteyner
- içeren
- sürekli
- sözleşme
- yemek pişirme
- Oluşturma
- Müşteriler
- Dallas
- veri
- veri kalitesi
- veri bilimcisi
- Dizayn
- Bulma
- geliştirmek
- farklı
- tartışmak
- mesafe
- liman işçisi
- Docker Kabı
- Değil
- etki
- sürme
- sırasında
- dinamik
- Erken
- E-posta
- karşılaşma
- Son nokta
- mühendis
- İngilizce
- kuruluş
- çevre
- kurulmuş
- örnek
- deneyim
- Yüz
- aile
- Özellikler(Hazırlık aşamasında)
- Özellikler
- mali
- Ad
- Esneklik
- odak
- odaklanmış
- Airdrop Formu
- ileri
- Ücretsiz
- işlev
- oluşturmak
- GitHub
- sahip olan
- yardım et
- yardımcı olur
- Yüksek
- Vurgulanan
- yürüyüş
- Ana Sayfa
- Ne kadar
- Nasıl Yapılır
- HTTPS
- görüntü
- uygulamak
- önemli
- Dahil olmak üzere
- sanayi
- bilgi
- sigorta
- sigorta endüstrisi
- IT
- İş
- Mesleki Öğretiler
- Etiketler
- dil
- büyük
- son
- başlattı
- Liderlik
- öğrenme
- seviye
- leverages
- Kütüphane
- dilbilim
- Liste
- Edebiyat
- yük
- yer
- makine öğrenme
- makine çevirisi
- maske
- ölçmek
- Metrikleri
- ML
- model
- modelleri
- izleme
- Daha
- Doğal lisan
- Doğal Dil İşleme
- ağ
- nlp
- tebliğ
- Teklifler
- sipariş
- organizasyonlar
- Diğer
- performans
- fotoğrafçılık
- Hassas
- tahmin
- Tahminler
- mevcut
- Sorun
- üretim
- proje
- sağlamak
- sağlar
- Python
- pytorch
- kalite
- menzil
- gerçek zaman
- Gerçeklik
- kayıt
- rapor
- Raporlar
- yanıt
- Sonuçlar
- yeniden eğitme
- İade
- ters
- yorum
- koşmak
- koşu
- sagemaker
- ölçek
- ölçekleme
- Bilim
- sdk
- Hizmetler
- servis
- set
- çalışma
- benzer
- Basit
- So
- Çözümler
- uzay
- alanlarda
- Spam
- uzmanlaşmış
- Devletler
- hafızası
- mağaza
- Destekler
- Sistemler
- Hedef
- test
- Test yapmak
- testleri
- Dünya
- düşünce
- düşünce liderliği
- zaman
- simge
- Jeton
- üst
- meşale
- trafik
- Eğitim
- Çeviri
- Amerika Birleşik Devletleri
- Görüntüle
- Virjinya
- Sanal
- görünürlük
- vizyonumuz
- beklemek
- ağ
- web hizmetleri
- Vikipedi
- olmadan
- İş
- iş akışı
- Dünya
- yazı yazıyor