ಘಟಕ 2 / 11

ಎಂಬೆಡಿಂಗ್ ಮತ್ತು ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್ ಲಾಜಿಕ್

ಲಾಭಗಳು:

  • ಎಂಬೆಡಿಂಗ್ ಪಠ್ಯವನ್ನು ಶಬ್ದಾರ್ಥದ ಜಾಗದಲ್ಲಿ ವೆಕ್ಟರ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ ಮತ್ತು ಇದೇ ಅರ್ಥಗಳು ನಿಕಟ ವೆಕ್ಟರ್ಗಳಾಗಿವೆ ಎಂದು ಅರ್ಥಮಾಡಿಕೊಳ್ಳಿ
  • ಕೊಸೈನ್ ಮತ್ತು ಡಾಟ್ ಹೋಲಿಕೆಯ ಮೆಟ್ರಿಕ್‌ಗಳೊಂದಿಗೆ ANN ಹುಡುಕಾಟವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ
  • ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರಿಂಗ್‌ನ ವೆಚ್ಚ, ಪ್ರಮಾಣ ಮತ್ತು ಅಗತ್ಯವನ್ನು ಆಧರಿಸಿ ಸಾಮಾನ್ಯ ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್‌ಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು

RAG ನ ಹೃದಯಭಾಗದಲ್ಲಿ ಒಂದೇ ಪ್ರಶ್ನೆಯಿದೆ: "ಯಾವ ಪಠ್ಯವು ಬಳಕೆದಾರರ ಪ್ರಶ್ನೆಗೆ ಹೋಲುತ್ತದೆ?" ಕಂಪ್ಯೂಟರ್ ಪಠ್ಯವನ್ನು ಸಂಖ್ಯೆಗಳೊಂದಿಗೆ ಪ್ರಕ್ರಿಯೆಗೊಳಿಸುತ್ತದೆ, ಅಕ್ಷರಶಃ ಅಲ್ಲ. ಅದಕ್ಕಾಗಿಯೇ ನಾವು ಮೊದಲು ಪಠ್ಯವನ್ನು ಅದರ ಅರ್ಥವನ್ನು ಹೊಂದಿರುವ ಸಂಖ್ಯೆಗಳಾಗಿ ಪರಿವರ್ತಿಸಬೇಕಾಗಿದೆ. ಎಂಬೆಡಿಂಗ್ ಎಂದರೆ: ಪಠ್ಯವನ್ನು ಆ ಪಠ್ಯದ ಅರ್ಥವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಸಂಖ್ಯೆಗಳ ಅನುಕ್ರಮವಾಗಿ (ವೆಕ್ಟರ್) ಪರಿವರ್ತಿಸುವ ಪ್ರಕ್ರಿಯೆ. ನೀವು ಈ ಘಟಕವನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದಾಗ, ಎಂಬೆಡಿಂಗ್ ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ, ಹೋಲಿಕೆಯನ್ನು ಹೇಗೆ ಅಳೆಯಲಾಗುತ್ತದೆ ಮತ್ತು ಸರಿಯಾದ ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್ ಅನ್ನು ಹೇಗೆ ಆರಿಸುವುದು ಎಂದು ನಿಮಗೆ ತಿಳಿಯುತ್ತದೆ.

ಎಂಬೆಡಿಂಗ್: ಅರ್ಥವನ್ನು ನಿರ್ದೇಶಾಂಕಗಳಾಗಿ ಭಾಷಾಂತರಿಸುವುದು

ಎಂಬೆಡಿಂಗ್ ಮಾಡೆಲ್ (ವಿಶೇಷವಾಗಿ ತರಬೇತಿ ಪಡೆದ ಕೃತಕ ಬುದ್ಧಿಮತ್ತೆ) ನೀವು ಒದಗಿಸುವ ಪಠ್ಯವನ್ನು ವೆಕ್ಟರ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ, 1024 ಸಂಖ್ಯೆಗಳು. ಈ ವೆಕ್ಟರ್ ಅನ್ನು ಬಹುಆಯಾಮದ ಜಾಗದಲ್ಲಿ ನಿರ್ದೇಶಾಂಕ ಎಂದು ಯೋಚಿಸಿ. ಮ್ಯಾಜಿಕ್ ಇದು: ಅರ್ಥದಲ್ಲಿ ಹೋಲುವ ಪಠ್ಯಗಳು ಈ ಜಾಗದಲ್ಲಿ ನಿಕಟ ನಿರ್ದೇಶಾಂಕಗಳಿಗೆ ಬರುತ್ತವೆ.

ಒಂದು ಸರಳ ಉದಾಹರಣೆ: "ವಾರ್ಷಿಕ ರಜೆ", "ರಜೆಯ ಅರ್ಹತೆ" ಮತ್ತು "ವಾರ್ಷಿಕ ಪಾವತಿಸಿದ ರಜೆ" ವಿಭಿನ್ನ ಪದಗಳನ್ನು ಬಳಸುತ್ತವೆ ಆದರೆ ಒಂದೇ ಅರ್ಥ - ಅವುಗಳ ವಾಹಕಗಳು ಪರಸ್ಪರ ಹತ್ತಿರದಲ್ಲಿವೆ. "ವೇತನದಾರರ ಖಾತೆ" ವಿಭಿನ್ನ ವಿಷಯವಾಗಿದೆ - ಅದರ ವೆಕ್ಟರ್ ದೂರದಲ್ಲಿದೆ. ಹಾಗಾಗಿ ಬಳಕೆದಾರರು "ನಾನು ಎಷ್ಟು ದಿನಗಳ ರಜೆಯನ್ನು ಹೊಂದಿದ್ದೇನೆ?" ನೀವು ಕೇಳಿದಾಗ, "ರಜೆ" ಎಂಬ ಪದವನ್ನು ಹೊಂದಿರದ ಆದರೆ "ವಾರ್ಷಿಕ ರಜೆ 14 ದಿನಗಳು" ಎಂದು ಹೇಳುವ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಸಹ ನಾವು ಕಾಣಬಹುದು. ಇದು ಕ್ಲಾಸಿಕ್ ಕೀವರ್ಡ್ ಹುಡುಕಾಟ (ಪದಕ್ಕೆ ನಿಖರವಾಗಿ ಹೊಂದಿಕೆಯಾಗುವ ಹುಡುಕಾಟ) ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಸಲಹೆ: ಎಂಬೆಡಿಂಗ್ ಅನ್ನು "ಅರ್ಥದ ಬೆರಳಚ್ಚು" ಎಂದು ಯೋಚಿಸಿ. ಒಂದೇ ಅರ್ಥವನ್ನು ಹೊಂದಿರುವ ಎರಡು ವಾಕ್ಯಗಳ ಬೆರಳಚ್ಚುಗಳು ಒಂದೇ ರೀತಿ ಕಂಡುಬರುತ್ತವೆ; ಪದಗಳು ವಿಭಿನ್ನವಾಗಿದ್ದರೂ ಸಹ.

ಒಂದು ಪ್ರಮುಖ ನಿಯಮ: ಪ್ರಶ್ನೆಯನ್ನು ಎಂಬೆಡ್ ಮಾಡುವಾಗ ನೀವು ಬಳಸುವ ಮಾದರಿಯು ದಾಖಲೆಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡುವಾಗ ನೀವು ಬಳಸುವ ಮಾದರಿಯಾಗಿರಬೇಕು. ವಿಭಿನ್ನ ಮಾದರಿಗಳು ವಿಭಿನ್ನ ಸ್ಥಳಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತವೆ; ನಿರ್ದೇಶಾಂಕಗಳು ಹೋಲಿಸಲಾಗದವು.

ಹೋಲಿಕೆಯನ್ನು ಅಳೆಯುವುದು ಹೇಗೆ?

ಎರಡು ವೆಕ್ಟರ್‌ಗಳು ಎಷ್ಟು ಹೋಲುತ್ತವೆ ಎಂಬುದನ್ನು ಅಳೆಯಲು ಹಲವಾರು ವಿಧಾನಗಳಿವೆ. ಅತ್ಯಂತ ಸಾಮಾನ್ಯವಾದ ಕೊಸೈನ್ ಹೋಲಿಕೆಯಾಗಿದೆ: ಇದು ಎರಡು ವಾಹಕಗಳ ನಡುವಿನ ಕೋನವನ್ನು ಅಳೆಯುತ್ತದೆ. ಕೋನವು ಚಿಕ್ಕದಾಗಿದ್ದರೆ (ವೆಕ್ಟರ್‌ಗಳು ಒಂದೇ ದಿಕ್ಕಿನಲ್ಲಿ ತೋರಿಸುತ್ತವೆ), ಹೋಲಿಕೆಯು ಹೆಚ್ಚು. ಮೌಲ್ಯವು −1 ಮತ್ತು 1 ರ ನಡುವೆ ಇದೆ; 1 ಗೆ ಹತ್ತಿರ = ತುಂಬಾ ಹೋಲುತ್ತದೆ.

ಮಾನದಂಡ

ಇದು ಏನು ಅಳೆಯುತ್ತದೆ?

ಯಾವಾಗ ಆದ್ಯತೆ ನೀಡಲಾಗುತ್ತದೆ?

ಕೊಸೈನ್

ವಾಹಕಗಳ ನಡುವಿನ ಕೋನ (ದಿಕ್ಕು).

ಅತ್ಯಂತ ಸಾಮಾನ್ಯ; ಪಠ್ಯ ಶಬ್ದಾರ್ಥದ ಹೋಲಿಕೆಯಲ್ಲಿ ಡೀಫಾಲ್ಟ್

ಡಾಟ್ ಉತ್ಪನ್ನ

ದಿಕ್ಕು + ಪರಿಮಾಣ ಒಟ್ಟಿಗೆ

ವಾಹಕಗಳನ್ನು ಸಾಮಾನ್ಯಗೊಳಿಸಿದರೆ, ಅದು ಕೊಸೈನ್‌ನಂತೆಯೇ ಅದೇ ಫಲಿತಾಂಶವನ್ನು ನೀಡುತ್ತದೆ; ವೇಗವಾಗಿದೆ

ಯೂಕ್ಲಿಡಿಯನ್ (ಯೂಕ್ಲಿಡಿಯನ್ ದೂರ)

ನಿರ್ದೇಶಾಂಕಗಳ ನಡುವಿನ ನೇರ ಅಂತರ

ಕೆಲವು ಕ್ಲಸ್ಟರಿಂಗ್ ಸನ್ನಿವೇಶಗಳಲ್ಲಿ; ಪಠ್ಯದಲ್ಲಿ ಕಡಿಮೆ ಬಳಸಲಾಗಿದೆ

ಪ್ರಾಯೋಗಿಕವಾಗಿ, ಹೆಚ್ಚಿನ ಎಂಬೆಡಿಂಗ್ ಮಾದರಿಗಳು ಸಾಮಾನ್ಯೀಕರಿಸಿದ ವೆಕ್ಟರ್‌ಗಳನ್ನು ಉತ್ಪಾದಿಸುತ್ತವೆ (ಗಾತ್ರವನ್ನು 1 ಗೆ ಹೊಂದಿಸಲಾಗಿದೆ); ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಕೊಸೈನ್ ಮತ್ತು ಡಾಟ್ ಉತ್ಪನ್ನವು ಒಂದೇ ಕ್ರಮವನ್ನು ನೀಡುತ್ತದೆ. ನಿರ್ಧಾರವನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬೇಡಿ: ಕೊಸೈನ್‌ನಿಂದ ಪ್ರಾರಂಭಿಸಿ.

ಲಕ್ಷಾಂತರ ವೆಕ್ಟರ್‌ಗಳ ನಡುವೆ, ಅವುಗಳನ್ನು ಒಂದೊಂದಾಗಿ ಹೋಲಿಸುವುದು ನಿಧಾನವಾಗಿರುತ್ತದೆ. ಅದಕ್ಕಾಗಿಯೇ ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್‌ಗಳು ANN (ಅಂದಾಜು ಹತ್ತಿರದ ನೆರೆಹೊರೆಯವರು) ಅಲ್ಗಾರಿದಮ್‌ಗಳನ್ನು ಬಳಸುತ್ತವೆ. ANN "ನಿಖರವಾದ ಹತ್ತಿರದ" ಬದಲಿಗೆ "ಬಹುತೇಕ ನಿಖರವಾದ ಹತ್ತಿರ" ಅನ್ನು ತ್ವರಿತವಾಗಿ ಕಂಡುಕೊಳ್ಳುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, HNSW ಎಂಬ ವಿಧಾನವು 10 ಮಿಲಿಯನ್ ವೆಕ್ಟರ್‌ಗಳಿಗೆ ಸಹ ಕೆಲವು ಮಿಲಿಸೆಕೆಂಡ್‌ಗಳಲ್ಲಿ ಫಲಿತಾಂಶಗಳನ್ನು ನೀಡುತ್ತದೆ. ನಿಖರತೆಯ ಸಣ್ಣ ತ್ಯಾಗಕ್ಕಾಗಿ ನೀವು ಹೆಚ್ಚಿನ ವೇಗವನ್ನು ಪಡೆಯುತ್ತೀರಿ.

ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್ ಏನು ಮಾಡುತ್ತದೆ?

ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್ ಏಕಕಾಲದಲ್ಲಿ ಮೂರು ಕೆಲಸಗಳನ್ನು ಮಾಡುತ್ತದೆ: (1) ವೆಕ್ಟರ್‌ಗಳನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ, (2) ಕ್ವೆರಿ ವೆಕ್ಟರ್‌ಗೆ ಹೋಲುವ ವೆಕ್ಟರ್‌ಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಕಂಡುಹಿಡಿಯುತ್ತದೆ, (3) ಪ್ರತಿ ವೆಕ್ಟರ್‌ನ ಪಕ್ಕದಲ್ಲಿರುವ ಮೆಟಾಡೇಟಾ ಮೂಲಕ ಫಿಲ್ಟರ್ ಮಾಡುತ್ತದೆ. ಮೆಟಾಡೇಟಾವು ಆ ಭಾಗಕ್ಕೆ ನೀವು ಲಗತ್ತಿಸುವ ಟ್ಯಾಗ್‌ಗಳಾಗಿವೆ: ಮೂಲ ಫೈಲ್, ದಿನಾಂಕ, ಇಲಾಖೆ, ಗೌಪ್ಯತೆ ಮಟ್ಟ, ಇತ್ಯಾದಿ. ಎಂಟರ್‌ಪ್ರೈಸ್ RAG ನಲ್ಲಿ ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರಿಂಗ್ ನಿರ್ಣಾಯಕವಾಗಿದೆ; ಏಕೆಂದರೆ ನೀವು "ಹಣಕಾಸು ಇಲಾಖೆಯ 2025 ಡಾಕ್ಯುಮೆಂಟ್‌ಗಳಲ್ಲಿ ಮಾತ್ರ ಹುಡುಕಿ" ಎಂಬಂತಹ ನಿರ್ಬಂಧಗಳನ್ನು ಹೊಂದಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತದೆ.

# ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್‌ಗೆ ನೋಂದಾಯಿಸಿ (ಪರಿಕಲ್ಪನಾ)vektor_db.add( id="izin-politikasi-parca-3", vektor=embed("ವಾರ್ಷಿಕ ಪಾವತಿಸಿದ ರಜೆ 14 ದಿನಗಳು..."), text="ವಾರ್ಷಿಕ ಪಾವತಿಸಿದ ರಜೆ 14 ದಿನಗಳು...", ಮೆಟಾಡೇಟಾ={"source": "ik_eld_kitabi. "ದಿನಾಂಕ": "2025-06", "ಗೌಪ್ಯತೆ": "ic"})

# ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರ್ ಮಾಡಿದ ಹುಡುಕಾಟ (ಪರಿಕಲ್ಪನಾ) ಫಲಿತಾಂಶ = vektor_db.search( vektor=Embed("ನನಗೆ ಎಷ್ಟು ದಿನಗಳ ರಜೆ ಇದೆ?"), top_k=4, filter={"department": "HR", "privacy": ["internal", "on"]})

ಸರಿಯಾದ ಡೇಟಾಬೇಸ್ ಆಯ್ಕೆ

ವಾಹನ

ವೈಶಿಷ್ಟ್ಯಗೊಳಿಸಿದ ಅಂಶ

ಸೂಕ್ತವಾದ ಪರಿಸ್ಥಿತಿ

ಅಂತರ್ನಿರ್ಮಿತ / ಫೈಲ್ ಆಧಾರಿತ (ಎಂಬೆಡೆಡ್ ಲೈಬ್ರರಿ)

ಅನುಸ್ಥಾಪನೆ ಇಲ್ಲ, ಒಂದೇ ಯಂತ್ರ

ಮೂಲಮಾದರಿ, ಸಣ್ಣ ಕಿಟ್ (< ಕೆಲವು ನೂರು ಸಾವಿರ ಭಾಗಗಳು)

ಕ್ಲೌಡ್ ಸೇವೆಯನ್ನು ನಿರ್ವಹಿಸಲಾಗಿದೆ

ಸ್ಕೇಲಿಂಗ್ ಮತ್ತು ನಿರ್ವಹಣೆ ನಿಮ್ಮ ಜವಾಬ್ದಾರಿಯಲ್ಲ

ಉತ್ಪಾದನೆ, ವೇಗವಾಗಿ ಬೆಳೆಯುತ್ತಿರುವ ಡೇಟಾ, ಸಣ್ಣ ತಂಡ

ನಿಮ್ಮ ಸ್ವಂತ ಸರ್ವರ್‌ನಲ್ಲಿ ಮೂಲವನ್ನು ತೆರೆಯಿರಿ

ಸಂಪೂರ್ಣ ನಿಯಂತ್ರಣ, ನಿಮ್ಮ ಡೇಟಾ ನಿಮ್ಮದೇ ಆಗಿರುತ್ತದೆ

ಗೌಪ್ಯತೆ ಬಾಧ್ಯತೆ, ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಮೂಲಸೌಕರ್ಯ

ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಡೇಟಾಬೇಸ್‌ಗೆ ಸೇರ್ಪಡೆ

ನೀವು ಪ್ರತ್ಯೇಕ ವ್ಯವಸ್ಥೆಗಳನ್ನು ನಿರ್ವಹಿಸುವುದಿಲ್ಲ

ನೀವು ಈಗಾಗಲೇ ಬಳಸುವ DB ಗೆ ವೆಕ್ಟರ್ ಬೆಂಬಲವನ್ನು ಸೇರಿಸಲಾಗುತ್ತಿದೆ

ಆಯ್ಕೆಮಾಡುವಾಗ ಕೇಳಿ: ಎಷ್ಟು ತುಣುಕುಗಳು ಇರುತ್ತದೆ? ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರಿಂಗ್ ಎಷ್ಟು ನಿರ್ಣಾಯಕವಾಗಿದೆ? ಡೇಟಾ ಕಂಪನಿಯ ಹೊರಗೆ ಹೋಗಬಹುದೇ (ಗೌಪ್ಯತೆ)? ತಂಡವು ಮೂಲಸೌಕರ್ಯವನ್ನು ನಿರ್ವಹಿಸಬಹುದೇ? ಚಿಕ್ಕದಾಗಿ ಪ್ರಾರಂಭಿಸಲು ಮತ್ತು ಅಗತ್ಯವಿರುವಂತೆ ವಿಸ್ತರಿಸಲು ಇದು ಸಾಮಾನ್ಯವಾಗಿ ಬುದ್ಧಿವಂತವಾಗಿದೆ.

ದುರ್ಬಲ ಅಪ್ರೋಚ್ / ಸ್ಟ್ರಾಂಗ್ ಅಪ್ರೋಚ್

ದುರ್ಬಲ (ಸಾದಾ ಎಂಬೆಡಿಂಗ್ ಅನ್ನು ಸಂಗ್ರಹಿಸುವುದು, ಮೆಟಾಡೇಟಾ ಇಲ್ಲ):

ಪಠ್ಯ ಮತ್ತು ವೆಕ್ಟರ್ ಅನ್ನು ಉಳಿಸಿ. ಹುಡುಕಾಟ: 4 ಒಂದೇ ರೀತಿಯ ವೆಕ್ಟರ್‌ಗಳನ್ನು ಹಿಂತಿರುಗಿಸಿ.# ಸಮಸ್ಯೆ: "ಕೇವಲ ಪ್ರಸ್ತುತ HR ಡಾಕ್ಸ್" ನಂತೆ ಫಿಲ್ಟರ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ;# ಹಳೆಯ/ಅನಧಿಕೃತ ಭಾಗಗಳನ್ನು ಸಹ ಪ್ರತಿಕ್ರಿಯೆಯಲ್ಲಿ ಸೇರಿಸಿಕೊಳ್ಳಬಹುದು.

ಶಕ್ತಿಯುತ (ಶ್ರೀಮಂತ ಮೆಟಾಡೇಟಾ + ಫಿಲ್ಟರ್ ಮಾಡಿದ ಹುಡುಕಾಟ):

ಪ್ರತಿ ತುಣುಕಿಗೆ ಮೂಲ, ದಿನಾಂಕ, ಇಲಾಖೆ ಮತ್ತು ಗೌಪ್ಯತೆ ಟ್ಯಾಗ್ ಸೇರಿಸಿ. ಹುಡುಕಾಟದ ಸಮಯದಲ್ಲಿ ಬಳಕೆದಾರರ ಅಧಿಕಾರ ಮತ್ತು ಪ್ರಸ್ತುತತೆಗೆ ಅನುಗುಣವಾಗಿ ಫಿಲ್ಟರ್ ಮಾಡಿ: ಫಿಲ್ಟರ್ = {"ಗೌಪ್ಯತೆ": user_authority, "date_date": "2024-01"}# ಹೀಗಾಗಿ, ಫಲಿತಾಂಶವು ಸುರಕ್ಷಿತ ಮತ್ತು ನವೀಕೃತವಾಗಿದೆ.

ಮೂರು ಮಿನಿ ಪ್ರಕರಣಗಳು

ಪ್ರಕರಣ 1 - ತಪ್ಪು ಮಾದರಿ ಮಿಶ್ರಣ. ಒಂದು ತಂಡವು ಮಾದರಿ A ಯೊಂದಿಗೆ ದಾಖಲೆಗಳನ್ನು ಮತ್ತು ಮಾದರಿ B ಯೊಂದಿಗೆ ಪ್ರಶ್ನೆಗಳನ್ನು ಎಂಬೆಡ್ ಮಾಡಿದೆ. ಹುಡುಕಾಟಗಳು ಅರ್ಥಹೀನ ಫಲಿತಾಂಶಗಳನ್ನು ನೀಡಿತು ಮತ್ತು ಸರಿಯಾದ ಉತ್ತರ ದರವು 31% ನಲ್ಲಿ ಉಳಿಯಿತು. ನಾನು ಒಂದೇ ಮಾದರಿಗೆ ಬದಲಾಯಿಸಿದಾಗ (ಎರಡೂ ಒಂದೇ ಎಂಬೆಡಿಂಗ್ ಮಾದರಿ), ದರವು 88% ಗೆ ಜಿಗಿದಿದೆ. ಪಾಠ: ಪ್ರಶ್ನೆ ಮತ್ತು ದಾಖಲೆ ಒಂದೇ ಜಾಗದಲ್ಲಿರಬೇಕು.

ಪ್ರಕರಣ 2 - ಮೆಟಾಡೇಟಾ ಇಲ್ಲದೆ ಗೌಪ್ಯತೆ ಅಪಾಯ. ಹೆಲ್ತ್‌ಕೇರ್ ಕಂಪನಿಯಲ್ಲಿ, ಎಲ್ಲಾ ಇಲಾಖೆಯ ದಾಖಲೆಗಳನ್ನು ಮೆಟಾಡೇಟಾ ಇಲ್ಲದೆ ಒಂದೇ ಪೂಲ್‌ಗೆ ಎಸೆಯಲಾಯಿತು. ಮಾರಾಟದ ಸಹವರ್ತಿ ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳಿದಾಗ, ಸಿಸ್ಟಮ್ ರೋಗಿಯ ಡೇಟಾದ ತುಣುಕನ್ನು ಸಂದರ್ಭೋಚಿತಗೊಳಿಸಿತು. ಮೆಟಾಡೇಟಾ + ಫಿಲ್ಟರ್ ಅನ್ನು ಸೇರಿಸಿದಾಗ (ಅಧಿಕಾರದ ಮಟ್ಟಕ್ಕೆ ಅನುಗುಣವಾಗಿ), ಈ ಅಪಾಯವನ್ನು ತೆಗೆದುಹಾಕಲಾಯಿತು; ಮರುಪಡೆಯುವಿಕೆಯಲ್ಲಿ, 12 ಅನಧಿಕೃತ ತುಣುಕುಗಳನ್ನು ತರಲಾಗುವುದಿಲ್ಲ.

ಪ್ರಕರಣ 3 - ಸ್ಕೇಲ್ ಅಡಚಣೆ. ಇ-ಕಾಮರ್ಸ್ ಕಂಪನಿಯು 8 ಮಿಲಿಯನ್ ಉತ್ಪನ್ನ ವಿವರಣೆಗಳನ್ನು ಸರಳವಾದ "ಎಲ್ಲವನ್ನೂ ಸ್ಕ್ಯಾನ್ ಮಾಡಿ" ವಿಧಾನದೊಂದಿಗೆ ಹುಡುಕಿದೆ; ಪ್ರತಿ ಪ್ರಶ್ನೆಯು 6 ಸೆಕೆಂಡುಗಳನ್ನು ತೆಗೆದುಕೊಂಡಿತು. ನಾವು HNSW-ಆಧಾರಿತ ANN ಗೆ ಬದಲಾಯಿಸಿದಾಗ, ಸಮಯವು 45 ಮಿಲಿಸೆಕೆಂಡ್‌ಗಳಿಗೆ ಕಡಿಮೆಯಾಯಿತು, ನಿಖರತೆಯಲ್ಲಿ ಕೇವಲ 1% ನಷ್ಟವಾಗಿದೆ. ಪಾಠ: ದೊಡ್ಡ ಸೆಟ್‌ನಲ್ಲಿ ಎಎನ್‌ಎನ್ ಕಡ್ಡಾಯವಾಗಿದೆ.

ಸಾಮಾನ್ಯ ತಪ್ಪುಗಳು

  • ಪ್ರಶ್ನೆ ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ವಿವಿಧ ಮಾದರಿಗಳೊಂದಿಗೆ ಎಂಬೆಡ್ ಮಾಡುವುದು: ಫಲಿತಾಂಶಗಳು ಅರ್ಥಹೀನವಾಗಿವೆ; ಯಾವಾಗಲೂ ಒಂದು ಮಾದರಿ.
  • ಮೆಟಾಡೇಟಾವನ್ನು ಬಿಡಲಾಗುತ್ತಿದೆ: ನೀವು ಫಿಲ್ಟರ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ; ನೀವು ಗೌಪ್ಯತೆ ಮತ್ತು ನವೀಕೃತತೆಯ ನಿಯಂತ್ರಣವನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತೀರಿ.
  • ಎನ್‌ಕ್ರಿಪ್ಶನ್‌ಗಾಗಿ ಎಂಬೆಡಿಂಗ್ ಅನ್ನು ತಪ್ಪಾಗಿ ಗ್ರಹಿಸುವುದು: ಎಂಬೆಡಿಂಗ್ ರಿವರ್ಸಿಬಲ್ ಮಾಹಿತಿಯನ್ನು ಹೊಂದಿರುತ್ತದೆ; ಸೂಕ್ಷ್ಮ ಡೇಟಾವನ್ನು "ಮರೆಮಾಡಲಾಗಿದೆ" ಎಂದು ಊಹಿಸುವುದು ತಪ್ಪು.
  • ಸಣ್ಣ ಸೆಟ್‌ನಲ್ಲಿ ಅನಗತ್ಯವಾಗಿ ದೊಡ್ಡ ಮೂಲಸೌಕರ್ಯವನ್ನು ನಿರ್ಮಿಸುವುದು: 5,000 ಭಾಗಗಳಿಗೆ ನಿರ್ವಹಿಸಲಾದ ದೈತ್ಯ ಸಮೂಹವು ಅನಗತ್ಯ ಸಂಕೀರ್ಣತೆಯಾಗಿದೆ.
  • ಹೋಲಿಕೆಯ ಮಾನದಂಡದ ಬಗ್ಗೆ ಹೆಚ್ಚು ಚಿಂತಿಸಬೇಡಿ: ಪಠ್ಯದಲ್ಲಿ ಕೊಸೈನ್‌ನೊಂದಿಗೆ ಪ್ರಾರಂಭಿಸಿ; ಫೈನ್ ಟ್ಯೂನಿಂಗ್ ನಂತರ ಬರುತ್ತದೆ.
ಎಚ್ಚರಿಕೆ: ಎಂಬೆಡಿಂಗ್ ಪಠ್ಯದ ಅರ್ಥವನ್ನು ಸಂಖ್ಯೆಯಲ್ಲಿ ಎಂಬೆಡ್ ಮಾಡುತ್ತದೆ, ಆದರೆ ವಿಷಯವನ್ನು "ನಾಶ" ಮಾಡುವುದಿಲ್ಲ. ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್ ಸೋರಿಕೆಯಾದರೆ, ಮೂಲ ಸಂಗ್ರಹಿತ ಪಠ್ಯಗಳು (ಹೆಚ್ಚಿನ ಸ್ಥಾಪನೆಗಳಲ್ಲಿ ಪಠ್ಯವನ್ನು ಸಹ ಸಂಗ್ರಹಿಸಲಾಗುತ್ತದೆ) ಸಹ ರಾಜಿ ಮಾಡಿಕೊಳ್ಳಲಾಗುತ್ತದೆ. ವೆಕ್ಟರ್ ರೆಪೊಸಿಟರಿಯನ್ನು ಅದರೊಳಗಿನ ದಾಖಲೆಗಳಂತೆ ಗೌಪ್ಯವಾಗಿ ಇರಿಸಿ.

ಸಾರಾಂಶದಲ್ಲಿ

  • ಎಂಬೆಡಿಂಗ್ ಪಠ್ಯವನ್ನು ಅದರ ಅರ್ಥವನ್ನು ಹೊಂದಿರುವ ಸಂಖ್ಯೆಗಳ ವೆಕ್ಟರ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ; ಇದೇ ಅರ್ಥಗಳು ನಿಕಟ ವಾಹಕಗಳಾಗಿವೆ.
  • ಹೋಲಿಕೆಯನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಕೊಸೈನ್‌ನಿಂದ ಅಳೆಯಲಾಗುತ್ತದೆ; ಸಾಮಾನ್ಯೀಕರಿಸಿದ ವಾಹಕಗಳಿಗೆ, ಡಾಟ್ ಉತ್ಪನ್ನವು ಅದೇ ಫಲಿತಾಂಶವನ್ನು ನೀಡುತ್ತದೆ.
  • ದೊಡ್ಡ ಡೇಟಾದಲ್ಲಿ, ANN (ಉದಾ., HNSW) ನಿಖರವಾದ ಹುಡುಕಾಟವನ್ನು ಬದಲಾಯಿಸುತ್ತದೆ: ನಿಖರತೆಯ ಕಡಿಮೆ ತ್ಯಾಗದೊಂದಿಗೆ ಉತ್ತಮ ವೇಗ.
  • ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್ ವೆಕ್ಟರ್ ಸಂಗ್ರಹಣೆ + ಹೋಲಿಕೆ ಹುಡುಕಾಟ + ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರಿಂಗ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ; ಎಂಟರ್‌ಪ್ರೈಸ್ RAG ಗೆ ಮೆಟಾಡೇಟಾ ಅತ್ಯಗತ್ಯ.
  • ಪ್ರಶ್ನೆ ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಅದೇ ಎಂಬೆಡಿಂಗ್ ಮಾದರಿಯೊಂದಿಗೆ ಅನುವಾದಿಸಬೇಕು; ಇಲ್ಲದಿದ್ದರೆ ನಿರ್ದೇಶಾಂಕಗಳನ್ನು ಹೋಲಿಸಲಾಗುವುದಿಲ್ಲ.

ಅಪ್ಲಿಕೇಶನ್ ಕಾರ್ಯ

ಹಿಂದಿನ ಘಟಕದಲ್ಲಿ ನೀವು ಆಯ್ಕೆ ಮಾಡಿದ ಡಾಕ್ಯುಮೆಂಟ್‌ನಿಂದ 10 ಸಣ್ಣ ಹಾದಿಗಳನ್ನು (ಪ್ರತಿ 3-6 ವಾಕ್ಯಗಳು) ಹೊರತೆಗೆಯಿರಿ. (1) ಪ್ರತಿ ತುಣುಕಿಗೆ ಕನಿಷ್ಠ ಮೂರು ಮೆಟಾಡೇಟಾ ಟ್ಯಾಗ್‌ಗಳನ್ನು ವಿನ್ಯಾಸಗೊಳಿಸಿ (ಮೂಲ, ದಿನಾಂಕ ಮತ್ತು ನಿಮ್ಮ ವ್ಯಾಪಾರದ ಸಂದರ್ಭಕ್ಕೆ ಸೂಕ್ತವಾದ ಮೂರನೇ: ಇಲಾಖೆ, ಉತ್ಪನ್ನ, ಗೌಪ್ಯತೆ, ಇತ್ಯಾದಿ). (2) 3 ವಿಭಿನ್ನ ಬಳಕೆದಾರರ ಪ್ರಶ್ನೆಗಳಿಗೆ ಯಾವ ಮೆಟಾಡೇಟಾ ಫಿಲ್ಟರ್ ಅನ್ನು ಅನ್ವಯಿಸಬೇಕು ಎಂದು ಬರೆಯಿರಿ. (3) ವಿಭಿನ್ನ ಪದಗಳಲ್ಲಿ ಒಂದೇ ಅರ್ಥವನ್ನು ವ್ಯಕ್ತಪಡಿಸುವ 3 ಪ್ರಶ್ನೆ-ಭಾಗದ ಜೋಡಿಗಳನ್ನು ಹುಡುಕಿ (ಉದಾ: “ರಜಾಕಾಲದ ಅರ್ಹತೆ” ↔ “ವಾರ್ಷಿಕ ರಜೆ”) ಮತ್ತು ಅವು ಏಕೆ ಕೀವರ್ಡ್ ಹುಡುಕಾಟಕ್ಕೆ ಹೊಂದಿಕೆಯಾಗುವುದಿಲ್ಲ ಆದರೆ ಎಂಬೆಡಿಂಗ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತವೆ ಎಂಬುದನ್ನು ಒಂದೇ ವಾಕ್ಯದಲ್ಲಿ ವಿವರಿಸಿ.

ಪರಿಶೀಲನಾಪಟ್ಟಿ

  • [ ] ಎಂಬೆಡಿಂಗ್ ಪಠ್ಯವನ್ನು ಶಬ್ದಾರ್ಥದ ಜಾಗದಲ್ಲಿ ವೆಕ್ಟರ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ ಮತ್ತು ಇದೇ ರೀತಿಯ ಅರ್ಥಗಳು ಹತ್ತಿರದಲ್ಲಿವೆ ಎಂದು ನಾನು ಹೇಳಬಲ್ಲೆ.
  • ಕೊಸೈನ್ ಹೋಲಿಕೆಯು ಕೋನವನ್ನು ಅಳೆಯುತ್ತದೆ ಮತ್ತು ಪಠ್ಯದಲ್ಲಿ ಡೀಫಾಲ್ಟ್ ಆದ್ಯತೆಯಾಗಿದೆ ಎಂದು ನನಗೆ ತಿಳಿದಿದೆ.
  • [ ] ದೊಡ್ಡ ಡೇಟಾದಲ್ಲಿ ANN ಏಕೆ ಅಗತ್ಯ ಎಂದು ನಾನು ವಿವರಿಸಬಲ್ಲೆ.
  • [ ] ಗೌಪ್ಯತೆ ಮತ್ತು ತಾಜಾತನದ ನಿಯಂತ್ರಣಕ್ಕಾಗಿ ಮೆಟಾಡೇಟಾ ಏಕೆ ನಿರ್ಣಾಯಕವಾಗಿದೆ ಎಂದು ನನಗೆ ತಿಳಿದಿದೆ.
  • [ ] ನಾನು ಪ್ರಶ್ನೆ ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಅದೇ ಎಂಬೆಡಿಂಗ್ ಮಾದರಿಯೊಂದಿಗೆ ಅನುವಾದಿಸುವ ನಿಯಮವನ್ನು ಅನುಸರಿಸುತ್ತೇನೆ.