Введение

Привет, Habr! Меня зовут Александр Сулейкин, к.т.н., архитектор Big Data решений и генеральный директор ИТ-компании ”ДЮК Технологии”. Совместно с нашим экспертом по генеративному ИИ Романом Бабенко подготовили статью на базе реального кейса внедрения ИИ-помощника для сферы HR-Tech. Статья будет полезна HR-руководителям, исполнительным директорам, руководителям по цифровизации и автоматизации бизнес-процессов. Статья описывает реальный кейс внедрения ИИ-ассистента для бизнес-процесса поиска и показа кандидатов на различные аутсорс/ аутстафф вакансии. Система была апробирована на примере одной небольшой ИТ-компании, занимающейся аутстаффингом ИТ-разработчиков.

С развитием технологий и увеличением объемов данных, с которыми работают компании, использование языковых моделей (LLM) становится неотъемлемой частью современного бизнеса. Эти модели не только демонстрируют впечатляющие результаты в обработке естественного языка, но и открывают новые горизонты для автоматизации рутинных задач. В частности, в сфере HR-Tech LLM могут значительно упростить процессы, связанные с обработкой резюме, что делает их особенно актуальными для компаний, стремящихся повысить эффективность своих HR-подразделений, работающих с большим количеством текстовых данных и резюме кандидатов, занимающихся аутстаффом как на стороне заказчиков, так и подрядчиков.

LLM для HR-Tech: возможности и перспективы использования

LLM открывают перед HR-специалистами целый спектр возможностей, позволяя автоматизировать рутинные операции и повысить эффективность работы. Например, LLM могут:

  • Форматировать резюме: привести резюме к единому стандарту, что значительно упрощает их анализ и сравнение;

  • Сопоставлять кандидатов с вакансиями: анализировать резюме и требования вакансии, выявляя наиболее подходящих кандидатов;

  • Генерировать описания вакансий: создавать привлекательные и информативные описания вакансий, которые будут интересны потенциальным сотрудникам.

Автоматизация таких задач с помощью LLM позволяет HR-специалистам сфокусироваться на более стратегических вопросах, таких как подбор талантов, собеседования кандидатов, оптимизация внутренних HR-процессов и развитие сотрудников.

Основные сложности разработки ИИ-ассистента для HR

Несмотря на многообещающие перспективы, разработка ИИ-ассистента сталкивается с рядом сложностей:

  • Специфика HR-кейсов: HR-сфера требует особого подхода, учитывающего разнообразие форматов резюме, отличие в самой структуре написания резюме у кандидатов и профессиональных навыков, что создает дополнительные трудности при разработке;

  • Галлюцинации: LLM могут генерировать несуществующую или неправдоподобную информацию, что может привести к ошибкам в выборе кандидатов или ошибочное трактование кандидатов как не подходящих под конкретную вакансию;;

  • Необходимость интеграции внешних данных и постоянная их актуальность. Чтобы достичь высоких результатов, требуется интеграция с различными системами и базами данных, что может быть технически, финансово и организационно сложным. Дополнительно, требуется обеспечить регламентное бесперебойное обновление данных, так как база кандидатов постоянно устаревает и становится неактуальной.

Case Study: автоматизация форматирования резюме

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

Описание задачи

Необходимо в автоматическом режиме осуществляет обработку файлов резюме по заданным шаблону и требованиям к структурированию и форматированию текста. Исходники бывают следующих форматов:

  • .rtf формат всегда выглядит одинаково,

  • .doc/.docx - могут выглядеть по разному,

  • .pdf - всегда выглядят по разному.

Рис. 1. Пример корпоративного шаблона для структурирования резюме 
Рис. 1. Пример корпоративного шаблона для структурирования резюме 

Дополнительные требования к содержанию преобразованного резюме:

  • Резюме должно соответствовать шаблону, начиная от самого последнего опыта к самому первому (иногда скидывают резюме, где наоборот люди указывают сначала опыт старых лет, а в конце только последний);

  • Выполняемые функции должны быть написаны списком, при этом в каждом предложении подлежащие должны быть сказуемыми (например: “Разработка модуля…”);

  • Резюме не должно содержать названий компаний и проектов (необходимо обезличивать);

  • В стеке не должно быть, например, "Английский язык" и т. д., а должны быть только технологии;

  • Пункт про образование подстраивается под кандидата - не у всех есть высшее образование, когда его нет необходимо убирать слово "Высшее" и оставлять просто "Образование". Там же, если их несколько - от последнего к старому (год, название вуза/колледжа и т.п., факультет и направление);

  • Если в резюме есть пройденные курсы и повышения квалификации - это указывается в пункте "О себе".

Архитектура решения

Мы выбрали DUC SmartSearch как основную платформу для реализации решения, так как она идеально подходила для нашей задачи с минимальными доработками. SmartSearch - это цифровая экосистема ИИ-ассистентов, собственный форк открытой системы Danswer, позволяющий создавать надстройки над различными LLM-моделями, как проприетарными (GigaChat, YandexGPT, ChatGPT и др.), так и Open-Source (LLAMA, GEMMA и др.). В систему добавлен визуальный нодовый редактор пайплайнов, с помощью которого можно самостоятельно в режиме low-code создавать новые индивидуальные пайплайны оркестрации LLM и ИИ-агентов для любой предметной области. Концептуальная архитектура продукта выглядит следующим образом:

Рис. 2. Схема концептуальной архитектуры реализации кейса форматирования резюме на платформе  DUC SmartSearch
Рис. 2. Схема концептуальной архитектуры реализации кейса форматирования резюме на платформе  DUC SmartSearch

В системе был создан дополнительный цифровой помощник «HR-ассистент», а также разработан и добавлен специальный инструмент - ResumeTool. Данный инструмент позволяет цифровому помощнику работать с файлами: загружать исходное резюме, отправлять его в пайплайн обработки, заполнять файл шаблона извлеченными данными и сохранять форматированное резюме в объектном хранилище. Пользователи с ролью администратор могут загружать свой шаблон резюме или других документов в настройках инструмента.

На следующем рисунке представлена диаграмма вариантов использования разработанного решения для форматирования резюме.

Рис. 3. Структурирование резюме по заданному шаблону в DUC SmartSearch. Диаграмма вариантов использования (use cases)
Рис. 3. Структурирование резюме по заданному шаблону в DUC SmartSearch. Диаграмма вариантов использования (use cases)

Алгоритм обработки резюме в системе DUC SmartSearch следующий:

  1. Администратор загружает необходимый файл шаблона резюме на странице настроек инструмента ResumeTool цифрового помощника «HR-ассистент»;

  2. Затем администратор настраивает пайплайн обработки исходных резюме в нодовом редакторе Flowise (этап внедрения и первоначальной настройки системы, обычно занимает от 2 до 4 недель);

  3. Для обработки файлов резюме по заданному шаблону обычный пользователь переходит на страницу “Чат-бот”, выбирает настроенного цифрового помощника «HR-ассистент» и загружает файл резюме для обработки;

  4. При отправление пользователем файла резюме на странице «Чат-бот» происходит его пересылка в подготовленный пайплайн Flowise, обработка и возвращение структурированного текста резюме цифровому помощнику. Далее происходит обработка полученного текста в заданный шаблон и предоставление пользователю ссылки на скачивание  подготовленного файла. Интерфейс работы системы выглядит следующим образом:

Рис. 4. Интерфейс страницы “Чат-бот” DUC SmartSearch
Рис. 4. Интерфейс страницы “Чат-бот” DUC SmartSearch

Разработка пайплайна форматирования резюме

В основе решения форматирования текста резюме был применен подход извлечения данных, аналогичный составлению Карты знаний в кейсе “Интеллектуальный помощник службы технической поддержки пользователей”. Почитать о нем можно в нашей предыдущей статье “Как мы делали умного помощника: Use Case внедрения умного чат-бота на основе подхода «Карта знаний» и LLM GigaChat” (https://habr.com/ru/articles/829022/).

Основная идея заключается в извлечении информации в формате JSON из неструктурированных данных с помощью LLM. В процессе разработки были опробованы три схемы пайплайнов извлечения информации:

Рис. 5. Варианты пайплайнов извлечения данных
Рис. 5. Варианты пайплайнов извлечения данных

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

Вторая итерация пайплайна была основана на заполнении всей структуры JSON при первом обращении и последующих дозапросах для проверки и редактирования отдельных полей в общем JSON. Результаты обработки стали гораздо лучше, решение было передано на тестирование HR-специалистам. После обработки пары десятков резюме были выявлены недочеты, часть которых получилось устранить тюнингом промптов.

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

Интересные задачи, решаемые в процессе разработки

Некоторые резюме формата .pdf имеют проблему с неправильной кодировкой - при парсинге текста между буквами в словах появляются лишние пробелы. Такой “дырявый” текст LLM очень плохо обрабатывают или не обрабатывают вовсе:

Рис. 6. Фрагмент проблемного текста
Рис. 6. Фрагмент проблемного текста

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

Оценка результатов

Забегая вперед отметим, что финальное решение работает на мультиязычной модели Gemma 2 27B с квантизацией Q4. Данные параметры позволяют запустить модель на видеокарте пользовательского сегмента с 24 Гб видеопамяти.

В качестве альтернативы мы протестировали еще три открытых локальных модели: Mistral NeMo 12B Q8, Llama 3.1 8B FP16, Saiga-llama3 8B FP16. Качество их обработки оказалось на порядок хуже, чем у выбранной модели - выдумывание информации, добавление не заданных полей json, зацикливание генерации ответа и пр.

Для оценки результатов обработки резюме с помощью выбранной модели была применена методика тестирования, основанная на обработке 10 случайных резюме с последующей оценкой тремя независимыми экспертами. Баллы выставлялись исходя из качества заполнения каждого раздела резюме отдельно по 5-бальной шкале:

1 - присутствует выдуманная информация;

2 - информация была в тексте, но не была извлечена;

3 - извлечена только часть информации;

4 - извлечена вся информация, но не выполнены требования к форматирования;

5 - извлечена вся информация в требуемом виде.

Средние оценки трех экспертов и итоговая оценка представлены в таблице ниже.

Таблица 1. Результаты оценки форматирования файлов резюме по заданному шаблону
Таблица 1. Результаты оценки форматирования файлов резюме по заданному шаблону

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

Результаты проекта

После внедрения автоматизации времени на форматирование резюме сократилось в 6 раз. Ниже показано, сколько времени тратилось на форматирование до и после использования ИИ-ассистента:

  • До автоматизации: в среднем 30 минут на форматирование одного резюме сотрудником HR.

  • После автоматизации: 2 минуты на автоматическое форматирование и 3 минуты на проверку, суммарно 5 минут.

С учетом обработки в среднем 100 резюме в месяц одним HR-специалистом/ ресерчером - внедрение данного решения осуществило значительную экономию времени (более 40 часов работы HR-специалиста в месяц).

Масштабирование решения

Интеграция нодового редактора для настройки пайплайнов обработки и загрузка файла шаблона позволяет администраторам SmartSearch настроить цифрового помощника для автоматической обработки различных типов документов по заданным требованиям и шаблону. Опционально доступна реализация обработки документов через Telegram.

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

Новые задачи для HR-Tech

В нашем бэклоге находятся несколько новых задач, включая улучшение алгоритмов подбора вакансий на основе резюме кандидатов. Мы планируем разработать функционал, который будет не только сопоставлять навыки соискателей с вакансиями, но и рекомендовать потенциальные позиции на основе их карьерных целей. Функционал находится в стадии проектирования, если кто-то заинтересован в пилотировании данной задачи у себя - Welcome!

Больше новостей простыми словами про ИТ, тренды, технологии и наши кейсы - в авторском телеграмм-канале t.me/dataundercontrol.

Комментарии (0)