Azure AI Search'teki beceri kümesi kavramları

Bu makale, beceri kümesi kavramlarını ve bileşimini daha iyi anlamaya ihtiyaç duyan ve yapay zeka zenginleştirmesinin üst düzey kavramlarına aşina olduğunu varsayan geliştiricilere yöneliktir.

Beceri kümesi, Azure AI Search'te dizin oluşturucuya bağlı yeniden kullanılabilir bir kaynaktır. Bir dış veri kaynağından alınan belgeler ü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.

Diagram showing skillset data flows, with focus on inputs, outputs, and mappings.

Beceri kümesi işlemenin başlangıcından sonucuna kadar, zenginleştirilmiş bir belgeden okuma ve yazma becerileri. 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ütme ile zenginleştirilmiş belge, beceri çıktısını grafikte düğüm olarak yazdığından yapı ve madde kazanır.

Beceri kümesi yürütmesi tamamlandıktan sonra zenginleştirilmiş bir belgenin çıktısı, çıkış alanı eşlemeleri aracılığıyla dizine giden yolu bulur. Kaynaktan dizine bozulmadan aktarılmasını istediğiniz tüm ham içerik, alan eşlemeleri aracılığıyla tanımlanır.

Zenginleştirmeyi yapılandırmak için bir beceri kümesinde ve dizin oluşturucuda ayarları belirteceksiniz.

Beceri kümesi tanımı

Beceri kümesi, bir görüntü dosyasında metin veya OCR çevirme 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:

Diagram showing which properties of skillsets establish the data path.

  • 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, kesinleştirme için bir hedef adı ayarlayabilirsiniz.

Beceri bağlamı

Her becerinin, belgenin tamamı () veya ağaçta (/document) alttaki bir düğüm olabilecek bir bağlamı vardır/document/countries/*. Bağlam aşağıdakileri belirler:

  • Becerinin tek bir değer üzerinde (alan başına, belge başına bir kez) veya koleksiyondaki her örnek için bir /* kez beceri çağırmaya neden olan bağlam değerleri için yürütülme sayısı.

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

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

    Bağlam Giriş 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/* Durumundaki posta 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 veya bir becerinin çıkışını başka bir beceriye beslerseniz 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 5000 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, "sayfaları" giriş olarak kabul eden ve yaklaşım analizinin sonuçlarını içeren çıkış olarak "Yaklaşım" adlı yeni bir alan üreten bir Yaklaşım Algılama becerisidir .

İlk becerinin ("sayfalar") çıkışının yaklaşım analizinde nasıl kullanıldığına dikkat edin; 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 başvurma.

{
    "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.

Beceri kümesi yürütme süresi boyunca zenginleştirilmiş bir belge vardır, ancak önbelleğe alınabilir veya bir 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 Varsayılan JSON, JSON Satırları ve CSV
Blob Depolama /document/content
/document/normalized_images/*
...
/document/{key1}
/document/{key2}
...
Azure SQL /document/{column1}
/document/{column2}
...
Yok
Azure Cosmos DB /document/{key1}
/document/{key2}
...
Yok

Beceriler yürütüldükçe, zenginleştirme ağacına yeni düğümler olarak çıkış eklenir. Beceri yürütme belgenin tamamı üzerindeyse, düğümler kök altına 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.

Skills read and write from enrichment tree

Hata Ayıklama Oturumları görsel düzenleyicisi aracılığıyla bir zenginleştirme ağacını görselleştirip bunlarla çalışabilirsiniz ancak bu çoğunlukla 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ınacağını belirler. Benzer şekilde, bir bilgi deposu oluşturuyorsanız, çıkışları projeksiyonlara atanan şekillere eşleyebilirsiniz.

Not

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 bkz . Şekillendirici becerisi.

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.

Diagram showing which properties of indexers establish the data path to fields in an index.

İ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

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, yaklaşım puanları ve anahtar tümcecik algılaması ekler.

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

İpucu

Azure portalında veya REST API'lerinde 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 çekilir.

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

enrichment tree after document cracking

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

Beceri #1: Bölünmüş beceri

Kaynak içerik büyük metin öbeklerinden oluştuğunda, dil, yaklaşım ve anahtar ifade algılamada daha fazla doğruluk elde etmek için içeriği daha küçük bileşenlere bölmek yararlı olur. İki tane vardır: sayfalar ve cümleler. Sayfa yaklaşık 5000 karakterden oluşur.

Metin bölme becerisi genellikle beceri kümesinde ilk önce gelen beceridir.

"@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ışı, öğesinin 5000 karakter segmentine ayrıldığı bir listedir reviews_text . 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.

enrichment tree after skill #1

Bir düğüme beceriyle eklenen zenginleştirmelerden herhangi birine erişmek için zenginleştirmenin tam yolu gereklidir. Örneğin, düğümdeki metni başka bir beceriye pages giriş olarak kullanmak istiyorsanız olarak belirtmeniz "/document/reviews_text/pages/*"gerekir. Yollar hakkında daha fazla bilgi için bkz . Başvuru zenginleştirmeleri.

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ç daha sonra yaklaşım ve tümcecikler algılanırken dili dikkate alarak anahtar tümcecik ayıklama ve yaklaşım algılamaya geçirilir (gösterilmez).

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.

enrichment tree after skill #2

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. Yaklaşım analizi becerisi, geri bildirimi analiz eder ve pozitif sayılara negatif bir süreklilik boyunca bir puan atar veya yaklaşım belirlenmezse nötr 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 yaklaşım analizi hem de pages anahtar tümcecik 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 bakabilmelisiniz ve her becerinin yürütülmesiyle zenginleştirme ağacının nasıl büyümeye devam edeceği görselleştirilmelidir. 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.

enrichment tree after all skills

Yukarıdaki ağaçtaki bağlayıcıların renkleri zenginleştirmelerin farklı beceriler tarafından oluşturulduğunu ve düğümlerin ayrı ayrı ele alınması gerektiğini ve üst düğüm seçilirken döndürülen nesnenin parçası olmayacağı anlamına gelmektedir.

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üğümlerin dışında veri şekilleri oluşturur. Örneğin, birden çok düğümü tek bir şekilde birleştirmek isteyebilirsiniz. Daha sonra bu şekli tablo olarak yansıtabilirsiniz (düğümler bir tablodaki sütunlara dönüşür ve şekli ada göre tablo projeksiyona geçirebilirsiniz.

Ş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ı eklemez veya çıkarmaz, bu nedenle görselleştirilmez. Bunun yerine, bir Shaper becerisini zaten sahip olduğunuz zenginleştirme ağacını yeniden dikte ettiğiniz 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.