Building and Deploying Large Language Models for Skills Extraction at Scale

linkedin · Tech · 2023 · source Agentic: no · promotional bias: low · source-backed · extracted with prompt 0.5.4 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Large-scale skills extraction

LinkedIn needed to extract and map skills from unstructured platform content into the Skills Graph with enough accuracy, latency, and scale to power jobs, learning, feed, and skills-first hiring experiences.

Constraints:

Architecture

LinkedIn built a multi-stage skill extraction and mapping workflow. It combines trie-based skill tagging, a semantic two-tower model using Multilingual BERT encoders, skill expansion through Skills Graph relationships, multitask cross-domain scoring, and knowledge distillation that shrinks the model by 80% for CPU nearline serving without compromising performance.

Diagram confidence: explicit (topology described by the source).

flowchart LR
  raw-content[Raw Content] --> trie-skill-tagger[Trie Skill Tagger]
  raw-content --> semantic-skill-tagger[Semantic Skill Tagger]
  trie-skill-tagger --> skill-expansion[Skill Expansion]
  semantic-skill-tagger --> skill-expansion[Skill Expansion]
  skills-graph[Skills Graph] --> skill-expansion[Skill Expansion]
  skill-expansion --> cross-domain-scoring[Cross-Domain Scoring]
  cross-domain-scoring --> nearline-serving[Nearline Serving]
  nearline-serving --> product-experiences[Product Experiences]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Raw Content Job postings, profiles, resumes, courses, and feed posts. Trie Skill Tagger, Semantic Skill Tagger
Trie Skill Tagger Lexical skill matching stage. Skill Expansion
Semantic Skill Tagger Two-tower Multilingual BERT semantic matching model. Skill Expansion
Skill Expansion Expands tags using parent, child, sibling, and skill-group relationships. Skills Graph, Cross-Domain Scoring
Skills Graph LinkedIn's structured repository of more than 41,000 skills. Skill Expansion
Cross-Domain Scoring Scores skill relevance across LinkedIn surfaces. Nearline Serving
Nearline Serving Latency-constrained processing for profile and content updates. Product Experiences
Product Experiences Jobs, search, learning, and hiring features powered by skills. Nearline Serving

Data flow

Raw text from job postings and other content is first tagged with explicit skills, semantically embedded through a two-tower BERT model, expanded via Skills Graph relationships, scored across domains, and served in nearline systems under strict latency requirements.

“To address these nuances, we built an architecture and platform that addresses the challenges of extracting skills and mapping them onto the LinkedIn Skills Graph. The following diagram illustrates the AI model workflow that extracts and maps skills from raw text such as job postings.”article, stated
“The AI model behind this work is a two-tower model based on large language model (LLM) text encoders such as Multilingual BERT (see Figure 3).”article, stated

Why this architecture

LinkedIn combined lexical and semantic stages because explicit skill mentions and contextual skill meaning both matter. Knowledge distillation was required because serving a full BERT model under 100 milliseconds at profile-edit volume was too costly.

“To complement the trie-based skill tagger, we also developed a more semantic approach, where we trained machine models to understand the contextual information of any given text.”article, stated
“For online serving, Knowledge Distillation reduces the model size by 80% without compromising performance, given the existing Samza-BEAM CPU serving constraints.”article, stated

Models used: Multilingual BERT · two-tower model · knowledge-distilled student model

Scale

Alternatives considered (roads not taken)

Use only explicit profile/job skill fields.

Rejected because: Skills embedded in courses, resumes, and feed posts are more complex but important.

“Doing so is straightforward for skills explicitly listed on member profiles or in job descriptions. It can be far more complex for skills embedded in content, such as LinkedIn Learning courses, resumés, and feed posts.”article, stated

Use only trie-based lexical matching.

Rejected because: LinkedIn added semantic matching to capture contextual skill mentions.

“To complement the trie-based skill tagger, we also developed a more semantic approach, where we trained machine models to understand the contextual information of any given text.”article, stated

Serve the full 12-layer BERT model.

Rejected because: Latency and CPU-serving requirements made the full model too complex.

“Serving the model in nearline while meeting latency requirements with the original 12-layer BERT model is complex.”article, stated

Patterns

retrieval-ranking (skills graph)

Skill candidates are expanded and scored for relevance across LinkedIn surfaces.

“bring in relevant skills to increase the chance of skill matches”article, stated

model-distillation (serving optimization)

A student model replicates the teacher while reducing size and inference cost.

“transfer knowledge from a larger teacher network to a smaller student network”article, stated

latency-optimization (nearline serving)

Model compression supports under-100ms nearline processing.

“under 100 milliseconds”article, stated

data-quality-loop (skills graph)

The Skills Graph is continuously updated as the skills landscape changes.

“constantly update and evolve the Skills Graph”article, stated

Tradeoffs

Matching strategy

Chose Trie plus semantic two-tower model over Only lexical skill matching.

Rationale: Lexical tags are precise, while semantic encoders capture contextual skill mentions.

“decouple the generation of sentence and skill embedding”article, stated

Serving model

Chose Knowledge-distilled student over Full 12-layer BERT.

Rationale: The student met latency and CPU constraints without compromising performance.

“without compromising performance, given the existing Samza-BEAM CPU serving constraints”article, stated

Skill expansion

Chose Graph relationship expansion over Only directly tagged skills.

Rationale: Parent, child, sibling, and group relationships improve match coverage.

“parent skills, children skills, and sibling skills”article, stated

Gotchas (what bit them)

Skill extraction from embedded content is harder than explicit fields.

Root cause: Skills appear implicitly in courses, resumes, and feed text.

Resolution: Combine lexical tagging with semantic two-tower modeling.

“skills embedded in content, such as LinkedIn Learning courses, resumés, and feed posts”article, stated

Full BERT is too heavy for nearline latency at LinkedIn scale.

Root cause: A 12-layer BERT model has large parameter count and CPU serving cost.

Resolution: Apply knowledge distillation to shrink the model by 80%.

“BERT, though powerful in NLP, has a large parameter count and is computationally demanding.”article, stated

Evaluation

LinkedIn evaluates the pipeline through latency constraints, model compression performance, nearline serving feasibility, and downstream product metrics across job recommendations, search, and qualified applications.

Metrics: Latency under 100ms · Profile edits per second · Model size reduction · Applicants · Confirmed hires · Qualified applications

“Predicted Confirmed Hires: +0.4606%”article, stated

Outcomes

The source reports 41,000-plus skills, 200 profile edits per second, under-100ms processing, 80% model-size reduction, +0.4606% predicted confirmed hires, and +0.87% qualified applications.

“Qualified Applications: +0.87%”article, stated