Sdílet prostřednictvím


Vytvoření projektu NER (Custom Named Entity Recognition)

V tomto článku se dozvíte, jak nastavit požadavky pro spuštění vlastního NER a vytvoření projektu.

Požadavky

Než začnete používat vlastní NER, potřebujete:

Vytvořte jazykový zdroj

Než začnete používat vlastní NER, potřebujete prostředek Azure Language in Foundry Tools. Doporučujeme vytvořit jazykový prostředek a připojit k němu účet úložiště v Azure Portal. Vytvoření prostředku na webu Azure Portal umožňuje vytvořit účet úložiště Azure současně se všemi požadovanými oprávněními předem nakonfigurovanými. Dále si můžete přečíst v článku, kde se dozvíte, jak používat existující prostředek, a nakonfigurovat ho tak, aby fungoval s rozpoznáváním vlastních pojmenovaných entit.

Potřebujete také účet úložiště Azure, ve kterém nahrajete .txt dokumenty, které se používají k trénování modelu pro extrakci entit.

Poznámka:

  • Abyste mohli vytvořit jazykový prostředek, musíte mít ve skupině prostředků přiřazenou roli vlastníka.
  • Pokud připojíte existující účet úložiště, měli byste mít přiřazenou roli vlastníka.

Vytvořte jazykový prostředek a připojte účet úložiště

Prostředek můžete vytvořit následujícími způsoby:

  • portál Azure
  • PowerShell

Poznámka:

Účet úložiště byste neměli přesunout do jiné skupiny prostředků nebo předplatného, jakmile je propojen s prostředkem Azure pro zpracování přirozeného jazyka.

Vytvoření nového prostředku z webu Azure Portal

  1. Přihlaste se k webu Azure Portal a vytvořte nový prostředek Azure Language in Foundry Tools.

  2. V zobrazeném okně vyberte vlastní klasifikaci textu a rozpoznávání vlastních pojmenovaných entit z vlastních funkcí. Vyberte Pokračovat a vytvořte prostředek v dolní části obrazovky.

    Snímek obrazovky zobrazující vlastní klasifikaci textu a rozpoznávání vlastních pojmenovaných entit na webu Azure Portal

  3. Vytvořte jazykový prostředek s následujícími detaily.

    Název Popis
    Předplatné Vaše předplatné Azure.
    Skupina prostředků Skupina prostředků, která obsahuje váš prostředek. Můžete použít existující nebo vytvořit nový.
    Oblast Oblast pro váš jazykový prostředek. Například "USA – západ 2".
    Název Název vašeho zdroje
    Cenová úroveň Cenová úroveň vašeho jazykového prostředku. Službu můžete vyzkoušet pomocí úrovně Free (F0).

    Poznámka:

    Pokud se zobrazí zpráva "Váš přihlašovací účet není vlastníkem skupiny prostředků vybraného účtu úložiště", musí mít váš účet přiřazenou roli vlastníka ve skupině prostředků, abyste mohli vytvořit prostředek jazyka. Požádejte o pomoc vlastníka předplatného Azure.

  4. V části Vlastní klasifikace textu a rozpoznávání vlastních pojmenovaných entit vyberte existující účet úložiště nebo vyberte Nový účet úložiště. Tyto hodnoty vám pomůžou začít, a ne nutně hodnoty účtu úložiště , které chcete použít v produkčních prostředích. Abyste předešli latenci při sestavování projektu, připojte se k účtům úložiště ve stejném regionu jako váš jazykový prostředek.

    Hodnota účtu úložiště Doporučená hodnota
    Název účtu úložiště Libovolný název
    Typ účtu úložiště Místně redundantní úložiště úrovně Standard (LRS)
  5. Ujistěte se, že je zaškrtnuté Odpovědné oznámení o umělé inteligenci. V dolní části stránky vyberte Zkontrolovat a vytvořit a pak vyberte Vytvořit.

Vytvoření nového jazykového prostředku pomocí PowerShellu

Nový prostředek a účet úložiště můžete vytvořit pomocí následující šablony rozhraní příkazového řádku a souborů parametrů, které jsou hostované na GitHubu.

V souboru parametrů upravte následující hodnoty:

Název parametru Popis hodnoty
name Název vašeho jazykového zdroje
location Oblast, ve které je váš prostředek hostovaný. Další informace najdete v tématu Omezení služby.
sku Cenová úroveň vašeho prostředku
storageResourceName Název účtu úložiště
storageLocation Oblast, ve které je váš účet úložiště hostovaný.
storageSkuType SKU vašeho účtu úložiště.
storageResourceGroupName Skupina prostředků vašeho účtu úložiště

Pomocí následujícího příkazu PowerShellu nasaďte šablonu Azure Resource Manageru (ARM) se soubory, které jste upravili.

New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
  -TemplateFile <path-to-arm-template> `
  -TemplateParameterFile <path-to-parameters-file>

Informace o nasazení šablon a souborů parametrů najdete v dokumentaci k šabloně ARM.

Poznámka:

  • Proces připojení účtu úložiště k vašemu prostředku jazyka je nevratný. Později se nedá odpojit.
  • Váš jazykový prostředek můžete připojit pouze k jednomu účtu úložiště.

Použití existujícího zdroje jazykových dat

Pomocí existujícího jazykového zdroje můžete začít s vlastním NER, pokud tento zdroj splňuje následující požadavky:

Požadavek Popis
Oblasti Ujistěte se, že je váš existující prostředek provozovaný v jedné z podporovaných oblastí. Pokud ne, musíte vytvořit nový prostředek v jedné z těchto oblastí.
Cenová úroveň Přečtěte si další informace o podporovaných cenových úrovních.
Spravovaná identita Ujistěte se, že je povolené nastavení spravované identity prostředku. V opačném případě si přečtěte další část.

Pokud chcete použít rozpoznávání vlastních pojmenovaných entit, musíte vytvořit účet úložiště Azure , pokud ho ještě nemáte.

Povolte správu identit pro váš prostředek

Váš jazykový prostředek musí mít správu identit, aby byl umožněn pomocí Azure portal:

  1. Přejít na jazykový prostředek
  2. V levém menu, v části Správa prostředků, vyberte Identita.
  3. Na kartě Přiřazeno systémem nezapomeňte nastavit Stav na Zapnuto.

Povolení funkce rozpoznávání vlastních pojmenovaných entit

Nezapomeňte na webu Azure Portal povolit vlastní klasifikaci textu nebo funkci Rozpoznávání vlastních pojmenovaných entit.

  1. Na Azure portal přejděte na svůj jazykový prostředek Language.
  2. V nabídce na levé straně v části Správa prostředků vyberte Funkce.
  3. Povolte vlastní klasifikaci textu / funkci Rozpoznávání vlastních pojmenovaných entit.
  4. Připojte svůj účet datového úložiště.
  5. Vyberte Použít.

Důležité

Ujistěte se, že uživatel, který chce provádět změny, má přiřazenou roli přispěvatele dat objektu blob úložiště.

Přidání požadovaných rolí

Pomocí následujících kroků nastavte požadované role pro váš jazykový zdroj a účet úložiště.

Animovaný obrázek znázorňující, jak nastavit role na webu Azure Portal

Role pro váš jazyk Azure v prostředku Foundry Tools

  1. Na portálu Azure přejděte ke svému účtu úložiště nebo jazykovému prostředku.

  2. V levém podokně vyberte Řízení přístupu (IAM ).

  3. Vyberte Přidat k Přidání přiřazení rolí a zvolte odpovídající roli pro váš účet.

    U jazykového prostředku byste měli mít přiřazenou roli vlastníka nebo přispěvatele.

  4. V části Přiřadit přístup vyberte Uživatele, skupinu nebo principál služby.

  5. Vybrat členy

  6. Vyberte své uživatelské jméno. V poli Vybrat můžete hledat uživatelská jména. Tento postup opakujte pro všechny role.

  7. Tento postup opakujte pro všechny uživatelské účty, které potřebují přístup k tomuto prostředku.

Role pro váš účet úložiště

  1. Na webu Azure Portal přejděte na stránku svého účtu úložiště.
  2. V levém podokně vyberte Řízení přístupu (IAM ).
  3. Vyberte Přidat přiřazení rolí a zvolte roli Přispěvatel dat objektů blob úložiště v účtu úložiště.
  4. V části Přiřadit přístup vyberte spravovanou identitu.
  5. Vybrat členy
  6. Vyberte své předplatné a jako spravovanou identitu vyberte jazyk . V poli Vybrat můžete hledat uživatelská jména.

Role pro uživatele

Důležité

Pokud tento krok přeskočíte, při pokusu o připojení k vlastnímu projektu se zobrazí chyba 403. Je důležité, aby váš aktuální uživatel měl tuto roli, aby mohl přistupovat k datům objektů blob účtu úložiště, i když jste vlastníkem účtu úložiště.

  1. Na webu Azure Portal přejděte na stránku svého účtu úložiště.
  2. V levém podokně vyberte Řízení přístupu (IAM ).
  3. Vyberte Přidat přiřazení rolí a zvolte roli Přispěvatel dat objektů blob úložiště v účtu úložiště.
  4. V části K komu přiřadit přístup vyberte uživatele, skupinu nebo služebního principála.
  5. Vybrat členy
  6. Vyberte svého uživatele. V poli Vybrat můžete hledat uživatelská jména.

Důležité

Pokud máte virtuální síť nebo privátní koncový bod, nezapomeňte v seznamu důvěryhodných služeb vybrat možnost Povolit službám Azure přístup k tomuto účtu úložiště na webu Azure Portal.

Povolení CORS pro účet úložiště

Při povolování Cross-Origin Resource Sharing (CORS) nezapomeňte povolit metody GET, PUT, DELETE. Nastavte pole povolených zdrojů na https://language.cognitive.azure.com. Povolit všechna záhlaví přidáním * do povolených hodnot záhlaví a nastavit maximální věk na 500.

Snímek obrazovky znázorňující použití CORS pro účty úložiště

Vytvořte projekt rozpoznávání entit na míru (REST API)

Po nakonfigurování prostředku a kontejneru úložiště vytvořte nový projekt NER na míru. Projekt je pracovní oblast pro vytváření vlastních modelů AI na základě vašich dat. K projektu máte přístup jenom vy spolu s ostatními, kteří mají přístup k používanému prostředku Azure. Pokud jste označili data jako označená, můžete je použít k zahájení importu projektu.

Pokud chcete začít vytvářet vlastní pojmenovaný model rozpoznávání entit, musíte vytvořit projekt. Vytvoření projektu umožňuje označit data, trénovat, vyhodnocovat, vylepšovat a nasazovat modely.

Poznámka:

Název projektu je rozlišující podle velikosti písmen pro všechny operace.

K vytvoření projektu vytvořte požadavek PATCH pomocí následující adresy URL, hlaviček a textu JSON.

Adresa URL požadavku

K vytvoření projektu použijte následující adresu URL. Nahraďte následující zástupné symboly vlastními hodnotami.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Zástupný symbol Hodnota Příklad
{ENDPOINT} Koncový bod pro ověření požadavku rozhraní API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Název projektu. U této hodnoty se rozlišují malá a velká písmena. myProject
{API-VERSION} Verze API, kterou používáte. Hodnota, na kterou odkazujeme, je určená pro nejnovější vydanou verzi. Další informace, podrobnosti najdete v tématuŽivotní cyklus modelu. 2022-05-01

Hlavičky žádosti

K ověření požadavku použijte následující hlavičku.

Klíč Povinné Typ Hodnota
Ocp-Apim-Subscription-Key Pravdivé řetězec Klíč k vašemu zdroji. Používá se k ověřování požadavků rozhraní API.
Content-Type Pravdivé řetězec application/merge-patch+json

Obsah požadavku

V požadavku použijte následující kód JSON. Nahraďte následující zástupné symboly vlastními hodnotami.

{
  "projectName": "{PROJECT-NAME}",
  "language": "{LANGUAGE-CODE}",
  "projectKind": "CustomEntityRecognition",
  "description": "Project description",
  "multilingual": "True",
  "storageInputContainerName": "{CONTAINER-NAME}"
}

Klíč Zástupný symbol Hodnota Příklad
projectName {PROJECT-NAME} Název projektu. U této hodnoty se rozlišují malá a velká písmena. myProject
jazyk {LANGUAGE-CODE} Řetězec určující kód jazyka pro dokumenty použité v projektu. Pokud je projekt vícejazyčný, vyberte kód jazyka, který je v dokumentech nejčastěji reprezentovaný. Další informace o podporovaných kódech jazyků najdete v podpoře jazyků. en-us
typProjektu CustomEntityRecognition Druh vašeho projektu. CustomEntityRecognition
mnohojazyčný true Logická hodnota, která umožňuje mít v datové sadě dokumenty ve více jazycích a při nasazení modelu můžete dotazovat model v libovolném podporovaném jazyce (nemusí nutně být součástí trénovacích dokumentů). Další informace o podpoře více jazyků najdete v podpoře jazyků. true
název vstupního kontejneru úložiště {CONTAINER-NAME Název kontejneru úložiště Azure, na který jste dokumenty nahráli. myContainer

Tento požadavek vrátí odpověď 201, což znamená, že se projekt vytvoří.

Tento požadavek vrátí chybu, pokud:

  • Vybraný prostředek nemá pro účet úložiště správná oprávnění.

Import projektu (REST API)

Pokud jste už data označili, můžete je použít k zahájení používání služby. Ujistěte se, že vaše označená data se řídí přijatými formáty dat.

Odešlete požadavek POST pomocí následující adresy URL, hlaviček a textu JSON pro import souboru štítků. Ujistěte se, že soubor štítků dodržuje akceptované formátování.

Pokud projekt se stejným názvem již existuje, nahradí se data tohoto projektu.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Zástupný symbol Hodnota Příklad
{ENDPOINT} Koncový bod pro ověření požadavku rozhraní API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Název projektu. U této hodnoty se rozlišují malá a velká písmena. myProject
{API-VERSION} Verze API, kterou používáte. Hodnota, na kterou odkazujeme, je určená pro nejnovější vydané verze. Další informace najdete v tématuŽivotní cyklus modelu. 2022-05-01

Hlavičky

K ověření požadavku použijte následující hlavičku.

Klíč Hodnota
Ocp-Apim-Subscription-Key Klíč k vašemu zdroji. Používá se k ověřování požadavků rozhraní API.

Text

V požadavku použijte následující kód JSON. Zástupné hodnoty nahraďte vlastními hodnotami.

{
    "projectFileVersion": "{API-VERSION}",
    "stringIndexType": "Utf16CodeUnit",
    "metadata": {
        "projectName": "{PROJECT-NAME}",
        "projectKind": "CustomEntityRecognition",
        "description": "Trying out custom NER",
        "language": "{LANGUAGE-CODE}",
        "multilingual": true,
        "storageInputContainerName": "{CONTAINER-NAME}",
        "settings": {}
    },
    "assets": {
    "projectKind": "CustomEntityRecognition",
        "entities": [
            {
                "category": "Entity1"
            },
            {
                "category": "Entity2"
            }
        ],
        "documents": [
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 500,
                        "labels": [
                            {
                                "category": "Entity1",
                                "offset": 25,
                                "length": 10
                            },
                            {
                                "category": "Entity2",
                                "offset": 120,
                                "length": 8
                            }
                        ]
                    }
                ]
            },
            {
                "location": "{DOCUMENT-NAME}",
                "language": "{LANGUAGE-CODE}",
                "dataset": "{DATASET}",
                "entities": [
                    {
                        "regionOffset": 0,
                        "regionLength": 100,
                        "labels": [
                            {
                                "category": "Entity2",
                                "offset": 20,
                                "length": 5
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
Klíč Zástupný symbol Hodnota Příklad
api-version {API-VERSION} Verze API, kterou používáte. Zde použitá verze musí být stejná verze rozhraní API v adrese URL. Další informace o dalších dostupných verzích rozhraní API 2022-03-01-preview
projectName {PROJECT-NAME} Název projektu. U této hodnoty se rozlišují malá a velká písmena. myProject
projectKind CustomEntityRecognition Druh vašeho projektu. CustomEntityRecognition
language {LANGUAGE-CODE} Řetězec určující kód jazyka pro dokumenty použité v projektu. Pokud je projekt vícejazyčný, zvolte kód jazyka většiny dokumentů. en-us
multilingual true Logická hodnota, která umožňuje mít v datové sadě dokumenty ve více jazycích a při nasazení modelu můžete dotazovat model v libovolném podporovaném jazyce (nemusí nutně být součástí trénovacích dokumentů). Informace o vícejazyčné podpoře najdete v podpoře jazyků. true
storageInputContainerName {CONTAINER-NAME} Název kontejneru úložiště Azure obsahujícího nahrané dokumenty. myContainer
entities Pole obsahující všechny typy entit, které máte v projektu, a extrahované z dokumentů.
documents Pole obsahující všechny dokumenty v projektu a seznam entit označených v rámci každého dokumentu []
location {DOCUMENT-NAME} Umístění dokumentů v úložném kontejneru. doc1.txt
dataset {DATASET} Testovací sada, do které bude tento soubor zařazen před trénováním. Další informace naleznete v tématuPostup trénování modelu. Možné hodnoty pro toto pole jsou Train a Test. Train

Po odeslání požadavku rozhraní API obdržíte 202 odpověď, která indikuje, že úloha byla odeslána správně. V hlavičce odpovědi extrahujte operation-location hodnotu. Tady je příklad formátu:

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}

{JOB-ID} slouží k identifikaci vašeho požadavku, protože tato operace je asynchronní. Pomocí této adresy URL získáte stav úlohy importu.

Možné chybové scénáře pro tento požadavek:

  • Vybraný prostředek nemá správná oprávnění pro účet úložiště.
  • Zadaná storageInputContainerName hodnota neexistuje.
  • Použije se neplatný kód jazyka nebo pokud typ kódu jazyka není řetězec.
  • multilingual hodnota je řetězec, nikoli logická hodnota.

Získání podrobností o projektu (REST API)

K získání podrobností o projektu použijte následující požadavek GET . Zástupné hodnoty nahraďte vlastními hodnotami.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}?api-version={API-VERSION}
Zástupný symbol Hodnota Příklad
{ENDPOINT} Koncový bod pro ověření požadavku rozhraní API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Název projektu. U této hodnoty se rozlišují malá a velká písmena. myProject
{API-VERSION} Verze API, kterou používáte. Další informace najdete v tématuŽivotní cyklus modelu. 2022-05-01

Hlavičky

K ověření požadavku použijte následující hlavičku.

Klíč Hodnota
Ocp-Apim-Subscription-Key Klíč k vašemu zdroji. Používá se k ověřování požadavků rozhraní API.

Tělo odpovědi

    {
        "createdDateTime": "2021-10-19T23:24:41.572Z",
        "lastModifiedDateTime": "2021-10-19T23:24:41.572Z",
        "lastTrainedDateTime": "2021-10-19T23:24:41.572Z",
        "lastDeployedDateTime": "2021-10-19T23:24:41.572Z",
        "projectKind": "CustomEntityRecognition",
        "storageInputContainerName": "{CONTAINER-NAME}",
        "projectName": "{PROJECT-NAME}",
        "multilingual": false,
        "description": "Project description",
        "language": "{LANGUAGE-CODE}"
    }
Hodnota Zástupný symbol Popis Příklad
projectKind CustomEntityRecognition Druh vašeho projektu. CustomEntityRecognition
storageInputContainerName {CONTAINER-NAME} Název kontejneru úložiště Azure pro nahrané dokumenty. myContainer
projectName {PROJECT-NAME} Název projektu. U této hodnoty se rozlišují malá a velká písmena. myProject
multilingual true Logická hodnota, která umožňuje mít v datové sadě dokumenty ve více jazycích a při nasazení modelu můžete dotazovat model v libovolném podporovaném jazyce (nemusí nutně být součástí trénovacích dokumentů). Další informace o podpoře více jazyků najdete v tématu Podpora jazyků. true
language {LANGUAGE-CODE} Řetězec určující kód jazyka pro dokumenty použité v projektu. Pokud je projekt vícejazyčný, zvolte kód jazyka pro většinu dokumentů. en-us

Po odeslání požadavku rozhraní API obdržíte 200 odpověď s informacemi o úspěchu a textu odpovědi JSON s podrobnostmi o projektu.

Odstranění projektu (REST API)

Pokud už projekt nepotřebujete, můžete ho odstranit pomocí následujícího požadavku DELETE . Zástupné hodnoty nahraďte vlastními hodnotami.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Zástupný symbol Hodnota Příklad
{ENDPOINT} Koncový bod pro ověření požadavku rozhraní API. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Název projektu. U této hodnoty se rozlišují malá a velká písmena. myProject
{API-VERSION} Verze API, kterou používáte. Hodnota, na kterou odkazujeme, je určená pro nejnovější vydané verze. Další informace najdete v tématuŽivotní cyklus modelu. 2022-05-01

Hlavičky

K ověření požadavku použijte následující hlavičku.

Klíč Hodnota
Ocp-Apim–Subscription-Key Klíč k vašemu zdroji. Používá se k ověřování požadavků rozhraní API.

Po odeslání požadavku rozhraní API obdržíte 202 odpověď označující úspěch, což znamená, že se váš projekt odstraní. Úspěšné volání vede k hlavičce Operation-Location, která se používá ke kontrole stavu úlohy.

Další kroky

  • Měli byste mít představu o schématu projektu , které používáte k označení dat.

  • Po vytvoření projektu můžete začít označovat data. Tento proces poskytuje vašemu modelu extrakce entit instrukce pro interpretaci textu a používá se k trénování a vyhodnocení.