Проект VILKY. LLM, телеграм канал и дайджесты
Давно не писал про проект VILKY и анализ IT вакансий. Мы дошли до самого интересного: LLM и нормализации данных. Над этим работаем несколько месяцев, но не писали ещё.
К нам с
Никитой присоединился Рома, и мы продолжаем развивать пет-проект. Рома занимается Data Quality, пишет и проводит тесты. И у него есть канал
Котолитик - там подробнее про это.
🪄 Три больших новых этапа к этому моменту:
1. LLM и нормализация данных
2. Тесты качества нормализации и усложнение промптов.
3.
TG канал со статистикой по вакансиям
Подключение дополнительных платформ пока было в меньшем приоритете, но забираем с HH по API для тестов.
🎆 Самая крутая фича, которая сейчас работает с данными - это комплексный анализ данных различных полей и их нормализация. Что это означает? Например, в вакансиях есть навыки, и в сервисе они складываются в отдельную таблицу БД. Навыки в вакансиях могут быть указаны как попало: "Python 3.8", "Python 2", "PYTHON", "Питон" и т.п.. В данных они должны быть в одном виде, то есть, их надо нормализовать. С этим у нас отлично справляется LLM (YandexGPT): она приводит одинаковые навыки к одному написанию по шаблонам LinkedIn и StackOverflow. Если в навыках указана ерунда - это убирается из данных. И, самое интересное, модель изучает полное описание вакансии и добавляет навыки, которые прямо или косвенно есть в тексте вакансии, но их не указали явно в категории скиллов. Мы стремились минимизировать число навыков, но LLM нагенерировала новые. Поэтому, сделаем справочник и по нему нормализуем.
Также мы нормализовали поля грейда и вилок зарплат. По описанию вакансии LLM может определить грейд (senior, middle и т.д.). Зарплатные вилки тоже указываются по-разному, бывают ошибки. Поэтому, нормализуем данные по ЗП до трёх полей: min ЗП, max ЗП, валюта.
В процессе и планах нормализации: локации, net или gross в указании зарплат, плюшки каждой вакансии и др..
Про техническую реализацию нормализации читайте
в канале у Никиты,
а Рома написал про создание, запуск тестов проверки корректности работы LLM и про картинки для постов.
Такую красоту данных нет смысла прятать, поэтому сделали TG канал 'VILKY', куда ежедневно автоматически публикуются прикольные рубрики с топами вакансий, компаний и всему что придумаем. Дизайн картинок и весь концепт придумывали и делали вместе. Я реализовал на Tableau Public. Кроме этого, ежедневно публикуются дайджесты по вчерашним данным и недельные дайджесты.
Ежедневный дайджест - набор из 5и визуализаций:
1️⃣ Метрики по всем подключенным платформам вакансий за вчера
2️⃣ Средняя ЗП и число вакансий по направлениям IT
3️⃣ Топ навыков в вакансиях
4️⃣ Топ новых вакансий по направлениям IT
5️⃣ Топ закрытых вакансий по направлениям IT
Дайджест сделали в виде слайдов. У Тиньков инвестиций примерно так же - понравилась эта концепция. Были другие варианты, но остановились на этом.
🥁 Сам телеграм канал 'VILKY. Вилки зарплат в IT' 🥁
Каждый день автоматически скидывается статистика вакансий IT. Добавим постепенно месячный и дайджесты по всем IT направлениям. Можно просто заходить и смотреть статистику.
Фидбек очень важен, будем прислушиваться и формировать роадмап. Комментарии и эмоджи открыты - можно писать в комменты что добавить, улучшить или убрать.
Все сообщения в канале автоматические, но, пока обкатываем, сделали себе в тестовый канал те же публикации, но на час раньше. Баги возможны, будем смотреть и фиксить.
📊 Детально можно смотреть вакансии в дашборде 📊
Его оптимизировали немного. В дашборд добавили статистику просмотров за последние 7 дней. Автоматически забирается по API Tableau Public. В дашборде сейчас 3 нормализованных поля, про которые писал выше. Поэтому, можно считать его AI powered.
Итого, мы построили систему, которая:
1️⃣. Автоматически собирает данные
2️⃣. Автоматически записывает всё в базу данных
3️⃣. Автоматически нормализует данные
4️⃣. Автоматически тестирует данные
5️⃣. Автоматически генерирует визуализации
6️⃣. Автоматически генерирует сообщения
7️⃣. Автоматически отправляет сообщения в канал