Обучение — это процесс, в ходе которого модель обучается по вашим размеченным высказываниям. Когда обучение завершится, вы сможете просмотреть данные производительности модели.
Чтобы обучить модель, запустите задание обучения. Только успешно завершенные задания создают модель. Срок действия заданий обучения истекает через семь дней. По истечении этого периода вы не сможете получить сведения о задании. Если задание обучения было завершено успешно и модель была создана, то истечение срока действия задания не повлияет на созданную модель. Вы можете выполнять только одно задание обучения и не можете запускать одновременно с ним другие задания в том же проекте.
Время обучения может составлять от нескольких секунд при работе с простыми проектами до нескольких часов при достижении максимального количества речевых фрагментов.
Оценка модели автоматически активируется после успешного завершения обучения. Процесс оценки начинается с использования обученной модели для выполнения прогнозов на речевых фрагментах в тестовом наборе и сравнения прогнозируемых результатов с предоставленными метками (что устанавливает базовый уровень истины). Результаты позволяют оценить производительность модели.
Предварительные условия
- Успешно созданный проект с настроенной для него учетной записью хранилища BLOB-объектов Azure
Дополнительные сведения см. в статье о жизненном цикле разработки проекта.
Разделение данных
Перед началом процесса обучения размеченные в проекте высказывания делятся на обучающий набор и тестовый набор. Каждый из них выполняет свою роль.
Обучающий набор используется при обучении модели, то есть по нему модель изучает размеченные примеры.
Тестовый набор является слепым набором, который не используется в модели во время обучения, а только во время оценки.
После успешного обучения полученная модель используется для прогнозирования речевых фрагментов в тестовом наборе. Эти прогнозы используются для вычисления метрик оценки.
Важно убедиться, что в обучающем и тестовом наборах ваши намерения должным образом представлены.
Процесс оркестрации поддерживает два метода разделения данных.
-
Автоматическое выделение тестового набора из обучающих данных: система разделит данные с метками на обучающий и тестовый наборы в указанной вами пропорции. Рекомендуемое процентное соотношение составляет 80 % для обучения и 20 % для тестирования.
Примечание.
Если вы выберете вариант Автоматическое выделение тестового набора из обучающих данных, выбранные процентные доли будут применяться только для разделения данных в обучающем наборе.
-
Разделение обучающих и тестовых данных вручную: этот метод позволяет самостоятельно определить, какие речевые фрагменты должны принадлежать к какому набору. Этот шаг включается только в том случае, если вы добавили речевые фрагменты в тестовый набор на этапе маркировки.
Примечание.
Вы можете добавлять речевые фрагменты в набор данных для обучения только для несвязанных намерений.
Обучение модели
Запуск задания обучения
Чтобы начать обучение вашей модели в Language Studio, сделайте следующее:
Выберите элемент Задания обучения в меню слева.
В верхнем меню выберите Запустить задание на обучение.
Выберите Обучить новую модель и введите имя модели в текстовое поле. Можно также перезаписать существующую модель. Для этого выберите соответствующий параметр и укажите модель, которую требуется перезаписать, в раскрывающемся меню. Перезапись обученной модели необратима, но это не повлияет на развернутые модели до тех пор, пока вы не развернете новую модель.
Если вы настроили свой проект для ручного разделения данных, когда размечаете высказывания, то увидите два варианта разделения данных:
-
Автоматическое выделение тестового набора из обучающих данных: речевые фрагменты с метками будут случайным образом разделены между обучающим и тестовым наборами в указанной вами пропорции. Разделение по умолчанию — 80 % для обучения и 20 % для тестирования. Чтобы изменить эти значения, выберите набор, который хотите изменить, и введите новое значение.
Примечание.
Если вы выберете вариант Автоматическое выделение тестового набора из обучающих данных, выбранные процентные доли будут применяться только для разделения речевых фрагментов в обучающем наборе.
-
Ручное разделение обучающих и тестовых данных: распределите каждый речевой фрагмент в обучающий или тестовый набор на этапе расстановки тегов проекта.
Примечание.
Вариант Разделение обучающих и тестовых данных вручную будет использоваться, только если вы добавите речевые фрагменты в тестовый набор на странице добавления тегов к данным. В противном случае он будет отключен.
Нажмите кнопку Обучить.
Примечание.
- Модели будут создаваться только с помощью успешно завершенных заданий обучения.
- Обучение может занять от нескольких минут до нескольких часов в зависимости от размера данных с тегами.
- В каждый момент времени может выполняться только одно задание на обучение. Нельзя запустить другое задание обучения в том же проекте до тех пор, пока не будет завершено выполнение задания.
Создайте запрос POST, используя указанный ниже URL-адрес, заголовки и текст JSON, чтобы запустить задание обучения.
Запросить URL-адрес
При создании запроса API используйте следующий URL-адрес. Замените значения заполнителей ниже собственными значениями.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/:train?api-version={API-VERSION}
Заполнитель |
Значение |
Пример |
{ENDPOINT} |
Конечная точка для проверки подлинности запроса API. |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Имя проекта. Это значение чувствительно к регистру. |
EmailApp |
{API-VERSION} |
Версия вызываемого API. |
2023-04-01 |
Используйте следующий заголовок для проверки подлинности запроса.
Ключ |
Значение |
Ocp-Apim-Subscription-Key |
Ключ к вашему ресурсу. Используется для проверки подлинности запросов API. |
Текст запроса
Используйте в запросе следующий объект. Когда обучение завершится, модели будет присвоено имя MyModel
.
{
"modelLabel": "{MODEL-NAME}",
"trainingMode": "standard",
"trainingConfigVersion": "{CONFIG-VERSION}",
"evaluationOptions": {
"kind": "percentage",
"testingSplitPercentage": 20,
"trainingSplitPercentage": 80
}
}
Ключ |
Заполнитель |
Значение |
Пример |
modelLabel |
{MODEL-NAME} |
Имя модели. |
Model1 |
trainingMode |
standard |
Режим обучения. В оркестрации доступен только один режим обучения.standard |
standard |
trainingConfigVersion |
{CONFIG-VERSION} |
Версия модели конфигурации обучения. По умолчанию используется последняя версия модели. |
2022-05-01 |
kind |
percentage |
Методы разделения. Возможные значения: percentage или manual . Дополнительные сведения см. в статье об обучении модели. |
percentage |
trainingSplitPercentage |
80 |
Процент помеченных тегами данных, которые будут включены в набор для обучения. Рекомендуемое значение — 80 . |
80 |
testingSplitPercentage |
20 |
Процент помеченных тегами данных, которые будут включены в набор для тестирования. Рекомендуемое значение — 20 . |
20 |
Примечание.
trainingSplitPercentage
и testingSplitPercentage
требуются только в том случае, если для Kind
задано значение percentage
, а сумма процентных значений должна быть равна 100.
После отправки запроса API вы получите ответ 202
, указывающий на успешное выполнение. Извлеките значение operation-location
из заголовков ответа. Оно будет иметь следующий формат:
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Этот URL-адрес позволяет получить текущее состояние задания обучения.
Получение статуса задания по обучению
Выберите идентификатор задания обучения из списка, на боковой панели появится область, где можно проверить ход обучения, состояние задания и другие сведения для этого задания.
Обучение может занять немало времени в зависимости от размера обучающих данных и сложности схемы. Следующий запрос можно использовать для регулярного опроса состояния задания обучения, пока оно не будет успешно завершено.
Используйте следующий запрос GET, чтобы получить состояние хода обучения модели. Замените значения заполнителей ниже собственными значениями.
Запросить URL-адрес
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}?api-version={API-VERSION}
Заполнитель |
Значение |
Пример |
{YOUR-ENDPOINT} |
Конечная точка для проверки подлинности запроса API. |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Имя проекта. Значение чувствительно к регистру. |
EmailApp |
{JOB-ID} |
Идентификатор для поиска статуса тренировки модели. Это значение заголовка location , которое вы получили при отправке задания на обучение. |
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx |
{API-VERSION} |
Версия вызываемого API. |
2023-04-01 |
Используйте следующий заголовок для проверки подлинности запроса.
Ключ |
Значение |
Ocp-Apim-Subscription-Key |
Ключ к вашему ресурсу. Используется для проверки подлинности запросов API. |
Текст ответа
После отправки запроса вы получите следующий ответ. Продолжайте опрос этой конечной точки до тех пор, пока значение параметра Состояние не изменится на "Выполнено".
{
"result": {
"modelLabel": "{MODEL-LABEL}",
"trainingConfigVersion": "{TRAINING-CONFIG-VERSION}",
"estimatedEndDateTime": "2022-04-18T15:47:58.8190649Z",
"trainingStatus": {
"percentComplete": 3,
"startDateTime": "2022-04-18T15:45:06.8190649Z",
"status": "running"
},
"evaluationStatus": {
"percentComplete": 0,
"status": "notStarted"
}
},
"jobId": "xxxxxx-xxxxx-xxxxxx-xxxxxx",
"createdDateTime": "2022-04-18T15:44:44Z",
"lastUpdatedDateTime": "2022-04-18T15:45:48Z",
"expirationDateTime": "2022-04-25T15:44:44Z",
"status": "running"
}
Ключ |
Значение |
Пример |
modelLabel |
имя модели; |
Model1 |
trainingConfigVersion |
Версия конфигурации обучения. По умолчанию используется последняя версия. |
2022-05-01 |
startDateTime |
Время начала обучения |
2022-04-14T10:23:04.2598544Z |
status |
Состояние задачи тренировки. |
running |
estimatedEndDateTime |
Предполагаемое время завершения задания обучения. |
2022-04-14T10:29:38.2598544Z |
jobId |
Идентификатор задания обучения. |
xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx |
createdDateTime |
Дата и время создания обучающей задачи. |
2022-04-14T10:22:42Z |
lastUpdatedDateTime |
Дата и время последнего обновления задания обучения |
2022-04-14T10:23:45Z |
expirationDateTime |
Дата и время окончания действия задания обучения |
2022-04-14T10:22:42Z |
Отмена задания обучения
Чтобы отменить задание обучения в Language Studio, перейдите на страницу Тренировка модели. Выберите задание обучения, которое вы хотите отменить, и выберите "Отмена " в верхнем меню.
Создайте запрос POST, используя следующий URL-адрес, заголовки и текст JSON, чтобы отменить задание обучения.
Запросить URL-адрес
При создании запроса API используйте следующий URL-адрес. Замените значения заполнителей ниже собственными значениями.
{ENDPOINT}/language/authoring/analyze-conversations/projects/{PROJECT-NAME}/train/jobs/{JOB-ID}/:cancel?api-version={API-VERSION}
Заполнитель |
Значение |
Пример |
{ENDPOINT} |
Конечная точка для проверки подлинности запроса API. |
https://<your-custom-subdomain>.cognitiveservices.azure.com |
{PROJECT-NAME} |
Имя проекта. Это значение чувствительно к регистру. |
EmailApp |
{JOB-ID} |
Это идентификатор задания обучения |
XXXXX-XXXXX-XXXX-XX |
{API-VERSION} |
Версия вызываемого API. |
2023-04-01 |
Используйте следующий заголовок для проверки подлинности запроса.
Ключ |
Значение |
Ocp-Apim-Subscription-Key |
Ключ к вашему ресурсу. Используется для проверки подлинности запросов API. |
После отправки этого запроса в API вы получите ответ 202, подтверждающий успешную отмену задания обучения. Успешный вызов приводит к появлению заголовка Operation-Location, который используется для проверки состояния задания.
Следующие шаги