Комментарии 12
По результатам первичных тестов имеем Precision и Recall равными 69% и 78% соответственно.
Как и ожидалось, результаты абсолютно неприемлемые, модель надо обучать на специально собранных данных. Если вы не обрабатываете тысячи (или даже скорее десятки тысяч) резюме – вряд ли сбор обучающей выборки окажется для вас проще, чем ручная (ну, с минимальной автоматизацией в виде поиска по вручную найденным ключевым словам) проверка.
Согласен с вашим тезисом о сложности сбора обучающих данных. Но часто (в реальных, а не академических задачах) нам приходится иметь дело с ситуациями, когда данных нет, а результат нужен.
78% Recall без файнтьюнинга модели — это достойная стартовая ступенька для дальнейшего улучшения результатов:
- Работы с более серьёзными LLM
- Точного подбора параметров предобработки и постобработки данных
- Работа над промптами к модели
- Файнтьюнинга (при наличии данных в объёме меньшем необходимого для обучения моделей под данную задачу с нуля)
Что же касается того, что можно назвать достойным результатом, то рамки приемлемости стоит определять уже из бизнес-требований. В нашем примере мы тестируем подход к задаче распознавания заранее заданных сущностей в тексте с использованием LLM без обучающего множества: результаты данного эксперимента могут быть приемлемы для одних приложений и неприемлемы для других.
Я бы был рад обсудить ваши мысли по поводу других возможных подходов к решению поставленной задачи, если вам есть, чем поделиться. Мы можем быть где-то не согласны друг с другом, но я люблю думать, что в споре действительно рождается истина.
Дайте ссылку на сам сервис чтобы потестить
Надеюсь, что разрешено в комментариях прикреплять ссылки на внешние сервисы.
Протестировать можно на нашей пилотной странице на этапе регистрации: https://hubech.com/home/
Мда. Рекрутеры и так работают на отьебись, но как оказалось этого мало - давайте еще сильнее сузим входную воронку!
А потом "плач ярославны" о том что не могут никого найти на позицию...
Как понимаю в будущем стоит ожидать инфоцыган с курсами типа: "Как правильно составить резюме, чтобы пройти фильтр ИИ".
Не знаю, как вы считали пресижн/реколл, результаты странные. Чатгпт без файнтьюнинга это задачу.на 99.99 решит думаю
А что, ATS фильтры не справляются? Ах да, появились советчики, как CV нужно оптимизировать, чтобы пройти эти фильтры. И, логично, появились сервисы, которые делают тоже самое, только автоматически, указывая на потенциальные проблемы.
И вишенка на торте, ни someGPT, ни ATS фильтры не проверят уровень владения этими навыками по CV. А мы знаем, что встречаются кадры, которые запустили один раз докер и не стесняясь добавляют его в раздел технологий, которыми владеет. Вероятно, честным в таких условиях быть не выгодно, вот только если врать - потом же работать с людьми придётся... тоже может быть неловко
Григорий, спасибо. Для меня, прямо сейчас пишущего резюме промпт инженера в соавторстве с LLM, это очень интересно и полезно. Решаю технически похожую задачу (поиск сигналов о намерениях B2B клиентов в новостных статьях). Во время чтения захотелось попрактиковаться и дополнить ваш промпт. Очень интересна обратная связь.
Что изменилось:
Добавил контекста (специализация HR’а, должность кандидата).
Примеры навыков, особенно, что именно модель должна считать косвенными признаками.
Ранжирование навыков от важных к необязательным, по порядку следования в списке, и вывод в том же порядке.
Указал, что при оценке результата по многим резюме ключевая метрика — Recall.
Формат ответа .json — у модели будет меньше «свободы маневра» при ответе. Если вывод окажется «битым», вероятно, стоит повторно отправить то же резюме на анализ, а не пытаться «разобрать» ответ.
f"Ты опытный HR-консультант, твоя специализация {hr_specialization}. "
f"Должность кандидата: {candidate_position}. "
f"Набор требуемых навыков: {'; '.join([f'\"{skill}\"' for skill in skills_batch])}. "
"Из отрывка резюме выдели компетенции и навыки, если они присутствуют в списке требуемых навыков. "
f"Ищи не только прямые упоминания навыков, но и косвенные признаки их наличия. Примеры косвенных признаков: "
f"{examples}. "
"Для ответа используй точные формулировки из набора навыков. "
"Ранжируй навыки от важных к необязательным, в порядке их следования в списке, и выводи в том же порядке. "
"Ключевая метрика при оценке результата по многим резюме — Recall. "
f"Ответ дай в формате .json. Если в тексте нет навыков, верни json с 'NaN'. "
"Формат ответа: {response_format}. "
Пример входных данных в формате JSON для вакансии фронтенд разработчика:
{
"hr_specialization": "подбор IT-специалистов",
"candidate_position": "фронтенд-разработчик",
"skills_batch": [
"React",
"JavaScript",
"Redux",
"TypeScript",
"REST API",
"GraphQL",
"Webpack",
"Git",
"HTML",
"CSS"
],
"examples": {
"опыт работы с HTML и CSS": "HTML; CSS",
"участие в разработке проекта на React": "React; JavaScript",
"подключение внешних сервисов": "REST API",
"experience with version control systems": "Git"
},
"response_format": {
"skills": [
"React",
"JavaScript",
"REST API",
"Git",
"HTML",
"CSS"
]
}
}
� �
�
YandexGPT для распознавания навыков в резюме без смс и разметки данных