Общие сведения о типах проектов классификации
Настраиваемая классификация текста назначает метки, которые в службе языка ИИ Azure — это класс , который разработчик определяет, текстовым файлам. Например, сводка по видеоигре может классифицироваться как жанр "Приключения", "Стратегия", "Экшн" или "Спорт".
Пользовательская классификация текстов поддерживает проекты двух типов:
- В проектах классификации с использованием одной метки каждому файлу можно назначить только один класс. В приведенном выше примере сводка по видеоигре может классифицироваться только как жанр "Приключения" или "Стратегия".
- Классификация с использованием нескольких меток — каждому файлу можно назначить несколько классов. Такой тип проекта позволяет классифицировать сводку по видеоигре как жанр "Приключения" или "Приключения и стратегия".
При создании проекта пользовательской классификации текстов можно указать, какой проект нужно создать.
Проекты классификации с использованием одной или нескольких меток
Помимо возможности поместить файлы в несколько классификаций, есть ряд ключевых отличий для проектов классификации с несколькими метками. Это добавление меток, рекомендации по улучшению модели и полезные данные API для задач классификации.
Маркировка данных
В проектах с одной меткой каждый файл назначается один класс во время процесса маркировки; Назначение классов в языке ИИ Azure позволяет выбрать только один класс.
При добавлении меток к проектам с несколькими метками можно назначить для каждого файла любое количество классов. Повышенный уровень сложности означает, что ваши данные остаются четкими и обеспечивают качественное распределение возможных входных данных для модели для обучения.
Добавление правильных меток к данным, особенно для проектов с несколькими метками, напрямую влияет на качество модели. Чем выше качество, четкость и вариация набора данных, тем точнее будет модель.
Оценка и улучшение модели
Измерение прогнозируемой производительности модели предполагает нечто большее, чем просто подсчет количества правильных прогнозов. Правильные классификации предполагают, что фактическая метка имеет значение x, а модель прогнозирует метку x. В реальном мире в документах возникают самые разные ошибки, когда классификация не является правильной:
- Ложное срабатывание — модель прогнозирует x, но файл не помечен x.
- Ложный отрицательный — модель не прогнозирует метку x, но файл на самом деле помечен x.
Эти метрики превратятся в три меры, предоставляемые языком искусственного интеллекта Azure:
- Отклик модели — сколько из фактически имеющихся меток было идентифицировано; соотношение истинно положительных результатов ко всем элементам с метками.
- Точность модели — сколько прогнозируемых меток являются правильными; соотношение истинно положительных результатов ко всем выявленным положительным результатам.
- Оценка F1 — функция отклика и точности модели, предназначенная для предоставления единой оценки в целях максимальной сбалансированности каждого компонента
Совет
Дополнительные сведения о метриках оценки языка ИИ Azure, в том числе о том, как вычисляются эти метрики
В проекте с одной меткой можно определить, какие классы не классифицируются так же, как другие, и найти более качественные данные для обучения модели. В проектах с несколькими метками определение качественных данных усложняется из-за матрицы возможных перестановок объединенных меток.
Например, предположим, ваша модель правильно классифицирует игру в жанре "Экшн" и некоторые игры в жанре "Экшн и стратегия", но неправильно делает это для игр жанра "Стратегия". Чтобы улучшить модель, вы хотите найти более качественные и разнообразные сводки для игр "Действия и стратегия", а также "Стратегия" игры, чтобы научить вашу модель, как различать два. Эта проблема возрастает экспоненциально вместе с количеством возможных классов, в которые модель выполняет классификацию.
Полезные данные API
Язык ИИ Azure предоставляет REST API для создания и взаимодействия с моделью с помощью текста JSON для указания запроса. Этот API абстрагируется на несколько пакетов SDK для конкретного языка, однако в этом модуле примеры ориентированы на базовый REST API.
Для отправки задачи классификации API-интерфейсу требуется текст JSON, чтобы указать, какая задача должна выполняться. Вы узнаете больше о REST API в следующем блоке, однако мы рекомендуем ознакомиться с фрагментами нужной текстовой области.
Модели классификации отдельных меток указывают тип customSingleLabelClassification
проекта:
{
"projectFileVersion": "<API-VERSION>",
"stringIndexType": "Utf16CodeUnit",
"metadata": {
"projectName": "<PROJECT-NAME>",
"storageInputContainerName": "<CONTAINER-NAME>",
"projectKind": "customSingleLabelClassification",
"description": "Trying out custom multi label text classification",
"language": "<LANGUAGE-CODE>",
"multilingual": true,
"settings": {}
},
"assets": {
"projectKind": "customSingleLabelClassification",
"classes": [
{
"category": "Class1"
},
{
"category": "Class2"
}
],
"documents": [
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"class": {
"category": "Class2"
}
},
{
"location": "<DOCUMENT-NAME>",
"language": "<LANGUAGE-CODE>",
"dataset": "<DATASET>",
"class": {
"category": "Class1"
}
}
]
}
}
Несколько моделей классификации меток указывают тип проекта CustomMultiLabelClassification
{
"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"
}
]
}
]
}
}