ਮਾਡਲ ਨੂੰ ਯਾਦ ਨਹੀਂ ਰਹਿੰਦਾ। ਤੁਹਾਨੂੰ ਯਾਦ ਰਹਿੰਦਾ ਹੈ।
Large Language Models (LLMs) ਕੋਲ ਕੋਈ ਮੈਮੋਰੀ ਨਹੀਂ ਹੁੰਦੀ।
ਮੈਂ ਸੋਚਦਾ ਸੀ ਕਿ ਹਰ ਚੈਟ ਸੈਸ਼ਨ ਆਪਣਾ context ਆਪਣੇ ਆਪ ਸਟੋਰ ਕਰਦਾ ਹੈ। ਮੈਂ ਗਲਤ ਸੀ। ਜਦੋਂ ਤੁਸੀਂ ਕਿਸੇ LLM ਨਾਲ ਗੱਲ ਕਰਦੇ ਹੋ, ਤਾਂ ਇਹ ਤੁਹਾਡਾ ਪਿਛਲਾ ਸਵਾਲ ਯਾਦ ਨਹੀਂ ਰੱਖਦਾ ਜਦੋਂ ਤੱਕ ਤੁਸੀਂ ਉਸਨੂੰ ਦੁਬਾਰਾ ਨਹੀਂ ਭੇਜਦੇ।
ਮਾਡਲ stateless ਹੁੰਦਾ ਹੈ। ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਹਰ ਰਿਕਵੈਸਟ ਇੱਕ ਨਵੀਂ ਸ਼ੁਰੂਆਤ ਹੁੰਦੀ ਹੈ।
ਇੱਕ ਗੱਲਬਾਤ ਬਣਾਉਣ ਲਈ, ਤੁਹਾਨੂੰ ਇਤਿਹਾਸ (history) ਨੂੰ ਖੁਦ ਸੰਭਾਲਣਾ ਪਵੇਗਾ। ਤੁਸੀਂ ਹਰ ਨਵੀਂ ਰਿਕਵੈਸਟ ਦੇ ਨਾਲ ਸਾਰੇ ਪਿਛਲੇ ਸੁਨੇਹਿਆਂ ਦਾ ਇੱਕ array ਭੇਜ ਕੇ ਅਜਿਹਾ ਕਰਦੇ ਹੋ।
"ਮੈਮੋਰੀ" ਸਿਰਫ਼ ਸੁਨੇਹਿਆਂ ਦੀ ਇੱਕ ਸੂਚੀ ਹੈ:
- User: ਹੈਲੋ।
- Assistant: ਹੈਲੋ!
- User: ਤੁਸੀਂ ਕਿਵੇਂ ਹੋ?
ਜੇਕਰ ਤੁਸੀਂ ਆਪਣੀ ਅਗਲੀ ਰਿਕਵੈਸਟ ਵਿੱਚ ਪਹਿਲੀਆਂ ਦੋ ਲਾਈਨਾਂ ਸ਼ਾਮਲ ਨਹੀਂ ਕਰਦੇ, ਤਾਂ ਮਾਡਲ ਨੂੰ ਪਤਾ ਨਹੀਂ ਲੱਗੇਗਾ ਕਿ ਤੁਸੀਂ ਪਹਿਲਾਂ ਹੀ ਹੈਲੋ ਕਹਿ ਚੁੱਕੇ ਹੋ।
ਮੈਂ ਇਹ SDKs ਤੋਂ ਬਚ ਕੇ ਸਿੱਖਿਆ। ਜ਼ਿਆਦਾਤਰ ਡਿਵੈਲਪਰ ਇਸ ਗੁੰਝਲਦਾਰਤਾ ਨੂੰ ਛੁਪਾਉਣ ਲਈ Anthropic SDK ਵਰਗੇ ਟੂਲਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ। SDK ਤੁਹਾਡੇ ਲਈ ਸੁਨੇਹਿਆਂ ਦੇ ਇਤਿਹਾਸ ਅਤੇ headers ਨੂੰ ਸੰਭਾਲ ਲੈਂਦਾ ਹੈ।
ਜੇਕਰ ਤੁਸੀਂ ਸਿੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ ਕਿ LLMs ਕਿਵੇਂ ਕੰਮ ਕਰਦੇ ਹਨ, ਤਾਂ ਇਸਦੀ ਬਜਾਏ raw fetch ਦੀ ਵਰਤੋਂ ਕਰੋ। ਕਿਸੇ abstraction ਦੀ ਵਰਤੋਂ ਨਾ ਕਰੋ। ਜਦੋਂ ਤੁਸੀਂ ਰਿਕਵੈਸਟ ਅਤੇ ਰਿਸਪਾਂਸ ਚੱਕਰ ਨੂੰ ਮੈਨੂਅਲੀ ਸੰਭਾਲਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਹਰ ਫੈਸਲੇ ਨੂੰ ਦੇਖ ਸਕਦੇ ਹੋ।
ਇਹ ਮੈਨੂਅਲ ਕੰਟਰੋਲ ਤੁਹਾਨੂੰ ਬਾਅਦ ਵਿੱਚ ਉੱਨਤ ਰਣਨੀਤੀਆਂ ਬਣਾਉਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ:
- ਲੰਬੀਆਂ ਚੈਟਾਂ ਨੂੰ ਸੰਭਾਲਣ ਲਈ sliding windows।
- Retrieval Augmented Generation (RAG)।
- Semantic search।
ਇਸ array ਨੂੰ ਸਮਝਣਾ AI ਡਿਵੈਲਪਮੈਂਟ ਦੀ ਨੀਂਹ ਹੈ। ਤੁਸੀਂ ਹੀ context ਪ੍ਰਦਾਨ ਕਰ ਰਹੇ ਹੁੰਦੇ ਹੋ। ਮਾਡਲ ਸਿਰਫ਼ ਉਹੀ ਜਾਣਦਾ ਹੈ ਜੋ ਤੁਸੀਂ ਭੇਜਦੇ ਹੋ।
ਸਰੋਤ: https://dev.to/marcochavezco/the-model-doesnt-remember-you-do-3mmk