Azure Yapay Zeka Arama'teki beceri kümesi kavramları

Note

Azure Yapay Zeka Arama Azure portalı, REST API'leri ve Azure SDK’ları aracılığıyla kullanılabilir. Ayrıca kuruluş içeriğini Microsoft Foundry portalındaki aracılar için yeniden kullanılabilir, izin kullanan bilgi bankalarına dönüştüren yönetilen bilgi katmanı Foundry IQ'yu temel alır.

Bu makale, beceri kümesi oluşturma hakkında daha ayrıntılı bilgilere ihtiyaç duyan ve dizin oluşturma sırasında ham içeriği dönüştürmek için yapay zeka zenginleştirmesinin üst düzey kavramlarını veya Azure Yapay Zeka Arama'te yapay zekanın nasıl uygulandığını bilen geliştiricilere yöneliktir.

Beceri kümesi, Azure Yapay Zeka Arama'te dizin oluşturucuya eklenmiş yeniden kullanılabilir bir nesnedir. Bir dış veri kaynağından alınan ham içerik üzerinde yerleşik yapay zeka veya dış özel işleme çağıran bir veya daha fazla beceri içerir.

Aşağıdaki diyagramda beceri kümesi yürütmesinin temel veri akışı gösterilmektedir.

Girişlere, çıkışlara ve eşlemelere odaklanan beceri kümesi veri akışlarını gösteren diyagram.

Beceri kümesi işlemenin başlangıcından sonucuna kadar, beceriler bellekte var olan *zenginleştirilmiş bir belge ağacından okuma ve yazma. Başlangıçta, zenginleştirilmiş bir belge yalnızca bir veri kaynağından ayıklanan ham içeriktir (kök düğüm olarak "/document" ifade edilir). Her beceri yürütüldüğünde, zenginleştirilmiş belge, çıktılar grafikte düğüm olarak yazıldığı için yapı ve içerik kazanır.

Beceri kümesi yürütmesi tamamlandıktan sonra, zenginleştirilmiş bir belgenin çıktısı kullanıcı tanımlı çıkış alanı eşlemeleri aracılığıyla bir dizine yönlendirilir. Kaynaktan dizine bozulmadan aktarılmasını istediğiniz tüm ham içerik, alan eşlemeleri aracılığıyla tanımlanır. Buna karşılık, çıkış alanı eşlemeleri bellek içi içeriği (düğümler) dizine aktarır.

Uygulanan yapay zekayı yapılandırmak için bir beceri kümesinde ve dizin oluşturucuda ayarları belirtin.

Beceri kümesi tanımı

Beceri kümesi, bir görüntü dosyasında metin çevirme veya optik karakter tanıma (OCR) gibi zenginleştirme gerçekleştiren bir veya daha fazla beceri dizisidir. Beceriler, Microsoft'un yerleşik becerileri veya harici olarak barındırdığınız işleme mantığı için özel beceriler olabilir. Beceri kümesi, dizin oluşturma sırasında kullanılan veya bilgi deposuna yansıtılan zenginleştirilmiş belgeler oluşturur.

Becerilerin bağlamı, girişleri ve çıkışları vardır:

Beceri kümelerinin hangi özelliklerinin veri yolunu oluşturduğunu gösteren diyagram.

  • Bağlam , işlemin kapsamını ifade eder. Bu kapsam belge başına bir kez veya koleksiyondaki her öğe için bir kez olabilir.

  • Girişler zenginleştirilmiş bir belgedeki düğümlerden kaynaklanır ve burada "kaynak" ve "ad" belirli bir düğümü tanımlar.

  • Çıkış, zenginleştirilmiş belgeye yeni bir düğüm olarak geri gönderilir. Değerler düğüm "adı" ve düğüm içeriğidir. Düğüm adı yineleniyorsa, ayırt etme amacıyla bir hedef adı ayarlayabilirsiniz.

Beceri bağlamı

Her becerinin, belgenin tamamı (/document) veya ağaçtaki altta bir düğüm olabilecek bir bağlamı vardır.

Bağlam aşağıdakileri belirler:

  • Becerinin yürütme sayısı, tek bir değer (alan başına, belge başına bir kez) üzerinde veya bir koleksiyon için her örnek eklenişinde /* ile sonuçlanan beceri çağrımı şeklindedir.

  • Çıkış beyanı veya zenginleştirme ağacında beceri çıktılarının eklendiği yer. Çıkışlar her zaman bağlam düğümünün alt öğeleri olarak ağaca eklenir.

  • Girişlerin şekli. Çok düzeyli koleksiyonlar için bağlamın ebeveyn koleksiyona ayarlanması, beceriye yönelik giriş verisinin şeklini etkiler. Örneğin, ülke/bölge listesi içeren bir zenginleştirme ağacınız varsa, her biri posta kodları listesini içeren bir durum listesiyle zenginleştirilmişse, bağlamı nasıl ayarladığınız girişin nasıl yorumlandığını belirler.

    Context Input Giriş Şekli Beceri Çağırma
    /document/countries/* /document/countries/*/states/*/zipcodes/* Ülke/bölgedeki tüm posta kodlarının listesi Ülke/bölge başına bir kez
    /document/countries/*/states/* /document/countries/*/states/*/zipcodes/* Eyaletteki ZIP kodlarının listesi Ülke/bölge ve eyalet birleşimi başına bir kez

Beceri bağımlılıkları

Beceriler bağımsız ve paralel olarak yürütülebilir veya bir becerinin çıkışını başka bir beceriye aktarırsanız bağımlı bir ilişkide sıralı olarak yürütülebilir. Aşağıdaki örnekte, sırayla yürütülen iki yerleşik beceri gösterilmektedir:

  • Beceri #1, "reviews_text" kaynak alanının içeriğini giriş olarak kabul eden ve bu içeriği çıkış olarak 5.000 karakterlik "sayfalara" bölen bir Metin Bölme becerisidir . Büyük metni daha küçük öbeklere bölmek, yaklaşım algılama gibi beceriler için daha iyi sonuçlara neden olabilir.

  • Beceri #2, bölünmüş beceri çıkışına bağlı olan Duygu Algılama becerisidir. Giriş olarak "sayfaları" kabul eder ve duygu analizinin sonuçlarını içeren "Duygu" adlı yeni bir alan oluşturur.

İlk becerinin ("sayfalar") çıktısının duygu analizinde nasıl kullanımına dikkat edin ve burada "/document/reviews_text/pages/*" hem bağlam hem de giriştir. Yol formülasyonu hakkında daha fazla bilgi için bkz Zenginleştirmelere Nasıl Başvurulur.

{
    "skills": [
        {
            "@odata.type": "#Microsoft.Skills.Text.SplitSkill",
            "name": "#1",
            "description": null,
            "context": "/document/reviews_text",
            "defaultLanguageCode": "en",
            "textSplitMode": "pages",
            "maximumPageLength": 5000,
            "inputs": [
                {
                    "name": "text",
                    "source": "/document/reviews_text"
                }
            ],
            "outputs": [
                {
                    "name": "textItems",
                    "targetName": "pages"
                }
            ]
        },
        {
            "@odata.type": "#Microsoft.Skills.Text.SentimentSkill",
            "name": "#2",
            "description": null,
            "context": "/document/reviews_text/pages/*",
            "defaultLanguageCode": "en",
            "inputs": [
                {
                    "name": "text",
                    "source": "/document/reviews_text/pages/*",
                }
            ],
            "outputs": [
                {
                    "name": "sentiment",
                    "targetName": "sentiment"
                },
                {
                    "name": "confidenceScores",
                    "targetName": "confidenceScores"
                },
                {
                    "name": "sentences",
                    "targetName": "sentences"
                }
            ]
        }
      . . .
  ]
}

Zenginleştirme ağacı

Zenginleştirilmiş belge, beceri kümesi yürütmesi sırasında oluşturulan ve beceriler aracılığıyla yapılan tüm değişiklikleri toplayan geçici, ağaç benzeri bir veri yapısıdır. Zenginleştirmeler toplu olarak adreslenebilir düğümlerin hiyerarşisi olarak temsil edilir. Düğümler ayrıca dış veri kaynağından ayrıntılı olarak geçirilen, çözümlenmemiş alanları da içerir. Zenginleştirme ağacının yapısını ve içeriğini incelemeye yönelik en iyi yaklaşım, Azure portalındaki bir hata ayıklama oturumudur .

Zenginleştirilmiş belge, beceri kümesi yürütüldüğü süre boyunca varlığını sürdürür, ancak önbelleğe alınabilir (önizleme) veya bilgi deposuna gönderilebilir.

Başlangıçta zenginleştirilmiş bir belge, metin ve görüntülerin kaynaktan ayıklandığı ve dil veya görüntü analizi için kullanılabilir hale getirildiği, belgenin kırılması sırasında bir veri kaynağından ayıklanan içeriktir.

İlk içerik meta veriler ve kök düğümdür (document/content). Kök düğüm genellikle belgenin tamamı veya belgenin kırılması sırasında veri kaynağından ayıklanan normalleştirilmiş bir görüntüdür. Zenginleştirme ağacında nasıl ifade edilir, her veri kaynağı türüne göre değişir. Aşağıdaki tabloda, desteklenen çeşitli veri kaynakları için zenginleştirme işlem hattına giren belgenin durumu gösterilmektedir:

Veri Kaynağı\Ayrıştırma Modu Default JSON, JSON Satırları ve CSV
Blob Depolama /document/content
/document/normalized_images/*
…
/document/{key1}
/document/{key2}
…
Azure SQL /document/{column1}
/document/{column2}
…
N/A
Azure Cosmos DB /document/{key1}
/document/{key2}
…
N/A

Beceriler yürütüldükçe, zenginleştirme ağacına yeni düğümler olarak çıktı eklenir. Beceri yürütme belgenin tamamı üzerindeyse, düğümler kökün altındaki ilk düzeyde eklenir.

Düğümler aşağı akış becerileri için giriş olarak kullanılabilir. Örneğin, çevrilmiş dizeler gibi içerik oluşturan beceriler, varlıkları tanıyan veya anahtar ifadeleri ayıklayan beceriler için giriş haline gelebilir.

Zenginleştirme ağacından okuma ve yazma becerileri

Hata Ayıklama Oturumları Görsel Düzenleyicisi aracılığıyla zenginleştirme ağacını görselleştirip üzerinde çalışabilirsiniz, ancak çoğunlukla bu bir iç yapıdır.

Zenginleştirmeler sabittir: oluşturulduktan sonra düğümler düzenlenemez. Beceri kümeleriniz daha karmaşık hale geldikçe zenginleştirme ağacınız da karmaşık hale gelir, ancak zenginleştirme ağacındaki tüm düğümlerin dizine veya bilgi deposuna ulaşabilmesi gerekmez.

Zenginleştirme çıktılarının yalnızca bir alt kümesini seçerek kalıcı hale getirmek için yalnızca kullanmayı düşündüğünüz şeyi koruyabilirsiniz. Dizin oluşturucu tanımınızdaki çıkış alanı eşlemeleri , arama dizinine gerçekte hangi içeriğin alındığını belirler. Benzer şekilde, bir bilgi deposu oluşturuyorsanız, çıkışları projeksiyonlara atanan şekillere eşleyebilirsiniz.

Note

Zenginleştirme ağacı biçimi, zenginleştirme işlem hattının ilkel veri türlerine bile meta veri eklemesini sağlar. Meta veriler geçerli bir JSON nesnesi olmaz, ancak bilgi deposundaki projeksiyon tanımlarında geçerli bir JSON biçimine yansıtılabilir. Daha fazla bilgi için Şekillendirici becerisi bölümüne bakın.

Dizin oluşturucu tanımı

Dizin oluşturucu, dizin oluşturucu yürütmesini yapılandırmak için kullanılan özelliklere ve parametrelere sahiptir. Bu özellikler arasında, veri yolunu arama dizinindeki alanlara ayarlayan eşlemeler bulunur.

Dizin oluşturucuların hangi özelliklerinin bir dizindeki alanlara veri yolu oluşturduğunu gösteren diyagram.

İki eşleme kümesi vardır:

"sourceFieldName" özelliği, veri kaynağınızdaki bir alanı veya zenginleştirme ağacındaki bir düğümü belirtir. "targetFieldName" özelliği, içeriği alan bir dizindeki arama alanını belirtir.

Zenginleştirme örneği

Otel, beceri kümesini referans noktası olarak incelerken, bu örnekte kavramsal diyagramları kullanarak beceri yürütme yoluyla zenginleştirme ağacının nasıl geliştiği açıklanmaktadır.

Bu örnek ayrıca şunları gösterir:

  • Becerinin bağlamı ve girişleri, bir becerinin kaç kez yürütüleceğini belirlemek için nasıl çalışır?
  • Girişin şekli, bağlama göre değişebilir.

Bu örnekte, CSV dosyasındaki kaynak alanlar oteller ("reviews_text") ve derecelendirmeler ("reviews_rating") hakkındaki müşteri incelemelerini içerir. Dizin oluşturucu, Blob depolamadan meta veri alanları ekler ve beceriler çevrilmiş metin, duygu analiz puanları ve anahtar ifadelerin algılanmasını ekler.

Otel incelemeleri örneğinde, zenginleştirme süreci içindeki bir "belge" tek bir otel incelemesini temsil eder.

Tip

REST API'lerini kullanarak bu veriler için bir arama dizini ve bilgi deposu oluşturabilirsiniz. Beceri kümesi oluşturma, bağımlılıklar ve zenginleştirme ağacı üzerindeki etkileri hakkında içgörüler için Hata Ayıklama Oturumlarını da kullanabilirsiniz. Bu makaledeki görüntüler Hata Ayıklama Oturumları'ndan alınmıştır.

Kavramsal olarak, ilk zenginleştirme ağacı aşağıdaki gibi görünür:

belgeyi kırdıktan sonra zenginleştirme ağacı

Tüm zenginleştirmeler için kök düğüm "/document". Blob dizin oluşturucularıyla çalışırken, "/document" düğümünün "/document/content" ve "/document/normalized_images" alt düğümleri vardır. Veriler CSV olduğunda, bu örnekte olduğu gibi sütun adları "/document" altındaki düğümlerle eşlenir.

Beceri #1: Parçalanmış yetenek

Kaynak içerik büyük metin öbeklerinden oluştuğunda, tümleşik vektörleştirme için veya dil, yaklaşım ve anahtar tümcecik algılamanın daha yüksek doğruluğu için içeriği daha küçük bileşenlere bölmek yararlı olur. İki granül düzeyi mevcuttur: sayfalar ve cümleler. Sayfa yaklaşık 5.000 karakterden oluşur.

Split becerisiyle öbeklemenin bir alternatifi Azure Content Understanding becerisinden geçer, ancak bu beceri bu makalenin kapsamı dışındadır.

Parçalara ayırma gerektiğinde, bir beceri kümesinde genellikle önce Bölme becerisi yer alır.

"@odata.type": "#Microsoft.Skills.Text.SplitSkill",
"name": "#1",
"description": null,
"context": "/document/reviews_text",
"defaultLanguageCode": "en",
"textSplitMode": "pages",
"maximumPageLength": 5000,
"inputs": [
    {
        "name": "text",
        "source": "/document/reviews_text"
    }
],
"outputs": [
    {
        "name": "textItems",
        "targetName": "pages"
    }
]

beceri bağlamı "/document/reviews_text"ile, bölünmüş beceri için reviews_textbir kez yürütülür. Beceri çıkışı, reviews_text'ün 5.000 karakterlik segmentlere ayrıldığı bir listedir. Bölünmüş becerinin çıktısı adlandırılır pages ve zenginleştirme ağacına eklenir. Bu targetName özellik, zenginleştirme ağacına eklenmeden önce beceri çıkışını yeniden adlandırmanıza olanak tanır.

Zenginleştirme ağacı artık beceri bağlamı altına yerleştirilmiş yeni bir düğüme sahip. Bu düğüm herhangi bir beceri, projeksiyon veya çıkış alanı eşlemesi için kullanılabilir.

Beceri #1 tamamlandıktan sonra zenginleştirme ağacı

Bir beceri tarafından bir düğüme eklenen zenginleştirmelerden herhangi birine erişmek için tam zenginleştirme yolu gereklidir. Örneğin, düğümdeki metni başka bir beceriye pages giriş olarak kullanmak istiyorsanız olarak belirtin "/document/reviews_text/pages/*". Yollar hakkında daha fazla bilgi için Başvuru zenginleştirmeleri kısmına bakın.

Beceri #2 Dil algılama

Otel inceleme belgeleri, birden çok dilde ifade edilen müşteri geri bildirimlerini içerir. Hangi dilin kullanıldığını dil algılama becerisi belirler. Sonuç, dil dikkate alınarak anahtar ifadeler ayıklama ve duygu tespitine (detaylandırılmamıştır) geçirilir.

Dil algılama becerisi beceri kümesinde tanımlanan üçüncü (beceri #3) beceri olsa da, yürütülecek bir sonraki beceridir. Herhangi bir giriş gerektirmez, bu nedenle önceki beceriye paralel olarak yürütülür. Kendisinden önceki bölünmüş beceri gibi dil algılama becerisi de her belge için bir kez çağrılır. Zenginleştirme ağacı artık dil için yeni bir düğüme sahip.

Beceri #2'den sonra zenginleştirme ağacı

Beceriler #3 ve #4 (yaklaşım analizi ve anahtar ifade algılama)

Müşteri geri bildirimleri, bir dizi olumlu ve olumsuz deneyimi yansıtır. Duygu analizi becerisi, geri bildirimi analiz eder ve negatiften pozitife bir sürekli aralık boyunca veya duygu belirlenmezse nötr bir puan atar. Yaklaşım analizine paralel olarak anahtar ifade algılama, sonuç olarak görünen sözcükleri ve kısa tümcecikleri tanımlar ve ayıklar.

bağlamı /document/reviews_text/pages/* göz önünde bulundurulduğunda, koleksiyondaki öğelerin her biri için hem duygu analizi hem de pages anahtar ifade becerileri bir kez çağrılır. Becerinin çıkışı, ilişkili sayfa öğesinin altındaki bir düğüm olacaktır.

Artık beceri kümesindeki becerilerin geri kalanına bakabilir ve her becerinin yürütülmesiyle zenginleştirme ağacının nasıl büyüdüğünü görselleştirebilirsiniz. Birleştirme becerisi ve şekillendirici becerisi gibi bazı beceriler de yeni düğümler oluşturur, ancak yalnızca mevcut düğümlerdeki verileri kullanır ve net yeni zenginleştirmeler oluşturmaz.

tüm becerilerden sonra zenginleştirme ağacı

Yukarıdaki ağaçtaki bağlantıların renkleri, zenginleştirmelerin farklı becerilerle oluşturulduğunu göstermekte ve düğümlerin ayrı ayrı ele alınması gerektiğini belirtmektedir. Ayrıca, üst düğüm seçildiğinde bu düğümler döndürülen nesnenin parçası olmayacaktır.

Beceri #5 Şekillendirici becerisi

Çıktı bilgi deposu içeriyorsa, son adım olarak bir Shaper becerisi ekleyin. Şekillendirici becerisi, bir zenginleştirme ağacındaki düğümlerden veri şekilleri oluşturur. Örneğin, birden çok düğümü tek bir şekilde birleştirmek isteyebilirsiniz. Bu şekli daha sonra bir tablo olarak yansıtabilirsiniz (düğümler bir tablodaki sütunlara dönüşür). Şekli adıyla bir tablo projeksiyonuna geçirerek yansıtabilirsiniz.

Şekillendirici becerisiyle çalışmak kolaydır çünkü şekillendirmeye tek bir becerinin altında odaklanır. Alternatif olarak, tek tek projeksiyonlar içinde satır içi şekillendirmeyi seçebilirsiniz. Şekillendirici Becerisi, zenginleştirme ağacına ekleme veya çıkarma yapmaz, dolayısıyla görselleştirilmez. Bunun yerine, bir Shaper becerisini, zaten sahip olduğunuz zenginleştirme ağacını yeniden ifade etmenin araçları olarak düşünebilirsiniz. Kavramsal olarak bu, veritabanındaki tabloların dışında görünümler oluşturmaya benzer.

{
  "@odata.type": "#Microsoft.Skills.Util.ShaperSkill",
  "name": "#5",
  "description": null,
  "context": "/document",
  "inputs": [
    {
      "name": "name",
      "source": "/document/name"
    },
    {
      "name": "reviews_date",
      "source": "/document/reviews_date"
    },
    {
      "name": "reviews_rating",
      "source": "/document/reviews_rating"
    },
    {
      "name": "reviews_text",
      "source": "/document/reviews_text"
    },
    {
      "name": "reviews_title",
      "source": "/document/reviews_title"
    },
    {
      "name": "AzureSearch_DocumentKey",
      "source": "/document/AzureSearch_DocumentKey"
    },
    {
      "name": "pages",
      "sourceContext": "/document/reviews_text/pages/*",
      "inputs": [
        {
          "name": "Sentiment",
          "source": "/document/reviews_text/pages/*/Sentiment"
        },
        {
          "name": "LanguageCode",
          "source": "/document/Language"
        },
        {
          "name": "Page",
          "source": "/document/reviews_text/pages/*"
        },
        {
          "name": "keyphrase",
          "sourceContext": "/document/reviews_text/pages/*/Keyphrases/*",
          "inputs": [
            {
              "name": "Keyphrases",
              "source": "/document/reviews_text/pages/*/Keyphrases/*"
            }
          ]
        }
      ]
    }
  ],
  "outputs": [
    {
      "name": "output",
      "targetName": "tableprojection"
    }
  ]
}

Sonraki Adımlar

Arkanızda bir giriş ve örnekle, yerleşik becerileri kullanarak ilk beceri kümesinizi oluşturmayı deneyin.