Değerlendirme akışları ve ölçümleri
Değerlendirme akışları, çalıştırma çıktılarının belirli ölçütlere ve hedeflere ne kadar uygun olduğunu değerlendirmek için ölçümleri hesaplayan özel bir istem akışı türüdür. Görevlerinize ve hedeflerinize göre uyarlanmış değerlendirme akışları ve ölçümleri oluşturabilir veya özelleştirebilir ve bunları diğer istem akışlarını değerlendirmek için kullanabilirsiniz. Bu makalede değerlendirme akışları, bunların nasıl geliştirileceği ve özelleştirileceği ve akış performansını değerlendirmek için istem akışı toplu çalıştırmalarında bunların nasıl kullanılacağı açıklanmaktadır.
Değerlendirme akışlarını anlama
İstem akışı, girişi işleyen ve çıkış oluşturan bir düğüm dizisidir. Değerlendirme akışları ayrıca gerekli girişleri kullanır ve genellikle puan veya ölçüm olan ilgili çıkışları üretir. Değerlendirme akışları, yazma deneyiminde ve kullanımlarında standart akışlardan farklıdır.
Değerlendirme akışları genellikle test ettikleri çalıştırmadan sonra çalıştırılarak çıkışlarını alır ve puanları ve ölçümleri hesaplamak için çıkışları kullanır. Değerlendirme akışları, istem akışı SDK'sı log_metric()
işlevini kullanarak ölçümleri günlüğe kaydeder.
Değerlendirme akışının çıkışları, test edilen akışın performansını ölçen sonuçlardır. Değerlendirme akışları, test veri kümesi üzerinde test edilen akışın genel performansını hesaplayan bir toplama düğümüne sahip olabilir.
Sonraki bölümlerde, değerlendirme akışlarında girişlerin ve çıkışların nasıl tanımlanacağı açıklanmaktadır.
Girişler
Değerlendirme akışları, test ettikleri çalıştırmanın çıkışlarını alarak toplu çalıştırmaların ölçümlerini veya puanlarını hesaplar. Örneğin, test edilen akış bir soruyu temel alan bir yanıt oluşturan bir Soru-Cevap akışıysa, değerlendirme girişini olarak answer
adlandırabilirsiniz. Test edilen akış, bir metni kategoriye sınıflandırır bir sınıflandırma akışıysa, değerlendirme girişini olarak category
adlandırabilirsiniz.
Temel gerçek olarak başka girişlere ihtiyacınız olabilir. Örneğin, bir sınıflandırma akışının doğruluğunu hesaplamak istiyorsanız veri kümesinin sütununu category
temel gerçek olarak sağlamanız gerekir. Soru-Cevap akışının doğruluğunu hesaplamak istiyorsanız veri kümesinin sütununu answer
temel gerçek olarak sağlamanız gerekir. Soru-Cevap veya alma artırılmış oluşturma (RAG) senaryoları gibi question
context
ölçümleri hesaplamak için başka girişlere ihtiyacınız olabilir.
Değerlendirme akışının girişlerini, standart bir akışın girişlerini tanımladığınız gibi tanımlarsınız. Varsayılan olarak değerlendirme, test edilen çalıştırmayla aynı veri kümesini kullanır. Ancak, karşılık gelen etiketler veya hedef gerçek değerleri farklı bir veri kümesindeyse, bu veri kümesine kolayca geçiş yapabilirsiniz.
Giriş açıklamaları
Ölçümleri hesaplamak için gereken girişleri açıklamak için açıklama ekleyebilirsiniz. Toplu çalıştırma gönderimlerinde giriş kaynaklarını eşlediğinizde açıklamalar görüntülenir.
Her giriş için açıklama eklemek için, değerlendirme yönteminizi geliştirirken giriş bölümünde Açıklamayı göster'i seçin ve açıklamaları girin.
Açıklamaları giriş formunda gizlemek için Açıklamayı gizle'yi seçin.
Çıkışlar ve ölçümler
Değerlendirmenin çıkışları, test edilen akışın performansını gösteren sonuçlardır. Çıkış genellikle puanlar gibi ölçümler içerir ve ayrıca akıl yürütme ve öneriler için metin içerebilir.
Çıkış puanları
Bir istem akışı bir kerede bir veri satırını işler ve bir çıkış kaydı oluşturur. Değerlendirme akışları da aynı şekilde her veri satırının puanlarını hesaplayabilir, böylece bir akışın her bir veri noktasında nasıl performans gösterebileceğini de kontrol edebilirsiniz.
Her veri örneğinin puanlarını değerlendirme akışının çıkış bölümünde belirterek değerlendirme akışı çıkışı olarak kaydedebilirsiniz. Yazma deneyimi, standart akış çıkışı tanımlamayla aynıdır.
Çıkışları görüntüle'yi seçtiğinizde, standart akış toplu çalıştırmasının çıkışlarını denetlediğiniz gibi Çıkışlar sekmesinde tek tek puanları görüntüleyebilirsiniz. Bu örnek düzeyi puanlarını test ettiğiniz akışın çıkışına ekleyebilirsiniz.
Toplama ve ölçüm günlüğü
Değerlendirme akışı, çalıştırma için genel bir değerlendirme de sağlar. Genel sonuçları tek tek çıkış puanlarından ayırt etmek için bu genel çalıştırma performansı değerlerine ölçüm adı verilir.
Tek tek puanlara göre bir genel değerlendirme değeri hesaplamak için değerlendirme akışındaki Python düğümündeki Toplama onay kutusunu seçerek bunu azaltma düğümüne dönüştürün. Düğüm daha sonra girişleri bir liste olarak alır ve bunları toplu iş olarak işler.
Toplamayı kullanarak, her akış çıkışının tüm puanlarını hesaplayabilir ve işleyebilir ve her puanı kullanarak genel bir sonucu hesaplayabilirsiniz. Örneğin, bir sınıflandırma akışının doğruluğunu hesaplamak için her puan çıkışının doğruluğunu ve ardından tüm puan çıkışlarının ortalama doğruluğunu hesaplayabilirsiniz. Ardından kullanarak promptflow_sdk.log_metric()
ortalama doğruluğu bir ölçüm olarak günlüğe kaydedebilirsiniz. Ölçümler veya int
gibi float
sayısal olmalıdır. Dize türü ölçüm günlüğü desteklenmez.
Aşağıdaki kod parçacığı, tüm veri noktalarının doğruluk puanının grades
ortalamasını alarak genel doğruluğu hesaplamaya yönelik bir örnektir. Genel doğruluk, kullanılarak promptflow_sdk.log_metric()
ölçüm olarak günlüğe kaydedilir.
from typing import List
from promptflow import tool, log_metric
@tool
def calculate_accuracy(grades: List[str]): # Receive a list of grades from a previous node
# calculate accuracy
accuracy = round((grades.count("Correct") / len(grades)), 2)
log_metric("accuracy", accuracy)
return accuracy
Bu işlevi Python düğümünde çağırdığınızdan, başka bir yere atamanız gerekmez ve ölçümleri daha sonra görüntüleyebilirsiniz. Toplu çalıştırmada bu değerlendirme yöntemini kullandıktan sonra, çıkışları görüntülerken Ölçümler sekmesini seçerek genel performansı gösteren ölçümü görüntüleyebilirsiniz.
Değerlendirme akışı geliştirme
Kendi değerlendirme akışınızı geliştirmek için Azure Machine Learning stüdyosu İstem akışı sayfasında Oluştur'u seçin. Yeni akış oluştur sayfasında şunları yapabilirsiniz:
Türe göre oluştur'un altındaki Değerlendirme akışı kartında Oluştur'u seçin. Bu seçim, yeni bir değerlendirme yöntemi geliştirmeye yönelik bir şablon sağlar.
Araştır galerisinde Değerlendirme akışı'nı seçin ve kullanılabilir yerleşik akışlardan birini seçin. Her akışın özetini almak için Ayrıntıları görüntüle'yi seçin ve akışı açmak ve özelleştirmek için Kopyala'yı seçin. Akış oluşturma sihirbazı, kendi senaryonuz için akışı değiştirmenize yardımcı olur.
Her veri noktası için puanları hesaplama
Değerlendirme akışları, veri kümelerinde çalışan akışların puanlarını ve ölçümlerini hesaplar. Değerlendirme akışlarının ilk adımı, her bir veri çıkışının puanlarını hesaplamaktır.
Örneğin, yerleşik Sınıflandırma Doğruluğu Değerlendirme akışında akış grade
tarafından oluşturulan her çıkışın doğruluğunu ilgili temel gerçeğe göre ölçen değer Python not düğümünde hesaplanır.
Değerlendirme akışı şablonunu kullanırsanız, bu puanı line_process Python düğümünde hesaplarsınız. Ayrıca line_process python düğümünü büyük bir dil modeli (LLM) düğümüyle değiştirerek puanı hesaplamak için LLM kullanabilir veya hesaplamayı gerçekleştirmek için birden çok düğüm kullanabilirsiniz.
Bu düğümün çıkışlarını değerlendirme akışının çıkışları olarak belirtirsiniz; bu da çıkışların her veri örneği için hesaplanan puanlar olduğunu gösterir. Daha fazla bilgi için çıkış mantığı da oluşturabilirsiniz ve bu, standart bir akışta çıkışları tanımlama deneyimiyle aynıdır.
Ölçümleri hesaplama ve günlüğe kaydetme
Değerlendirmenin bir sonraki adımı, çalıştırmayı değerlendirmek için genel ölçümleri hesaplamaktır. Toplama seçeneğinin belirlendiği bir Python düğümündeki ölçümleri hesaplarsınız. Bu düğüm, önceki hesaplama düğümündeki puanları alır ve bunları bir liste halinde düzenler, ardından genel değerleri hesaplar.
Değerlendirme şablonunu kullanırsanız, bu puan toplama düğümünde hesaplanır. Aşağıdaki kod parçacığı toplama düğümü için şablonu gösterir.
from typing import List
from promptflow import tool
@tool
def aggregate(processed_results: List[str]):
"""
This tool aggregates the processed result of all lines and log metric.
:param processed_results: List of the output of line_process node.
"""
# Add your aggregation logic here
aggregated_results = {}
# Log metric
# from promptflow import log_metric
# log_metric(key="<my-metric-name>", value=aggregated_results["<my-metric-name>"])
return aggregated_results
Puan ortalaması, ortanca değer veya standart sapma hesaplama gibi kendi toplama mantığınızı kullanabilirsiniz.
işlevini kullanarak ölçümleri günlüğe kaydetme promptflow.log_metric()
. Tek bir değerlendirme akışında birden çok ölçümü günlüğe kaydedebilirsiniz. Ölçümler sayısal (float
/int
) olmalıdır.
Değerlendirme akışlarını kullanma
Kendi değerlendirme akışınızı ve ölçümlerinizi oluşturduktan sonra, standart bir akışın performansını değerlendirmek için akışı kullanabilirsiniz. Örneğin, büyük bir veri kümesinde nasıl performans gösterebileceğini test etmek için soru-cevap akışını değerlendirebilirsiniz.
Azure Machine Learning stüdyosu'da, değerlendirmek istediğiniz akışı açın ve üst menü çubuğunda Değerlendir'i seçin.
Batch çalıştırma ve Değerlendirme sihirbazında, test için veri kümesini yüklemek ve giriş eşlemesini yapılandırmak için Temel ayarları ve Batch çalıştırma ayarlarını tamamlayın. Daha fazla bilgi için bkz . Toplu çalıştırmayı gönderme ve akışı değerlendirme.
Değerlendirmeyi seçin adımında, çalıştırılacak özelleştirilmiş değerlendirmelerinizden veya yerleşik değerlendirmelerden birini veya daha fazlasını seçebilirsiniz. Özelleştirilmiş değerlendirme , oluşturduğunuz, kopyaladığınız veya özelleştirdiğiniz tüm değerlendirme akışlarını listeler. Aynı proje üzerinde çalışan başkaları tarafından oluşturulan değerlendirme akışları bu bölümde gösterilmez.
Değerlendirmeyi yapılandır ekranında, değerlendirme yöntemi için gereken tüm giriş verilerinin kaynaklarını belirtin. Örneğin, temel gerçeklik sütunu bir veri kümesinden gelebilir. Değerlendirme yönteminiz bir veri kümesinden veri gerektirmiyorsa, veri kümesi seçmeniz veya giriş eşlemesi bölümündeki veri kümesi sütunlarına başvurmanız gerekmez.
Değerlendirme giriş eşlemesi bölümünde, değerlendirme için gerekli girişlerin kaynaklarını belirtebilirsiniz. Veri kaynağı çalıştırma çıkışınızdan geliyorsa, kaynağı olarak
${run.outputs.[OutputName]}
ayarlayın. Veriler test veri kümenizden geliyorsa kaynağı olarak${data.[ColumnName]}
ayarlayın. Veri girişleri için ayarladığınız tüm açıklamalar da burada görünür. Daha fazla bilgi için bkz . Toplu çalıştırmayı gönderme ve akışı değerlendirme.Önemli
Değerlendirme akışınızda LLM düğümü varsa veya kimlik bilgilerini veya diğer anahtarları kullanmak için bağlantı gerekiyorsa, değerlendirme akışını kullanabilmek için bağlantı verilerini bu ekranın Bağlantı bölümüne girmeniz gerekir.
Değerlendirme akışını çalıştırmak için Gözden geçir ve gönder'i ve ardından Gönder'i seçin.
Değerlendirme akışı tamamlandıktan sonra, değerlendirdiğiniz akışın en üstündeki Toplu çalıştırma çalıştırmalarını>görüntüle En son toplu çalıştırma çıkışlarını görüntüle'yi seçerek örnek düzeyi puanlarını görebilirsiniz. Her veri satırının notunu görmek için İlgili sonuçları ekle açılan listesinden değerlendirme çalıştırmanızı seçin.