Aracılığıyla paylaş


Azure'da yapay zeka iş yüklerini test edin ve değerlendirin

Yapay zeka iş yüklerinde test etme amacı, sistemde bir değişiklik yapıldığında kalitenin sağlanmasına yardımcı olmaktır. Test, iş yükünün tanımlanan hedefleri karşılayıp karşılamadığını ve kullanıcı beklentilerini karşılayıp karşılamadığını doğrulayabilir. Ayrıca kalite regresyonlarını önler. Bu süreç çeşitli işlevsel alanlarda testler yürütmeyi ve iş yükü gereksinimlerine göre işlevsellik kalitesini, yük işlemeyi, öngörülebilirliği ve diğer ölçütleri değerlendirmeyi içerir.

Test sonuçları, yapay zeka bileşenlerinin kullanıma hazır olup olmadığı ve hangi SKU'ların veya özelliklerin uygun olduğu gibi kararlar için kritik veri noktaları sağlar. Ayrıca test, hatalar için bir bildirim sistemi görevi görebilir ve rutin veya sentetik testler aracılığıyla üretimdeki sorunların tespit edilmesine yardımcı olabilir.

Azure İyi Tasarlanmış Çerçeve kapsamlı bir test metodolojisini özetler. Geliştirme yaşam döngüsünün farklı aşamalarında ve farklı sistem bileşenlerinde ve akışlarında çeşitli test türlerini kullanmanız gerekir. Bu testler olmadan, kullanıma sunulan değişiklikler sistem kalitesini düşürebilir. Örneğin, küçük kod hataları büyük sistem hatalarına neden olabilir. Yapay zeka sistemlerinin belirsiz doğası nedeniyle sistem davranışı öngörülemez hale gelebilir veya taraflı sonuçlar üretebilir. Ayrıca kaynak ayırma verimsiz olabilir ve bu sistemler kötüye kullanımdan etkilenebileceği için gerçek kullanıcı verilerinden veya sistem kaynaklarından yararlanılabilir.

Sınamayı göz önünde bulundurarak iş yükü varlıkları tasarlamanız ve geliştirmeniz gerekir. Örneğin, özellik mühendisliği için veri işleme gerçekleştirdiğinizde ve kaynak verileri yeniden şekillendirdiğinizde, iyi kodlama uygulamalarına uyun ve kodu testi destekleyecek şekilde yapılandırdığınızdan emin olun. Bu strateji, etkili birim testini kolaylaştırmak için kodu tasarlamayı ve testleri kodun işlevselliğinden ve bağımlılıklarından yalıtılmasını içerir. Bu örnekte, birim ve benzerlik açısından yeterince temsili test verilerine sahip bir test ortamında performans gösterebilen bir sistem tasarlamanız gerekir.

İş yükü bileşenlerini üretime güvenli bir şekilde dağıtmanız gerekir. Herhangi bir iş yükünün güvenli dağıtım uygulamalarının bir parçası, kullanıcılar veya veriler sistemi tüketmeden önce doğru davranışın sağlanmasına yardımcı olmak için stratejik testtir. Stratejik test, ilk dağıtım sırasında ve sistem geliştikçe ve kod veya altyapı değişikliklerine tabi tutuldıkça önemlidir. Değişiklikleri üretim ortamına dağıtmadan önce yapay zekayla ilgili kod ve altyapıda önerilen tüm değişiklikleri test edin.

Bu makale, bu metodolojiyi mimarinin yapay zeka yönlerine uygulamaya odaklanır. Bu testlerin nasıl gerçekleştirilecekleri kapsam dahilinde değildir.

Öneriler

Bu makalede sağlanan önerilerin özeti aşağıda verilmiştir.

Öneri Açıklama
Test stratejiniz için başarı ölçümlerini tanımlayın. Diğer tüm iş yükü testlerinde olduğu gibi, testinizin yapay zeka iş yükünüz hakkında yararlı içgörüler sağladığından emin olmak için belirli bir test için uygun ölçümleri yakalamanız ve analiz etmeniz gerekir.

Başarı ölçümlerini tanımlama
Geliştirme yaşam döngüsü boyunca veri alımı ve işleme işlem hatlarınızın uçtan uca testini gerçekleştirin. Testler verileri doğrulayabilir ve veri işleme işleminin istenen şekilde çalıştığından emin olmanıza yardımcı olabilir. Veri kalitesini ve uygun teknoloji ve boyutlandırma seçimlerini sağlamak için testi tasarım aşamasının erken aşamalarında birleştirir. Geliştirme sırasında özel kod için birim testleri geliştirin ve sorunları yakalamak ve işlevselliği doğrulamak için gerçek zamanlı üretim testleri gerçekleştirin.

Veri alımını test et
Betiklerin beklendiği gibi çağrıldığından ve çalıştığından emin olmak için eğitim işleri için testler yürütün. Yük ve performans testi, işleri çalıştırmaya uygun işlem seçimi ve boyutlandırması hakkında içgörü sağlayabilir. Birim testleri kodun faydasını doğrulayabilir ve bağımlılıklar güncellendiğinde regresyonları yakalayabilir.

Eğitim iş akışını test edin
Eğitim, değerlendirme ve test verilerinde yinelemeyi önlemek için modeli değerlendirin ve test edin. Kaynak verilerin eğitim için tamamen kullanılmadığından emin olmak için model değerlendirmesi ve son test için benzersiz verileri ayırmanız gerekir. Bu alt kümeler gerçek eğitim sürecine dahil değildir.

Modeli değerlendirme ve test etme
Çıkarım uç noktasını test edin. Çıkarım sunucunuzun barındırdığı uç noktada yük testi yapın ve bu test sonuçlarına göre GPU SKU'larını seçin. Hizmet olarak platform (PaaS) tarafından barındırılan uç noktalar için aktarım hızını ve olası hataları test edin. Bu uç noktalara ulaşılabilir olduğundan, jailbreak durumlarını önlemek için uygun güvenlik testlerini gerçekleştirin.

Çıkarım uç noktasını test edin
Sorguların ilgili sonuçlar elde etmesi için dizin tasarımının doğruluğunu test edin. İşlevsel ve tümleştirme testi, verilerin doğru olduğundan emin olmanıza ve geriye dönük uyumluluk için şema testi denetimlerini dizinlemenize yardımcı olur. Kalite için ön işleme adımlarını test etmeniz gerekir. Yük testi kaynaklar için uygun SKU'ları belirler ve güvenlik denetimleri veri gizliliğini korur.

Topraklama verilerini test etme
İşlevselliğini ve güvenliğini doğrulamak için düzenleyiciyi test edin. Performans ve güvenilirlik sağlamak için yük ve hata modu testleri de dahil olmak üzere birim, işlevsel, tümleştirme ve çalışma zamanı testleri gerçekleştirin. Güvenlik ve içerik güvenliği testi, sistemi ve verileri korumak için de çok önemlidir.

Düzenleyiciyi test edin
Model bozulmasını test edin. Model bozulması, çoğu yapay zeka iş yükünü etkileyen kaçınılmaz bir sorundur. Veri ve kavram kayması testi, modelin bozulmasını erken yakalamanıza ve iş yükünüzü olumsuz etkilemeden önce sorunu azaltmanıza yardımcı olabilir.

Model bozulmasını önleme

Başarı ölçümlerini tanımlama

İyi tanımlanmış ölçümleri kullanarak bir taban çizgisine sahip olmanız ve modelin tahmine dayalı gücünü ölçmeniz önerilir. Burada bazı yaygın ölçümler yer alır.

  • Doğruluk , doğru tahmin edilen örneklerin test veri kümesindeki toplam örneklere oranını temsil eder. Genel model performansının yaygın bir ölçüsüdür.

  • Duyarlık , gerçek pozitif tahminlerin gerçek pozitiflerin ve hatalı pozitiflerin toplamına oranıdır. Örneğin tıbbi teşhislerde olduğu gibi hatalı pozitif sonuçları en aza indirmek önemlidir.

  • Duyarlılık , gerçek pozitiflerin gerçek pozitiflerin ve hatalı negatiflerin toplamına oranını ölçer. Hatalı negatiflerden kaçınmak veya ilgili durumların eksik olması kritik önem taşır.

  • Özgüllük , gerçek negatiflerin gerçek negatiflerin ve hatalı pozitiflerin toplamına oranını hesaplar. Doğru negatif tahminler için iyileştirme yaptığınızda bu durum geçerlidir.

Not

Regresyon modelleri için başarı ölçümlerini tanımlarken aşağıdaki ölçümleri eklemeyi göz önünde bulundurun:

  • Ortalama Mutlak Hata (MAE), tahmin edilen değerlerle gerçek değerler arasındaki ortalama mutlak farkı ölçer. Her gerçek değer ile ilgili tahmin edilen değer arasındaki mutlak farkların ortalamasını alarak hesaplayın. MAE, MSE ve RMSE ile karşılaştırıldığında aykırı değerlere karşı daha az duyarlıdır.

  • Ortalama Kare Hatası (MSE), gerçek değerler ile tahmin edilen değerler arasındaki ortalama kare farkı ölçer. Her gerçek değer ile karşılık gelen tahmin edilen değer arasındaki kare farklarının ortalamasını alarak hesaplayın. MSE, hataların karesini aldığı için daha büyük hataları MAE'den daha ağır cezalandırır.

  • Kök Ortalama Kare Hatası (RMSE), MSE'nin karekökünü oluşturur. Gerçek ve tahmin edilen değerler arasındaki ortalama mutlak hatanın ölçüsünü sağlar, ancak özgün verilerle aynı birimlerde. RMSE, ortalamadan önce hataların karesini aldığından, aykırı değerlere karşı MAE'ye kıyasla daha hassastır.

Veri alımını test et

Veri işlem hatları, ayıklama, dönüştürme ve yükleme (ETL) süreçleri gibi verileri taşır ve işler. Verileri güvenilir bir şekilde alıp almadığından ve verilerin yüksek kalitede olduğundan ve analiz ve özellik mühendisliği için kabul edilebilir olduğundan emin olmak için iş yükünün ETL bölümünü test edin. Veri temizleme ve işleme işlemlerinin, veri işlemenin amaçlandığı gibi çalıştığını onaylamak için testler içerdiğine emin olun.

Test, tasarım, geliştirme ve üretim aşamaları dahil olmak üzere yaşam döngüsü boyunca tümleştirilmelidir.

Tasarım seçimlerini kolaylaştırmak için test etme

İş yükü gereksinimlerini topladığınızda, önemli bir karar verme adımı tasarımınız için uygun olan belirli bir teknoloji seçeneğini belirlemektir.

ETL gereksinimlerinize ve kabul ölçütlerinize bağlı olarak, hedeflenen görevleri yerine getiren en uygun ürünü, SKU'larını ve özellikleri seçmek için keşif işlevsel testleri yapın. Kavram kanıtı, teknoloji kanıtı ve yetenek kanıtı testleri, doğru teknolojiyi seçip seçmediğiniz ve uygun şekilde boyutlandırılıp boyutlandırılmadığını değerlendirmek için gereklidir.

Yapay zekayı mevcut bir mimariye dahil ettiğiniz senaryolar için yeni teknolojinin geçerli sistemle ne kadar iyi tümleştirebileceğini test edin.

İlk iş yükü gereksinimleri değişebilir. İşletmenin büyümeyi öngörmesi gerektiğini ve sistemin normal kullanıcı sorgularının iki katını işlemesi gerektiğini varsayalım. Bu beklenti, uygun kapasite planlaması gerektirir. Sistemin ek verilere nasıl yanıt verdiğini anlamak ve mevcut boyutlandırmada veri temelli ayarlamalar yapmak veya yeni ürün seçimleri yapmak için proaktif test yapmanızı öneririz. Kapasite testi için, işlevsel testi yük ve performans testiyle birleştirmenizi ve gerçekçi koşulların simülasyonunu yapmak için yapaylar kullanmanızı öneririz.

Kod kalitesinden emin olmak için test edin

Kod dahil edildiğinde birim testten geçtiğinden ve başarısız olursa serbest bırakılmadığından emin olun. Örneğin, alımın bir parçası olarak çalışan özel kodların olması yaygındır. Ayrıca veri temizleme ve işleme için kullanılan kod da vardır. Kodun tasarımına göre davrandığından ve veri işlemenin beklendiği gibi çalıştığından emin olmak için birim testleri çalıştırın.

Sürekli tümleştirme ve sürekli teslim işlem hattınızın bir parçası olarak testleri çalıştırın.

Canlı sistemde test edin

İşlevsel test, canlı sisteme genişletilmelidir. Bu testler başarısız olursa, gerekirse anında araştırma başlatmak için uyarıları tetikleyi göz önünde bulundurun. Burada bazı örnekler verilmiştir:

  • Veriler beklenen miktarda belirli bir zamanlamaya göre alınırsa doğru veri hacminin toplandığını doğrulamak için zamanlanmış testler çalıştırın.

  • Eksik değerler veya yinelenen veriler gibi veri sorunlarını algılayan testler çalıştırın ve temel veri bütünlüğü denetimleri gerçekleştirin. Veriler, güncelliğini gösteren zamana bağlı bilgiler içeriyorsa, bu testler bu bilgileri denetleyebilir ve aşağı akış işlemlerinin eski verileri kullanmasını engelleyebilir.

  • Dış bağımlılıkların kullanılabilirliğini denetleyin. Örneğin, veri temizleme işi tabloları ayıklamak veya ön işleme için başka bir hizmet çağırabilir. Kullanılamama durumları ETL işlemini etkileyebileceğinden kullanılabilir olduklarından emin olmak için testleri çalıştırın.

EtL sisteminin üretimdeki doğruluğunu test etmenin bir diğer yolu da sentetik testten geçmektir. Üretimde bilinen test verilerinin kullanılabilir olması son derece etkilidir. Bilinen başlangıç durumunu bu veriler için beklenen bitiş durumuyla karşılaştırarak uçtan uca işlemeyi doğrulamak için kullanabilirsiniz. Örneğin, bir belgenin belge analizi işleminden geçmesi gereklidir ve kişisel veriler içerir. Yapay bir belge eklemek, iş yükünün veri işleme işini istenen şekilde gerçekleştirip gerçekleştirmediğini test edebilir.

Ayrıca, tamamen uygulamadan önce kullanıcı etkileşimlerinden öğrenmek için A/B testi olarak da bilinen farklı deneyimler yayınlayarak denemeler yapın. A/B testi, kalite regresyonlarını önlemenize yardımcı olur.

Alma sırasında toplanan verileri test edin

Çeşitli veri kaynaklarından alma işleminin bir parçası olarak, eğitim verilerinin beklentilerinize uygun olduğunu doğrulamak için testler ekleyin.

Makine öğrenmesi modelinin eksik veya bozuk verilerle eğitilmesi verimsiz olabilir. Bu, harcanan çabalara yol açabilir ve anlamlı tahminlerde bulunamamasına neden olan bir modele neden olabilir. Veri alımı ve ön işleme işlem hatlarınız, kalite testlerini denetim noktası olarak içerir. Bu testler, verilerinizin veri analizi ve özellik mühendisliği sırasında ayarladığınız beklentilerle uyumlu olduğunu doğrulamanıza yardımcı olabilir.

Aşağıdaki liste bazı örnek test çalışmalarını içerir:

  • Tamamlık testi yapın. Veri kümesinin eksiksiz olduğunu doğrulamak için beklenen eğitim verilerini test edin. Bu test, modeli eğitmek için yeterli veri sağlamanıza olanak sağlar.

  • Kritik bilgileri test edin. Eğitim belirli kayıtlar veya tanımlayıcılar gibi bilinen varlıkları temel alıyorsa bu varlıkların mevcut olduğundan emin olmak için veri kümesini test edin. Bu doğrulama, kritik bilgilerin eksik olmamasını sağlar.

  • Ilgisiz verileri test edin. Alınan veriler ilgisiz veya hatalı girdiler içermemelidir. Veri alımı işlemi bu verileri filtrelemelidir.

  • Tazelik testi. Alınan verilerin güncelliği modelin tahmine dayalı gücünü etkilememelidir. Verilerin makul düzeyde geçerli bilgileri yansıttığını ve önceki çalıştırmalardan güncel olmadığını doğrulayın. Örneğin, verilerin geçen haftaya ait kayıtları içermesini bekliyorsanız, ancak verileri içeri aktardıktan sonra böyle bir kayıt yoksa, bu, kaynak sistemde başarısız bir içeri aktarma veya veri yenileme sorununa işaret edebilir.

Rutin testler yapma

Veri alımıyla ilgili önemli bir sorun, veri hacmi ve aktarım hızıdır. Performans sorunlarını önlemek için işlemler sırasında sürekli değerlendirme yapılması gerekir. Bu devam eden değerlendirme, tek seferlik bir test yerine operasyonel süreçlerinizin bir parçası olmalıdır. Amaç, iş yükü ekibinin hizmet düzeyi hedeflerini kaçırmamasını sağlamaktır.

İzlemenin performans düşüşünü gösterdiği bir durum düşünün. Bu tür koşulları azaltmak için ETL süreçlerini yeniden değerlendirin ve iyileştirin. Değişiklik yaptıktan sonra performans testleri, değişikliklerin gerekli aktarım hızına uygun olduğundan emin olmanıza yardımcı olabilir.

Not

Test ve izleme farklı amaçlara hizmet eder. Normalde herhangi bir değişiklik yapmadan önce sistemde olası değişiklikleri değerlendirmek için testler gerçekleştirin. Sistemin genel durumunu değerlendirmek için sürekli izleme gerçekleştirin.

Eğitim iş akışını test edin

Gerçek eğitim işini yapan PyTorch betikleri gibi özel kod kullanarak modeli eğitin. Bu betikler, bilgi işlem kaynaklarına ek olarak belleğe ve ağ kaynaklarına ihtiyaç duyan not defterlerinde veya Azure Machine Learning işlerinde çalışır. İşlem gereksinimlerini değerlendirmek ve önerilen SKU'ların uygun olduğundan emin olmak için tasarım aşamasında yük testi yapmanızı öneririz. İş yükünü zaman sınırı içinde verimli bir şekilde çalıştırmak için en iyi yapılandırmayı belirlemek için genellikle el ile test etmeniz gerekir.

Görevlerin çoğunu işleyen özelleştirilmiş SDK'ları kullanarak betikleri yazın. Ancak, betikler hala kod olduğundan, geliştirme sürecine birim testini entegre etmelisiniz. Bu testler, bağımlılıkları güncelleştirdiğinizde hiçbir regresyon oluşmamasını sağlamanıza yardımcı olur. Birim testi mümkün değilse, kalite regresyonlarını önlemek için yeni kod dağıtmadan önce el ile test yapılması gerekir.

Bu betikler, Azure Machine Learning stüdyosu gibi bir iş akışının parçası olarak çalışır ve betiğin ne zaman ve ne zaman çalıştırılıp çalıştırılmadığı hakkında içgörü sağlayabilir. Ancak bu betiklerin güvenilir bir şekilde çağrıldığından emin olmak için tümleştirme testleri çalıştırmanızı öneririz.

Modeli değerlendirme ve test etme

Dikkat

Model değerlendirme ve test genellikle birbirinin yerine kullanılır, ancak ayrı veri kümeleri kullanan ayrı işlemler olarak kabul edilmelidir. Değerlendirme, geliştirme aşamasında yaptığınız yinelemeli bir etkinliktir. Doğru ayar düzeyine sahip en iyi modeli bulmak için denemelere odaklanır. Hiper parametreleri, yapılandırmaları veya özellikleri ayarlamayı ve ardından modeli çeşitli ölçümlere göre değerlendirmeyi içerir. En iyi modeli belirledikten sonra dağıtım sırasında testler gerçekleştirin.

Test, ayarlanmış model ve yapay zeka olmayan bileşenler de dahil olmak üzere sistemin tamamını doğrulayarak bunların doğru şekilde çalıştığını denetlemeyi, iyi tümleştirmeyi ve beklenen sonuçları kalite standartlarına uygun olarak sunduğunu doğrulamayı içerir. İş yükünün diğer bileşenleriyle birlikte bir modeli yerinde değerlendirin. Bu işlem, modele istek göndermeyi, yanıtlarını değerlendirmeyi ve test verilerine dayalı olarak gitme veya gitmemeye karar almayı içerir. Test, üretimden önce tartışılamaz olsa da, gerçek verileri ve yapay verileri kullanarak üretimde de testler yapmanızı öneririz.

Değerlendirmek ve test etmek için verileri kullanma

Genellikle kaynak verilerden bölümlenmiş üç anahtar veri kümesi vardır: eğitim, değerlendirme ve test.

Modeli eğitmek için genellikle en büyük alt küme olan eğitim veri kümesini kullanın. Farklı permütasyonları değerlendirerek yinelemeli bir işlem aracılığıyla modeli geliştirmek üzere değerlendirme için başka bir veri kümesi kullanın. Tatmin edici bir permütasyon bulduklarından sonra test veri kümesinde test edin.

Tüm veri kümeleri, gürültüyü en aza indirmek için yüksek kaliteli veriler içermelidir. Veri alımı ve ön işleme işlem hatları üzerindeki test çalışmalarınız kalite denetim noktaları olarak görev yapabilir. Örnek eksikliği, düşük kaliteli verilere de bağlanabilir. Veri kümesinde tekdüzenliği dengelemek ve elde etmek için yapay verileri kullanın. Gerçek sahtekarlık örneklerinin nadir olduğu durumlarda, bu yaklaşım, sahtekarlık algılama modelleri gibi eğitim modelleri için kullanışlıdır; çünkü bu durum, güvenilir tahminler için yeterli istatistiksel güç elde edilmesini zorlaştırır.

Tahminlerde yanlılıktan kaçınmak için tüm veri kümelerini ayrı tutun. Değerlendirme için eğitim verilerini ve test için değerlendirme verilerini kullanmamalısınız. Model değerlendirmesi ve son test için benzersiz verileri ayırın.

Değerlendirme ölçümlerini kullanma

Bir modelin eğitilmesi ve üretim için doğru modelin seçilmesi birbirine bağlı süreçlerdir. Başlangıçta bir model seçmeniz gerekir, ancak deneme ve değerlendirmeden sonra değişebilir.

Model değerlendirmesi, ölçümleri kullanarak çok sayıda model, parametre ve özellik permütasyonlarını değerlendiren bir deneme döngüsü olarak izlenir. Bu ölçümler, en iyi modeli belirlemek için farklı sürümler ve yapılandırmalar arasında yinelemeli olarak karşılaştırmanız gereken bilimsel derecelendirmeler sağlar. Daha fazla bilgi için bkz . Değerlendirme ölçümleri.

Benzer bir yaklaşım, üretken yapay zeka modelleri için de geçerlidir. Modelin performansına göre kullanıcı deneyiminin sonuçlarını değerlendiren ve ölçen süreçlere sahip olun. Örneğin, temel alınanlık, modelin kaynak verilerle ne kadar uyumlu olduğunu ölçen temel ölçümlerden biridir. İlgi, yanıtın sorguya ne kadar uygun olduğunu gösteren bir diğer önemli ölçümdür. Örneğin ölçümler için bkz . Üretken yapay zeka için değerlendirme ve izleme ölçümleri.

Çeşitli ölçümleri kullanarak farklı model türlerini değerlendirin. Her ölçümün önemi senaryoya bağlı olarak değişebilir. Kullanım örneğine göre ölçümlerin önceliklerini belirleyin. Örneğin, eşitlik sorumlu yapay zekada çok önemlidir. İyi testlere rağmen modeller, sapmalı kaynak verileri nedeniyle hala haksız sapmalar sergileyebilir. Sonuçlar, ilgisi yüksek ancak eşitlik derecesi düşük olabilir. Tarafsız sonuçlar elde etmek için eşitlik değerlendirmelerini süreçle tümleştirin.

Üretken yapay zeka, orkestrasyon kodu, yönlendirme mantığı ve alma artırımlı oluşturma (RAG) için bir dizinle tümleştirilir ve bu da değerlendirmeyi karmaşıklaştırır. Ölçümleri kullanarak modelleri ayrı ayrı değerlendirmeniz gerekir ancak diğer sistem bileşenlerini değerlendirmek de önemlidir.

Modeli test etme

İnce ayar, testin özünde yer alır çünkü önceden eğitilmiş bir modeli modifiye ederek davranışını değiştirir. Modelin ilk performansını anlamak için bir taban çizgisiyle başlamayı gerektirir. İnce ayar yaptıktan sonra kalite standartlarına uygun olduğundan emin olmak için modelin performansını yeniden değerlendirin. Aşağıdaki yaygın değerlendirme ölçümlerini göz önünde bulundurun:

  • Temellilik, modelin kaynak verilerle hizalamasını ifade eder. Topraklanmış model, gerçeklikle tutarlı yanıtlar oluşturur.

  • İlgi, yanıtın belirli bir soruya ne kadar uygun olduğunu gösterir. Soruyu doğrudan ele almazsa, son derece temelli bir yanıtın ilgisi olmayabilir.

  • Benzerlik, kaynak veri metniyle oluşturulan yanıt arasındaki benzerliği ölçer. Model hassas ifade kullandı mı? Editoryal idare eksikliği benzerlik puanını düşürebilir.

  • Geri getirme, dizin sorgularının etkinliğini gösterir. Alınan dizin verilerinin soruyla ne kadar uyumlu olduğunu değerlendirin. Dizin aramasından ilgisiz veriler bu puanı düşürür. Daha yüksek alma puanları, yalnızca dizin sorgularını kullandıklarından daha düşük değişkenliğe işaret eder.

  • Akıcılık , kelime dağarcığı kullanımıyla ilgilidir. Model bir stil kılavuzuna bağlı kalırsa ve içeriği uygun biçimde sunuyorsa, temellendirmesi veya ilgisi olmasa bile akıcı olabilir.

  • Tutarlılık , modelin konuşmasının doğal ve tutarlı bir şekilde akıp akmadığını değerlendirir. Sohbette gerçek bir etkileşim hissi olup olmadığını değerlendirir.

Hiper parametreleri test etme

Model parametreleri uygulamaya özgü tasarım kararlarına bağlıdır. Uygulama tasarımınızın bir parçası olarak, iş yükünüzün kullanım örneklerine göre modeli ve parametreleri seçin. Test işlemi, modelin hedeflenen veri kümesi üzerinde eğitim olduğunu doğrulamak için eğitim verilerinin test verileriyle karşılaştırıldığı yinelemeli bir iç döngüye sahiptir. Ayrıca parametreler, modelin kabul edilebilir bir doğruluk düzeyiyle tahminlerde bulunabilmesi için ayarlanmıştır.

Ödünleşim. İç döngü, modelin eğitim aşamasının hesaplama maliyetlerini ve testlerle değerlendirme maliyetini içerir. Bu döngüde model eğitimi ve testinin gerektirdiği süreyi hesaba katmalısınız. Test sürecinin eğitim sürecinden daha uzun sürmesini bekleyebilirsiniz. Modelin makul sonuçlar verip vermediğini değerlendirmek için eğitim verilerinin bir alt kümesinde ilk testi yapabilirsiniz. Bu test kümesinin ölçeğini kademeli olarak tam veri kümesine genişletebilirsiniz.

Çıkarım uç noktasını test edin

Çıkarım uç noktası, tahmin yapmak için modellere erişim sağlayan REST API'dir. bu, isteğin bir parçası olarak veri gönderdiğiniz ve modelden sonuçlar içeren bir yanıt alabileceğiniz arabirimdir. Uç nokta, Azure OpenAI Hizmeti gibi bir PaaS veya NVIDIA Triton Inference Server, TorchServe ve BentoML gibi Microsoft dışı bir çıkarım sunucusu olan bir platformda barındırılır. PaaS senaryolarında, hizmet sağlayıcısı testi belirli bir ölçüde işler. Ancak uç noktayı barındırdıysanız, bunu diğer API'ler gibi değerlendirin ve kapsamlı bir şekilde test edin.

Modeli eğitim ve değerlendirme sırasında test etseniz de çıkarım uç noktasının test edilmesi, örneklerde istek işleme, yanıt oluşturma, ölçeklendirme ve koordinasyon gibi modelin etrafındaki mekanizmaların doğru çalıştığından emin olmaktır. Gereksinimlerinize göre kullanım örneklerini kapsayan kapsamlı bir test planı oluşturun. Bu bölümde dikkate alınması gereken bazı örnek test çalışmaları ve test türleri açıklanmaktadır.

Çıkarım barındırma sunucuları için test konuları

İşlemin yük özelliklerini anlamak ve yük testi aracılığıyla performansı doğrulamak önemlidir. Bu eylemler, mimariyi tasarlarken veya iyileştirdiğinizde teknolojileri seçmenize yardımcı olur. Örneğin, farklı çıkarım sunucuları değişen performans özelliklerine sahiptir. Kod, eşzamanlı bağlantı sayısı arttıkça CPU döngülerini ve belleği kullanır. Kodunuzun ve işlem kaynaklarınızın standart ve en yoğun yük koşulları altında nasıl performans göstereci olduğunu anlayın. Azure Yük Testi, yük testi için iyi bir seçenektir ve yüksek hacimli yük oluşturabilir. Apache JMeter gibi diğer açık kaynak seçenekleri de popülerdir. Bu testleri doğrudan ortamınızdan çağırmayı göz önünde bulundurun. Örneğin, Machine Learning Yük Testi ile iyi tümleşir.

Bir diğer önemli karar da GPU özelliklerinin seçimidir. Birçok model, tasarımı nedeniyle etkin çıkarım için GPU gerektirir. Yük testi, GPU SKU'sunun performans sınırlarını anlamanıza yardımcı olur ve finansal önemli noktalar olan fazla sağlamayı önler.

Ödün. GPU SKU'ları pahalıdır. SKU seçiminizde muhafazakar tercihler yapmanız mümkün olsa da, GPU kaynaklarının gereğinden az kullanılıp kullanılmadığını sürekli kontrol etmek ve mümkün olduğunda yeniden boyutlandırmak önemlidir. Ayarlamalar yaptıktan sonra, maliyet verimliliği ile performans iyileştirmesi arasındaki dengeyi korumak için kaynak kullanımını test edin. Maliyet iyileştirme stratejileri için bkz . Bileşen maliyetlerini iyileştirmeye yönelik öneriler.

Api genel kullanıma sunulduğundan PaaS olmayan barındırma platformları için güvenlik çok önemlidir. Uç noktanın güvenlik açığından yararlanılmadığından veya güvenliğinin aşılarak tehlikeye atılmadığından emin olmak önemlidir, çünkü bu, sistemin tamamını riske sokabilir. Bu uç noktayı diğer genel uç noktaların yanı sıra rutin güvenlik testinizin bir parçası olarak ekleyin. Canlı sistemde sızma testi gibi testler yapmayı göz önünde bulundurun. Güvenliğin bir diğer yönü de içerik güvenliğidir. Kodunuz, istek ve yanıt yükündeki zararlı içeriği algılayan özel API'lere çağrı yapabilir. İçerik güvenliği testini kolaylaştırmak için testinizde Azure AI content Safety çağrılabilir.

Önemli stratejiler için bkz . Güvenlik testi önerileri.

PaaS çıkarım uç noktaları için test konuları

İstemci, PaaS hizmetindeki çıkarım uç noktasına istek gönderdiğinde hata beklemelidir. Sistem aşırı yüklemesi, yanıt vermeyen arka uçlar ve diğer hata koşulları nedeniyle hatalar oluşabilir. Hizmette hata modu analizi gerçekleştirin ve bu olası hataları test edin. İstemci kodunda azaltma stratejileri tasarlamak ve uygulamak için hata modu analizi gereklidir. Örneğin, Azure OpenAI API'leri http 429 hata yanıt kodu döndürerek istekleri kısıtlar. İstemcinin yeniden deneme mekanizmalarını ve devre kesicileri kullanarak bu hatayı işlemesi gerekir. Daha fazla bilgi için bkz . Hata modu analizi gerçekleştirmeye yönelik öneriler.

PaaS hizmetlerini test etmek, kullandıkça öde veya önceden sağlanan işlem gibi ilişkili maliyetleri anladığınız için hizmet SKU'larını seçmenize yardımcı olabilir. En iyi faturalama ve işlem seçeneklerini belirlemek üzere iş yüklerini, sıklığı ve belirteç kullanımını değerlendirmek için Azure fiyatlandırma hesaplayıcılarını kullanın. Düşük maliyetli SKU'lar ile iş yüklerini simüle edin ve Azure OpenAI için sağlanan aktarım hızı birimleri (PTU) gibi üst düzey seçenekleri gerekçelendirin.

Yük testleri, kullandıkça öde modeline sahip hesaplama üzerinde pek etkili değildir çünkü sonsuz kapasiteye sahip olduğunuzda sorunlarla karşılaşmazsınız. Test, sınırları ve kotaları doğrular. Kullandıkça öde bilişim için yük testi yapmanızı önermiyoruz çünkü bu önemli bir finansal giderdir. Ancak aktarım hızını doğrulamak için yük testi yapmalısınız. Bu, dakika başına belirteç veya dakika başına istek olarak ölçülür. İstek boyutu gibi ölçümleri dikkate alan standart API'lerin aksine bu yaklaşım, kullanımı belirlemek için iş yüklerini belirteçlere göre değerlendirir. Önemli olan etkin kullanıcı sayısını anlamak ve aktarım hızını buna göre ölçmektir. Daha fazla bilgi için bkz . Aktarım hızınızı ölçme.

Güvenlik denetimlerini kullanma

Çıkarım sunucusu veya PaaS seçeneği kullanmanızdan bağımsız olarak, güvenlik sizin sorumluluğunuzdadır. API uç noktalarıyla, jailbreak ve içerik güvenliği denetimlerini test etmek çok önemlidir. Bu denetimlerin atlanmadığından ve beklendiği gibi çalıştığından emin olun. Örneğin, bilinen bir engellenen öğe göndermek, dağıtımdan önce güvenlik denetimlerinin yerinde olup olmadığını ve düzgün çalışıp çalışmadığını doğrulamanıza yardımcı olabilir. Bu testleri gerektiği gibi çalıştırmayı veya sürüm işlemiyle tümleştirmeyi göz önünde bulundurun.

Sistemin istemeden ortaya çıkarabileceği bilgileri test etmek önemlidir. Örneğin, sistem yanıt yükündeki kişisel bilgileri açığa çıkarmamalıdır. Ayrıca, bir istemcinin diğer kimliklere yönelik uç noktalara erişemediğinden emin olun diye test edin. Kimlik doğrulaması ve yetkilendirme mekanizmalarıyla API'nin gizli bilgileri sızdırmadığını ve uygun kullanıcı segmentasyonuna sahip olmadığını doğrulamak için güvenlik testleri gerçekleştirin.

Topraklama verilerini test etme

Veri tasarımı, üretken bir modelin verimliliğini etkiler ve temel veri kritik bileşendir. Temel veriler, yanıtın ilgi düzeyini artırmak için daha fazla bağlam sağlar. Modele ulaşmadan önce dizine oluşturulur. Kullanıcı yanıt beklerken bu dizine gerçek zamanlı olarak erişilir.

Uçtan uca test gerçekleştirin ve bu süreci veri tasarımının bir parçası olarak birleştirin. Modelin performansına, düzenlemesine, dizinine, ön işlemesine ve kaynak verilerine göre müşterinin deneyiminin sonuçlarını değerlendiren ve ölçen bir test işlemi uygulayın. Kalite ölçümlerini yinelemeli olarak izleyin ve ölçün. Dikkat edilmesi gereken bazı noktalar şunlardır:

  • İşlevsel ve tümleştirme testlerini kullanarak veri işlemeyi kapsamlı bir şekilde test edin. Verilerin beklendiği gibi yüklendiğini ve tüm verilerin mevcut olduğunu doğrulayın.

  • Geriye dönük uyumluluk için dizin şemasını test edin. Yeni sürümün verilerin önceki sürümlerine uygun olduğundan emin olmak için belge veya alanda yapılan değişiklikleri test etmelisiniz.

  • Veriler dizine alınmadan önce, kirlilik ve yanlılığı azaltmak ve verimli sorgulamayı etkinleştirmek için hazırlık yapılır. Bu süreç, ön işleme, öbekleme ve gömüleri hesaplama işlemlerini içerir ve her adım verileri bağlama veya dizindeki dosyalara kaydeder. Azure AI Search tarafından sağlanan beceri kümeleri gibi bir düzenleme işlem hattı bu adımları yürütür. Hiçbir adımın kaçırılmadığından ve işlenen verilerin yüksek kalitede olduğundan emin olmak için düzenleme kodunu test etmeniz gerekir.

    Testler eski verileri, yapay değerleri, boş tabloları, veri yenilemeyi ve en son sürümde işlemeyi denetlemelidir. Test hataları oluşursa, arama sorgusunda ve dizinde ince ayar yapmanız gerekebilir. Bu işlem, filtreleri ve daha önce ele alınan diğer öğeleri ayarlamayı içerir. Testi yinelemeli bir etkinlik olarak düşünmelisiniz.

  • Dizinler karmaşıktır ve sorgu performansı, yük tahmini gerektiren dizin yapısına göre değişebilir. Uygun yük testi, depolama, işlem ve gereksinimlerinizi desteklemek için kullanılabilen diğer kaynaklar için farklı SKU'ların belirlenmesine yardımcı olabilir.

  • Tüm güvenlik denetimlerini test etmeniz gerekir. Örneğin, veriler ayrı belgelere ayrılabilir. Her bölümün erişim denetimleri vardır. Gizliliği korumak için bu denetimleri düzgün bir şekilde test etmeniz gerekir.

Düzenleyiciyi test edin

RAG uygulamasının temel bileşenlerinden biri merkezi düzenleyicidir. Bu kod, ilk kullanıcı sorusuyla ilgili çeşitli görevleri koordine eder. Orchestrator görevleri genellikle kullanıcı amacının anlaşılmasını, temel verileri aramak için dizine bir bağlantının ve çıkarım uç noktasının çağrılmasını gerektirir. Aracıların REST API'lerini çağırma gibi görevleri gerçekleştirmesi gerekiyorsa, bu kod bu görevleri bağlam içinde işler.

Herhangi bir dilde düzenleme kodu geliştirebilir veya sıfırdan yazabilirsiniz. Ancak geliştirme sürecini hızlandırmak ve basitleştirmek için Azure AI Foundry portalı veya Apache Airflow'un Yönlendirilmiş Asiklik Grafikleri (DAG) ya da istem akışı gibi teknolojiler kullanmanızı öneririz. İstem akışı bir tasarım aşaması deneyimi sağlar. Görevleri birim olarak modüler hale getirmek ve her birimin giriş ve çıkışlarını bağlamak için kullanın; sonuçta sürecin tamamını temsil eden düzenleme kodunu oluşturun.

Orkestrasyon kodunuzu yalıtın. Ayrı olarak geliştirin ve çevrimiçi uç nokta ve erişim için REST API ile mikro hizmet olarak dağıtın. Bu yaklaşım modülerlik ve dağıtım kolaylığı sağlar.

Test açısından bakıldığında, bu kodu diğer kodlar gibi değerlendirin ve birim testleri gerçekleştirin. Ancak daha önemli olan, işlev ve tümleştirme testi aracılığıyla doğrulayabileceğiniz yönlendirme mantığı gibi işlevselliğidir. Kodun kullanıcı amacını algılayıp çağrıları uygun şekilde yönlendirediğinden emin olmak için istem mühendisliğini test edin. Test için Scikit-learn, PyTorch'un torch.testing modülü, sapma ve eşitlik testi için FairML ve model değerlendirmesi için TensorFlow Model Analizi gibi çeşitli çerçeveler ve kitaplıklar vardır.

Ayrıca, hata modu testi gibi çalışma zamanı testleri gerçekleştirin. Örneğin, belirteç sınırlamalarıyla ilgili olası hataları test edin.

Bazı çalışma zamanı testleri karar vermenizi sağlayabilir. Bu kodun stres altında nasıl davrandığını anlamak için yük testleri çalıştırın ve sonuçları kapasite planlaması için kullanın. Bu kod, mimaride diğer hizmetlere ulaşması gereken önemli bir noktaya yerleştirildiğinden, tüm bu çağrılardan telemetri verilerini toplamaya yardımcı olabilir. Bu veriler, yerel işleme ve ağ çağrılarına karşı ne kadar zaman harcandığının içgörülerini sağlayabilir ve olası gecikme süresi gibi diğer bileşenlerin davranışını belirleyebilir. Komut akışı gibi teknolojiler, bu işlemi kolaylaştırmak için yerleşik telemetri özelliklerine sahiptir. Aksi takdirde, telemetriyi özel kodunuzla birleştirin.

Not

Bu kodu test etme maliyeti etkiler. Örneğin, çıkarım uç noktanızı barındırmak için Azure OpenAI kullanıyorsanız stres testi, sistemin sınırlarını belirlemenize yardımcı olabilecek yaygın bir uygulamadır. Ancak Azure OpenAI her çağrı için ücretlendirilir ve bu da yoğun stres testlerinin pahalı olmasını sağlayabilir. Ücretleri optimize etmenin bir yolu, test ortamında kullanılmayan Azure OpenAI PTU'larını kullanmaktır. Alternatif olarak çıkarım uç noktasının benzetimini de yapabilirsiniz.

Güvenlik sorunları hem düzenleme kodu hem de model için geçerlidir. Modelin güvenliğini bozmayı amaçlayan jailbreak testlerini dahil edin. Saldırganlar modelle doğrudan etkileşim kurmaz. Önce düzenleme koduyla etkileşim kurarlar. Düzenleme kodu kullanıcı isteklerini alır ve ayrıştırıyor. Düzenleme kodu kötü amaçlı bir istek alırsa bu isteği modele iletebilir ve modelin güvenliğini tehlikeye atabilir.

İçerik güvenliği de bir diğer önemli unsurdur. Bir sohbet botu uygulamasında düzenleme kodu sohbet metni alır. Kodda bir içerik güvenliği hizmeti çağırmayı göz önünde bulundurun. Analiz için hem kullanıcı istemini hem de temel oluşturma bağlamını gönderin ve riskin değerlendirmesini alın. İstem Kalkanları , büyük dil modeli girişlerini analiz eden ve iki yaygın saldırgan giriş türü olan kullanıcı istemi saldırılarını ve belge saldırılarını algılayan birleşik bir API'dir.

ReSTful uç noktası için güvenlik denetimi ve kimlik doğrulaması çok önemlidir . Kimlik doğrulamasını yönetmeniz ve kapsamlı bir test gerçekleştirdiğinizden emin olmanız gerekir.

Model bozulmasını önleme

Tüm modeller için yaygın bir sorun, zaman içinde bir derecelik düşüşdür. İş yükünün iç ve dış değişiklikleri sonunda modelin ve çıktılarının kalitesinde bir düşüşe neden olur. Model bozulması iki şekilde gerçekleşir:

  • Veri kayma , giriş verileri değiştiğinde gerçekleşir. Yeni veri girişi, eğitilen modeli güncel dışı hale getirir. Örneğin, bölge gibi belirli bir coğrafi alanın oylama desenlerini tahmin eden bir modeliniz olabilir. Bölge yeniden çizilirse ve bu bölgenin popülasyonunun demografik değerleri değişirse, modelinizin değişiklikleri hesaba eklemek için güncelleştirilmesi gerekir.

  • Kavram kayması , iş yükü ve model dışında kalan koşullar model çıkışlarının artık gerçeklikle eşleşemeyecek şekilde değişmesi durumunda ortaya çıkar. Örneğin, bir teknoloji ürünü için satış tahmini modeliniz olabilir. Rakiplerden biri beklenmedik şekilde genel olarak dikkat çeken daha gelişmiş bir rakip ürün tanıtıyorsa, modelinizi tüketici eğilimlerinin nasıl değiştiğine göre güncelleştirmeniz gerekir.

Mümkün olduğunda, modelinizin yaşam döngüsünde modelin bozulmasını algılamak ve değerlendirmek için otomatik testi kullanın. Modeliniz ayrık değerleri tahmin ederse, zaman içinde bu değerlere göre tahminleri değerlendirmek ve beklenen ve gerçek sonuçlar arasındaki sapmayı ölçmek için testler oluşturabilirsiniz. Özet istatistikleri ve mesafe ölçümlerini karşılaştırarak zaman içindeki kaymayı algılamak için bu testi izlemeyle tamamlayın.

Model bozulmasını belirlemeye bir diğer yaygın yaklaşım da kullanıcı geri bildirimidir. Kullanıcı geri bildirimine örnek olarak başparmak yukarı veya başparmak aşağı yanıt mekanizması yer alır. Zaman içinde pozitif ve negatif geri bildirimleri izlemek ve negatif geri bildirim eşiğini karşıladığınızda bir uyarı oluşturmak, modelin kalitesini ne zaman araştırmanız gerekebileceğini bilmenize yardımcı olabilir.

Model bozulmasını tanımlamak için kullandığınız sinyallerden bağımsız olarak, potansiyel bozulma konusunda uyarı alan operasyon ekibinin sinyali araştırmak ve bozulmanın oluşup gerçekleşmediğini ve kök nedenini belirlemek için bir veri bilimcisini devreye alması gerekir.

Araçları uygulama

Yönetilen çevrimiçi uç noktalara veya Kubernetes çevrimiçi uç noktalarına dağıtılan modellerden gelen giriş ve çıkış verilerinin gerçek zamanlı günlüğünü almak için Azure Machine Learning veri toplayıcısını kullanın. Machine Learning, günlüğe kaydedilen çıkarım verilerini Azure blob depolama alanına kaydeder. Daha sonra bu verileri model izleme, hata ayıklama veya denetim için kullanabilirsiniz; bu da dağıtılan modellerinizin performansında gözlemlenebilirlik sağlar. Machine Learning dışında veya Machine Learning toplu iş uç noktasına bir model dağıtırsanız, veri toplayıcıdan yararlanamazsınız ve başka bir veri toplama işlemini çalışır hale getirmeniz gerekir.

İzlemeyi uygulamak için Machine Learning model izlemesini kullanın. Machine Learning, akışlı üretim çıkarım verileri ve başvuru verileri üzerinde istatistiksel hesaplamalar yaparak izleme sinyalleri alır. Başvuru verileri geçmiş eğitim verileri, doğrulama verileri veya temel gerçek verileri olabilir. Öte yandan üretim çıkarım verileri, modelin üretimde toplanan giriş ve çıkış verilerini ifade eder.

Sonraki adımlar