Примеры использования GPT-3 на рынках вакансий

Исследование быстрой инженерии в GPT-3 для задач поиска, классификации и извлечения

Вступление

Хотя GPT-3 был выпущен довольно давно и вызвал много шума из-за его замечательной способности писать рассказы и стихи, похожие на человеческие, мне никогда не приходило в голову, что прилагаемый к нему API обеспечит такую ​​гибкость и легкость создания данных. продукты с широким спектром применения.

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

В то же время эта статья не пытается объяснить, как работает GPT-3 или как он может делать то, что делает. Более подробная информация по этой теме уже была прекрасно написана в таких статьях, как Джей Аламмар [1] и Макс Вульф [2]. Сама статья GPT-3 может быть упомянута в [3].

Что такое «оперативный инжиниринг»?

В API GPT-3 «приглашение» - это параметр, который предоставляется API, чтобы он мог определить контекст решаемой проблемы. В зависимости от того, как написано приглашение, возвращаемый текст будет пытаться соответствующим образом соответствовать шаблону [4].

Ниже приведен пример запроса, в котором мы пытаемся запрограммировать API на предоставление ответов в рамках банковского сектора. Формат «Q:» и «A:» вместе с текстом вопроса и ответами на него подсказывает модели, что то, что мы ищем, существует в банковской сфере (или, по крайней мере, так я понимаю Это :) )

И как только подсказка настроена, мы можем отправлять текст (или вопросы, если хотите).

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

Чтобы узнать о других творческих способах настройки подсказок, ознакомьтесь с разделом Примеры на их странице GPT-3 API [5]. Кроме того, вы также можете обратиться к моей записной книжке, чтобы проверить примеры подсказок для классификации текста и задачи наименования продуктов.

Возвращаясь к нашей повестке дня, давайте взглянем на некоторые существующие варианты использования в домене рынка труда, где можно применить GPT-3.

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

Пример использования 1: классификация специализации работы

Проблема

Учитывая объявление о вакансии, предоставленное клиентом (т. Е. Работодателем), мы (как рынок труда) хотим помочь им быстро классифицировать свои объявления по правильной категории вакансий, чтобы облегчить обнаружение объявления о вакансии позже на портале вакансий.

Хотя эта проблема может быть решена нашими клиентами / менеджерами по работе с клиентами (т. Е. Мы помогаем нашим клиентам заполнять формы), этот метод (заполнение форм самим клиентом или нашим менеджером клиентов) часто подвержен ошибкам и не масштабируется в в долгосрочной перспективе (не говоря уже о том, что это связано с неправильным сбором данных).

Решение

Основываясь на названии и описании должности, мы пытаемся определить категорию вакансии на основе вероятности появления слов на основе настроенного приглашения.

Мы делаем это, запрашивая GPT-3 с указанием названия должности, описания и категории. Мы бы оставили окончательную специализацию работы пустой, чтобы сообщить API, что это слот, который он должен заполнить следующим. Ключевое слово ‘###’ определено как символы остановки в этой конфигурации.

Наблюдение

Мы предоставили GPT-3 очень мало примеров того, что считается категориями должностей «Бухгалтерский учет / финансы» и «Продажи / маркетинг». На рисунке ниже мы видим, что он смог вернуть правильный ответ на наш ввод в обоих случаях.

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

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

Пример использования 2: рейтинг специализации в поиске

Проблема

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

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

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

Решение

На основе предоставленного названия должности мы пытаемся ранжировать фиксированное количество классификаций должностей на основе порядка их оценок семантического сходства.

Как и раньше, первым делом для этого нужно настроить правильную подсказку для API.

Для этой задачи мы используем модуль «поиск» в GPT-3 (в отличие от модуля «завершение» ранее). Это гарантирует, что вместо попытки завершить предложение, заданное в предыдущем запросе (как в предыдущем варианте использования), мы вместо этого просим API вернуть оценку семантического сходства между нашим запросом (т. Е. Названием должности) и справочными документами (т. Е. список должностей классификации).

Наблюдение

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

Пример использования 3: анализ контекста навыков из резюме

Проблема

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

Хотя есть много информации, которую мы можем извлечь из резюме / рекламы (например, технические навыки, история занятости, прошлое образование и т. Д.), Мы сосредоточим наши усилия в этом случае использования только на извлечении мягких навыков.

Решение

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

  1. Извлеченные мягкие навыки не соответствуют контексту того, что мы хотим (на самом деле это не навык, следовательно, проблема с точностью).
  2. Мы не можем заполнить наш словарь множеством способов, которыми можно описать свои мягкие навыки (проблема с запоминанием).

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

Наблюдение

С точки зрения высокого уровня может показаться, что он смог извлечь большинство навыков, упомянутых в резюме. Особый интерес представляет возможность стандартизации слова «Настроить» вместо использования «Администрирование» (от «Администрирование»). Он также смог добавить в список «настроить брандмауэр» - навык, который совсем не упоминается в резюме, но, возможно, подразумевается существованием других инструментов, таких как F5, McAfee и им подобных.

Раньше приходилось создавать что-то подобное (используя комбинацию таких инструментов, как Spacy, Databricks и множество поддерживаемых вручную словарей), простота которого в том, как строится решение (например, подсказки) в сочетании с качеством получаемого вывода, делает я ценю GPT-3 еще больше.

Заключение

Эта статья началась с краткого введения в оперативную инженерию и быстро перешла к нескольким актуальным сценариям использования на рынке труда, где можно было бы применить GPT-3.

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

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

Блокноты, использованные в этой статье, доступны в моем репозитории git [6].

использованная литература

[1]: https://jalammar.github.io/how-gpt3-works-visualizations-animations/

[2]: https://minimaxir.com/2020/07/gpt3-expectations/

[3]: https://arxiv.org/abs/2005.14165#openai

[4]: https://beta.openai.com/docs/introduction

[5]: https://beta.openai.com/examples

[6]: https://github.com/ikanez/openai-experiments