Как использовать готовые ML-модели

При внедрении ИИ в бизнес-процессы компании часто решают типовые задачи:

  • распознавание текста;
  • выделение ключевых слов;
  • определение числа и среднего возраста людей в видеопотоке;
  • классификация деталей на конвейере.

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

ЛогикаСегодня разберём варианты использования предобученных моделей и рассмотрим алгоритм их действий.

Предобученные модели, трансферное обучение и фундаментальные модели

Рассмотрите пример: стартап по поиску потерявшихся домашних животных хочет внедрить технологию умного поиска. Задача — определять породу кошки или собаки по фотографии, загруженной пользователем.Варианты решения задачи:

  • Использовать предобученную модель классификации изображений Например, ResNet или Inception. Большинство моделей обучались на датасете ImageNet с 1000 классами. Среди них более 20 классов пород кошек и собак.
  • Трансферное обучение Если исходных классов недостаточно, можно дообучить модель на нужные категории. Модель использует знания из ImageNet и требует относительно небольшого датасета — несколько сотен или тысяч размеченных изображений. Датасет придётся собрать и разметить самостоятельно.
  • Обучение свёрточной сети с нуля Обеспечивает максимальное качество, но требует больших вычислительных ресурсов, огромного датасета (сотни тысяч — миллионы изображений) и высокой квалификации в области Data Science.

Ещё один вариант — использовать фундаментальную модель CLIP от OpenAI, которая сопоставляет текстовые запросы и изображения. Из-за универсальности модели результаты могут быть неточными, а стоимость использования высокой.❗️

Готовый сервис Yandex Cloud для такой задачи недоступен: облако не предоставляет инструмент классификации изображений для специфических категорий.Дополнительно можно применить трансферное обучение на двух датасетах.

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

На практике самые точные решения требуют больших данных и ресурсов. Часто выгоднее снизить точность на несколько процентов, чтобы существенно сэкономить время и вычислительные ресурсы.

Возможно, вы уже задались вопросом, как выбрать оптимальный подход для вашей задачи. Для выбора подходящего решения существует специальный алгоритм. О нём вы узнаете дальше.

Алгоритм выбора подхода

После постановки задачи стоит задуматься над возможными вариантами решения. Давайте попробуем структурировать различные подходы к решению интеллектуальных бизнес-задач в Yandex Cloud.Алгоритм выбора подхода изображён на схеме ниже:

Готовые сервисы

В Yandex Cloud есть готовые сервисы для решения разных задач:

  • Yandex SpeechKit — используется для распознавания и синтеза речи.
  • Yandex Vision OCR — распознаёт текст на изображении.
  • Yandex Translate — осуществляет машинный перевод текста.
  • YandexGPT API — это фундаментальная языковая модель для обработки естественного языка. Модель Yandex Embeddings из семейства моделей YandexGPT сопоставляет текст и числовой вектор так, что близкие по смыслу фрагменты текста соответствуют близким в пространстве векторам.
  • YandexART — генерирует изображения по текстовому запросу.

💡 Существуют и открытые модели для решения типовых задач, например OpenAI Whisper для распознавания речи. Но для использования вам придётся самостоятельно развернуть их в облаке.

Дообучение на пользовательских данных

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

  • Yandex SpeechKit Brand Voice позволяет использовать синтез речи для воспроизведения конкретного голоса.
  • Yandex Translate позволяет использовать предметный глоссарий и делает перевод тематических текстов более точным.
  • YandexGPT позволяет дообучать модель на парах вопрос — ответ, чтобы она могла поддерживать диалог в специфической предметной области.

Готовые предобученные модели

ЛогикаЕсли облачный сервис не позволяет решить задачу, можно найти готовые предобученные модели. Расскажу про несколько мест, где стоит их искать!

  • 📚 huggingface.co — это большой хаб для обмена готовыми моделями и датасетами во всех областях глубокого обучения. Удобно находить модели по задачам с помощью фильтра (справа на рисунке).
  • Портал Kaggle от Google содержит хаб предобученных моделей и большое количество предоставленных сообществом датасетов.
  • Самые последние научные достижения в области машинного обучения можно искать на портале Papers With Code. Это список научных статей и репозиториев с программной реализацией предложенных методов. Эту реализацию можно настроить под свою задачу.

Трансферное обучение

Если предобученная модель не решает задачу, её можно дообучить на собственных данных с помощью трансферного обучения. А именно: использовать готовую модель для извлечения первичных признаков из неструктурированных данных.Например, для работы с текстом применяются трансформеры семейства BERT. На их основе можно строить простые модели для:

  • классификации текста;
  • выделения ключевых слов;
  • определения тональности.

💻 Для дообучения и развёртывания моделей в облаке подойдёт сервис Yandex DataSphere. Ему будет посвящён отдельный урок в рамках этого курса.

Обучение с нуля

Если вы решаете новую задачу, возможно, придётся обучать модель с нуля. Обучение серьёзной модели глубокого обучения — это процесс, требующий высокой квалификации, большого количества времени и ресурсов. Мощности Yandex Cloud позволяют это делать.

ЛогикаЧтобы разложить по полочкам все подходы к внедрению ИИ, изучите их сравнительную характеристику в общей таблице.

Примеры решения бизнес-задач

ЛогикаКак же выбрать модель для решения типовых задач? Об этом вы узнаете дальше, разобрав примеры.

Рисование стилизованного аватара

Стартап планирует создать социальную сеть нового поколения и автоматически генерировать пользователям аватары в стиле известных художников.Задача: создавать изображения, сохраняющие черты лица пользователя с заданного фото.Решение: YandexART не подходит, так как не позволяет точно воспроизводить черты лица. Оптимальный вариант — использовать технологию InstantID на сайте Papers With Code. Остаётся лишь упаковать в контейнер код, доступный на GitHub, и разместить его в виде сервиса в Yandex DataSphere.

Автоматическая сводка новостей за день

В социальной сети нового поколения вместо ленты сообщений предлагается утренняя газета: сводка заметок друзей за последние сутки со ссылками на полный текст.Задача: создать сервис, который генерирует краткое описание заметок из списка.Решение: для суммаризации текстов подходит фундаментальная модель YandexGPT, которая включает специализированную модель для этой задачи.Если суммарный объём новостей превышает контекст модели, их можно обработать поэтапно:

  • Суммаризировать отдельные новости.
  • Суммаризировать уже полученный общий текст.

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

Кластеризация новостей

В качестве альтернативного формата потока новостей на домашней странице нужна автоматическая кластеризация на несколько тематических разделов.Задача: нужно автоматически разделить короткие новости на домашней странице на пять тематических категорий. Решение: для такой задачи необходима кластеризация. Нужно использовать модель, которая преобразует новость в вектор, отражающий её смысл. Для этого подходит сервис Yandex Embeddings или одна из моделей Sentence Embedding с Hugging Face. После преобразования каждой новости в числовой вектор можно применить методы кластеризации с помощью библиотеки Scikit-learn.

Автотегирование новостей

Для социальной сети необходимо реализовать функцию автоматического извлечения тегов из текстов новостей.Задача: дать возможность пользователям искать по тегам и подписываться на них.Решение: есть два подхода:

  • взять YandexGPT с соответствующим запросом. Такой подход легко реализовать, но он будет затратным;
  • обучить собственную модель с помощью трансферного обучения. В этом случае понадобится фиксированный список тегов и размеченный датасет, где с текстом новости соотносятся теги. После этого можно использовать модели семейства BERT для кодирования текстов, а затем классификатор multi-label. Для каждого тега из списка он вычислит вероятность соответствия входному тексту.

Перевод новостей

В новой социальной сети нужно автоматически переводить все новости на язык пользователя и обеспечивать их озвучивание для слабовидящих.Задача: нужно перевести новости и создать голосовое сопровождение.Решение:

  • Перевод новостей Использовать сервис Yandex SpeechKit. Для сохранения терминологии (например, «hubs» как «хабы») предоставить сервису глоссарий.
  • Озвучивание новостей Генерировать голосовое сопровождение с помощью SpeechKit при добавлении новости или по запросу пользователя.

Источник:https://practicum.yandex.ru/learn/yc-ml-services/courses/7617ab7d-f316-4d9a-9939-c7158759a3e9/sprints/932316/topics/df8ac0ff-0fdf-4dee-8391-e20c78d01ed3/lessons/d4bd3b30-563f-48ed-b4a7-408acdc038b6/

Рубрики: Uncategorized

0 комментариев

Добавить комментарий

Заполнитель аватара

Ваш адрес email не будет опубликован.