ಎಂಬೆಡಿಂಗ್ ತಂತ್ರಗಾರಿಕೆ: ಸೆಮಾಂಟಿಕ್ ಹುಡುಕಾಟಕ್ಕಾಗಿ 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 ಪೈಪ್ಲೈನ್ ಅವಲೋಕನ ನೋಡಿ.

ಉಲ್ಲೇಖಗಳು

ಮಾದರಿ ದಾಖಲೆ

ತಾಂತ್ರಿಕ ಪರಿಕಲ್ಪನೆಗಳು

ಸಂಬಂಧಿತ ಲೇಖನಗಳು

ಸಾರಾಂಶ

ನಾವು ಪಠ್ಯವನ್ನು