Обучение модели Vowpal Wabbit

В этой статье описано, как использовать компонент Обучение модели Vowpal Wabbit в конструкторе Машинного обучения Azure для создания модели машинного обучения с помощью Vowpal Wabbit.

Чтобы использовать Vowpal Wabbit для машинного обучения, отформатируйте введенные данные в соответствии с требованиями Vowpal Wabbit и подготовьте данные в требуемом формате. Этот компонент используется для указания аргументов командной строки Vowpal Wabbit.

При запуске конвейера экземпляр Vowpal Wabbit загружается в среду выполнения эксперимента вместе с указанными данными. По завершении обучения модель сериализуется обратно в рабочую область. Вы можете немедленно использовать эту модель для оценки данных.

Чтобы выполнить последовательное обучение существующей модели на основе новых данных, подключите сохраненную модель к порту ввода предварительно подготовленной модели Vowpal Wabbit в компоненте Обучение модели Vowpal Wabbit и добавьте новые данные на другой порт ввода.

Что такое Vowpal Wabbit?

Vowpal Wabbit (VW) — это быстрая платформа параллельного машинного обучения, разработанная для распределенных вычислений компанией Yahoo!. Research. Research и позже перенесенная в Windows и адаптированная Джоном Лэнгфордом (John Langford) из Microsoft Research для научных вычислений в параллельных архитектурах.

К возможностям Vowpal Wabbit, важным для машинного обучения, относятся непрерывное обучение (обучение в подключенном режиме), сокращение размерностей и интерактивное обучение. Vowpal Wabbit также позволяет решать задачи, в которых данные модели не могут разместиться в памяти.

Основными пользователями Vowpal Wabbit являются специалисты по обработке и анализу данных, которые ранее использовали платформу для задач машинного обучения, таких как классификация, регрессия, моделирование разделов или факторизация матриц. Программа-оболочка Azure для Vowpal Wabbit имеет очень похожие характеристики производительности для локальной версии, поэтому вы можете использовать мощные функции и производительность машинного кода Vowpal Wabbit, а также легко опубликовать обученную модель в качестве рабочей службы.

Компонент Хэширование признаков также включает в себя функции Vowpal Wabbit, которые позволяют преобразовать текстовые наборы данных в двоичные признаки с помощью алгоритма хэширования.

Как настроить модель Vowpal Wabbit

В этом разделе описано, как обучить новую модель и добавить новые данные в существующую модель.

В отличие от других, этот компонент конструктора не только задает параметры, но и обучает модель. При наличии существующей модели ее можно добавить как необязательный ввод, чтобы обучать модель последовательно.

Подготовка входных данных

Для обучения модели с помощью этого компонента входной набор данных должен состоять из одного текстового столбца в одном из двух поддерживаемых форматов: SVMLight или VW. Это не значит, что Vowpal Wabbit анализирует только текстовые данные, а только то, что функции и значения должны быть подготовлены в требуемом формате текстового файла.

Данные могут считываться из двух видов наборов данных: набора данных файлов или табличного набора данных. Оба этих набора данных должны быть в формате SVMLight или VW. Преимущество формата данных Vowpal Wabbit заключается в том, что для него не требуется табличный формат, что экономит место при работе с разреженными данными. Дополнительные сведения об этом формате см. на вики-странице Vowpal Wabbit.

Создание и обучение модели Vowpal Wabbit

  1. Добавьте компонент Обучение модели Vowpal Wabbit в эксперимент.

  2. Добавьте обучающий набор данных и подключите его к обучающим данным. Если обучающий набор данных является каталогом, который содержит обучающий файл данных, укажите имя этого файла в поле Имя обучающего файла данных. Если обучающим набором данных является один файл, оставьте поле Имя обучающего файла данных пустым.

  3. В текстовое поле Аргументы VW введите аргументы командной строки для исполняемого файла Vowpal Wabbit.

    Например, можно добавить –l , чтобы указать частоту обучения, или -b , чтобы указать число битов хэширования.

    Дополнительные сведения см. в разделе Параметры Vowpal Wabbit.

  4. Имя обучающего файла — введите имя файла, содержащего входные данные. Этот аргумент используется, только если обучающий набор данных является каталогом.

  5. Укажите тип файла — укажите, какой формат используют ваши обучающие данные. Vowpal Wabbit поддерживает следующие два формата входных файлов:

    • VW — это внутренний формат, используемый Vowpal Wabbit. Дополнительные сведения см. на вики-странице Vowpal Wabbit.
    • SVMLight — это формат, используемый некоторыми другими средствами машинного обучения.
  6. Выходной файл доступной для чтения модели — выберите этот параметр, если нужно, чтобы компонент сохранял доступную для чтения модель в записях о задании. Этот аргумент соответствует параметру --readable_model в командной строке VW.

  7. Выходной инвертированный хэш-файл — выберите этот параметр, если требуется, чтобы компонент сохранял инвертированную хэш-функцию в один файл в записях о задании. Этот аргумент соответствует параметру --invert_hash в командной строке VW.

  8. Отправьте конвейер.

Повторное обучение существующей модели Wabbit Vowpal

Vowpal Wabbit поддерживает последовательное обучение путем добавления новых данных в существующую модель. Есть два способа получить существующую модель для повторного обучения:

  • используйте выходные данные другого компонента Обучение модели Vowpal Wabbit в том же конвейере;

  • выберите сохраненную модель в категории Наборы данных в области навигации конструктора слева и перетащите ее в конвейер.

  1. Добавьте компонент Обучение модели Vowpal Wabbit в конвейер.

  2. Соедините ранее обученную модель с портом ввода Предварительно обученная модель Vowpal Wabbit в компоненте.

  3. Соедините новые обучающие данные с портом ввода Обучающие данные в компоненте.

  4. В области параметров компонента Обучение модели Vowpal Wabbit укажите формат новых обучающих данных, а также имя обучающего файла данных, если входной набор данных является каталогом.

  5. Выберите параметры Выходной файл доступной для чтения модели и Выходной инвертированный хэш-файл, если в записях о задании необходимо сохранить соответствующие файлы.

  6. Отправьте конвейер.

  7. Выберите компонент и выберите Регистрация набора данных на вкладке Выходные данные и журналы в области справа, чтобы сохранить обновленную модель в рабочей области Машинного обучения Azure. Если не указать новое имя, обновленная модель перезапишет существующую сохраненную модель.

Результаты

Примечание

Если необходимо развернуть обученную модель в конструкторе, в конвейере вывода подключите ко входу компонента Выходные данные веб-службы модуль Оценка модели Vowpal Wabbit вместо Оценка модели.

Технические примечания

В этом разделе содержатся сведения и советы относительно реализации, а также ответы на часто задаваемые вопросы.

Преимущества Vowpal Wabbit

Vowpal Wabbit обеспечивает очень быстрое обучение по сравнению с нелинейными функциями, такими как n-граммы.

Vowpal Wabbit использует методы онлайн-обучения, такие как вероятностный градиентный спуск (SGD) для коррекции модели по одной записи за раз. Таким образом платформа очень быстро проходит по необработанным данным и может предоставлять более хорошие прогнозы, чем другие модели. Такой подход также позволяет избежать считывания данных обучения в память.

Vowpal Wabbit преобразует в хэш все данные — не только текстовые данные, но другие категориальные переменные. Использование хэшей делает поиск весовых коэффициентов регрессии более эффективным, что очень важно для вероятностного градиентного спуска.

Поддерживаемые и неподдерживаемые параметры

В этом разделе описана поддержка параметров командной строки Vowpal Wabbit в конструкторе Машинного обучения Azure.

Как правило, поддерживаются все аргументы, кроме ограниченного набора. Полный список аргументов см. на вики-странице Vowpal Wabbit.

Не поддерживаются следующие параметры:

  • Параметры ввода-вывода, указанные на странице https://github.com/JohnLangford/vowpal_wabbit/wiki/Command-line-arguments

    Эти свойства автоматически настраивает компонент.

  • Кроме того, запрещены любые параметры, которые создают несколько выводов или принимают несколько вводов. Это операторы --cbt , --lda , а также --wap .

  • Поддерживаются только контролируемые алгоритмы обучения. Поэтому не поддерживаются параметры –active, --rank, --search и т. д.

Ограничения

Служба предназначена для опытных пользователей Vowpal Wabbit. Поэтому входные данные нужно заранее подготовить в собственном текстовом формате Vowpal Wabbit, а не в формате набора данных, который используется другими компонентами.

Следующие шаги

Ознакомьтесь с набором доступных компонентов для Машинного обучения Azure.