💼
HR Tech & Professional Networks · LinkedIn

LinkedIn: LLM-извлечение навыков — 200 правок профилей в секунду и модель на 80% меньше без потери качества

Система в проде обрабатывает ~200 правок профилей в секунду с латентностью до 100 мс на сообщение — на CPU, благодаря дистиллированной модели на 80% меньше исходной. В онлайн A/B-тестах улучшенное извлечение навыков подняло метрики сразу трёх продуктов. Матчинг навыков кандидата и вакансии: +0,87% качественных откликов, +0,40% к их доле, +0,48% кликов «Откликнуться», +0,24% прогнозируемых подтверждённых наймов. Поиск работы: +0,76% выручки PPC, +0,15% сессий, +0,23% вовлечённости. Рекомендации вакансий: +0,46% прогнозируемых подтверждённых наймов и +0,14% откликов. Читать эти цифры нужно с двумя оговорками. Первая — масштаб: на платформе с сотнями миллионов участников доли процента в воронке найма — это значимые абсолютные величины и прямые деньги (PPC-выручка). Вторая — источник: все проценты — внутренние A/B-тесты LinkedIn из инженерного блога, без внешнего аудита; впрочем, детальность разбивки по метрикам и явное указание «прогнозируемых» (а не фактических) наймов говорят в пользу аккуратности отчёта. На наш взгляд, главный инженерный урок кейса — в том, что «LLM в проде» почти никогда не означает «самая большая модель в проде». Реальная формула LinkedIn: большая модель как учитель, дистиллированный ученик в сервинге, CPU-инфраструктура вместо GPU — и весь интеллект конвейера в связке с графом знаний, а не в одном гигантском трансформере. Это архитектура «LLM + знаниевый граф», где таксономия даёт интерпретируемость и управляемость, а нейросеть — понимание контекста; на фоне моды на end-to-end решения такой гибрид выглядит консервативно, но именно он выдерживает 200 событий в секунду на CPU. Второе наше наблюдение — организационное: LinkedIn отчитывается об эффекте ML-конвейера метриками конечных продуктов (отклики, наймы, выручка), а не точностью извлечения. Это дисциплинирует: инфраструктурная команда, чей успех измеряется чужими продуктовыми метриками, вынуждена строить петли обратной связи с продуктами — что LinkedIn и сделала, встроив валидацию навыков в интерфейсы рекрутёров и соискателей.

200/сек
правок профилей в обработке
-80%
размер модели (дистилляция)
<100 мс
на сообщение
41K+
навыков в таксономии
Источники
Проверено: 2026-07-11

Контекст

LinkedIn последовательно перестраивает рынок труда вокруг навыков, а не должностей и дипломов: ставка компании в том, что «skills-first» подход открывает работодателям более широкие пулы кандидатов, а специалистам — карьерные траектории, которые не считываются из одного лишь названия позиции. Технический фундамент этой стратегии — Skills Graph: таксономия навыков, связанных с участниками, вакансиями, курсами и контентом платформы.

Масштаб таксономии описан в отдельном инженерном посте (март 2023): почти 39 000 навыков, 374 000 алиасов на 26 локалях (разные написания одного навыка вроде «data analysis» и «data analytics») и более 200 000 связей-рёбер между узлами; с февраля 2021 года граф вырос почти на 35%. Навыки образуют полииерархию «линий знания»: например, «Offshore Construction» одновременно наследует и «Construction», и «Oil and Gas». Поддерживают граф таксономисты в паре с ML: модель KGBert (развитие идеи KG-BERT) предсказывает связи между навыками на 20%+ лучше предыдущей системы по F1. К концу 2023 года таксономия перевалила за 41 000 навыков.

Но сам по себе граф — лишь словарь. Ценность возникает, когда каждая сущность платформы — профиль, вакансия, курс, пост — корректно размечена навыками из этого словаря. В декабре 2023 года команда LinkedIn AI (техлид Джи Янь с соавторами) опубликовала разбор боевого конвейера, который извлекает навыки из всего контента платформы с помощью LLM-энкодеров — и укладывается в жёсткие ограничения продакшена: мировой поток правок профилей на CPU-инфраструктуре, без дорогих GPU.

Проблема

Навыки в профилях, вакансиях и постах написаны свободным текстом, на десятках языков и часто неявно: «строил ETL-пайплайны» — это Spark? Airflow? SQL? Наивный поиск по словарю не понимает контекста и тонет в омонимах, а один и тот же навык люди называют сотнями способов — недаром в таксономии 374 тысячи алиасов. При этом связывать текст нужно не с абстрактными тегами, а с конкретными узлами графа из 41 тысячи навыков — включая иерархические выводы: указание «BERT» в профиле кое-что говорит и о «NLP», и о «Deep Learning».

Вторая половина проблемы — продакшен-ограничения. Полноразмерные LLM слишком дороги и медленны для потока правок: профили участников редактируются примерно 200 раз в секунду по всему миру, и каждое сообщение нужно обработать быстрее чем за 100 миллисекунд — на CPU-инфраструктуре стриминга Samza-BEAM, а не на GPU-кластерах. Плюс периодически требуется офлайн-переобработка всего корпуса — сотен миллионов профилей и вакансий, — что задаёт отдельные требования к пропускной способности конвейера.

Наконец, ошибка извлечения — не абстрактная метрика: от разметки навыков зависят рекомендации вакансий, поиск работы, матчинг кандидатов и выдача рекрутёров. Пропущенный навык — это кандидат, не увидевший подходящую вакансию; лишний — нерелевантный отклик и потерянное время рекрутёра. Качество экстракции напрямую конвертируется в воронку найма всей платформы.

Решение

Конвейер извлечения навыков построен из четырёх последовательных стадий. Сначала сегментация: неструктурированный текст (вакансия, профиль, резюме) разбирается на структурные секции — где требования, где обязанности, где описание компании. Затем теггинг навыков двумя путями параллельно: токенный поиск по словарю таксономии и семантический матчинг. За семантику отвечает двухбашенная модель на основе Multilingual BERT: одна башня кодирует предложение, другая — навык таксономии, и текст сопоставляется с навыками в общем векторном пространстве — так «выстраивал конвейеры обработки данных» находит «ETL» без дословного совпадения, на любом из поддерживаемых языков. Третья стадия — расширение: по найденным навыкам конвейер обходит Skills Graph и добавляет связанные узлы-кандидаты из иерархии. Финальная стадия — мультизадачный кросс-доменный скоринг: трансформерный контекстный энкодер текста и энкодер сущностей (общие модули) плюс отдельные «башни» под каждый тип контента — вакансии, профили, ленту — оценивают релевантность каждой пары «контент-навык».

Ключевой ход, сделавший всё это возможным в реальном времени, — knowledge distillation: компактная «ученическая» модель обучена воспроизводить поведение полноразмерной и получилась на 80% меньше без потери качества. Именно она обслуживает поток из ~200 правок профилей в секунду с латентностью до 100 мс на сообщение — на существующей CPU-инфраструктуре Samza-BEAM, в гибридной схеме: нирлайн-обработка правок в реальном времени плюс офлайн-джобы для полной переобработки корпуса при обновлениях моделей или таксономии.

Отдельный контур — обратная связь из продуктов, встроенная прямо в интерфейсы: рекрутёры подтверждают или правят навыки при публикации вакансий, соискатели оценивают релевантность совпавших навыков при отклике, а участники дают фидбек после прохождения LinkedIn Skill Assessments. Эти сигналы возвращаются в обучение, замыкая цикл улучшения экстракции. Извлечённые навыки питают Skills Graph и все продукты поверх него: рекомендации вакансий, поиск работы, матчинг кандидатов. В планах команда называла LLM-генерацию развёрнутых описаний навыков и переход к полностью эмбеддинговым представлениям навыков для семантического матчинга.

Результат

Система в проде обрабатывает ~200 правок профилей в секунду с латентностью до 100 мс на сообщение — на CPU, благодаря дистиллированной модели на 80% меньше исходной. В онлайн A/B-тестах улучшенное извлечение навыков подняло метрики сразу трёх продуктов. Матчинг навыков кандидата и вакансии: +0,87% качественных откликов, +0,40% к их доле, +0,48% кликов «Откликнуться», +0,24% прогнозируемых подтверждённых наймов. Поиск работы: +0,76% выручки PPC, +0,15% сессий, +0,23% вовлечённости. Рекомендации вакансий: +0,46% прогнозируемых подтверждённых наймов и +0,14% откликов.

Читать эти цифры нужно с двумя оговорками. Первая — масштаб: на платформе с сотнями миллионов участников доли процента в воронке найма — это значимые абсолютные величины и прямые деньги (PPC-выручка). Вторая — источник: все проценты — внутренние A/B-тесты LinkedIn из инженерного блога, без внешнего аудита; впрочем, детальность разбивки по метрикам и явное указание «прогнозируемых» (а не фактических) наймов говорят в пользу аккуратности отчёта.

На наш взгляд, главный инженерный урок кейса — в том, что «LLM в проде» почти никогда не означает «самая большая модель в проде». Реальная формула LinkedIn: большая модель как учитель, дистиллированный ученик в сервинге, CPU-инфраструктура вместо GPU — и весь интеллект конвейера в связке с графом знаний, а не в одном гигантском трансформере. Это архитектура «LLM + знаниевый граф», где таксономия даёт интерпретируемость и управляемость, а нейросеть — понимание контекста; на фоне моды на end-to-end решения такой гибрид выглядит консервативно, но именно он выдерживает 200 событий в секунду на CPU.

Второе наше наблюдение — организационное: LinkedIn отчитывается об эффекте ML-конвейера метриками конечных продуктов (отклики, наймы, выручка), а не точностью извлечения. Это дисциплинирует: инфраструктурная команда, чей успех измеряется чужими продуктовыми метриками, вынуждена строить петли обратной связи с продуктами — что LinkedIn и сделала, встроив валидацию навыков в интерфейсы рекрутёров и соискателей.

Технологический стек
Multilingual BERT (two-tower)Transformer contextual encoder + entity encoderМультизадачный кросс-доменный скорингKnowledge distillation (−80%)Samza-BEAM CPU-сервинг (nearline + offline)Skills Graph (41K+ навыков, KGBert)Продуктовые петли обратной связи
Сроки
Февраль 2021 — точка отсчёта роста таксономии. Март 2023 — пост о таксономии: ~39 000 навыков, 374 000 алиасов на 26 локалях, 200 000+ связей (+35% за два года), KGBert (+20% F1). 13 декабря 2023 — разбор конвейера экстракции: четыре стадии, двухбашенный Multilingual BERT, дистилляция −80%, сервинг 200 правок/сек на CPU, таксономия уже 41 000+ навыков; A/B-приросты в матчинге, поиске и рекомендациях вакансий. В планах — LLM-описания навыков и полностью эмбеддинговые представления.

Уроки для индустрии

  1. LLM в проде — это почти всегда не «самая большая модель», а дистиллированная: −80% размера без потери качества сделали сервинг возможным на CPU в бюджете 100 мс.
  2. Гибрид «LLM + знаниевый граф» бьёт end-to-end: таксономия даёт интерпретируемость и иерархические выводы, нейросеть — понимание контекста и мультиязычность.
  3. Считайте эффект в метриках конечных продуктов: LinkedIn отчитывается не точностью извлечения, а качественными откликами (+0,87%), выручкой PPC (+0,76%) и прогнозируемыми наймами.
  4. Встраивайте обратную связь в продукт: валидация навыков рекрутёрами, фидбек соискателей и результаты Skill Assessments возвращаются в обучение и замыкают цикл качества.
  5. Двухбашенная архитектура (текст и таксономия в общем пространстве) масштабируется на новые типы контента и 26 локалей без переобучения всего конвейера.
  6. На платформах с сотнями миллионов пользователей прирост в доли процента — серьёзные деньги: не отбрасывайте «маленькие» результаты A/B-тестов.
  7. Единый граф навыков как общий слой данных умножает ценность одного ML-конвейера сразу во многих продуктах: поиск, рекомендации, матчинг, выдача рекрутёров.

Частые вопросы

Как LinkedIn извлекает навыки из профилей и вакансий?

Четырёхстадийным конвейером: сегментация текста → теггинг (словарный + семантический через двухбашенный Multilingual BERT) → расширение по Skills Graph → мультизадачный скоринг пар «контент-навык». Дистиллированная модель (на 80% меньше) обрабатывает ~200 правок профилей в секунду быстрее чем за 100 мс.

Что дало дистиллирование модели LinkedIn?

Сокращение размера модели на 80% без потери качества — это позволило обслуживать поток в реальном времени на существующей CPU-инфраструктуре (Samza-BEAM) вместо дорогого GPU-сервинга, плюс офлайн-переобработку всего корпуса при обновлениях.

Как улучшенное извлечение навыков повлияло на бизнес-метрики LinkedIn?

В онлайн A/B-тестах: +0,87% качественных откликов и +0,24% прогнозируемых наймов в матчинге навыков, +0,76% выручки PPC в поиске работы, +0,46% прогнозируемых наймов в рекомендациях вакансий. На масштабе платформы доли процента — значимый бизнес-эффект.

Что такое Skills Graph и кто его поддерживает?

Таксономия из 41 000+ навыков с 374 000 алиасов на 26 локалях и 200 000+ иерархических связей («Offshore Construction» наследует и «Construction», и «Oil and Gas»). Поддерживают её таксономисты в паре с ML-моделью KGBert, которая предсказывает связи между навыками на 20%+ точнее предыдущей системы.

Откуда система знает, что извлекла навыки правильно?

Из продуктовых петель обратной связи: рекрутёры подтверждают навыки при публикации вакансий, соискатели оценивают релевантность совпадений при отклике, участники дают фидбек после Skill Assessments. Эти сигналы возвращаются в обучение моделей.

← Кейсы