ਕੁਝ ਵੀ ਨਾ ਸਮਝਣ ਤੋਂ ਲੈ ਕੇ ਇੱਕ RAG App ਬਣਾਉਣ ਤੱਕ
ਮੈਂ ਕੱਲ੍ਹ ਦਾ ਦਿਨ ਆਪਣੇ NLP ਨੋਟਸ ਦੇ 31 ਪੰਨੇ ਪੜ੍ਹਨ ਵਿੱਚ ਬਿਤਾਇਆ।
ਮੈਨੂੰ ਕੁਝ ਵੀ ਸਮਝ ਨਹੀਂ ਆਇਆ।
ਮੈਨੂੰ ਲੱਗਿਆ ਕਿ ਸਮੱਸਿਆ ਮੇਰੇ ਵਿੱਚ ਸੀ। ਪਰ ਅਜਿਹਾ ਨਹੀਂ ਸੀ। ਸਮੱਸਿਆ ਮੇਰੇ ਤਰੀਕੇ ਵਿੱਚ ਸੀ। ਨੋਟਸ ਪੜ੍ਹਨਾ ਸਿੱਖਣਾ ਨਹੀਂ ਹੈ। ਮੇਰੇ ਕੋਲ ਅਜਿਹੇ ਨੋਟਸ ਸਨ ਜੋ ਕਿਸੇ ਮਾਹਰ ਲਈ ਸਨ, ਨਾ ਕਿ ਕਿਸੇ ਸ਼ੁਰੂਆਤ ਕਰਨ ਵਾਲੇ ਲਈ।
ਮੈਂ ਆਪਣਾ ਤਰੀਕਾ ਬਦਲ ਲਿਆ। ਮੈਂ ਪੜ੍ਹਨਾ ਬੰਦ ਕਰ ਦਿੱਤਾ। ਇਸ ਦੀ ਬਜਾਏ, ਮੈਂ ਸਵਾਲ ਪੁੱਛੇ। ਮੈਂ ਸਧਾਰਨ ਉਦਾਹਰਣਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ। ਜਦੋਂ ਤੱਕ ਮੈਂ ਸੰਕਲਪ ਨੂੰ ਸਮਝ ਨਹੀਂ ਲਿਆ, ਮੈਂ ਤਕਨੀਕੀ ਸ਼ਬਦਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਇਨਕਾਰ ਕਰ ਦਿੱਤਾ।
ਦਿਨ ਦੇ ਅੰਤ ਤੱਕ, ਮੈਂ ਇੱਕ RAG app ਬਣਾ ਲਿਆ। ਇੱਥੇ ਦੱਸਿਆ ਗਿਆ ਹੈ ਕਿ ਮੈਂ NLP ਦੇ ਚਾਰ ਥੰਮ੍ਹ ਕਿਵੇਂ ਸਿੱਖੇ।
- Bag of Words ਕੰਪਿਊਟਰ ਸਿਰਫ਼ ਗਣਿਤ ਸਮਝਦੇ ਹਨ। ਟੈਕਸਟ ਨੂੰ ਪ੍ਰੋਸੈਸ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਸ਼ਬਦਾਂ ਨੂੰ ਨੰਬਰਾਂ ਵਿੱਚ ਬਦਲਣਾ ਪਵੇਗਾ।
ਕਲਪਨਾ ਕਰੋ ਕਿ ਤੁਸੀਂ ਈਮੇਲਾਂ ਨੂੰ ਸਪੈਮ (spam) ਜਾਂ ਗੈਰ-ਸਪੈਮ ਵਿੱਚ ਵੰਡਣਾ ਚਾਹੁੰਦੇ ਹੋ। ਤੁਸੀਂ ਆਪਣੀਆਂ ਈਮੇਲਾਂ ਵਿੱਚ ਹਰ ਸ਼ਬਦ ਦੀ ਸੂਚੀ ਬਣਾਉਂਦੇ ਹੋ। ਤੁਸੀਂ ਗਿਣਦੇ ਹੋ ਕਿ ਹਰ ਸ਼ਬਦ ਕਿੰਨੀ ਵਾਰ ਆਉਂਦਾ ਹੈ। ਇਹ ਇੱਕ ਈਮੇਲ ਨੂੰ ਨੰਬਰਾਂ ਦੀ ਇੱਕ ਲਾਈਨ ਵਿੱਚ ਬਦਲ ਦਿੰਦਾ ਹੈ।
ਇਸ ਵਿੱਚ ਕਮੀ ਕੀ ਹੈ? ਇਹ ਸ਼ਬਦਾਂ ਦੇ ਕ੍ਰਮ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਕਰ ਦਿੰਦਾ ਹੈ। "Dog bites man" ਅਤੇ "man bites dog" ਇਸ ਤਰੀਕੇ ਨਾਲ ਇੱਕੋ ਜਿਹੇ ਲੱਗਦੇ ਹਨ।
- TF-IDF Bag of Words ਹਰ ਸ਼ਬਦ ਨਾਲ ਇੱਕੋ ਜਿਹਾ ਸਲੂਕ ਕਰਦਾ ਹੈ। ਪਰ "the" ਉਨਾ ਮਹੱਤਵਪੂਰਨ ਨਹੀਂ ਹੈ ਜਿੰਨਾ ਕਿ "viagra"।
TF-IDF ਦੋ ਨਿਯਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ:
- Term Frequency (TF): ਇੱਕ ਈਮੇਲ ਵਿੱਚ ਕੋਈ ਸ਼ਬਦ ਕਿੰਨੀ ਵਾਰ ਆਉਂਦਾ ਹੈ।
- Inverse Document Frequency (IDF): ਸਾਰੀਆਂ ਈਮੇਲਾਂ ਵਿੱਚ ਕੋਈ ਸ਼ਬਦ ਕਿੰਨਾ ਦੁਰਲੱਭ ਹੈ।
ਇਹ ਗਣਿਤ "the" ਵਰਗੇ ਫਿਲਰ ਸ਼ਬਦਾਂ ਨੂੰ ਦਬਾ ਦਿੰਦਾ ਹੈ ਅਤੇ ਮਹੱਤਵਪੂਰਨ, ਦੁਰਲੱਭ ਸ਼ਬਦਾਂ ਨੂੰ ਉਜਾਗਰ ਕਰਦਾ ਹੈ।
- Embeddings Bag of Words ਸੋਚਦਾ ਹੈ ਕਿ "money" ਅਤੇ "cash" ਦਾ ਆਪਸ ਵਿੱਚ ਕੋਈ ਸਬੰਧ ਨਹੀਂ ਹੈ। Embeddings ਇਸ ਨੂੰ ਠੀਕ ਕਰਦੇ ਹਨ।
ਇੱਕ ਵਿਸ਼ਾਲ ਨਕਸ਼ੇ ਬਾਰੇ ਸੋਚੋ। ਹਰ ਸ਼ਬਦ ਉਸ ਨਕਸ਼ੇ 'ਤੇ ਇੱਕ ਬਿੰਦੂ ਹੈ। ਸਮਾਨ ਅਰਥ ਵਾਲੇ ਸ਼ਬਦ ਇੱਕ ਦੂਜੇ ਦੇ ਨੇੜੇ ਹੁੰਦੇ ਹਨ। "Money" ਅਤੇ "cash" ਗੁਆਂਢੀ ਹਨ। "Banana" ਬਹੁਤ ਦੂਰ ਹੈ।
ਕੰਪਿਊਟਰ ਸ਼ਬਦ ਦੇ ਆਲੇ-ਦੁਆਲੇ ਦੇ ਸ਼ਬਦਾਂ ਨੂੰ ਦੇਖ ਕੇ ਇਹ ਸਥਾਨ ਸਿੱਖਦਾ ਹੈ। ਜੇਕਰ "money" ਅਤੇ "cash" ਦੋਵੇਂ "bank" ਅਤੇ "pay" ਦੇ ਨੇੜੇ ਆਉਂਦੇ ਹਨ, ਤਾਂ ਕੰਪਿਊਟਰ ਉਹਨਾਂ ਨੂੰ ਇੱਕ ਦੂਜੇ ਦੇ ਨੇੜੇ ਰੱਖਦਾ ਹੈ।
- RAG (Retrieval-Augmented Generation) ਇੱਥੇ ਸਭ ਕੁਝ ਇਕੱਠਾ ਹੁੰਦਾ ਹੈ।
ਜੇਕਰ ਤੁਹਾਡੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚ ਹਰ ਨੋਟ ਨਕਸ਼ੇ 'ਤੇ ਇੱਕ ਬਿੰਦੂ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਸਭ ਤੋਂ ਨੇੜਲੇ ਬਿੰਦੂਆਂ ਨੂੰ ਲੱਭ ਕੇ ਉੱਤਰ ਲੱਭ ਸਕਦੇ ਹੋ।
RAG ਪ੍ਰਕਿਰਿਆ:
- ਇੱਕ ਸਵਾਲ ਨੂੰ ਬਿੰਦੂ ਵਿੱਚ ਬਦਲੋ।
- ਨਕਸ਼ੇ 'ਤੇ ਸਭ ਤੋਂ ਨੇੜਲੇ ਨੋਟ-ਬਿੰਦੂ ਲੱਭੋ।
- ਉਹ ਨੋਟ AI ਨੂੰ ਦਿਓ।
- AI ਨੂੰ ਸਿਰਫ਼ ਉਹਨਾਂ ਨੋਟਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਉੱਤਰ ਦੇਣ ਲਈ ਕਹੋ।
ਇਹ AI ਨੂੰ ਅੰਦਾਜ਼ਾ ਲਗਾਉਣ ਜਾਂ ਝੂਠ ਬੋਲਣ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਇਹ AI ਨੂੰ ਤੁਹਾਡੇ ਅਸਲ ਡੇਟਾ ਦੀ ਵਰਤੋਂ ਕਰਨ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ।
ਮੈਂ ਇਹਨਾਂ ਕਦਮਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਆਪਣਾ app, Synapse, ਬਣਾਇਆ। ਮੈਂ ਇੱਕ ਦਿਨ ਵਿੱਚ ਜ਼ੀਰੋ ਤੋਂ ਇੱਕ ਕੰਮ ਕਰਦੇ ਸਿਸਟਮ ਤੱਕ ਪਹੁੰਚ ਗਿਆ।
ਸਬਕ: ਪੜ੍ਹਨਾ ਬੰਦ ਕਰੋ। ਪੁੱਛਣਾ ਸ਼ੁਰੂ ਕਰੋ। ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਸੰਕਲਪ ਨੂੰ ਇੱਕ ਸਧਾਰਨ ਉਦਾਹਰਣ ਰਾਹੀਂ ਨਹੀਂ ਸਮਝਾ ਸਕਦੇ, ਤਾਂ ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਸੀਂ ਅਜੇ ਤੱਕ ਉਸਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਨਹੀਂ ਸਮਝਿਆ। ਇਹ ਸਾਬਤ ਕਰਨ ਲਈ ਕਿ ਤੁਸੀਂ ਸਮਝ ਗਏ ਹੋ, ਕੁਝ ਬਣਾਓ।
ਸਰੋਤ: https://dev.to/sabimantock/from-i-understood-nothing-to-building-a-rag-app-4033
ਵਿਕਲਪਿਕ ਸਿੱਖਣ ਕਮਿਊਨਿਟੀ: https://t.me/GyaanSetuAi