Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Из этой статьи вы можете узнать, как настроить требования для использования пользовательского распознавания именованных сущностей и создать проект.
Необходимые компоненты
Прежде чем приступить к использованию пользовательского NER, вам потребуется:
- Подписка Azure — создайте бесплатную учетную запись.
Создание ресурса Языковой службы
Прежде чем приступить к использованию пользовательской службы NER, вам потребуется ресурс Azure Language in Foundry Tools. Мы рекомендуем создать ресурс языка и подключить к ней учетную запись хранения на портале Azure. Создание ресурса на портале Azure позволяет одновременно создавать учетную запись хранения Azure с предварительно настроенными разрешениями. Дополнительные сведения см. в статье, чтобы узнать, как использовать существующий ресурс и настроить его для работы с пользовательским распознаванием именованных сущностей.
Вам также нужна учетная запись хранения Azure, куда вы загружаете .txt документы, используемые для обучения модели извлечения сущностей.
Примечание.
- Чтобы создать ресурс Языка, требуется роль владельца, назначенная группе ресурсов.
- При подключении предварительной учетной записи хранения вам должна быть назначена роль владельца.
Создание языкового ресурса и подключение учетной записи хранения
Ресурс можно создать следующими способами:
- Портал Azure
- PowerShell
Примечание.
Не следует перемещать учетную запись хранения в другую группу ресурсов или подписку после того, как она связана с ресурсом языка Azure.
Создание ресурса на портале Azure
Войдите на портал Azure , чтобы создать новый ресурс Azure Language in Foundry Tools.
В появившемся окне выберите настраиваемую классификацию текста и распознавание именованных сущностей из пользовательских функций. Нажмите кнопку "Продолжить", чтобы создать ресурс в нижней части экрана.
Создайте ресурс службы "Язык" с приведенными ниже сведениями.
Имя Описание Подписка Вашу подписку Azure. Группа ресурсов Группа ресурсов, содержащая ваш ресурс. Можно использовать существующую группу или создать новую. Область/регион Регион для ресурса службы "Язык". Например, "Западная часть США 2". Имя Имя ресурса. Ценовая категория Ценовая категория ресурса Языка. Вы можете использовать уровень "Бесплатный" (F0), чтобы поработать со службой. Примечание.
Если вы получите сообщение о том, что ваша учетная запись входа не является владельцем выбранной группы ресурсов учетной записи хранения, в вашей учетной записи должна быть назначена роль владельца в данной группе ресурсов, прежде чем вы сможете создать ресурс для языка. Обратитесь за помощью к владельцу подписки Azure.
В разделе "Настраиваемая классификация текста" и "Распознавание именованных сущностей" выберите существующую учетную запись хранения или выберите новую учетную запись хранения. Эти значения помогут вам приступить к работе и не обязательно являются значениями учетной записи хранения, которые вы будете использовать в производственной среде. Чтобы избежать задержки во время создания проекта, подключитесь к учетным записям хранения в том же регионе, что и ресурс языка.
Значение для учетной записи хранения Рекомендуемое значение Название учетной записи хранилища Любое имя Тип учётной записи хранилища Стандартное локально избыточное хранилище (LRS) Убедитесь, что флажок Уведомление об ответственном применении ИИ установлен. В нижней части страницы щелкните Просмотр и создание, а затем нажмите Создать.
Создание нового ресурса службы "Язык" с помощью PowerShell
Вы можете создать новый ресурс и учетную запись хранения, используя следующие файлы шаблонов и параметров CLI, которые размещаются на GitHub.
Измените следующие значения в файле параметров:
| Наименование параметра | Описание значения |
|---|---|
name |
Имя вашего языкового ресурса |
location |
Регион, в котором размещается ресурс. Дополнительные сведения см. в статье Ограничения службы. |
sku |
Ценовая категория ресурса. |
storageResourceName |
Имя учетной записи хранения |
storageLocation |
Регион, в котором размещена учетная запись хранения. |
storageSkuType |
SKU учетной записи хранения. |
storageResourceGroupName |
Группа ресурсов учетной записи хранения |
Используйте следующую команду PowerShell, чтобы развернуть шаблон Azure Resource Manager (ARM) с измененными файлами.
New-AzResourceGroupDeployment -Name ExampleDeployment -ResourceGroupName ExampleResourceGroup `
-TemplateFile <path-to-arm-template> `
-TemplateParameterFile <path-to-parameters-file>
Сведения о развертывании шаблонов и файлах параметров см. в документации по шаблонам ARM.
Примечание.
- Процесс подключения учетной записи хранения к ресурсу языка необратим. Его нельзя отключить позже.
- Вы можете подключить ресурс Языка только к одной учетной записи хранения.
Использование существующего языкового ресурса
Вы можете использовать существующий языковой ресурс, чтобы приступить к работе с настраиваемыми NER, если этот ресурс соответствует следующим требованиям:
| Требование | Описание |
|---|---|
| Регионы | Убедитесь, что существующий ресурс подготовлен в одном из поддерживаемых регионов. В противном случае необходимо создать новый ресурс в одном из этих регионов. |
| Ценовая категория | См. дополнительные сведения о поддерживаемых ценовых категориях. |
| Управляемое удостоверение | Убедитесь, что параметр удостоверения, управляемого ресурсом, включен. В противном случае изучите следующий раздел. |
Для использования распознавания именованных сущностей необходимо создать учетную запись службы хранилища Azure, если у вас ее еще нет.
Включение управления удостоверениями для ресурса
Ресурс языка должен иметь управление удостоверениями, чтобы включить его с помощью портал Azure:
- Перейдите к ресурсу Языка.
- В меню слева в разделе Управление ресурсами выберите Удостоверение.
- На вкладке Назначаемое системой убедитесь, что для параметра Состояние установлено значение Включено.
Включение пользовательского распознавания именованных сущностей
Обязательно включите функцию Пользовательская классификация текстов и пользовательское распознавание именованных сущностей на портале Azure.
- Перейдите к своему ресурсу "Язык" на портале Azure.
- В меню слева в разделе "Управление ресурсами" выберите "Компоненты".
- Включение пользовательской классификации текста / функция распознавания именованных сущностей.
- Подключите учетную запись хранения.
- Выберите Применить.
Внимание
Убедитесь, что пользователь вносит изменения в назначенную ему роль вкладчика данных хранилища BLOB-объектов, назначенную ему.
Добавление требуемых ролей
Выполните следующие действия, чтобы задать необходимые роли для ресурса Языка и учетной записи хранения.
Роли для ресурса "Языковые возможности Azure в инструментах Foundry"
Перейдите к своей учетной записи хранения или ресурсу Языка на портале Azure.
Выберите элемент управления доступом (IAM) в левой области.
Щелкните Добавить, чтобы добавить назначения ролей, и выберите соответствующую роль для учетной записи.
В ресурсе Языка вам должна быть назначена роль владельца или участника.
В поле Назначить доступ к выберите Пользователь, группа или субъект-служба.
Щелкните Выбрать члены.
Выберите свое имя пользователя. В поле Выбор можно найти имена пользователей. Повторите это действие для всех ролей.
Повторите эти действия для всех учетных записей пользователей, которым требуется доступ к этому ресурсу.
Роли для учетной записи хранения
- Войдите на страницу своей учетной записи хранения на портале Azure.
- Выберите элемент управления доступом (IAM) в левой области.
- Щелкните Добавить, чтобы добавить назначения ролей и выберите роль Участник для данных BLOB-объектов хранилища для учетной записи хранения.
- В поле Назначить доступ к выберите Управляемое удостоверение.
- Щелкните Выбрать члены.
- Укажите свою подписку и выберите Язык в качестве управляемого удостоверения. В поле Выбор можно найти имена пользователей.
Роли для пользователя
Внимание
Если пропустить этот шаг, при попытке подключиться к пользовательскому проекту появится ошибка 403. Важно, чтобы текущий пользователь получил эту роль для доступа к данным BLOB-объектов учетной записи хранения, даже если вы являетесь владельцем учетной записи хранения.
- Войдите на страницу своей учетной записи хранения на портале Azure.
- Выберите элемент управления доступом (IAM) в левой области.
- Щелкните Добавить, чтобы добавить назначения ролей и выберите роль Участник для данных BLOB-объектов хранилища для учетной записи хранения.
- В области "Назначение доступа" выберите "Пользователь", "Группа" или "Субъект-служба".
- Щелкните Выбрать члены.
- Выберите пользователя. В поле Выбор можно найти имена пользователей.
Внимание
Если у вас есть виртуальная сеть или частная конечная точка, обязательно выберите разрешить службам Azure в списке доверенных служб доступ к этой учетной записи хранения в портал Azure.
Включение CORS для учетной записи хранения
Обязательно разрешите методы (GET, PUT, DELETE) при включении общего доступа к ресурсам из разных источников (CORS).
Задайте для поля разрешенных источников значение https://language.cognitive.azure.com. Разрешите все заголовки, добавив * в допустимые значения заголовков, и задайте максимальный возраст 500.
Создание проекта распознавания настраиваемых именованных сущностей (REST API)
После настройки контейнера ресурсов и хранилища создайте новый пользовательский проект NER. Проект — это рабочая область для создания настраиваемых моделей ИИ на основе данных. Доступ к вашему проекту есть только у вас и у других пользователей, имеющих доступ к используемому вами ресурсу Azure. Если вы пометили данные, вы можете использовать их, чтобы начать, импортируя проект.
Чтобы приступить к созданию модели пользовательского распознавания именованных сущностей, необходимо создать проект. Создание проекта позволяет помечать данные, обучать, оценивать, улучшать и развертывать модели.
Примечание.
Во всех операциях в имени проекта учитывается регистр.
Создайте запрос PATCH, используя следующий URL-адрес, заголовки и текст JSON, чтобы создать проект.
Запросить URL-адрес
Для создания проекта используйте следующий URL-адрес. Замените следующие заполнители собственными значениями.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
| Заполнитель | Значение | Пример |
|---|---|---|
{ENDPOINT} |
Конечная точка для проверки подлинности запроса API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Имя проекта. Это значение учитывает регистр. | myProject |
{API-VERSION} |
Версия вызываемого API. Значение относится к последней выпущенной версии. Дополнительные сведения см. в разделе"Жизненный цикл модели". | 2022-05-01 |
Заголовки запросов
Используйте следующий заголовок для проверки подлинности запроса.
| Ключ | Обязательно | Тип | Значение |
|---|---|---|---|
Ocp-Apim-Subscription-Key |
Верно | струна | Ключ к ресурсу. Используется для проверки подлинности запросов API. |
Content-Type |
Верно | струна | application/merge-patch+json |
Основное содержание запроса
Используйте следующий код JSON в запросе. Замените следующие заполнители собственными значениями.
{
"projectName": "{PROJECT-NAME}",
"language": "{LANGUAGE-CODE}",
"projectKind": "CustomEntityRecognition",
"description": "Project description",
"multilingual": "True",
"storageInputContainerName": "{CONTAINER-NAME}"
}
| Ключ | Заполнитель | Значение | Пример |
|---|---|---|---|
| имя проекта | {PROJECT-NAME} |
Имя проекта. Это значение учитывает регистр. | myProject |
| язык | {LANGUAGE-CODE} |
Строка, указывающая код языка для документов, используемых в проекте. Если проект является многоязычным проектом, выберите код для языка, наиболее часто представленного в документах. Дополнительные сведения о кодах поддерживаемых языков см. здесь. | en-us |
| типПроекта | CustomEntityRecognition |
Тип проекта. | CustomEntityRecognition |
| многоязычный | true |
Логическое значение, которое позволяет иметь документы на нескольких языках в наборе данных. После развертывания модели вы можете отправить к ней запрос на любом поддерживаемом языке (не обязательно включенном в обучающие документы). См. дополнительные сведения о поддержке нескольких языков. | true |
| имя контейнера для входных данных хранилища | {CONTAINER-NAME |
Имя контейнера хранилища Azure, в который были загружены ваши документы. | myContainer |
Этот запрос возвращает ответ 201, который означает, что проект создается.
Этот запрос возвращает ошибку, если:
- выбранный ресурс не имеет необходимых разрешений для учетной записи хранения.
Импорт проекта (REST API)
Если данные уже размечены, их можно использовать, чтобы начать работу со службой. Убедитесь, что помеченные данные соответствуют допустимым форматам данных.
Отправьте запрос POST, используя следующий URL-адрес, заголовки и текст JSON, чтобы импортировать файл меток. Убедитесь, что файл меток соответствует допустимому формату.
Если проект с таким именем уже существует, данные этого проекта заменяются.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}/:import?api-version={API-VERSION}
| Заполнитель | Значение | Пример |
|---|---|---|
{ENDPOINT} |
Конечная точка для проверки подлинности запроса API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Имя проекта. Это значение учитывает регистр. | myProject |
{API-VERSION} |
Версия вызываемого API. Здесь указано значение для последней выпущенной версии. Дополнительные сведения см. в разделе"Жизненный цикл модели". | 2022-05-01 |
Заголовки
Используйте следующий заголовок для проверки подлинности запроса.
| Ключ | Значение |
|---|---|
Ocp-Apim-Subscription-Key |
Ключ к ресурсу. Используется для проверки подлинности запросов API. |
Текст
Используйте следующий код JSON в запросе. Замените значения заполнителей собственными значениями.
{
"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
}
]
}
]
}
]
}
}
| Ключ | Заполнитель | Значение | Пример |
|---|---|---|---|
api-version |
{API-VERSION} |
Версия вызываемого API. Используемая здесь версия должна совпадать с версией API в URL-адресе. Узнайте больше о других доступных версиях API. | 2022-03-01-preview |
projectName |
{PROJECT-NAME} |
Имя проекта. Это значение учитывает регистр. | myProject |
projectKind |
CustomEntityRecognition |
Тип проекта. | CustomEntityRecognition |
language |
{LANGUAGE-CODE} |
Строка, указывающая код языка для документов, используемых в проекте. Если проект является многоязычным проектом, выберите языковой код большинства документов. | en-us |
multilingual |
true |
Логическое значение, которое позволяет иметь документы на нескольких языках в наборе данных. После развертывания модели вы можете отправить к ней запрос на любом поддерживаемом языке (не обязательно включенном в обучающие документы). Сведения о многоязычной поддержке см. в разделе Поддержка языков. | true |
storageInputContainerName |
{CONTAINER-NAME} | Имя контейнера хранилища Azure, содержащего отправленные документы. | myContainer |
entities |
Массив, содержащий все типы сущностей, которые есть в проекте и извлеченные из документов. | ||
documents |
Массив, содержащий все документы в проекте и список сущностей, помеченных в каждом документе. | [] | |
location |
{DOCUMENT-NAME} |
Расположение документов в контейнере хранилища. | doc1.txt |
dataset |
{DATASET} |
Тестовый набор, в который помещается этот файл при разделении данных перед обучением. Дополнительные сведения см. в разделе"Обучение модели". Возможные значения для этого поля: Train и Test. |
Train |
После отправки запроса API вы получите ответ, указывающий 202 на правильность отправки задания. Извлеките значение operation-location из заголовков ответа. Ниже приведен пример формата:
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}/import/jobs/{JOB-ID}?api-version={API-VERSION}
{JOB-ID} используется для идентификации запроса, так как эта операция является асинхронной. Этот URL-адрес используется для получения состояния задания импорта.
Возможные сценарии ошибок для этого запроса:
- выбранный ресурс не имеет необходимых разрешений для учетной записи хранения;
- указанный
storageInputContainerNameне существует; - используется недопустимый код языка или тип кода языка не является строковым;
- Значение
multilingualявляется строкой, а не логическим значением.
Получение сведений о проекте (REST API)
Используйте следующий запрос GET для получения сведений о проекте. Замените значения заполнителей собственными значениями.
{ENDPOINT}/language/authoring/analyze-text/projects/{PROJECT-NAME}?api-version={API-VERSION}
| Заполнитель | Значение | Пример |
|---|---|---|
{ENDPOINT} |
Конечная точка для проверки подлинности запроса API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Имя проекта. Это значение учитывает регистр. | myProject |
{API-VERSION} |
Версия вызываемого API. Дополнительные сведения см. в разделе"Жизненный цикл модели". | 2022-05-01 |
Заголовки
Используйте следующий заголовок для проверки подлинности запроса.
| Ключ | Значение |
|---|---|
Ocp-Apim-Subscription-Key |
Ключ к ресурсу. Используется для проверки подлинности запросов API. |
Текст ответа
{
"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}"
}
| Значение | Заполнитель | Описание | Пример |
|---|---|---|---|
projectKind |
CustomEntityRecognition |
Тип проекта. | CustomEntityRecognition |
storageInputContainerName |
{CONTAINER-NAME} |
Имя контейнера хранилища Azure для отправленных документов. | myContainer |
projectName |
{PROJECT-NAME} |
Имя проекта. Это значение учитывает регистр. | myProject |
multilingual |
true |
Логическое значение, которое позволяет иметь документы на нескольких языках в наборе данных. После развертывания модели вы можете отправить к ней запрос на любом поддерживаемом языке (не обязательно включенном в обучающие документы). Дополнительные сведения о поддержке языков см. в разделе Поддержка языков. | true |
language |
{LANGUAGE-CODE} |
Строка, указывающая код языка для документов, используемых в проекте. Если проект является многоязычным проектом, выберите языковой код для большинства документов. | en-us |
После отправки запроса API вы получите ответ, указывающий 200 на успешность и текст ответа JSON с сведениями о проекте.
Удаление проекта (REST API)
Если проект больше не нужен, его можно удалить с помощью следующего запроса DELETE. Замените значения заполнителей собственными значениями.
{Endpoint}/language/authoring/analyze-text/projects/{projectName}?api-version={API-VERSION}
| Заполнитель | Значение | Пример |
|---|---|---|
{ENDPOINT} |
Конечная точка для проверки подлинности запроса API. | https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Имя проекта. Это значение учитывает регистр. | myProject |
{API-VERSION} |
Версия вызываемого API. Значение, на которое ссылается, предназначено для последней версии, выпущенной. Дополнительные сведения см. в разделе"Жизненный цикл модели". | 2022-05-01 |
Заголовки
Используйте следующий заголовок для проверки подлинности запроса.
| Ключ | Значение |
|---|---|
| Ocp-Apim-Subscription-Key | Ключ к ресурсу. Используется для проверки подлинности запросов API. |
После отправки запроса API вы получите ответ, указывающий 202 на успешность, что означает удаление проекта. Ответ будет содержать заголовок Operation-Location, используемый для проверки состояния задания.
Следующие шаги
У вас должна быть идея схемы проекта , используемой для маркировки данных.
После создания проекта можно начать маркировку данных. Этот процесс информирует модель извлечения сущностей о том, как интерпретировать текст, и используется для обучения и оценки.