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 answeradlandırabilirsiniz. Test edilen akış, bir metni kategoriye sınıflandırır bir sınıflandırma akışıysa, değerlendirme girişini olarak categoryadlandı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çıklamayı gizle vurgulanmış sınıflandırma doğruluğu değerlendirmesinin ekran görüntüsü.

Açıklamaları giriş formunda gizlemek için Açıklamayı gizle'yi seçin.

Yanıt açıklamasının vurgulandığı değerlendirme girişi eşlemesinin ekran görüntüsü.

Çı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.

Bir adı ve değeri gösteren çıkışlar bölümünün ekran görüntüsü.

Çı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.

Toplama onay kutusunun seçili olduğu Python düğümü başlığının ekran görüntüsü.

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 intgibi 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.

Günlük ölçümleri tarafından günlüğe kaydedilen ölçümleri gösteren ölçümler sekmesinin ekran görüntüsü.

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.

Yeni bir değerlendirme akışı oluşturmanın farklı yollarının ekran görüntüsü.

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.

Şablondaki satır işlemi düğümünün ekran görüntüsü.

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.

  1. Azure Machine Learning stüdyosu'da, değerlendirmek istediğiniz akışı açın ve üst menü çubuğunda Değerlendir'i seçin.

    Değerlendirme düğmesinin ekran görüntüsü.

  2. 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.

  3. 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.

    Özelleştirilmiş değerlendirme seçme işleminin ekran görüntüsü.

  4. 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.

    Değerlendirme giriş eşlemesinin ekran görüntüsü.

    Ö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.

  5. 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.

  6. 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.

    Değerlendirme sonucu eklenmiş ve vurgulanmış çıkış sekmesinin ekran görüntüsü.