Megosztás a következőn keresztül:


A képességkészlet fogalmai az Azure AI Searchben

Ez a cikk olyan fejlesztőknek szól, akiknek mélyebb ismeretekre van szükségük a képességkészletek fogalmairól és összetételéről, és feltételezik, hogy ismerik az Azure AI Searchben alkalmazott migrálás magas szintű fogalmait.

A készségkészlet egy újrahasználható objektum az Azure AI Searchben, amely egy indexelőhöz van csatolva. Egy vagy több olyan készséget tartalmaz, amely beépített AI-t vagy külső egyéni feldolgozást hív meg egy külső adatforrásból lekért dokumentumokon keresztül.

Az alábbi ábra a készségkészletek végrehajtásának alapszintű adatfolyamát mutatja be.

A képességkészlet adatfolyamatait bemutató diagram, amely a bemenetekre, kimenetekre és leképezésekre összpontosít.

A készségek feldolgozásának kezdetétől a következtetésig a készségek olvasása és írása a memóriában létező bővített dokumentumba . A bővített dokumentum kezdetben csak az adatforrásból kinyert nyers tartalom (fő csomópontként "/document" tagolva). Az egyes képességek végrehajtásával a bővített dokumentum struktúrát és anyagot nyer, mivel minden képesség csomópontként írja a kimenetét a gráfban.

A készségkészlet végrehajtása után a bővített dokumentum kimenete a felhasználó által definiált kimeneti mezőleképezések segítségével megtalálja az utat egy indexbe. Az érintetlenül átvitt nyers tartalmakat a forrásból az indexbe mezőleképezések határozzák meg.

Az alkalmazott AI konfigurálásához adjon meg beállításokat egy képességkészletben és egy indexelőben.

A képességcsoport definíciója

A képességkészlet egy vagy több olyan képesség tömbje, amely bővítést végez, például szöveg fordítása vagy optikai karakterfelismerés (OCR) egy képfájlon. A készségek lehetnek a Microsoft beépített készségei , vagy egyéni képességek a külsőleg üzemeltetett logika feldolgozásához. A képességkészletek olyan bővített dokumentumokat állítanak elő, amelyeket az indexelés során használnak fel, vagy egy tudástárba vetítik.

A készségek környezettel, bemenetekkel és kimenetekkel rendelkeznek:

Diagram, amely bemutatja, hogy a képességkészletek mely tulajdonságai hozzák létre az adatelérési utat.

  • A környezet a művelet hatókörére hivatkozik, amely dokumentumonként egyszer vagy egy gyűjtemény minden egyes eleméhez lehet.

  • A bemenetek egy bővített dokumentum csomópontjaiból származnak, ahol a "forrás" és a "név" azonosít egy adott csomópontot.

  • A rendszer a kimenetet új csomópontként küldi vissza a bővített dokumentumba. Az értékek a csomópont "neve" és a csomópont tartalma. Ha egy csomópont neve duplikálva van, megadhatja a célnevet a egyértelműsítéshez.

Jártassági környezet

Minden képesség rendelkezik egy környezettel, amely lehet a teljes dokumentum (/document) vagy a fa (/document/countries/*) alsó csomópontja.

A környezet a következőt határozza meg:

  • A képesség végrehajtásának hányszorja egyetlen értéken (mezőnként egyszer, dokumentumonként) vagy egy gyűjteménynél, ahol a gyűjtemény minden példányához hozzá kell adnia egy /* képességhívást.

  • Kimeneti deklaráció, vagy ha a bővítési fában hozzáadja a képességkimeneteket. A kimenetek mindig a környezeti csomópont gyermekeiként lesznek hozzáadva a fához.

  • A bemenetek alakja. Többszintű gyűjtemények esetén a környezet szülőgyűjteményre való beállítása befolyásolja a képesség bemenetének alakját. Ha például rendelkezik egy gazdagítófával, amely tartalmazza az országok/régiók listáját, és mindegyik az irányítószámokat tartalmazó államok listájával van kiegészítve, a környezet beállítása határozza meg a bemenet értelmezését.

    Környezet Bevitel Bemenet alakzata Skill Invocation
    /document/countries/* /document/countries/*/states/*/zipcodes/* Az ország/régió összes irányítószámának listája Országonként/régiónként egyszer
    /document/countries/*/states/* /document/countries/*/states/*/zipcodes/* Az állapotban lévő irányítószámok listája Ország/régió és állam kombinációnként egyszer

Képességfüggőségek

A készségek egymástól függetlenül és párhuzamosan is végrehajthatók, vagy egymás után is, ha egy képesség kimenetét egy másik képességbe eteti. Az alábbi példa két beépített készséget mutat be, amelyek egymás után futnak:

  • Az 1. képesség egy szövegfelosztási képesség , amely bemenetként elfogadja a "reviews_text" forrásmező tartalmát, és kimenetként 5000 karakterből álló "oldalakra" osztja fel a tartalmat. A nagy szöveg kisebb adattömbökre való felosztása jobb eredményeket hozhat az olyan készségek számára, mint a hangulatészlelés.

  • A 2. képesség egy hangulatészlelési képesség , amely bemenetként elfogadja a "pages" értéket, és létrehoz egy "Hangulat" nevű új mezőt kimenetként, amely tartalmazza a hangulatelemzés eredményeit.

Figyelje meg, hogy az első képesség ("oldalak") kimenete hogyan használható a hangulatelemzésben, ahol a "/document/reviews_text/pages/*" a környezet és a bemenet is. Az elérési út kialakításával kapcsolatos további információkért tekintse meg a dúsítások hivatkozását ismertető témakört.

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

Dúsítási fa

A bővített dokumentum egy ideiglenes, faszerű adatstruktúra, amely a képességkészlet végrehajtása során jön létre, amely összegyűjti a készségeken keresztül bevezetett összes módosítást. A bővítések együttesen a címezhető csomópontok hierarchiájaként jelennek meg. A csomópontok tartalmazzák a külső adatforrásból szó szerint átadott nem megadott mezőket is.

A bővített dokumentum a képességkészlet végrehajtásának idejére létezik, de gyorsítótárazható vagy elküldhető egy tudástárba.

Kezdetben a bővített dokumentum egyszerűen az adatforrásból kinyert tartalom a dokumentum feltörésekor, ahol a szöveg és a képek kinyerése a forrásból történik, és nyelvi vagy képelemzési célokra elérhetővé válik.

A kezdeti tartalom a metaadatok és a gyökércsomópont (document/content). A gyökércsomópont általában egy teljes dokumentum vagy egy normalizált rendszerkép, amelyet egy adatforrásból nyernek ki a dokumentum feltörése során. A dúsítási fa tagoltsága az egyes adatforrástípusoktól függően változik. Az alábbi táblázat egy dokumentum állapotát mutatja be, amely több támogatott adatforrás esetében belép a bővítési folyamatba:

Adatforrás\Elemzési mód Alapértelmezett JSON, JSON Lines & CSV
Blob Storage /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

A képességek végrehajtásakor a kimenet új csomópontokként lesz hozzáadva a bővítési fához. Ha a szakértelem végrehajtása a teljes dokumentumon túl van, a csomópontok a gyökér alatti első szinten lesznek hozzáadva.

A csomópontok bemenetként használhatók az alsóbb rétegbeli készségekhez. A tartalmat létrehozó képességek, például a lefordított sztringek például olyan képességek bemenetévé válhatnak, amelyek entitásokat ismernek fel vagy kulcskifejezéseket nyernek ki.

Készségek olvasása és írása a bővítési fáról

Bár a Debug Sessions vizualizációszerkesztőjével vizualizálhat és dolgozhat egy bővítőfával, ez többnyire belső struktúra.

A bővítés nem módosítható: a létrehozás után a csomópontok nem szerkeszthetők. Ahogy a képességkészletek egyre összetettebbek lesznek, a bővítési fa is, de a bővítési fa összes csomópontjának nem kell az indexbe vagy a tudástárba eljutnia.

A bővítési kimenetek csak egy részhalmazát őrizheti meg szelektíven, hogy csak a használni kívánt elemeket tartsa meg. Az indexelő definíciójában szereplő kimeneti mezőleképezések határozzák meg, hogy valójában milyen tartalmak kerülnek be a keresési indexbe. Hasonlóképpen, ha egy tudástárat hoz létre, a kimeneteket kivetítésekhez rendelt alakzatokra is leképezheti.

Feljegyzés

A bővítési fa formátuma lehetővé teszi, hogy a bővítési folyamat metaadatokat csatoljon még a primitív adattípusokhoz is. A metaadatok nem lesznek érvényes JSON-objektumok, de érvényes JSON-formátumba vethetők a tudástárban lévő leképezési definíciókban. További információ: Shaper skill.

Az indexelő definíciója

Az indexelők tulajdonságai és paraméterei az indexelő végrehajtásának konfigurálására szolgálnak. Ilyen tulajdonságok közé tartoznak azok a leképezések, amelyek az adatelérési utat egy keresési index mezőire állítják be.

Az indexelők adatelérési útvonalát az indexelők tulajdonságainak diagramja.

Két leképezési csoport létezik:

A "sourceFieldName" tulajdonság egy mezőt határoz meg az adatforrásban, vagy egy csomópontot egy bővítőfán. A "targetFieldName" tulajdonság a tartalmat fogadó index keresési mezőjét adja meg.

Dúsítási példa

A szálloda referenciapontként tekinti át a készségeket, ez a példa azt mutatja be, hogyan fejlődik a gazdagodási fa a képesség végrehajtásával fogalmi diagramokkal.

Ez a példa a következőket is mutatja:

  • A képesség környezetének és bemeneteinek működése annak meghatározásához, hogy egy képesség hányszor hajt végre
  • A bemenet formája a környezeten alapul

Ebben a példában egy CSV-fájl forrásmezői közé tartoznak a szállodákra ("reviews_text") és a minősítésekre ("reviews_rating") vonatkozó ügyfélértékelések. Az indexelő metaadatmezőket ad hozzá a Blob Storage-ból, a készségek pedig lefordított szöveget, hangulatpontszámokat és kulcskifejezés-észlelést adnak hozzá.

A szállodaértékelési példában a bővítési folyamat "dokumentuma" egyetlen szállodai felülvizsgálatot jelöl.

Tipp.

Keresési indexet és tudástárat hozhat létre ezekhez az adatokhoz az Azure Portalon vagy a REST API-kban. A Hibakeresési munkamenetek segítségével betekintést nyerhet a képességkészletek összetételébe, függőségeibe és a bővítési fára gyakorolt hatásokba. A cikkben szereplő képek a hibakeresési munkamenetekből származnak.

Elméletileg a kezdeti bővítési fa a következőképpen néz ki:

dúsítási fa dokumentumrepedés után

Az összes bővítés gyökércsomópontja a "/document". Amikor blobindexelőkkel dolgozik, a "/document" csomópont gyermekcsomópontjai "/document/content" és "/document/normalized_images". Ha az adatok CSV-nek minősülnek, mint ebben a példában, az oszlopnevek az alatta lévő "/document"csomópontokra lesznek leképezve.

1. képesség: Képesség felosztása

Ha a forrástartalom nagy mennyiségű szövegből áll, hasznos lehet kisebb összetevőkre bontani a nyelv, a hangulat és a kulcskifejezések észlelésének nagyobb pontossága érdekében. Két szemcse érhető el: oldalak és mondatok. Egy oldal körülbelül 5000 karakterből áll.

A szövegfelosztási képesség általában egy készségkészlet első része.

"@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"
    }
]

A képességkörnyezetben "/document/reviews_text"a felosztott képesség egyszer hajtja végre a reviews_text. A képességkimenet egy lista, ahol a reviews_text rendszer 5000 karakterszegmensre bontja azokat. A felosztási képesség kimenete el van nevezve pages , és hozzá lesz adva a bővítési fához. A targetName funkció lehetővé teszi, hogy átnevezze a képességkimenetet, mielőtt hozzáadja őket a bővítőfához.

A bővítési fa most egy új csomópontot helyez el a képesség kontextusában. Ez a csomópont bármely képesség-, kivetítési vagy kimeneti mezőleképezéshez elérhető.

dúsítási fa az 1. képesség után

Ahhoz, hogy a csomóponthoz egy adott képesség által hozzáadott összes bővítés elérhető legyen, a gazdagítás teljes útvonalára van szükség. Ha például a csomópont szövegét pages szeretné használni egy másik képesség bemeneteként, adja meg azt "/document/reviews_text/pages/*". Az elérési utakról további információt a Referencia-bővítések című témakörben talál.

Skill #2 Nyelvfelismerés

A szálloda felülvizsgálati dokumentumai több nyelven kifejezett ügyfél-visszajelzést tartalmaznak. A nyelvfelismerési képesség határozza meg, hogy melyik nyelvet használják. Ezt követően a rendszer átadja az eredményt a kulcskifejezések kinyerésének és a hangulatészlelésnek (nem jelenik meg), figyelembe véve a nyelvet a hangulatok és kifejezések észlelésekor.

Bár a nyelvfelismerési képesség a készségkészletben definiált harmadik (3. képesség) képesség, a következő végrehajtandó képesség. Nincs szükség bemenetre, így az az előző szakértelemmel párhuzamosan fut. Az azt megelőző felosztási képességhez hasonlóan a nyelvfelismerési készség is egyszer lesz meghívva minden dokumentumhoz. A bővítőfának most egy új csomópontja van a nyelvhez.

dúsítási fa a 2. képesség után

Készségek #3 és #4 (hangulatelemzés és kulcskifejezés-észlelés)

Az ügyfelek visszajelzései számos pozitív és negatív élményt tükröznek. A hangulatelemzési képesség elemzi a visszajelzést, és egy pozitív számokhoz negatív, vagy semleges pontszámot rendel hozzá, ha a hangulat meghatározatlan. A hangulatelemzéssel párhuzamosan a kulcskifejezések észlelése azonosítja és kinyeri a következményként megjelenő szavakat és rövid kifejezéseket.

A hangulatelemzés és a kulcskifejezés-képességek kontextusát /document/reviews_text/pages/*figyelembe véve a rendszer egyszer meghívja a pages gyűjtemény minden elemét. A képesség kimenete egy csomópont lesz a társított oldalelem alatt.

Most már képesnek kell lennie arra, hogy megtekintse a készségkészlet többi szakértelmét, és vizualizálja, hogyan nő tovább a gazdagodás fa az egyes képességek végrehajtásával. Egyes készségek, például az egyesítési képesség és az alakzatkészítő képesség is létrehoznak új csomópontokat, de csak a meglévő csomópontokból származó adatokat használják, és nem hoznak létre nettó új bővítéseket.

dúsítás fa után minden készség

A fenti fa összekötőinek színei azt jelzik, hogy a bővítéseket különböző képességek hozták létre, és a csomópontokat egyenként kell kezelni, és nem lesznek részei a szülőcsomópont kiválasztásakor visszaadott objektumnak.

Skill #5 Shaper skill

Ha a kimenet tartalmaz egy tudástárat, adjon hozzá egy Shaper-készséget utolsó lépésként. Az Alakzatkezelő képesség adatalakzatokat hoz létre a csomópontok közül egy bővítőfán. Előfordulhat például, hogy több csomópontot szeretne egyetlen alakzatba egyesíteni. Ezután táblázatként vetítheti ki ezt az alakzatot (a csomópontok egy tábla oszlopaivá válnak), és név szerint átadják az alakzatot egy táblázatvetítésnek.

A Shaper-képesség könnyen használható, mert egy képesség alatt való alakításra összpontosít. Másik lehetőségként választhatja az egyes előrejelzéseken belüli sorba alakítást is. A Shaper-képesség nem ad hozzá vagy von le bővítési fát, ezért nincs vizualizálva. Ehelyett egy Shaper-képességre úgy gondolhat, mint azokra az eszközökre, amelyekkel átrendezheti a már meglévő gazdagítófát. Ez elméletileg hasonló ahhoz, mint amikor egy adatbázis tábláiból hoz létre nézeteket.

{
  "@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"
    }
  ]
}

Következő lépések

Egy bevezető és egy példa a háta mögött, próbálja meg létrehozni az első készségeket a beépített készségek.