Предварительный скрининг резюме с помощью слабой локальной LLM
Месяц назад коллеги пришли с вопросом: «Можешь ли ты сделать предварительный скоринг резюме? Не хотим тратить время на явно неподходящих». В качестве теста взяли вакансию “Оператор Контакт-Центра” — текучка там максимальная.
Идея автоматизация скрининга не нова - до llm отбор осуществлялся по ключевым словам в теме и тексте резюме, но с помощью новых моделей, можно это сделать более интеллектуальным.
Для начала, я попробовал похалявить и просто взял из hh 50 резюме и скормил их в локальную LLM с простым промптом:
«Ты руководитель КЦ в финансовой компании. Вот вакансия, вот резюме. Подходит — Да/Нет и почему».
Чуда не случилось — нейросеть угадала только 30-40%, как признали коллеги. Кандидаты, которых “одобрила” нейросеть, на деле не подошли.
Попытка 2:
Запер руководителя КЦ в кабинете и долго пытал: “Опиши, по каким критериям ты реально выбираешь подходящих?”
Получил список:
• Опыт работы именно в нашей сфере
• Не ищет подработку
• Работал в похожем отделе (например, контакт-центр, не просто “консультант” в магазине)
Затем, на каждый параметр отдельно уточнил, что именно он имеет в виду:
• Опиши, как ты определяешь, что кандидат ищет подработку?
• Что для тебя значит «опыт работы в похожем отделе»? Достаточно ли просто телефонных консультаций, или нужен именно опыт КЦ?
• — и так далее по всем пунктам.
После этого разбил резюме на разделы (Опыт работы, Контакты, ЗП и пр.), и для каждого критерия давал LLM не всё резюме, а только нужный кусок с конкретным промптом под этот кусок.
«Пример: Ты руководитель КЦ. Вот опыт работы из резюме. Определи: консультировал ли соискатель клиентов по телефону/чату? Ответ дай в виде Да/Нет»
Результат:
В итоговой табличке — чёткие “да/нет” по каждому параметру. Точность по каждому из параметров — 98-100%.
Выводы:
• LLM, как и люди: если не устраивает ответ, сначала сам максимально пойми какой нужен результат, разбивай сложные задачи на простые, не пихай всё в один запрос.
Если кому-то важно, остановился на китайской QWEN 3. Она неплохо справляется с математикой и датами (определи сколько месяцев сотрудник работал на прошлом месте). Работает все на видеокарте RTX 4090, Python + API LM Studio
P.S.
Если вам опыт показался полезным — подписывайтесь на мой Телеграм-канал. Я там 1-3 раза в неделю выкладываю кейсы, разборы инструментов и честных инструкций (без хайпа) по работе с нейросетями для жизни и бизнеса.
Искусственный интеллект
4.5K постов11.3K подписчика
Правила сообщества
ВНИМАНИЕ! В сообществе запрещена публикация генеративного контента без детального описания промтов и процесса получения публикуемого результата.
Разрешено:
- Делиться вопросами, мыслями, гипотезами, юмором на эту тему.
- Делиться статьями, понятными большинству аудитории Пикабу.
- Делиться опытом создания моделей машинного обучения.
- Рассказывать, как работает та или иная фиговина в анализе данных.
- Век жить, век учиться.
Запрещено:
I) Невостребованный контент
I.1) Создавать контент, сложный для понимания. Такие посты уйдут в минуса лишь потому, что большинству неинтересно пробрасывать градиенты в каждом тензоре реккурентной сетки с AdaGrad оптимизатором.
I.2) Создавать контент на "олбанском языке" / нарочно игнорируя правила РЯ даже в шутку. Это ведет к нечитаемости контента.
I.3) Добавлять посты, которые содержат лишь генеративный контент или нейросетевой Арт без какой-то дополнительной полезной или интересной информации по теме, без промтов или описания методик создания и т.д.
II) Нетематический контент
II.1) Создавать контент, несвязанный с Data Science, математикой, программированием.
II.2) Создавать контент, входящий в противоречие существующей базе теорем математики. Например, "Земля плоская" или "Любое действительное число представимо в виде дроби двух целых".
II.3) Создавать контент, входящий в противоречие с правилами Пикабу.
III) Непотребный контент
III.1) Эротика, порнография (даже с NSFW).
III.2) Жесть.
За нарушение I - предупреждение
За нарушение II - предупреждение и перемещение поста в общую ленту
За нарушение III - бан