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

Bu makale iki farklı yönü ele alır: modelleri değerlendirme ve sistemin tamamını test etme. 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. Ardından modeli çeşitli ölçümlere göre değerlendirin.

Test , ayarlanmış model ve yapay zeka olmayan bileşenler de dahil olmak üzere bir değişiklik yapıldığında sistemin tamamını doğrulamayı içerir. Amaç, 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ğrulamaktır. Ayrıca kalite regresyonlarını önleyen, tartışılamaz bir değişiklik yönetimi stratejisidir.

Her iki uygulama da gerçek uygulamada birleştirilmiştir. Sürecin tamamı modele istek göndermeyi, yanıtlarını değerlendirmeyi ve test verilerine göre bir go veya no-go kararı almayı içerir. İşlem üretimden önce tartışılamaz olsa da, süreci gerçek ve sentetik verilerin bir karışımını kullanarak üretimde yürütmenizi öneririz.

Burada birincil odak, özellikle temel modelleri kullanan senaryolar olmak üzere, üretken yapay zeka kullanılarak oluşturulan çözümlerdir. Eğitim ve ince ayar modellerine uygun yönergeler için Model eğitimini test etme ve ince ayarlama yönergeleri bölümüne atlayın.

Model değerlendirmesi için kalite ölçümlerini kullanma

İş hedeflerinize uygun ölçümleri kullanarak bir taban çizgisi oluşturun ve model kalitesini ölçün.

Kullanıcı deneyiminin sonuçlarını bir ölçüm kümesine göre değerlendiren ve ölçen süreçlere sahip olun. Örneğin , Temellilik , üretici modelin yanıtının, oluşturulan değil sağlanan bağlam tarafından desteklenip desteklenmediğini değerlendirir. Bir hukuk firmasının yasalardan alıntılar içeren bir yapay zeka yardımcısı geliştirdiğini varsayalım. Doğru doğrulama olmadan, eski veya yanlış sınıflandırılmış belgelerden çizim yapabilir ve bu da ciddi sonuçlara yol açabilir. Yüksek topraklama puanı, modelin çıkışının güvenilir kaynak malzemeyle uyumlu kalmasını sağlamaya yardımcı olur.

Belirli kullanım örneğinize göre ölçümleri seçin ve önceliklerini belirleyin, bunları sürekli izleyin ve model ayarlama ve dağıtım için karar kapıları olarak kullanın. Tek bir ölçüme güvenmekten kaçının, kalitenin farklı boyutlarını yakalamak için bir birleşim kullanın. Örneğin, bir model güçlü topraklanmışlık gösterse bile, yine de taraflı çıkışlar üretebilir. Daha dengeli ve sorumlu sonuçlar için eşitlik değerlendirmelerini birleştirir.

Ölçümler hakkında bilgi için bkz. Değerlendirme ölçümleri açıklamalarını ve kullanım örneklerini izleme.

Değerlendirme için doğru verileri kullanma

Değerlendirme verilerini kullanarak yinelemeli bir işlemle modelinizi geliştirin. Genellikle altın veri kümesi olarak adlandırılan bu veri kümesi , genellikle insanlar tarafından oluşturulan veya doğrulanan güvenilir giriş-çıkış çiftlerinden oluşur. Model performansını tanımlı kalite ölçümlerine göre değerlendirmek için hedef karşılaştırma görevi görür.

Çeşitli, yüksek kaliteli örnekler ve minimum kirlilik ile veri kümesinin etki alanını veya görevi temsil ettiğinden emin olun. Sınırlı bir örnek boyutu düşük değerlendirme kalitesine yol açabilir, bu nedenle örnek verilerde denge ve bütünlüğü geliştirmek için yeterli çeşitlilik veya kapsam olmadığında yapay veri oluşturmayı göz önünde bulundurun.

Aracı iş akışlarını doğrulama

Mimariler yapay zekayı kullanacak şekilde geliştikçe, bir zamanlar belirlenimci kod tarafından işlenen işlevler artık yapay zeka aracılarına yükleniyor. Bu aracılar genellikle dinamik davranışla kararlar alır.

Düzenleyicinin kendisinin aracı olarak uygulandığı aracılı bir uygulama düşünün. Geleneksel düzenlemeden farklı olarak aracılar araçları çağırabilir, istemleri yorumlayabilir, diğer aracılarla işbirliği yapabilir ve gerçek zamanlı olarak uyum sağlayarak daha esnek ama doğrulanması zor olabilir.

Bu mimari türü, test ve değerlendirme için yeni zorluklara neden olabilir. Aracılar belirleyici olmayan bir şekilde çalıştığından, geleneksel statik testler yetersizdir. Test stratejisi, temel veri alma, araç çağırma ve yanıt oluşturma dahil olmak üzere kullanıcı girişinden son yanıta kadar olan akışın tamamını doğrulamalıdır. Örneğin

  • Aracıların dış araçları, API'leri ve diğer aracıları doğru çağırdığını doğrulayın. Verilerin doğru şekilde geçirildiğini doğrulamak için sahte bağımlılıkları kullanın. Davranış güvenilirliğini test etmek için araç veya aracı hatalarının simülasyonunu yapın.

  • Önceden tanımlanmış istemleri ve beklenen çıkışları kullanarak senaryo tabanlı testler tasarlar. Çıkışlar farklılık gösterebileceğinden, başka bir modelle otomatik puanlama kullanarak sonuçları değerlendirin. Ayrıca, özellikle hassas veya öznel görevler için insan tabanlı incelemeyi kullanın.

  • Zararlı, taraflı veya uygunsuz çıkışları algılamak için içerik güvenliği araçlarını tümleştirin. Beklenmeyen davranışları veya jailbreak güvenlik açıklarını belirlemek için kırmızı ekip oluşturma alıştırmaları ekleyin. Eşitlik, şeffaflık ve etik standartlara uyumu izleyin.

Araç açısından bakıldığında, aşağıdaki gibi denetimleri destekleyen Azure AI Değerlendirme SDK'sını göz önünde bulundurun:

  • Amaç çözümlemesi: Aracı/düzenleyici kullanıcının isteğini doğru şekilde anlıyor mu?
  • Araç çağrısı doğruluğu: Doğru parametrelerle doğru araçlar çağrılır mı?
  • Göreve bağlılık: Son çıkış, atanan görev ve önceki mantık adımlarıyla uyumlu mu?

Ayrıca düzenli performans ve yük testi gerçekleştirin. Aracının eşzamanlı istekler altında ölçeklendirme, uzun yürütme yollarını işleme ve birden çok aracı arasındaki etkileşimleri yönetme becerisini değerlendirin. Sistem yinelemeli sürümler aracılığıyla geliştikçe hem mantık hem de performanstaki regresyonları sürekli olarak izleyin.

Güvenlik yönlerini test edin

Yanlış kullanımı veya istenmeyen eylemleri önlemek için erişimi denetleyerek, tüm girişleri doğrulayarak ve aracı davranışını izleyerek aracı iş akışlarının güvenliğini sağlayın.

  • Jailbreak testi. Jailbreak girişimlerini her zaman test edin. Saldırganlar genellikle önce düzenleme katmanını hedefler ve bu katman istekleri ayrıştırıp modele iletir. Kötü amaçlı girişler filtrelenmezse model davranışını tehlikeye atabilir.

  • İçerik güvenliği. Sohbet tabanlı uygulamalarda, içerik güvenliği hizmeti aracılığıyla hem kullanıcı istemlerini hem de temel bağlamı çalıştırın.

  • Uç nokta güvenliği. RESTful arabirimleri için güçlü kimlik doğrulaması uygulayın ve yetkisiz erişimi önlemek için güvenlik denetimlerini kapsamlı bir şekilde test edin.

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 başka açık kaynak kitaplıklar da mevcuttur.

Tradeoff. 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, Geliştirme Ara Sunucusu gibi araçları kullanarak çıkarım uç noktasının benzetimini yapabilirsiniz.

Belirleyici davranışı test edin

Bazı mimarilerde düzenlemeyi etkinleştirmek için belirlenimci mantığı kullanabilirsiniz. Örneğin, belirlenimci olmayan aracı düzenleyici yerine yürütme akışını yönetmek için kullanıcı amacını yorumlama, verileri topraklama için dizini sorgulama ve model çıkarım uç noktasını çağırma gibi statik kod kullanan bir düzenleyici seçebilirsiniz.

Test açısından bakıldığında, bu kodu herhangi bir kritik sistem bileşeni gibi değerlendirin: özellikle yönlendirme mantığı üzerinde performans, güvenilirlik ve işlevsel testler çalıştırın. Özellikle Microsoft Semantik Çekirdeği veya LangChain gibi aracı çerçeveleri kullanıyorsanız, belirlenimci bileşenlere birim testi uygulayın. Bu testler, çalışma zamanı değişkenliğiyle yalıtılmış istem şablonlarını, araç seçim mantığını, veri biçimlendirmesini ve karar ağaçlarını doğrular.

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

Çıkarım uç noktaları REST API'leri aracılığıyla üretken modellerinizi kullanıma sunar ve yalnızca model doğruluğunun ötesinde test edilmelidir. PaaS platformları veya şirket içinde barındırılan sunucular kullanıyor olun, güvenilirlik, ölçeklenebilirlik ve güvenlik sağlamak için uç noktayı diğer uç noktalar gibi test edin.

  • İşlevsel ve tümleştirme testi. İstek işlemeyi, yanıt yapısını ve diğer bileşenlerle tümleştirmeyi doğrulayın.

  • Performans ve yük testi. Aktarım hızını, gecikme süresini ve kaynak kullanımını değerlendirmek için gerçekçi koşulların simülasyonunu oluşturun. PaaS çıkarım uç noktaları için rest API'lerin geleneksel istek boyutlarından daha anlamlı olan belirteç düzeyi ölçümlere (belirteçler/sn veya belirteçler/dakika) odaklanın.

  • Ölçeklendirme ve GPU iyileştirmesi. Doğru GPU SKU'su veya otomatik ölçeklendirme yapılandırmasını belirlemek için değişen yük altında test edin. Gerçek GPU kullanımını izleyerek fazla sağlamadan kaçının.

    Denge. GPU SKU'ları pahalıdır. GPU kaynaklarının yetersiz kullanılıp kullanılmadığını sürekli kontrol etmek ve mümkün olduğunda bunları hak etmek önemlidir. Ayarlamalar yaptıktan sonra, maliyet verimliliği ile performans iyileştirmesi arasındaki dengeyi korumak için kaynak kullanımını test edin.

  • Hata işleme. HTTP 429 hataları, arka uç zaman aşımları ve hizmetin kullanılamadığı gibi azaltma simülasyonu yapın. İstemcinizin yeniden denemeleri, geri alma ve devre kesme işlemlerini uygun şekilde işlediğini doğrulayın.

  • Güvenlik ve içerik güvenliği. Genel veya şirket içinde barındırılan uç noktalar için sızma testleri gerçekleştirin ve erişim denetimlerini doğrulayın. Güvenli olmayan girişi/çıkışı test etmek ve filtrelemek için Azure AI content Safety gibi içerik denetleme araçlarını kullanın.

Topraklama verileri iş akışını test etme

Üretken bir yapay zeka modelinin ilgisi , topraklama verilerinin kalitesine ve bütünlüğüne bağlıdır. Topraklama verileri, veri işleme işlem hatları kullanılarak modele dağıtılabilir. Bu veriler modele ulaşmadan önce önceden işlenmiş, öbeklenmiş ve dizine alınan verilerdir. Model, kullanıcı etkileşimi sırasında dizini gerçek zamanlı olarak sorgulayarak dizin oluşturma performansını ve doğruluğunu kullanıcı deneyimi için kritik hale getirir. Testi erken tümleştirin ve sistem yaşam döngüsü boyunca koruyun.

Kötü test edilmiş veri işlem hatları tutarsız sonuçlara ve güvenlik ihlalleri gibi çapraz kesme sorunlarına yol açabilir. Yüksek kaliteli bir deneyim sağlamak için kaynak belgeler, ön işleme, düzenleme mantığı ve dizinin kendisi de dahil olmak üzere veri akışının tamamını test edin. Önemli test konuları şunlardır:

  • İşlevsel ve tümleştirme testi. Tüm verilerin doğru ve tamamen yüklendiğini doğrulayın. İşlem hattının beklendiği gibi eksik, boş veya yapay verileri işlediğinden emin olun.

  • Dizin şeması uyumluluğu. Geriye dönük uyumluluk sağlamak için şema değişikliklerini test edin. Tüm alan veya belge değişikliklerinin eski veri biçimleri için desteği koruması gerekir.

  • Ön işleme ve düzenleme testi. Veri hazırlama, genellikle Azure AI Search beceri kümeleri gibi araçlar tarafından yönetilen ön işleme, öbekleme ve ekleme işlemlerini içerir. Tüm adımların doğru yürütüldiğinden ve sonuçta elde edilen verilerin doğru ve ilgili olduğundan emin olmak için düzenleme işlem hattını test edin.

  • Veri tazeliği ve kalite denetimleri. Eski veriler, sürüm oluşturma uyuşmazlıkları, yapay yapıtlar ve boş veya kısmi tablolar için testler ekleyin. En güncel ve temiz verileri yansıtmak için sorguları veya dizin ayarlarını gerektiği gibi güncelleştirin.

  • Dizin yükü testi. Dizinler, değişen yükler altında farklı davranabilir. Ölçeklendirme, işlem SKU'ları ve depolama gereksinimleri hakkındaki kararları bilgilendirmek için sorgu performansını gerçekçi kullanım senaryolarına karşı test edin.

  • Güvenlik testi. Belgeler erişim denetimleriyle bölümlenmişse, bu denetimleri sıkı bir şekilde test edin. Her kullanıcının veya rolün yalnızca gizlilik ve uyumluluğu korumak için izin verilen içeriğe eriştiğine emin olun.

Model eğitimini test etme ve ince ayarlama yönergeleri

Üretici yapay zeka modellerine benzer şekilde, 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 kullanın. Her ne kadar pratik olsa da, testi göz önünde bulundurarak iş yükü varlıkları geliştirin. Ö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.

Modeli değerlendirme

Model kalitesini ölçmek ve karşılaştırmak için model eğitimi sırasında temel bir strateji uygulayın. İyi tanımlanmış ölçümleri kullanarak çeşitli model, parametre ve özellik bileşimlerinin performansını değerlendirin. Bu ölçümler, en iyi performansa sahip modeli belirlemek için sürümler ve yapılandırmalar arasında yinelemeli olarak karşılaştırabileceğiniz objektif, veri temelli puanlar sağlar.

Daha fazla bilgi için bkz . Regresyon/tahmin ölçümleri.

Değerlendirilecek ve test etmek için veriler

Kaynak verileri üç ayrı veri kümesine bölümleme: eğitim, değerlendirme ve test. Modeli oluşturmak için eğitim veri kümesini, ayarlamak için değerlendirme veri kümesini ve son performansı doğrulamak için test veri kümesini kullanın.

Gürültüyü azaltmak için her veri kümesinin yüksek kaliteli veriler içerdiğine emin olun. Gerçek sahtekarlık örneklerinin nadir olduğu ve güvenilir modelleri eğitmek için sınırlı veri sağladığı sahtekarlık algılama gibi etki alanlarında kaliteyi zorlamak ve gerçek örnekler sınırlı olduğunda yapay verilerle destek sağlamak için veri işlem hatlarında test çalışmalarını kullanın.

Nesnelliği korumak ve tahminlerdeki sapmaları önlemek için tüm veri kümelerini ayrı tutun ve çakışmaz. Değerlendirme veya değerlendirme verileri için eğitim verilerini test için yeniden kullanma.

Eğitim ve ince ayar iş akışını test etme

  • Veri işlem hattı teknolojileri. Ölçeklenebilirliği değerlendirmek ve boyutlandırma veya ürün uygunluğu, gerekli SKU'lar ve sistem tümleştirmesi hakkında bilinçli kararlar almak için yapay verileri kullanarak işlevsel, yük ve performans testlerini birleştirin.

  • Alım iş akışı. ETL/ELT işlem hatlarını uçtan uca test ederek verileri güvenilir bir şekilde aldıklarından ve verilerin yüksek kaliteli olduğundan emin olun. Ayrıca tüm bağlı sistemlerle tümleştirmeyi test edin ve dış bağımlılıkları izleyin. Özellikle karmaşık veya yüksek hacimli iş yüklerinde uçtan uca işlemeyi doğrulamak için yapay verileri kullanın.

    Alım görevlerinin zamanında tamamlandığını doğrulamak ve beklenen birimleri döndürmek için zamanlanmış işleri test edin.

  • Veri alımında kalite. Veri temizleme ve işlemenin, veri işlemenin amaçlandığı gibi çalıştığını onaylamak için testler içerdiğini doğrulayın. Tamlık, güncellik, şema tutarlılığı, benzersizlik ve ilgi denetimleri içerir. Ayrıca, yapılandırılmış verilerin yinelenenler, eksik değerler veya geçersiz girdiler olmadan alındığını doğrulayın.

  • Özellik ve etiket bütünlüğü. Özellikle karmaşık kurallar kullanılırken özelliklerin doğru hesaplandığını ve etiketlerin doğru atandığını doğrulayın. Gelecekteki veya etiketten türetilmiş bilgilerin eğitim verilerini kirletmesini önlemek için veri sızıntısını denetleyin. Ayrıca, ince sızıntılar bile model performansına zarar verebileceğinden, veri bölmelerinin yanlı veya çakışan örneklerden kaçınmak için uygun olduğunu doğrulayın.

  • Hiper parametre testi. Hiper parametre testi, model parametrelerinin iş yükünüzün kullanım örneğine göre doğruluk hedeflerine uyacak şekilde ayarlandığı yinelemeli bir süreçtir. Bu, seçilen veriler üzerinde sürekli eğitim almayı ve performansı doğrulamak için test verilerini değerlendirmeyi içerir. Model davranışını hızla değerlendirmek için daha küçük bir veri kümesiyle başlayın ve ardından testi tam kümeye ölçeklendirin. Model doğruluğu ile yinelenen eğitim ve değerlendirme için gereken hesaplama maliyeti ve süresi arasındaki dengeyi göz önünde bulundurun.

  • Kod kalitesi. PyTorch betiğinde olduğu gibi özel kod kullanan modelleri eğitirken, işlem gereksinimlerini değerlendirmek ve uygun SKU'ları seçmek için tasarım aşamasında yük testleri çalıştırın. Geliştirme sırasında regresyonları yakalamak için birim testlerini kullanın ve otomasyon mümkün olmadığında el ile yapılan testlere güvenin. Bu betikler iş akışları içinde çalıştığından, komut dosyalarının işlem hattı içinde güvenilir bir şekilde yürütüldüğünü doğrulamak için tümleştirme testleri ekleyin.

  • Çıkarım uç noktası. Bu REST API, tahminler yapmak için eğitilen makine öğrenmesi modeline erişim sağlar. Model, gerçek zamanlı veya toplu giriş verilerini alabilen, işleyebilen ve tahmin döndürebilen bir uç noktaya sahip bir ortama dağıtılır. Diğer TÜM API'ler gibi çıkarım uç noktasının da işlevsel, performans ve güvenlik testinden geçtiğinden emin olun. Doğru sonuçlar döndürdüğünü, beklenen yükü işlediğini ve kötüye kullanımlara karşı güvenli kaldığını doğrulayın.

  • Canlı site testi. İşlevsel testi canlı sisteme genişletin. Veri birimlerini doğrulamak, eksik veya yinelenen kayıtları algılamak ve veri güncelliğini onaylamak için zamanlanmış testler çalıştırın. Üretim koşulları altında uçtan uca dönüşümleri ve mantığı güvenli bir şekilde doğrulamak için yapay verileri kullanın. Tam dağıtımdan önce yeni deneyimleri değerlendirmek ve kalite regresyonlarını önlemek için A/B testlerini birleştirin. Testler başarısız olduğunda anında araştırmayı tetikleyen uyarıları yapılandırın.

Özellikle kod değişiklikleri veya işlem hattı güncelleştirmeleri sırasında birim ve işlevsel testleri otomatikleştirerek veri testlerini CI/CD işlem hatlarıyla tümleştirin. Yeniden eğitmeden önce kalite denetimleri ekleyin ve üretimde güvenli bir şekilde test etmek için yan yana dağıtımları kullanın. Test hataları veya alım anomalileri için uyarı ayarlama.

Note

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.

Model bozulması için test etme

İş yükündeki iç ve dış değişiklikler nedeniyle tüm modeller zaman içinde düşer. Model bozulması olarak bilinen model kalitesindeki bu düşüş iki şekilde gerçekleşebilir:

  • Veri kaymasının , giriş verilerinin değişmesi, modelin güncel olmayan hale getirilmesiyle gerçekleşir. Örneğin, oylama düzenlerini tahmin eden bir model, yeniden dağıtımdan sonra demografik geçişler nedeniyle ilgisiz hale gelir.

  • Kavram kaymasına dış koşullar değiştiğinde oluşur ve modelin tahminlerinin artık gerçekliği yansıtmamasına neden olur. Örneğin, bir rakip yeni bir ürün başlattıktan sonra tüketici davranışında bir değişiklik olduğu için satış eğilimlerini tahmin eden bir model ilgisiz hale gelir.

Bozulmayı algılamak için tahminleri gerçek sonuçlarla karşılaştırmak için otomatikleştirilmiş testi kullanın ve istatistiksel ölçümleri kullanarak kaymayı izleyin. Örneğin başparmak yukarı/aşağı kullanmak gibi kullanıcı geri bildirimleri de sorunları tanımlamak için değerli bir sinyaldir. Olası bozulma algılandığında, operasyon ekibi kök nedenleri ve sonraki adımları araştırmak ve belirlemek için veri bilimciler uyarmalıdır.

Test araçları

Şu Azure kaynaklarını göz önünde bulundurun:

Sonraki adımlar