ఎంబెడింగ్ వ్యూహం: సెమాంటిక్ శోధన కోసం all-mpnet-base-v2

ఈ వ్యాసం మన SEO పైప్లైన్ అంతటా సెమాంటిక్ శోధనను శక్తివంతం చేయడానికి మనం all-mpnet-base-v2 సెంటెన్స్ ట్రాన్స్ఫార్మర్ మోడల్ను ఎలా ఉపయోగిస్తామో వివరిస్తుంది.

సమస్య: ప్రశ్నలను ఉత్పత్తులతో సరిపోల్చడం

వినియోగదారులు "మినీ పిసి" లేదా "చిన్న కంప్యూటర్" కోసం శోధించినప్పుడు, ఏ కీవర్డ్లను పంచుకోకపోయినా వారు ఒకే విషయాన్ని సూచిస్తారు. సంప్రదాయ కీవర్డ్ సరిపోలిక ఇక్కడ విఫలమవుతుంది. మనకు సెమాంటిక్ ఎంబెడింగ్లు అవసరం - పదాలను మాత్రమే కాకుండా అర్థాన్ని సంగ్రహించే దట్టమైన వెక్టర్ ప్రాతినిధ్యాలు.

మన SEO పైప్లైన్ 65,000+ శోధన ప్రశ్నలను ప్రాసెస్ చేస్తుంది మరియు దీనికి అవసరం:

  • ప్రశ్న పేజీల కోసం ఒకే విధమైన ప్రశ్నలను క్లస్టర్ చేయడం

  • అర్థం ఆధారంగా ప్రశ్నలను ఉత్పత్తులతో సరిపోల్చడం

  • సంబంధిత శోధనలను కనుగొనడం

  • పదబంధ-నుండి-ఫిల్టర్ మ్యాపింగ్లను విస్తరించడం

మోడల్: all-mpnet-base-v2

మనం all-mpnet-base-v2ని ఉపయోగిస్తాము, ఇది ఒక సెంటెన్స్ ట్రాన్స్ఫార్మర్ మోడల్:

  • 768-డైమెన్షనల్ వెక్టర్లను అవుట్పుట్ చేస్తుంది

  • 1 బిలియన్+ వాక్యాల జతలపై శిక్షణ పొందింది

  • 384 టోకెన్ల వరకు సీక్వెన్స్లను నిర్వహిస్తుంది

ఈ మోడల్ టెక్స్ట్ను దట్టమైన వెక్టర్ స్పేస్కు మ్యాప్ చేస్తుంది, ఇక్కడ సెమాంటిక్గా ఒకే విధమైన టెక్స్ట్కు ఎక్కువ కొసైన్ సారూప్యత ఉంటుంది.

మనం దీన్ని ఎలా ఉపయోగిస్తాము

1. ప్రశ్నలను ఎంబెడ్ చేయడం

మనం అన్ని శోధన ప్రశ్నలను 768-డైమెన్షనల్ వెక్టర్లలో ఎంబెడ్ చేస్తాము:

from sentence_transformers import SentenceTransformer

model = SentenceTransformer("all-mpnet-base-v2")
embeddings = model.encode(queries)

ప్రతి ప్రశ్న ఒక 768-ఫ్లోట్ వెక్టర్ (3,072 బైట్లు) అవుతుంది. 65,000 ప్రశ్నల కోసం, అది ~190 MB ఎంబెడింగ్లు.

2. ప్రశ్నలను క్లస్టర్ చేయడం

మనం ప్రశ్నలను సారూప్యత ద్వారా క్లస్టర్ చేస్తాము:

  • ట్రాఫిక్ ప్రకారం టాప్ 1,000 ప్రశ్నలను క్లస్టర్ సెంటర్లుగా ఎంచుకోండి

  • అన్ని 65K ప్రశ్నలు మరియు ఈ 1K కేంద్రాల మధ్య కొసైన్ సారూప్యతని లెక్కించండి

  • సారూప్యత ≥ 0.85 ఉన్న ప్రశ్నలు ఆ క్లస్టర్లో చేరతాయి

  • క్లస్టర్ చేయని ప్రశ్నలు సింగిల్టన్ క్లస్టర్లుగా మారతాయి

ఇది ప్రశ్న పేజీలను సృష్టిస్తుంది, ఇక్కడ ప్రతి పేజీ ఒకే విధమైన శోధనల క్లస్టర్ను సూచిస్తుంది.

వివరాల కోసం ప్రశ్న క్లస్టరింగ్ అల్గోరిథం చూడండి.

3. ఉత్పత్తులను సరిపోల్చడం

మనం ఉత్పత్తి పేర్లు మరియు లక్షణాలను ఎంబెడ్ చేస్తాము, తర్వాత కొసైన్ సారూప్యతను ఉపయోగించి ప్రశ్నలను ఉత్పత్తులతో సరిపోల్చుతాము. ప్రశ్నకు అత్యధిక సారూప్యత ఉన్న ఉత్పత్తులు ఆ ప్రశ్న పేజీలో కనిపిస్తాయి.

వివరాల కోసం ఉత్పత్తి సరిపోలిక అల్గోరిథం చూడండి.

4. పదబంధ మ్యాపింగ్లను విస్తరించడం

ఫిల్టర్ ఎక్స్ట్రాక్షన్ కోసం ఒకే విధమైన పదబంధాలను కనుగొనడానికి మనం ఎంబెడింగ్లను ఉపయోగిస్తాము. ఉదాహరణకు, "మినీ పిసి" ఒక సైజు ఫిల్టర్కు మ్యాప్ అయితే, "చిన్న కంప్యూటర్" కూడా అలాగే ఉండాలని మనం కనుగొనవచ్చు.

వివరాల కోసం పదబంధ మ్యాపింగ్ విస్తరణ చూడండి.

నిల్వ: NumPy శ్రేణులు

మనం ఎంబెడింగ్లను NumPy .npy ఫైల్లుగా నిల్వ చేస్తాము:

import numpy as np

# సేవ్ చేయి
np.save("embeddings.npy", embeddings)

# లోడ్ చేయి (మెమరీ-మ్యాప్ చేయబడింది)
embeddings = np.load("embeddings.npy", mmap_mode='r')

ఎందుకు NumPy?

  • మెమరీ మ్యాపింగ్తో వేగవంతమైన లోడింగ్

  • సారూప్యత గణన కోసం స్థానిక శ్రేణి కార్యకలాపాలు

  • కాంపాక్ట్ బైనరీ ఫార్మాట్ (~190 MB 65K ప్రశ్నలకు)

ఇంక్రిమెంటల్ ఎంబెడింగ్

మనం ప్రతిసారీ అన్ని ప్రశ్నలను తిరిగి ఎంబెడ్ చేయము. మన ఇంక్రిమెంటల్ ఎంబెడింగ్:

  1. ఇప్పటికే ఉన్న ఎంబెడింగ్లను లోడ్ చేస్తుంది
  2. ప్రశ్న కీలను (టెక్స్ట్ + మెటాడేటా) సరిపోల్చుతుంది
  3. కొత్త/మారిన ప్రశ్నలను మాత్రమే ఎంబెడ్ చేస్తుంది
  4. ఇప్పటికే ఉన్న శ్రేణికి జోడిస్తుంది

కొన్ని ప్రశ్నలు మాత్రమే మారినప్పుడు ఇది ప్రాసెసింగ్ సమయాన్ని గణనీయంగా తగ్గిస్తుంది.

మల్టీ-సర్వర్ ఆర్కిటెక్చర్

ఎంబెడింగ్లు బహుళ సర్వర్లలో ఉపయోగించబడతాయి:

  1. బ్యాచ్ పైప్లైన్: ప్రశ్నలు మరియు ఉత్పత్తుల నుండి ఎంబెడింగ్లను ఉత్పత్తి చేస్తుంది
  2. శోధన సేవ: సంబంధిత శోధన API కోసం ఎంబెడింగ్లను లోడ్ చేస్తుంది
  3. ప్రధాన వెబ్ సర్వర్: ఉత్పత్తి సరిపోలిక కోసం ఎంబెడింగ్లను ఉపయోగిస్తుంది

నిల్వ సర్వర్ ద్వారా మారుతుంది:

  • NumPy ఫైల్లు: బ్యాచ్ పైప్లైన్ (వేగవంతమైన స్థానిక యాక్సెస్)

  • Valkey RediSearch: శోధన సేవ (వెక్టర్ సారూప్యత శోధన)

Valkey ఇంటిగ్రేషన్ వివరాల కోసం శోధన సేవ ఆర్కిటెక్చర్ చూడండి.

SEO పైప్లైన్తో ఏకీకరణ

ఎంబెడింగ్లు బహుళ పైప్లైన్ దశలను శక్తివంతం చేస్తాయి:

  1. దశ 0: సోర్స్ డేటాను ఎంబెడ్ చేయండి - ఉత్పత్తులు, భాగాలు, వ్యాసాలు
  2. దశ 3b: ప్రశ్నలను ఎంబెడ్ చేయండి - అన్ని శోధన ప్రశ్నలు
  3. దశ 4: పదబంధ మ్యాపింగ్లను విస్తరించండి - ఒకే విధమైన పదబంధాలను కనుగొనండి
  4. దశ 5: ప్రశ్నలను క్లస్టర్ చేయండి - ప్రశ్న పేజీలలో సమూహపరచండి
  5. దశ 6: ఉత్పత్తులను సరిపోల్చండి - ప్రశ్న-ఉత్పత్తి సరిపోలిక
  6. దశ 8: సంబంధిత శోధనలను రూపొందించండి - సంబంధిత ప్రశ్నలను కనుగొనండి

పూర్తి ప్రవాహం కోసం SEO పైప్లైన్ అవలోకనం చూడండి.

సూచనలు

మోడల్ డాక్యుమెంటేషన్

సాంకేతిక భావనలు

సంబంధిత వ్యాసాలు