Как я использовал модель глубокого обучения OpenAI CLIP, чтобы предсказать эмодзи по твиту. Оцените производительность с обучающими данными и без них и поэкспериментируйте с моделью самостоятельно!

Смайлики — это способ передать эмоции в предложении. Поскольку смайлики — это изображения,
мне стало интересно, насколько хорошо модель CLIP Open AI предсказывает смайлики с учетом твита. Мы начнем с CLIP как есть для предсказания смайликов. Позже мы настраиваем CLIP на 1, 5, … до 500 образцов на смайлик.

Прокрутите вниз, чтобы опробовать модель! 👇
Заинтересованы в коде? Оставьте комментарий и свяжитесь со мной напрямую!

🤖 — Что такое CLIP?

CLIP от OpenAI (предварительное обучение контрастному языку и изображению) обучается на 400 миллионах комбинаций изображения и описания, найденных в Интернете, и хорошо подходит для выбора изображения, которое лучше всего описывает предложение.¹

CLIP отличается тем, что в качестве входных данных он принимает 2 типа формата данных: язык и изображения. Принимая во внимание, что «традиционный подход» использует один тип формата данных; будь то текст, изображения или аудио...

Модели, которые используют два или более форматов данных или модальностей в качестве входных данных, также называются мультимодальными моделями

🧑‍🔬 — Что нового?

Многие модели в Интернете пытаются предсказать смайлик на основе предложения. Смайлик — это метка, описываемая числом, а не изображение смайлика.

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

📈 — Числа

  • Насколько хорош CLIP без доработок?
  • Что с несколькими образцами?
  • И как далеко мы можем зайти?

Прежде чем мы начнем…

Мы используем точность в качестве ключевого показателя производительности нашей модели. Точность — это число от 0 до 1, где 0 означает, что все прогнозы неверны, а 1 означает, что все прогнозы верны.³

Набор данных, который мы используем для тонкой настройки, состоит из двух столбцов;

  • Колонка с необработанными твитами;
  • Пометьте столбец номером, который связан с изображением смайлика.

Изображения, соответствующие номерам этикеток, можно найти здесь.

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

Берем с полки предобученную модель CLIP и применяем ее к тестовому набору данных. Это называется обучением с нулевым выстрелом, потому что мы не брали никаких обучающих данных для точной настройки CLIP.

1 Прогноз
При нулевом обучении мы получаем точность 0,13 для прогнозирования правильного смайлика. Для сравнения, случайный выбор эмодзи будет иметь точность 1/32 или 0,0325. Неплохо, правда?

Вот фрагмент, который показывает, как получить прогноз с помощью нулевого выстрела:

4 предложения
Поскольку может возникнуть некоторая путаница с правильными смайликами для твита, я также попытался представить 4 предложения. Если 1 из 4 предложений совпадает с меткой, я считаю это правильным прогнозом.

При предоставлении 4 предложений мы получили точность 0,33, где
4/32 или 0,12 — это точность случайного выбора 4 предложений.

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

Что мы из этого узнаем?

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

Несколько выстрелов и многое другое

Что, если мы дадим CLIP возможность изучить закономерности в нашем наборе данных? Мы берем обучающий набор данных и постепенно снабжаем CLIP данными.

Рядом с нулевым выстрелом у вас есть «однократное» и «несколько выстрелов», что означает, что вы тренируетесь на одном или нескольких образцах.
Мы начинаем тонкую настройку с 1 образца и постепенно увеличиваем количество образцов до 5, 10, 15, … до 500 на каждый смайлик.

  • Мы используем необработанные твиты (без очистки);
  • Нет тюнинга;
  • Размер партии 32, потому что у нас есть 32 смайлика;
  • Тренировался 4 эпохи.

Ниже вы видите график точности прогнозов и предложений для ряда образцов:

  • 😅 1-шот работает хуже, чем 0-шот.
  • 🚀 Начиная с 5 проб точность начинает расти.
  • ⚠️ Начиная с 15 образцов, он начинает выравниваться с 0,51 для предложений.
  • 🐌 точность постепенно увеличивается до максимума 0,63.

📢 — На вынос

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

Тонкая настройка CLIP еще больше повышает производительность, и всего с 15 образцами на смайлик производительность значительно возрастает.

Это здорово, потому что сборка небольшого набора данных обходится относительно дешево! Нейронные сети с глубоким обучением, такие как CLIP, могут демократизировать ИИ для предприятий, у которых нет или мало данных для обучения или ресурсов для сбора больших объемов обучающих данных.

Если вы хотите порекомендовать наглядные материалы, такие как изображения, рисунки или картины… CLIP — отличный способ начать. Если вам нужна помощь, вы можете связаться со мной.

⚡️Опробуйте модель сами!

https://huggingface.co/spaces/vincentclaes/emoji-predictor

Ссылки

Винсент Клаас

👋 Подписывайтесь на меня в Medium, Linkedin и Twitter, чтобы узнать больше об инженерии машинного обучения и конвейерах машинного обучения.

Источники