Пока что самое сложное в моей карьере в области обработки данных — это не моделирование, не отслеживание последних исследований и даже не представление сложных идей людям, не являющимся техническими специалистами, а правильная очистка и маркировка данных — это неблагодарная работа, но она имеет решающее значение для модель для обучения и работы. Вот почему я был взволнован, узнав о SetFit, режиме классификации текста с несколькими кадрами, представленном Hugging Face / Intel / UKP labs.

После BERT было много инноваций, но эта выделяется своим практическим преимуществом — превосходит GPT3 в нескольких настройках выстрела, будучи в 1600 раз меньше и достаточно быстро, чтобы ее можно было обучить на ЦП!

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

Я взял его на тест-драйв здесь и у меня было 3 вопроса, на которые я хотел ответить:

  1. Работает ли обучение за несколько шагов для классификации финансовых настроений? Нет веских причин, почему оно не должно работать, поскольку оно хорошо подходит для других задач классификации настроений, таких как SST-5. Мне действительно интересно, сможем ли мы получить большой выигрыш в статье и сколько точек данных потребуется для правильной классификации финансовых настроений, что может быть сложно из-за финансового контекста/двусмысленности.
  2. Трансформаторов финансовых предложений не существует, поэтому стандартный преобразователь предложений MPnet будет работать лучше, чем FinBERT? Это вопрос компромисса между вложениями, которые уже обучены на семантическом сходстве, с финансовыми вложениями, которые понимают финансировать лучше. Моя первоначальная гипотеза заключалась бы в том, что финансы не так эзотеричны, как область медицины, поэтому общий предварительно обученный преобразователь предложений может быть лучше, чем использование FinBERT, не обученного на семантическое сходство.
  3. Наконец, если мы настроим SetFit со всеми возможными данными, сможет ли он превзойти FinBERT? По сути, мы спрашиваем: (1) превосходят ли преобразователи предложений общие предварительно обученные модели в качестве основы для классификации настроений и (2) масштабируется ли двухэтапный процесс на весь набор данных.

0. Почему это вообще работает?

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

Предварительно обученная модель. Мы начинаем с преобразователей предложений (ST), прочной предварительно обученной базовой модели, которая имеет хорошее семантическое представление предложений на основе сходства. Недавняя газета точно настроила ST непосредственно на настроения и обнаружила, что он немного лучше, чем FinBERT.

Контрастное обучение: поскольку данных для обучения очень мало, нам нужно выжать из них все, что можно — выборка и объединение положительных и отрицательных данных позволяет процессу моделирования создавать больше примеров, на которых модель может учиться во время Этап доводки СТ. Эта повторная выборка работает до тех пор, пока сами пары не повторяются слишком часто, а модель не подходит (авторы рекомендуют 1 эпоху и 20 повторных выборок или итераций).

1. Как работает SetFit для определения финансового настроения?

Естественно, набор данных, на который я ссылаюсь, — это Финансовый банк фраз Мало и др. Действительно, мы видим, что SetFit работает на основе нескольких выстрелов намного лучше, чем просто тонкая настройка базового FinBERT в режиме нескольких выстрелов. 20 сэмплов кажутся довольно приятным местом, как упомянул один из авторов, после чего улучшение немного замедляется. Это также могло быть связано с количеством установленных итераций (которое также было 20). Определенно, есть что протестировать.

Тем не менее, даже после обучения на 30 образцах на метку все еще существует относительно большой разрыв с полной моделью (~ 5%). Сравните это с примером из статьи, где после 20 выборок точность SetFit близка к точности полной модели. Но это может быть связано с потенциальной неоднозначностью, присутствующей в наборе данных, поэтому для достижения достойных результатов требуется больше примеров.

2. Можем ли мы улучшить SetFit, переключившись на финансовую основу?

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

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

(1) Двухэтапный тренировочный процесс SetFit лучше, чем обычная настройка тонкой настройки в режиме с низким объемом данных.

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

3. Заключение

Использование SetFit-MPNet, вероятно, является лучшим подходом для общей классификации финансовых настроений в режиме с низким объемом данных. Мне нравится простота этого подхода, и он подчеркивает мощь преобразователей предложений не только для семантических задач, но и для классификации.

Дайте мне знать, если вы попробуете мой код на своем собственном наборе данных и увидите что-то другое.

PS: у меня не хватило терпения/вычислений, чтобы сделать № 3, но эти ребята сделали что-то подобное и обнаружили, что преобразователи предложений лучше.