Så här skapar du ett projekt med anpassad namngiven entitetsigenkänning (NER)

Använd den här artikeln om du vill lära dig hur du konfigurerar kraven för att börja med anpassad NER och skapa ett projekt.

Förutsättningar

Innan du börjar använda anpassad NER behöver du:

Skapa en språkresurs

Innan du börjar använda anpassad NER behöver du en Azure Language in Foundry Tools-resurs. Vi rekommenderar att du skapar språkresursen och ansluter ett lagringskonto till den i Azure-portalen. När du skapar en resurs i Azure-portalen kan du skapa ett Azure-lagringskonto samtidigt med alla nödvändiga behörigheter förkonfigurerade. Du kan också läsa mer i artikeln om du vill lära dig hur du använder en befintlig resurs och konfigurerar den så att den fungerar med anpassad namngiven entitetsigenkänning.

Du behöver också ett Azure Storage-konto där du laddar upp dina .txt dokument som används för att träna en modell för att extrahera entiteter.

Kommentar

  • Du måste ha en ägarroll tilldelad till resursgruppen för att skapa en språkresurs.
  • Om du ansluter ett befintligt lagringskonto, bör en ägarroll tilldelas till dig.

Skapa språkresurs och ansluta lagringskonto

Du kan skapa en resurs på följande sätt:

  • Azure-portalen
  • PowerShell

Kommentar

Du bör inte flytta lagringskontot till en annan resursgrupp eller prenumeration när det är länkat till Azure Language-resursen.

Skapa en ny resurs från Azure Portal

  1. Logga in på Azure-portalen för att skapa en ny Azure Language in Foundry Tools-resurs.

  2. I fönstret som visas väljer du Anpassad textklassificering och anpassad namngiven entitetsigenkänning från de anpassade funktionerna. Välj Fortsätt för att skapa resursen längst ned på skärmen.

    En skärmbild som visar anpassad textklassificering och anpassad namngiven entitetsigenkänning i Azure Portal.

  3. Skapa en språkresurs med följande information.

    Namn beskrivning
    Prenumeration Din Azure-prenumeration.
    Resursgrupp En resursgrupp som innehåller din resurs. Du kan använda en befintlig eller skapa en ny.
    Region Språkresursens region. Till exempel "West US 2".
    Namn Ett namn på resursen.
    Prisnivå Prisnivån för din språkresurs. Du kan använda nivån Kostnadsfri (F0) för att prova tjänsten.

    Kommentar

    Om du får ett meddelande om att ditt inloggningskonto inte är ägare till det valda lagringskontots resursgrupp måste ditt konto ha en ägarroll tilldelad till resursgruppen innan du kan skapa en Språkresurs. Kontakta din Azure-prenumerationsägare om du vill ha hjälp.

  4. I avsnittet Anpassad textklassificering och anpassad namngiven entitetsigenkänning väljer du ett befintligt lagringskonto eller väljer Nytt lagringskonto. Dessa värden hjälper dig att komma igång och inte nödvändigtvis de lagringskontovärden som du vill använda i produktionsmiljöer. För att undvika svarstider när du skapar projektet ansluter du till lagringskonton i samma region som språkresursen.

    Lagringskontovärde Rekommenderat värde
    Lagringskontonamn Valfritt namn
    Typ av lagringskonto Standard lokalt redundant lagring (LRS)
  5. Kontrollera att meddelandet om ansvarsfull AI är markerat. Välj Granska + skapa längst ned på sidan och välj sedan Skapa.

Skapa en ny språkresurs med PowerShell

Du kan skapa en ny resurs och ett lagringskonto med hjälp av följande CLI-mall- och parameterfiler som finns på GitHub.

Redigera följande värden i parameterfilen:

Parameternamn Värdebeskrivning
name Namnet på språkresursen
location Region där resursen finns. Mer information finns i Tjänstbegränsningar.
sku Prisnivå för din resurs.
storageResourceName Namnet på ditt lagringskonto
storageLocation Region där ditt lagringskonto finns.
storageSkuType SKU för ditt lagringskonto.
storageResourceGroupName Resursgrupp för ditt lagringskonto

Använd följande PowerShell-kommando för att distribuera Azure Resource Manager-mallen (ARM) med de filer som du redigerade.

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

Mer information om hur du distribuerar mallar och parameterfiler finns i dokumentationen för ARM-mallar.

Kommentar

  • Processen att ansluta ett lagringskonto till din språkresurs är oåterkallelig. Det kan inte kopplas från senare.
  • Du kan bara ansluta språkresursen till ett lagringskonto.

Använda en befintlig språkresurs

Du kan använda en befintlig språkresurs för att komma igång med anpassad NER så länge den här resursen uppfyller kraven nedan:

Krav beskrivning
Regioner Kontrollera att din befintliga resurs har etablerats i en av de regioner som stöds. Annars måste du skapa en ny resurs i någon av dessa regioner.
Prisnivå Läs mer om prisnivåer som stöds.
Hanterad identitet Kontrollera att resursens inställning för hanterad identitet är aktiverad. Annars läser du nästa avsnitt.

Om du vill använda anpassad namngiven entitetsigenkänning måste du skapa ett Azure Storage-konto om du inte redan har ett.

Aktivera identitetshantering för din resurs

Språkresursen måste ha identitetshantering för att aktivera den med hjälp av Azure Portal:

  1. Gå till språkresursen
  2. I den vänstra menyn går du till avsnittet Resurshantering och väljer Identitet
  3. Från fliken Systemtilldelat ser du till att ange Status till

Aktivera funktionen för anpassad namngiven entitetsigenkänning

Se till att aktivera funktionen Anpassad textklassificering/anpassad namngiven entitetsigenkänning från Azure Portal.

  1. Gå till språkresursen i Azure Portal.
  2. På menyn till vänster går du till avsnittet Resurshantering och väljer Funktioner.
  3. Aktivera anpassad textklassificering/funktion för anpassad namngiven entitetsigenkänning .
  4. Anslut ditt lagringskonto.
  5. Välj Använd.

Viktigt!

Se till att användaren som gör ändringar har rollen lagringsblobdatadeltagare tilldelad till sig.

Lägga till nödvändiga roller

Använd följande steg för att ange de roller som krävs för språkresursen och lagringskontot.

En animerad bild som visar hur du anger roller i Azure Portal.

Roller för azure-språket i Foundry Tools-resursen

  1. Gå till lagringskontot eller språkresursen i Azure Portal.

  2. Välj Åtkomstkontroll (IAM) i den vänstra rutan.

  3. Välj Lägg till för att lägga till rolltilldelningar och välj lämplig roll för ditt konto.

    Du bör ha rollen ägare eller deltagare tilldelad på din språkresurs.

  4. I Tilldela åtkomst till väljer du Användare, grupp eller tjänstens huvudnamn

  5. Välj Välj medlemmar

  6. Välj ditt användarnamn. Du kan söka efter användarnamn i fältet Välj . Upprepa detta för alla roller.

  7. Upprepa de här stegen för alla användarkonton som behöver åtkomst till den här resursen.

Roller för ditt lagringskonto

  1. Gå till lagringskontosidan i Azure Portal.
  2. Välj Åtkomstkontroll (IAM) i den vänstra rutan.
  3. Välj Lägg till för att lägga till rolltilldelningar och välj rollen Lagringsblobdatadeltagare för lagringskontot.
  4. I Tilldela åtkomst till väljer du Hanterad identitet.
  5. Välj Välj medlemmar
  6. Välj din prenumeration och Språk som hanterad identitet. Du kan söka efter användarnamn i fältet Välj .

Roller för din användare

Viktigt!

Om du hoppar över det här steget får du ett 403-fel när du försöker ansluta till ditt anpassade projekt. Det är viktigt att den aktuella användaren har den här rollen för åtkomst till lagringskontots blobdata, även om du är ägare till lagringskontot.

  1. Gå till lagringskontosidan i Azure Portal.
  2. Välj Åtkomstkontroll (IAM) i den vänstra rutan.
  3. Välj Lägg till för att lägga till rolltilldelningar och välj rollen Lagringsblobdatadeltagare för lagringskontot.
  4. I Tilldela åtkomst till väljer du Användare, grupp eller tjänstens huvudnamn.
  5. Välj Välj medlemmar
  6. Välj din användare. Du kan söka efter användarnamn i fältet Välj .

Viktigt!

Om du har ett virtuellt nätverk eller en privat slutpunkt måste du välja Tillåt att Azure-tjänster i listan över betrodda tjänster får åtkomst till det här lagringskontot i Azure Portal.

Aktivera CORS för ditt lagringskonto

Se till att tillåta metoder (GET, PUT, DELETE) när du aktiverar CORS (Cross-Origin Resource Sharing). Ange fältet tillåtet ursprung till https://language.cognitive.azure.com. Tillåt alla sidhuvuden genom att lägga * till i de tillåtna rubrikvärdena och ange den maximala åldern till 500.

En skärmbild som visar hur du använder CORS för lagringskonton.

Skapa ett anpassat projekt för entitetsigenkänning (REST API)

När resursen och lagringscontainern har konfigurerats skapar du ett nytt anpassat NER-projekt. Ett projekt är ett arbetsområde för att skapa anpassade AI-modeller baserat på dina data. Endast du kan komma åt projektet tillsammans med andra som har åtkomst till den Azure-resurs som används. Om du har etiketterat data kan du använda dem för att komma igång genom att importera ett projekt.

Om du vill börja skapa en anpassad namngiven entitetsigenkänningsmodell måste du skapa ett projekt. När du skapar ett projekt kan du märka data, träna, utvärdera, förbättra och distribuera dina modeller.

Kommentar

Projektnamnet är skiftlägeskänsligt för alla operationer.

Skapa en PATCH-begäran med hjälp av följande URL, rubriker och JSON-brödtext för att skapa projektet.

Begärans-URL

Använd följande URL för att skapa ett projekt. Ersätt följande platshållare med dina egna värden.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Platshållare Värde Exempel
{ENDPOINT} Slutpunkten för att autentisera din API-begäran. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Namnet på projektet. Det här värdet är skiftlägeskänsligt. myProject
{API-VERSION} Den version av API:et som du anropar. Det värde som refereras är för den senaste versionen. Mer information finns i Modelllivscykel. 2022-05-01

Förfrågningsrubriker

Använd följande rubrik för att autentisera din begäran.

Nyckel Krävs Typ Värde
Ocp-Apim-Subscription-Key Sann snöre Nyckeln till resursen. Används för att autentisera dina API-begäranden.
Content-Type Sann snöre application/merge-patch+json

begäranens innehåll

Använd följande JSON i din begäran. Ersätt följande platshållare med dina egna värden.

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

Nyckel Platshållare Värde Exempel
projektnamn {PROJECT-NAME} Namnet på projektet. Det här värdet är skiftlägeskänsligt. myProject
språk {LANGUAGE-CODE} En sträng som anger språkkoden för de dokument som används i projektet. Om projektet är ett flerspråkigt projekt väljer du koden för det språk som oftast representeras i dokumenten. Mer information om språkkoder som stöds finns i språkstöd . en-us
projectKind CustomEntityRecognition Typ av ditt projekt. CustomEntityRecognition
flerspråkig true Ett booleskt värde som gör att du kan ha dokument på flera språk i datauppsättningen och när din modell distribueras kan du fråga modellen på alla språk som stöds (inte nödvändigtvis i dina träningsdokument). Mer information om flerspråkig support finns i språkstöd . true
storageInputContainerNamn {CONTAINER-NAME Namnet på din Azure Storage-container som dokumenten laddades upp. myContainer

Den här begäran returnerar ett 201-svar, vilket innebär att projektet skapas.

Den här begäran returnerar ett fel om:

  • Den valda resursen har inte rätt behörighet för lagringskontot.

Importera projekt (REST API)

Om du redan har etiketterat data kan du använda dem för att komma igång med tjänsten. Kontrollera att dina etiketterade data följer de godkända dataformaten.

Skicka en POST-begäran med hjälp av följande URL, rubriker och JSON-brödtext för att importera din etikettfil. Kontrollera att din etikettfil följer det godkända formatet.

Om det redan finns ett projekt med samma namn ersätts data för projektet.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
Platshållare Värde Exempel
{ENDPOINT} Slutpunkten för att autentisera din API-begäran. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Namnet på projektet. Det här värdet är skiftlägeskänsligt. myProject
{API-VERSION} Den version av API:et som du anropar. Värdet som refereras här är för den senaste versionen som släppts. Mer information finns iModelllivscykel. 2022-05-01

Sidhuvuden

Använd följande rubrik för att autentisera din begäran.

Nyckel Värde
Ocp-Apim-Subscription-Key Nyckeln till resursen. Används för att autentisera dina API-begäranden.

Kropp

Använd följande JSON i din begäran. Ersätt platshållarvärdena med dina egna värden.

{
    "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
                            }
                        ]
                    }
                ]
            }
        ]
    }
}
Nyckel Platshållare Värde Exempel
api-version {API-VERSION} Den version av API:et som du anropar. Den version som används här måste vara samma API-version i URL:en. Läs mer om andra tillgängliga API-versioner 2022-03-01-preview
projectName {PROJECT-NAME} Namnet på projektet. Det här värdet är skiftlägeskänsligt. myProject
projectKind CustomEntityRecognition Typ av ditt projekt. CustomEntityRecognition
language {LANGUAGE-CODE} En sträng som anger språkkoden för de dokument som används i projektet. Om projektet är ett flerspråkigt projekt väljer du språkkoden för de flesta dokument. en-us
multilingual true Ett booleskt värde som gör att du kan ha dokument på flera språk i datauppsättningen och när din modell distribueras kan du fråga modellen på alla språk som stöds (inte nödvändigtvis i dina träningsdokument. Mer information om flerspråkig support finns i språkstöd . true
storageInputContainerName {CONTAINER-NAME} Namnet på din Azure Storage-container som innehåller dina uppladdade dokument. myContainer
entities Matris som innehåller alla entitetstyper som du har i projektet och som extraherats från dina dokument.
documents Matris som innehåller alla dokument i projektet och en lista över de entiteter som är märkta i varje dokument. []
location {DOCUMENT-NAME} Platsen för dokumenten i lagringscontainern. doc1.txt
dataset {DATASET} Testuppsättningen som denna fil går till när den delas upp innan träning. Mer information finns iTräna en modell. Möjliga värden för det här fältet är Train och Test. Train

När du har skickat din API-begäran får du ett 202 svar som anger att jobbet har skickats korrekt. Extrahera operation-location-värdet från svarshuvudena. Här är ett exempel på formatet:

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

{JOB-ID} används för att identifiera din begäran, eftersom den här åtgärden är asynkron. Du använder den här URL:en för att hämta status för importjobbet.

Möjliga felscenarier för den här begäran:

  • Den valda resursen har inte rätt behörigheter för lagringskontot.
  • Den storageInputContainerName angivna finns inte.
  • Ogiltig språkkod används, eller om språkkodtypen inte är sträng.
  • multilingual värdet är en sträng och inte ett booleskt värde.

Hämta projektinformation (REST API)

Använd följande GET-begäran för att hämta projektinformationen. Ersätt platshållarvärdena med dina egna värden.

{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}?api-version={API-VERSION}
Platshållare Värde Exempel
{ENDPOINT} Slutpunkten för att autentisera din API-begäran. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Namnet på projektet. Det här värdet är skiftlägeskänsligt. myProject
{API-VERSION} Den version av API:et som du anropar. Mer information finns iModelllivscykel. 2022-05-01

Sidhuvuden

Använd följande rubrik för att autentisera din begäran.

Nyckel Värde
Ocp-Apim-Subscription-Key Nyckeln till resursen. Används för att autentisera dina API-begäranden.

Svarskropp

    {
        "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}"
    }
Värde Platshållare beskrivning Exempel
projectKind CustomEntityRecognition Typ av ditt projekt. CustomEntityRecognition
storageInputContainerName {CONTAINER-NAME} Namnet på din Azure Storage-container för dina uppladdade dokument. myContainer
projectName {PROJECT-NAME} Namnet på projektet. Det här värdet är skiftlägeskänsligt. myProject
multilingual true Ett booleskt värde som gör att du kan ha dokument på flera språk i datauppsättningen och när din modell distribueras kan du fråga modellen på alla språk som stöds (inte nödvändigtvis i dina träningsdokument. Mer information om flerspråkig support finns i Språkstöd. true
language {LANGUAGE-CODE} En sträng som anger språkkoden för de dokument som används i projektet. Om projektet är ett flerspråkigt projekt väljer du språkkoden för de flesta dokumenten. en-us

När du har skickat din API-begäran får du ett 200 svar som anger att det lyckades och en JSON-svarsstruktur med dina projektuppgifter.

Ta bort projekt (REST API)

När du inte längre behöver projektet kan du ta bort det med följande DELETE-begäran . Ersätt platshållarvärdena med dina egna värden.

{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
Platshållare Värde Exempel
{ENDPOINT} Slutpunkten för att autentisera din API-begäran. https://<your-custom-subdomain>.cognitiveservices.azure.com
{PROJECT-NAME} Namnet på projektet. Det här värdet är skiftlägeskänsligt. myProject
{API-VERSION} Den version av API:et som du anropar. Värdet som refereras är för den senaste versionen som släppts. Mer information finns iModelllivscykel. 2022-05-01

Sidhuvuden

Använd följande rubrik för att autentisera din begäran.

Nyckel Värde
Ocp-Apim–Subscription-Key Nyckeln till resursen. Används för att autentisera dina API-begäranden.

När du har skickat din API-begäran får du ett 202 svar som anger att projektet har slutförts, vilket innebär att projektet tas bort. Ett lyckat anrop resulterar i en Operation-Location-huvudruta som används för att kontrollera statusen för jobbet.

Nästa steg

  • Du bör ha en uppfattning om det projektschema som du använder för att märka dina data.

  • När projektet har skapats kan du börja märka dina data. Den här processen informerar din entitetsextraheringsmodell om hur du tolkar text och används för träning och utvärdering.