ನಾನು ನನ್ನ RAG ಪೈಪ್ಲೈನ್ಗೆ reranker ಅನ್ನು ಸೇರಿಸಿದೆ — ಅದು ಎಲ್ಲವನ್ನೂ ಹಾಳುಮಾಡಿತು
ನಾನು ನನ್ನ RAG ಪೈಪ್ಲೈನ್ಗೆ reranker ಅನ್ನು ಸೇರಿಸಿದೆ. ಅದು ತಕ್ಷಣವೇ ನನ್ನ ಪರೀಕ್ಷೆಗಳನ್ನು ವಿಫಲಗೊಳಿಸಿತು.
ಎರಡನೇ ಆವೃತ್ತಿಯಲ್ಲಿ (version 2), ನಾನು FAISS ಮತ್ತು BM25 ಬಳಸಿ hybrid retrieval ಅನ್ನು ಬಳಸಿದ್ದೆ. ಅದು ನನ್ನ ಎಲ್ಲಾ 19 ಪರೀಕ್ಷಾ ಪ್ರಶ್ನೆಗಳನ್ನು ಯಶಸ್ವಿಯಾಗಿ ಪೂರೈಸಿತು. ನಂತರ, ನಿಖರತೆಯನ್ನು (precision) ಹೆಚ್ಚಿಸಲು ನಾನು cross-encoder reranker ಅನ್ನು ಸೇರಿಸಿದೆ.
ಇದರ ಸಿದ್ಧಾಂತ ಸರಳವಾಗಿದೆ:
- ಹಂತ 1: ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಅಭ್ಯರ್ಥಿಗಳನ್ನು (candidates) ಪಡೆಯಲು ವೇಗದ retrieval ಅನ್ನು ಬಳಸಿ.
- ಹಂತ 2: ಅತ್ಯುತ್ತಮವಾದುದನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಸ್ಮಾರ್ಟ್ reranker ಅನ್ನು ಬಳಸಿ.
ಇದನ್ನು ಅಳವಡಿಸಲು 20 ನಿಮಿಷಗಳು ಬೇಕಾದವು. ಇದು ತಕ್ಷಣವೇ ನನ್ನ 19 ಪರೀಕ್ಷೆಗಳಲ್ಲಿ 2 ಪರೀಕ್ಷೆಗಳಲ್ಲಿ ವಿಫಲವಾಯಿತು.
ಈ ವಿಫಲತೆಗೆ ಕಾರಣ ಡೇಟಾ ಫಾರ್ಮ್ಯಾಟ್ (data format). ನನ್ನ ಡೇಟಾದಲ್ಲಿ ಈ ರೀತಿಯ ಸಾಂದ್ರವಾದ (dense), ಕೋಷ್ಟಕ ರೂಪದ (tabular) ಚಂಕ್ಗಳಿವೆ (chunks): "Company: Zentara Robotics | CEO: Iris Kallas | Employees: 287"
cross-encoder ಮಾಡೆಲ್ ಅನ್ನು ನೈಸರ್ಗಿಕ ಭಾಷೆಯ ಪ್ಯಾರಾಗ್ರಾಫ್ಗಳ ಮೇಲೆ ತರಬೇತಿಗೊಳಿಸಲಾಗಿತ್ತು. ಅದು ಟೇಬಲ್ ಸಾಲನ್ನು (table row) ನೋಡಿದಾಗ, ಅದಕ್ಕೆ ಬಹಳ ಕಡಿಮೆ ಸ್ಕೋರ್ ನೀಡಿತು. ಆ ಚಂಕ್ ಅಪ್ರಸ್ತುತವಾಗಿದೆ (irrelevant) ಎಂದು ಅದು ಭಾವಿಸಿತು.
Hybrid retrieval ಉತ್ತರವನ್ನು ಕಂಡುಕೊಂಡಿತು, ಆದರೆ reranker ಅದನ್ನು ಕೈಬಿಟ್ಟಿತು.
ಇದನ್ನು ಸರಿಪಡಿಸಲು ನಾನು 7 ವಿಭಿನ್ನ ವಿಧಾನಗಳನ್ನು ಪ್ರಯತ್ನಿಸಿದೆ:
- ದೊಡ್ಡ candidate pool ಬಳಸುವುದು.
- reranker ಮತ್ತು retriever ನಿಂದ ಬರುವ ಸ್ಕೋರ್ಗಳನ್ನು ಮಿಶ್ರಣ ಮಾಡುವುದು (blending).
- rank fusion ಬಳಸುವುದು.
ಅವುಗಳಲ್ಲಿ ಯಾವುದೂ ಕೆಲಸ ಮಾಡಲಿಲ್ಲ. reranker ಸ್ಕೋರ್ ಎಷ್ಟು ನಕಾರಾತ್ಮಕವಾಗಿತ್ತೆಂದರೆ ಅದು ಉಳಿದೆಲ್ಲವನ್ನೂ ಮೀರಿಸಿತು. ಮಾಡೆಲ್ ಕೇವಲ ಕಡಿಮೆ ರ್ಯಾಂಕಿಂಗ್ ಮಾಡಲಿಲ್ಲ; ಅದು ಟೇಬಲ್ ಫಾರ್ಮ್ಯಾಟ್ ಅನ್ನು ಸಕ್ರಿಯವಾಗಿ ತಿರಸ್ಕರಿಸುತ್ತಿತ್ತು.
ನಾನು ಗಣಿತವನ್ನು (math) ಸರಿಪಡಿಸಲು ಪ್ರಯತ್ನಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ, ರಚನೆಯನ್ನು (structure) ಬದಲಾಯಿಸಿದೆ.
reranker ಎಲ್ಲವನ್ನೂ ನಿರ್ಧರಿಸಲು ಬಿಡುವ ಬದಲು, ನಾನು ನನ್ನ ಅತ್ಯುತ್ತಮ ಫಲಿತಾಂಶಗಳನ್ನು ರಕ್ಷಿಸಿದೆ. ನಾನು "guaranteed slot" ತಂತ್ರವನ್ನು ಬಳಸಿದೆ:
- ನಿಮಗೆ ಟಾಪ್ 3 ಫಲಿತಾಂಶಗಳು ಬೇಕಿದ್ದರೆ, ಮೊದಲ ಹಂತದ ಟಾಪ್ 2 ಫಲಿತಾಂಶಗಳನ್ನು ಹಾಗೆಯೇ ಇರಿಸಿ.
- ಕೇವಲ 3ನೇ ಫಲಿತಾಂಶವನ್ನು ಆಯ್ಕೆ ಮಾಡಲು reranker ಅನ್ನು ಬಳಸಿ.
ಇದು hybrid search ಫಲಿತಾಂಶಗಳು ಅಂತಿಮ ಪಟ್ಟಿಯಲ್ಲಿ ಉಳಿಯುವುದನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ. reranker ಉಳಿದ ಸ್ಲಾಟ್ಗಳನ್ನು ಮಾತ್ರ ಸುಧಾರಿಸುತ್ತದೆ.
ಫಲಿತಾಂಶ: 19/19 ಪರೀಕ್ಷೆಗಳು ಯಶಸ್ವಿಯಾದವು.
ಕಲಿತ ಪಾಠಗಳು:
- Rerankers ಎಂಬುದು ತಕ್ಷಣದ ಅಪ್ಗ್ರೇಡ್ಗಳಲ್ಲ. ಅವು ರಚನಾತ್ಮಕ (structured) ಅಥವಾ ಟೇಬ್ಯುಲರ್ ಡೇಟಾದ ಮೇಲೆ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಕುಗ್ಗಿಸಬಹುದು.
- ನಿಮ್ಮ ಇವ್ಯಾಲ್ಯೂಯೇಶನ್ ಸೆಟ್ (evaluation set) ನಿಮ್ಮ ಸುರಕ್ಷತಾ ಜಾಲವಾಗಿದೆ. ನನ್ನ 19 ಪರೀಕ್ಷೆಗಳಿಲ್ಲದಿದ್ದರೆ, ನಾನು ಒಂದು ಕೆಟ್ಟುಹೋದ ವ್ಯವಸ್ಥೆಯನ್ನು (broken system) ಬಿಡುಗಡೆ ಮಾಡುತ್ತಿದ್ದೆ.
- ಯಾವುದು ಕೆಲಸ ಮಾಡುತ್ತದೆಯೋ ಅದನ್ನು ರಕ್ಷಿಸಿ. ನಿಮ್ಮ ಮೊದಲ ಹಂತದ retrieval ಉತ್ತಮವಾಗಿದ್ದರೆ, reranker ಅದನ್ನು ಬದಲಾಯಿಸಲು ಬಿಡಬೇಡಿ.
reranker ಅನ್ನು ಬಳಸುವ ಮೊದಲು ಬಲವಾದ retriever ಅನ್ನು ನಿರ್ಮಿಸಿ.
Optional learning community: https://t.me/GyaanSetuAi
