Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Skorzystaj z tego artykułu, aby dowiedzieć się, jak skonfigurować wymagania dotyczące rozpoczynania od niestandardowej klasyfikacji tekstu i tworzenia projektu.
Wymagania wstępne
Przed rozpoczęciem korzystania z niestandardowej klasyfikacji tekstu potrzebne są następujące elementy:
- Subskrypcja platformy Azure — utwórz bezpłatnie.
Tworzenie zasobu języka
Przed rozpoczęciem korzystania z niestandardowej klasyfikacji tekstu potrzebny jest zasób języka platformy Azure w narzędziach Foundry. Zalecamy utworzenie zasobu Language i połączenie z nim konta magazynu w portalu Azure. Utworzenie zasobu w witrynie Azure Portal umożliwia jednoczesne utworzenie konta usługi Azure Storage ze wszystkimi wymaganymi uprawnieniami wstępnie skonfigurowanymi. Możesz również przeczytać więcej w artykule, aby dowiedzieć się, jak używać istniejącego zasobu i skonfigurować go do pracy z niestandardową klasyfikacją tekstu.
Potrzebne jest również konto usługi Azure Storage, do której można przesłać .txt dokumenty używane do trenowania modelu do klasyfikowania tekstu.
Uwaga
- Aby utworzyć zasób języka, musisz mieć przypisaną rolę właściciela w grupie zasobów.
- Jeśli łączysz istniejące konto magazynu, powinna być przypisana rola właściciela.
Tworzenie zasobu języka i łączenie konta magazynu
Uwaga
Nie należy przenosić konta magazynu do innej grupy zasobów lub subskrypcji po połączeniu z zasobem Azure Language.
Tworzenie nowego zasobu w witrynie Azure Portal
Przejdź do Azure portal, aby utworzyć nowy zasób "Azure Language in Foundry Tools".
W wyświetlonym oknie wybierz pozycję Niestandardowa klasyfikacja tekstu i niestandardowe rozpoznawanie nazwanych jednostek z funkcji niestandardowych. Wybierz pozycję Kontynuuj, aby utworzyć zasób w dolnej części ekranu.
Utwórz zasób języka, postępując zgodnie z poniższymi szczegółami.
Nazwisko Wartość wymagana Subskrypcja Swoją subskrypcję platformy Azure. Grupa zasobów Grupa zasobów, która będzie zawierać zasób. Możesz użyć istniejącej lub utworzyć nową. Region (Region) Jeden z obsługiwanych regionów. Na przykład "Zachodnie stany USA 2". Nazwisko Nazwa zasobu. Warstwa cenowa Jedna z obsługiwanych warstw cenowych. Aby wypróbować usługę, możesz użyć warstwy Bezpłatna (F0). Jeśli zostanie wyświetlony komunikat "Twoje konto logowania nie jest właścicielem wybranej grupy zasobów konta magazynu", twoje konto musi mieć przypisaną rolę właściciela w grupie zasobów, zanim będzie można utworzyć zasób językowy. Skontaktuj się z właścicielem subskrypcji platformy Azure, aby uzyskać pomoc.
Możesz określić właściciela subskrypcji platformy Azure, wyszukując grupę zasobów i korzystając z linku do skojarzonej subskrypcji. Następnie:
- Wybierz kartę Kontrola dostępu (Zarządzanie dostępem i tożsamościami)
- Wybieranie przypisań ról
- Filtruj według roli:właściciel.
W sekcji Niestandardowa klasyfikacja tekstu i niestandardowe rozpoznawanie nazwanych jednostek wybierz istniejące konto magazynu lub wybierz pozycję Nowe konto magazynu. Należy pamiętać, że te wartości ułatwiają rozpoczęcie pracy, a niekoniecznie wartości konta magazynu, których chcesz użyć w środowiskach produkcyjnych. Aby uniknąć opóźnień podczas kompilowania projektu, połącz się z kontami magazynu w tym samym regionie co zasób języka.
Wartość konta magazynu Zalecana wartość Nazwa konta magazynu Dowolna nazwa Typ konta magazynowania Standardowa LRS Upewnij się, że zaznaczono powiadomienie o odpowiedzialnej sztucznej inteligencji . Wybierz pozycję Przejrzyj i utwórz w dolnej części strony.
Uwaga
- Proces łączenia konta przechowywania z zasobem Language jest nieodwracalny — nie można go później odłączyć.
- Zasób językowy można połączyć tylko z jednym kontem magazynu.
Korzystanie z istniejącego zasobu języka
| Wymaganie | opis |
|---|---|
| Regiony | Upewnij się, że istniejący zasób jest aprowizowany w jednym z obsługiwanych regionów. Jeśli nie masz zasobu, musisz utworzyć nowy w obsługiwanym regionie. |
| Warstwa cenowa | Warstwa cenowa zasobu. |
| Tożsamość zarządzana | Upewnij się, że ustawienie tożsamości zarządzanej zasobu jest włączone. W przeciwnym razie przeczytaj następną sekcję. |
Aby użyć niestandardowej klasyfikacji tekstu, musisz utworzyć konto usługi Azure Storage, jeśli jeszcze go nie masz.
Włączanie zarządzania tożsamościami dla zasobu
Aby umożliwić korzystanie z witryny Azure Portal, zasób języka musi mieć zarządzanie tożsamościami:
- Przejdź do zasobu Language
- W menu po lewej stronie w sekcji Zarządzanie zasobami wybierz pozycję Tożsamość
- Na karcie Przypisane przez system upewnij się, że ustawiono opcję Stan na Włączone
Włączanie niestandardowej funkcji klasyfikacji tekstu
Upewnij się, że w witrynie Azure Portal włączono funkcję niestandardowej klasyfikacji tekstu/niestandardowego rozpoznawania nazwanych jednostek.
- Przejdź do zasobu language w witrynie Azure Portal
- W menu po lewej stronie w sekcji Zarządzanie zasobami wybierz pozycję Funkcje
- Włączanie niestandardowej klasyfikacji tekstu/niestandardowej funkcji rozpoznawania nazwanych jednostek
- Łączenie konta magazynu
- Wybierz Zastosuj
Ważne
- Upewnij się, że zasób języka ma przypisaną rolę współautora danych obiektu blob magazynu na połączonym koncie magazynu.
Ustaw role dla zasobów językowych Azure i konta magazynu
Wykonaj poniższe kroki, aby ustawić wymagane role dla zasobu języka i konta magazynu.
Role dla zasobu Azure Language w Foundry Tools
Przejdź do swojego konta magazynu lub zasobu językowego w witrynie Azure Portal.
Wybierz pozycję Kontrola dostępu (IAM) w panelu po lewej stronie.
Wybierz pozycję Dodaj, aby dodać przypisania ról, a następnie wybierz odpowiednią rolę dla twojego konta.
Musisz mieć przypisaną rolę właściciela lub współautora w zasobie Język.
W obszarze Przypisz dostęp do wybierz pozycję Użytkownik, grupa lub jednostka usługi
Wybierz pozycję Wybierz członków
Wybierz nazwę użytkownika. Nazwy użytkowników można wyszukać w polu Wybierz . Powtórz to dla wszystkich ról.
Powtórz te kroki dla wszystkich kont użytkowników, które potrzebują dostępu do tego zasobu.
Role dla konta magazynu
- Przejdź do strony konta magazynu w witrynie Azure Portal.
- Wybierz pozycję Kontrola dostępu (IAM) w panelu po lewej stronie.
- Wybierz pozycję Dodaj, aby dodać przypisania ról, a następnie wybierz rolę Współautor danych obiektu blob usługi Storage na koncie magazynu.
- W obszarze Przypisz dostęp do wybierz pozycję Tożsamość zarządzana.
- Wybierz pozycję Wybierz członków
- Wybierz swoją subskrypcję i język jako tożsamość zarządzaną. Nazwy użytkowników można wyszukać w polu Wybierz .
Ważne
Jeśli masz sieć wirtualną lub prywatny punkt końcowy, wybierz pozycję Zezwalaj usługom platformy Azure na liście zaufanych usług, aby uzyskać dostęp do tego konta magazynu w witrynie Azure Portal.
Włączanie mechanizmu CORS dla konta magazynu
Upewnij się, że metody (GET, PUT, DELETE) są dozwolone podczas włączania współużytkowania zasobów między źródłami (CORS).
Ustaw pole dozwolonych źródeł na https://language.cognitive.azure.comwartość . Zezwalaj na wszystkie nagłówki przez dodanie * do dozwolonych wartości nagłówka i ustaw maksymalny wiek na 500wartość .
Tworzenie niestandardowego projektu klasyfikacji tekstu (interfejs API REST)
Po skonfigurowaniu zasobu i kontenera magazynu utwórz nowy niestandardowy projekt klasyfikacji tekstu. Projekt to obszar roboczy umożliwiający tworzenie niestandardowych modeli sztucznej inteligencji na podstawie danych. Projekt jest dostępny tylko dla Ciebie i innych osób, które mają dostęp do używanego zasobu platformy Azure. Jeśli dane zostały oznaczone etykietą, możesz je zaimportować , aby rozpocząć pracę.
Aby rozpocząć tworzenie niestandardowego modelu klasyfikacji tekstu, należy utworzyć projekt. Tworzenie projektu umożliwia etykietowanie danych, trenowanie, ocenianie, ulepszanie i wdrażanie modeli.
Uwaga
Nazwa projektu uwzględnia wielkość liter dla wszystkich operacji.
Utwórz żądanie PATCH przy użyciu następującego adresu URL, nagłówków i treści JSON, aby utworzyć projekt.
Adres URL żądania
Użyj następującego adresu URL, aby utworzyć projekt. Zastąp wartości symboli zastępczych własnymi wartościami.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
| Symbol zastępczy | Wartość | Przykład |
|---|---|---|
{ENDPOINT} |
Punkt końcowy do uwierzytelniania żądania interfejsu API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. | myProject |
{API-VERSION} |
Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Zobacz Cykl życia modelu, aby dowiedzieć się więcej o innych dostępnych wersjach interfejsu API. | 2022-05-01 |
Nagłówki
Użyj następującego nagłówka, aby uwierzytelnić żądanie.
| Key | Wartość |
|---|---|
Ocp-Apim-Subscription-Key |
Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API. |
Treść
Użyj następującego kodu JSON w żądaniu. Zastąp wartości symboli zastępczych własnymi wartościami.
{
"projectName": "{PROJECT-NAME}",
"language": "{LANGUAGE-CODE}",
"projectKind": "customMultiLabelClassification",
"description": "Project description",
"multilingual": "True",
"storageInputContainerName": "{CONTAINER-NAME}"
}
| Key | Symbol zastępczy | Wartość | Przykład |
|---|---|---|---|
| projectName | {PROJECT-NAME} |
Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. | myProject |
| język | {LANGUAGE-CODE} |
Ciąg określający kod języka dokumentów używanych w projekcie. Jeśli projekt jest projektem wielojęzycznym, wybierz kod języka większości dokumentów. Zobacz Obsługa języka, aby dowiedzieć się więcej na temat obsługiwanych kodów języków. | en-us |
| projectKind | customMultiLabelClassification |
Rodzaj projektu. | customMultiLabelClassification |
| wielojęzyczny | true |
Wartość logiczna, która umożliwia posiadanie dokumentów w wielu językach w zestawie danych, a po wdrożeniu modelu można wykonywać zapytania względem modelu w dowolnym obsługiwanym języku (niekoniecznie zawarte w dokumentach szkoleniowych. Zobacz Obsługa języków, aby dowiedzieć się więcej o obsłudze wielojęzycznej. | true |
| storageInputContainerName | {CONTAINER-NAME} |
Nazwa kontenera usługi Azure Storage dla przekazanych dokumentów. | myContainer |
To żądanie zwraca odpowiedź 201, co oznacza, że projekt został utworzony.
To żądanie zwraca błąd, jeśli:
- Wybrany zasób nie ma odpowiednich uprawnień dla konta magazynu.
Importowanie niestandardowego projektu klasyfikacji tekstu (interfejs API REST)
Jeśli dane są już oznaczone, możesz ich użyć, aby rozpocząć korzystanie z usługi. Upewnij się, że dane oznaczone etykietami są zgodne z akceptowanymi formatami danych.
Prześlij żądanie POST przy użyciu następującego adresu URL, nagłówków i treści JSON, aby zaimportować plik etykiet. Upewnij się, że plik etykiet jest zgodne z akceptowanym formatem.
Jeśli projekt o tej samej nazwie już istnieje, dane tego projektu zostaną zastąpione.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
| Symbol zastępczy | Wartość | Przykład |
|---|---|---|
{ENDPOINT} |
Punkt końcowy do uwierzytelniania żądania interfejsu API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. | myProject |
{API-VERSION} |
Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Dowiedz się więcej o innych dostępnych wersjach interfejsu API | 2022-05-01 |
Nagłówki
Użyj następującego nagłówka, aby uwierzytelnić żądanie.
| Key | Wartość |
|---|---|
Ocp-Apim-Subscription-Key |
Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API. |
Treść
Użyj następującego kodu JSON w żądaniu. Zastąp wartości symboli zastępczych własnymi wartościami.
{
"projectFileVersion": "{API-VERSION}",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectName": "{PROJECT-NAME}",
"storageInputContainerName": "{CONTAINER-NAME}",
"projectKind": "customMultiLabelClassification",
"description": "Trying out custom multi label text classification",
"language": "{LANGUAGE-CODE}",
"multilingual": true,
"settings": {}
},
"assets": {
"projectKind": "customMultiLabelClassification",
"classes": [
{
"category": "Class1"
},
{
"category": "Class2"
}
],
"documents": [
{
"location": "{DOCUMENT-NAME}",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"classes": [
{
"category": "Class1"
},
{
"category": "Class2"
}
]
},
{
"location": "{DOCUMENT-NAME}",
"language": "{LANGUAGE-CODE}",
"dataset": "{DATASET}",
"classes": [
{
"category": "Class2"
}
]
}
]
}
}
| Key | Symbol zastępczy | Wartość | Przykład |
|---|---|---|---|
| api-version | {API-VERSION} |
Wersja wywoływanego interfejsu API. Używana tutaj wersja musi być tą samą wersją interfejsu API w adresie URL. Dowiedz się więcej o innych dostępnych wersjach interfejsu API | 2022-05-01 |
| projectName | {PROJECT-NAME} |
Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. | myProject |
| projectKind | customMultiLabelClassification |
Rodzaj projektu. | customMultiLabelClassification |
| język | {LANGUAGE-CODE} |
Ciąg określający kod języka dokumentów używanych w projekcie. Jeśli projekt jest wielojęzycznym projektem, wybierz kod języka dla większości dokumentów. Zobacz Obsługa języków, aby dowiedzieć się więcej o obsłudze wielojęzycznej. | en-us |
| wielojęzyczny | true |
Wartość logiczna, która umożliwia posiadanie dokumentów w wielu językach w zestawie danych, a po wdrożeniu modelu można wykonywać zapytania względem modelu w dowolnym obsługiwanym języku (niekoniecznie zawarte w dokumentach szkoleniowych. Zobacz Obsługa języków, aby dowiedzieć się więcej o obsłudze wielojęzycznej. | true |
| storageInputContainerName | {CONTAINER-NAME} |
Nazwa kontenera usługi Azure Storage dla przekazanych dokumentów. | myContainer |
| obiektów | [] | Tablica zawierająca wszystkie klasy, które znajdują się w projekcie. | [] |
| documents | [] | Tablica zawierająca wszystkie dokumenty w projekcie i klasy oznaczone dla tego dokumentu. | [] |
| lokalizacja | {DOCUMENT-NAME} |
Lokalizacja dokumentów w kontenerze magazynu. Ponieważ wszystkie dokumenty znajdują się w katalogu głównym kontenera, powinna to być nazwa dokumentu. | doc1.txt |
| zestaw danych | {DATASET} |
Zestaw testowy, do którego trafia ten dokument, gdy jest dzielony przed szkoleniem. Zobacz jak wytrenować model. Możliwe wartości dla tego pola to Train i Test. |
Train |
Po wysłaniu żądania interfejsu API otrzymasz odpowiedź wskazującą 202 , że zadanie zostało przesłane poprawnie. W nagłówkach odpowiedzi wyodrębnij operation-location wartość sformatowaną w następujący sposób:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID} służy do identyfikowania żądania, ponieważ ta operacja jest asynchroniczna. Ten adres URL służy do pobierania stanu zadania importu.
Możliwe scenariusze błędów dla tego żądania:
- Wybrany zasób nie ma odpowiednich uprawnień dla konta magazynu.
- Określona
storageInputContainerNamewartość nie istnieje. - Jest używany nieprawidłowy kod języka lub jeśli typ kodu języka nie jest ciągiem.
-
multilingualwartość jest ciągiem, a nie wartością logiczną.
Pobieranie szczegółów projektu (interfejs API REST)
Aby uzyskać niestandardowe szczegóły projektu klasyfikacji tekstu, prześlij żądanie GET przy użyciu następującego adresu URL i nagłówków. Zastąp wartości symboli zastępczych własnymi wartościami.
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Symbol zastępczy | Wartość | Przykład |
|---|---|---|
{ENDPOINT} |
Punkt końcowy do uwierzytelniania żądania interfejsu API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. | myProject |
{API-VERSION} |
Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wydanej wersji modelu. | 2022-05-01 |
Nagłówki
Użyj następującego nagłówka, aby uwierzytelnić żądanie.
| Key | Wartość |
|---|---|
Ocp-Apim-Subscription-Key |
Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API. |
Treść odpowiedzi
Po wysłaniu żądania otrzymasz następującą odpowiedź.
{
"createdDateTime": "2022-04-23T13:39:09.384Z",
"lastModifiedDateTime": "2022-04-23T13:39:09.384Z",
"lastTrainedDateTime": "2022-04-23T13:39:09.384Z",
"lastDeployedDateTime": "2022-04-23T13:39:09.384Z",
"projectKind": "customSingleLabelClassification",
"storageInputContainerName": "{CONTAINER-NAME}",
"projectName": "{PROJECT-NAME}",
"multilingual": true,
"description": "Project description",
"language": "{LANGUAGE-CODE}"
}
| Wartość | symbol zastępczy | opis | Przykład |
|---|---|---|---|
projectKind |
customSingleLabelClassification |
Rodzaj projektu. | Może to być customSingleLabelClassification wartość lub customMultiLabelClassification. |
storageInputContainerName |
{CONTAINER-NAME} |
Nazwa kontenera usługi Azure Storage dla przekazanych dokumentów. | myContainer |
projectName |
{PROJECT-NAME} |
Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. | myProject |
multilingual |
Wartość logiczna, która umożliwia posiadanie dokumentów w wielu językach w zestawie danych. Po wdrożeniu modelu można wykonywać zapytania dotyczące modelu w dowolnym obsługiwanym języku (niekoniecznie zawarte w dokumentach szkoleniowych). Aby uzyskać więcej informacji na temat obsługi wielojęzycznej, zobacz obsługa języków. | true |
|
language |
{LANGUAGE-CODE} |
Ciąg określający kod języka dokumentów używanych w projekcie. Jeśli projekt jest wielojęzycznym projektem, wybierz kod języka dla większości dokumentów. Zobacz Obsługa języka, aby dowiedzieć się więcej na temat obsługiwanych kodów języków. | en-us |
Po wysłaniu żądania API otrzymasz odpowiedź 200 wskazującą powodzenie oraz treść odpowiedzi JSON ze szczegółami projektu.
Usuwanie projektu (interfejs API REST)
Jeśli projekt nie jest już potrzebny, możesz go usunąć za pomocą następującego żądania DELETE . Zastąp wartości symboli zastępczych własnymi wartościami.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
| Symbol zastępczy | Wartość | Przykład |
|---|---|---|
{ENDPOINT} |
Punkt końcowy do uwierzytelniania żądania interfejsu API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Nazwa projektu. Ta wartość jest uwzględniana w wielkości liter. | myProject |
{API-VERSION} |
Wersja wywoływanego interfejsu API. Wartość, do których odwołuje się, dotyczy najnowszej wersji wydanej. Dowiedz się więcej o innych dostępnych wersjach interfejsu API | 2022-05-01 |
Nagłówki
Użyj następującego nagłówka, aby uwierzytelnić żądanie.
| Key | Wartość |
|---|---|
| Ocp-Apim-Subscription-Key | Klucz do zasobu. Służy do uwierzytelniania żądań interfejsu API. |
Po wysłaniu żądania API otrzymasz odpowiedź wskazującą 202 powodzenie, co oznacza, że projekt został usunięty. Wyniki pomyślnego wywołania z nagłówkiem Operation-Location służącym do sprawdzania stanu zadania.
Następne kroki
Należy zaplanować schemat projektu używany do etykietowania danych.
Po utworzeniu projektu można rozpocząć etykietowanie danych. Etykietowanie informuje model klasyfikacji tekstu, jak interpretować tekst i jest używane do trenowania i oceny.