Примеры использования 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: анализ контекста навыков из резюме
Проблема
Основываясь на предоставленном объявлении о вакансии или резюме, мы хотим иметь возможность извлекать из него определенную информацию, чтобы помочь нам лучше согласовывать кандидатов на работу и объявления о вакансиях.
Хотя есть много информации, которую мы можем извлечь из резюме / рекламы (например, технические навыки, история занятости, прошлое образование и т. Д.), Мы сосредоточим наши усилия в этом случае использования только на извлечении мягких навыков.
Решение
Самый простой способ подойти к этой проблеме - полагаться на словарь мягких навыков и извлекать ключевые слова на основе точного соответствия или некоторой формы алгоритма подобия строк в пределах набора пороговых значений. Хотя поначалу они были эффективны, сразу же возникали следующие проблемы:
- Извлеченные мягкие навыки не соответствуют контексту того, что мы хотим (на самом деле это не навык, следовательно, проблема с точностью).
- Мы не можем заполнить наш словарь множеством способов, которыми можно описать свои мягкие навыки (проблема с запоминанием).
В предлагаемом решении мы стремимся решить эту подсказку 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