ಹಂತ 2: ಎಂಬೆಡ್ಡಿಂಗ್ಸ್ ಮತ್ತು ಸೆಮ್ಯಾಂಟಿಕ್ ಸರ್ಚ್ (Embeddings & Semantic Search)
ಪದಗಳು ನಿಖರವಾಗಿ ಹೊಂದಿಕೆಯಾಗದಿದ್ದಾಗ ಕೀವರ್ಡ್ ಸರ್ಚ್ (Keyword search) ವಿಫಲವಾಗುತ್ತದೆ.
ಒಂದು ರೆಸ್ಯೂಮೆಯಲ್ಲಿ "team management" ಎಂದಿದ್ದರೆ ಮತ್ತು ಉದ್ಯೋಗದ ವಿವರಣೆಯಲ್ಲಿ (job description) "leadership" ಕೇಳಿದ್ದರೆ, ಸಾಮಾನ್ಯ ಸರ್ಚ್ ಯಾವುದೇ ಫಲಿತಾಂಶವನ್ನು ನೀಡುವುದಿಲ್ಲ. ಪದಗಳು ಬೇರೆಯಾಗಿರಬಹುದು, ಆದರೆ ಅರ್ಥ ಒಂದೇ ಆಗಿರುತ್ತದೆ.
ಹಂತ 2 ಇದನ್ನು ಎಂಬೆಡ್ಡಿಂಗ್ಸ್ ಮತ್ತು ಸೆಮ್ಯಾಂಟಿಕ್ ಸರ್ಚ್ ಬಳಸಿ ಪರಿಹರಿಸುತ್ತದೆ.
ಇದು ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ:
• ಟೋಕನೈಸೇಶನ್ (Tokenization): ಕಂಪ್ಯೂಟರ್ಗಳು ಪದಗಳನ್ನು ಓದುವುದಿಲ್ಲ. ಅವು ಸಂಖ್ಯೆಗಳನ್ನು ಓದುತ್ತವೆ. ಟೋಕನೈಸರ್ ಎಂಬುದು ಪಠ್ಯವನ್ನು 'ಟೋಕನ್ಗಳು' ಎಂದು ಕರೆಯಲಾಗುವ ಸಣ್ಣ ತುಣುಕುಗಳಾಗಿ ವಿಭಜಿಸುತ್ತದೆ ಮತ್ತು ಅವುಗಳನ್ನು ಟೋಕನ್ ಐಡಿಗಳಾಗಿ (Token IDs) ಪರಿವರ್ತಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯ ಪದಗಳು ಒಂದು ಟೋಕನ್ ಆಗುತ್ತವೆ. ಅಪರೂಪದ ಪದಗಳು ಹಲವಾರು ಟೋಕನ್ಗಳಾಗಿ ವಿಭಜನೆಯಾಗುತ್ತವೆ.
• ಎಂಬೆಡ್ಡಿಂಗ್ಸ್ (Embeddings): ಟೋಕನ್ ಐಡಿ ಎಂಬುದು ಕೇವಲ ಒಂದು ಲೇಬಲ್ ಆಗಿದೆ. ಎಂಬೆಡ್ಡಿಂಗ್ ಲೇಯರ್ ಆ ಐಡಿಯನ್ನು ವೆಕ್ಟರ್ (vector) ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ. ವೆಕ್ಟರ್ ಎಂಬುದು ಅರ್ಥವನ್ನು ಪ್ರತಿನಿಧಿಸುವ ಸಂಖ್ಯೆಗಳ ಸುದೀರ್ಘ ಪಟ್ಟಿಯಾಗಿದೆ. ಒಂದು ಸಂಖ್ಯೆಯ ಬದಲಿಗೆ, ಮಾಡೆಲ್ ಒಂದು ಪರಿಕಲ್ಪನೆಯನ್ನು ವಿವರಿಸಲು ಅನೇಕ ಆಯಾಮಗಳನ್ನು (dimensions) ಬಳಸುತ್ತದೆ.
• ಆಯಾಮಗಳು (Dimensions): ಈ ಸಂಖ್ಯೆಗಳನ್ನು ಕೋಆರ್ಡಿನೇಟ್ಗಳೆಂದು (coordinates) ಭಾವಿಸಿ. ಒಂದು ಆಯಾಮವು "frontend vs backend" ಅನ್ನು ಪ್ರತಿನಿಧಿಸಬಹುದು. ಇನ್ನೊಂದು "web vs systems" ಅನ್ನು ಪ್ರತಿನಿಧಿಸಬಹುದು. ಹೆಚ್ಚಿನ ಆಯಾಮದ ವೆಕ್ಟರ್ಗಳು ಮಾಡೆಲ್ ಅನ್ನು "React" ಮತ್ತು "JavaScript" ಅನ್ನು ಗಣಿತೀಯ ಸ್ಥಳದಲ್ಲಿ (mathematical space) ಒಂದಕ್ಕೊಂದು ಹತ್ತಿರವಾಗಿ ಇರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತವೆ.
• ಸೆಮ್ಯಾಂಟಿಕ್ ಸರ್ಚ್ (Semantic Search): ನೀವು ಪ್ರಶ್ನೆಯನ್ನು ಕೇಳಿದಾಗ, ಸಿಸ್ಟಮ್ ನಿಮ್ಮ ಪ್ರಶ್ನೆಯನ್ನು ವೆಕ್ಟರ್ ಆಗಿ ಪರಿವರ್ತಿಸುತ್ತದೆ. ನಂತರ ಅದು ನಿಮ್ಮ ವೆಕ್ಟರ್ ಅನ್ನು ಸಂಗ್ರಹಿಸಲಾದ ದಾಖಲೆಗಳ (documents) ವೆಕ್ಟರ್ಗಳೊಂದಿಗೆ ಹೋಲಿಸುತ್ತದೆ.
• ಕೋಸೈನ್ ಸಿಮಿಲಾರಿಟಿ (Cosine Similarity): ಇದು ಎರಡು ವೆಕ್ಟರ್ಗಳ ನಡುವಿನ ಕೋನವನ್ನು (angle) ಅಳೆಯುತ್ತದೆ. ವೆಕ್ಟರ್ಗಳು ಒಂದೇ ದಿಕ್ಕಿನಲ್ಲಿ ಇದ್ದರೆ, ಅವು ಸಮಾನವಾಗಿವೆ ಎಂದರ್ಥ. ನೀವು ಕೇವಲ "notice period" ಎಂದು ಹುಡುಕಿದರೂ ಸಹ, ಸಿಸ್ಟಮ್ "resignation requirements" ಅನ್ನು ಹುಡುಕಲು ಇದು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಪ್ರೊಡಕ್ಷನ್ (production) ಗಾಗಿ ಪ್ರಮುಖ ಪಾಠಗಳು:
- ವೆಕ್ಟರ್ ಡೇಟಾಬೇಸ್ಗಳು (Vector Databases): ಲಕ್ಷಾಂತರ ವೆಕ್ಟರ್ಗಳನ್ನು ಹುಡುಕುವುದು ನಿಧಾನವಾಗಿರುತ್ತದೆ. Pinecone ಅಥವಾ Qdrant ನಂತಹ ಡೇಟಾಬೇಸ್ಗಳು ಮಿಲಿಸೆಕೆಂಡ್ಗಳಲ್ಲಿ ಹತ್ತಿರದ ನೆರೆಹೊರೆಯವರನ್ನು (nearest neighbors) ಹುಡುಕಲು ಇಂಡೆಕ್ಸಿಂಗ್ ಅನ್ನು ಬಳಸುತ್ತವೆ.
- ಮಾಡೆಲ್ ಮೈಗ್ರೇಷನ್ಗಳು (Model Migrations): ಪ್ರತಿಯೊಂದು ಎಂಬೆಡ್ಡಿಂಗ್ ಮಾಡೆಲ್ ವಿಭಿನ್ನ ಗಣಿತೀಯ ಸ್ಥಳವನ್ನು ಬಳಸುತ್ತದೆ. ನೀವು OpenAI ವೆಕ್ಟರ್ ಅನ್ನು Cohere ವೆಕ್ಟರ್ನೊಂದಿಗೆ ಹೋಲಿಸಲು ಸಾಧ್ಯವಿಲ್ಲ. ನೀವು ಮಾಡೆಲ್ಗಳನ್ನು ಬದಲಾಯಿಸಿದರೆ, ನಿಮ್ಮ ಎಲ್ಲಾ ಡೇಟಾವನ್ನು ಮರು-ಎಂಬೆಡ್ (re-embed) ಮಾಡಲೇಬೇಕು.
- ವೆಚ್ಚ vs ROI: ಲಕ್ಷಾಂತರ ಚಂಕ್ಗಳನ್ನು (chunks) ಮರು-ಎಂಬೆಡ್ ಮಾಡುವುದು ದುಬಾರಿ. ನಿಖರತೆಯ ಹೆಚ್ಚಳವು ಮೈಗ್ರೇಷನ್ ವೆಚ್ಚವನ್ನು ಸಮರ್ಥಿಸದ ಹೊರತು ಕಂಪನಿಗಳು ಹೆಚ್ಚಾಗಿ ಹಳೆಯ ಮಾಡೆಲ್ಗಳನ್ನೇ ಬಳಸುತ್ತವೆ.
- ಯಾವಾಗಲೂ ನಿಮ್ಮ ರಾಗ್ಟೆಕ್ಸ್ಟ್ ಚಂಕ್ಗಳನ್ನು (raw text chunks) ಸಂಗ್ರಹಿಸಿಡಿ. ನೀವು ನಂತರ ನಿಮ್ಮ ಮಾಡೆಲ್ ಅನ್ನು ಅಪ್ಗ್ರೇಡ್ ಮಾಡಿದರೆ, ಹೊಸ ವೆಕ್ಟರ್ಗಳನ್ನು ರಚಿಸಲು ಹಳೆಯ ಪಠ್ಯವನ್ನು ಬಳಸಬಹುದು.
ಹಂತ 2 ಎಂಬುದು ಬುದ್ಧಿವಂತಿಕೆ (intelligence) ಕಾರ್ಯಗತಗೊಳ್ಳುವ ಸ್ಥಳವಾಗಿದೆ.
Source: https://dev.to/surajrkhonde/phase-2-embeddings-semantic-search-3lco
Optional learning community: https://t.me/GyaanSetuAi
