Anthropic ਨੇ Claude Code ਨੂੰ ਗਾਈਡ ਕਰਨ ਵਾਲੇ ਸਿਸਟਮ ਪ੍ਰੋਂਪਟ (system prompt) ਦਾ 80% ਹਿੱਸਾ ਹਟਾ ਦਿੱਤਾ ਹੈ ਅਤੇ ਕੋਡ ਲਿਖਣ ਦੀ ਇਸਦੀ ਯੋਗਤਾ ਵਿੱਚ ਕੋਈ ਕਮੀ ਨਹੀਂ ਦੱਸੀ ਹੈ। ਇਹ ਪ੍ਰਯੋਗ ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਜਿਵੇਂ-ਜਿਵੇਂ ਲਾਰਜ ਲੈਂਗੂਏਜ ਮਾਡਲ (LLMs) ਵਧੇਰੇ ਸਮਰੱਥ ਬਣ ਰਹੇ ਹਨ, ਡਿਵੈਲਪਰ ਮਾਡਲਾਂ ਨੂੰ ਰਸਤੇ 'ਤੇ ਰੱਖਣ ਲਈ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਭਾਰੀ ਸਕੈਫੋਲਡਿੰਗ (scaffolding) ਨੂੰ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਨੁਕਸਾਨ ਪਹੁੰਚਾਏ ਬਿਨਾਂ ਘਟਾ ਸਕਦੇ ਹਨ।
ਪ੍ਰੋਂਪਟ ਸ਼ੁਰੂ ਵਿੱਚ ਕਿਉਂ ਮਹੱਤਵਪੂਰਨ ਸੀ
ਜਦੋਂ Claude Code ਲਾਂਚ ਹੋਇਆ, ਤਾਂ ਇਸਦੇ ਸਿਸਟਮ ਪ੍ਰੋਂਪਟ ਵਿੱਚ ਦਰਜਨਾਂ ਨਿਯਮ ਸਨ। ਇੰਜੀਨੀਅਰਾਂ ਨੇ ਹਰ ਵਾਰ ਬੱਗ (bug) ਆਉਣ 'ਤੇ ਨਵੀਆਂ ਲਾਈਨਾਂ ਜੋੜੀਆਂਆਂ, ਪਰ ਜੋ ਚੀਜ਼ ਕੰਮ ਕਰ ਰਹੀ ਸੀ ਉਸਨੂੰ ਸ਼ਾਇਦ ਹੀ ਕਦੇ ਹਟਾਇਆ। ਸਮੇਂ ਦੇ ਨਾਲ, ਪ੍ਰੋਂਪਟ ਇੱਕ ਉਲਝਿਆ ਹੋਇਆ, ਸਥਿਰ ਦਸਤਾਵੇਜ਼ ਬਣ ਗਿਆ।
ਮਾਡਲ ਗੈਪ (model gap) ਘਟ ਰਿਹਾ ਹੈ
ਉਹ ਵਾਧੂ ਨਿਯਮ ਇੱਕ "ਮਾਡਲ ਗੈਪ" ਨੂੰ ਛੁਪਾਉਂਦੇ ਸਨ - ਮਾਡਲ ਜੋ ਕਰ ਸਕਦਾ ਸੀ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਦੀ ਜੋ ਮੰਗ ਸੀ, ਉਸ ਵਿਚਕਾਰ ਦਾ ਅੰਤਰ। 2024 ਵਿੱਚ, ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਮਾਡਲ ਨੂੰ, ਉਦਾਹਰਨ ਲਈ, ਕੋਡ ਵਿੱਚ ਬਹੁਤ ਜ਼ਿਆਦਾ ਕਮੈਂਟਸ (over-commenting) ਕਰਨ ਤੋਂ ਰੋਕਣ ਲਈ ਸਖ਼ਤ ਪਾਬੰਦੀਆਂ ਲਗਾਉਣੀਆਂ ਪੈਂਦੀਆਂ ਸਨ। ਅੱਜ ਉਹੀ ਮਾਡਲ "ਮੌਜੂਦਾ ਕੋਡ ਸਟਾਈਲ ਨਾਲ ਮੇਲ ਕਰੋ" ਵਰਗੇ ਇੱਕ ਸਿੰਗਲ ਇੰਸਟ੍ਰਕਸ਼ਨ ਤੋਂ ਲੋੜੀਂਦੇ ਸਟਾਈਲ ਦਾ ਅੰਦਾਜ਼ਾ ਲਗਾ ਸਕਦਾ ਹੈ। ਨਿਯਮ ਮਦਦ ਤੋਂ ਸ਼ੋਰ (noise) ਵਿੱਚ ਬਦਲ ਗਏ ਹਨ।
ਕੰਟੈਕਸਟ ਇੰਜੀਨੀਅਰਿੰਗ (context engineering) ਵਿੱਚ ਕੀ ਬਦਲ ਰਿਹਾ ਹੈ
Anthropic ਦੁਆਰਾ ਕੀਤੀ ਗਈ ਇਹ ਕਟੌਤੀ ਡਿਵੈਲਪਰਾਂ ਦੁਆਰਾ ਪ੍ਰੋਂਪਟ ਨੂੰ ਬਣਾਉਣ ਦੇ ਤਰੀਕੇ ਵਿੱਚ ਇੱਕ ਵੱਡੇ ਬਦਲਾਅ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ:
- ਇੱਕ ਵਾਰੀ ਦੇ ਮਹੱਤਵਪੂਰਨ ਨਿਰਦੇਸ਼ – ਇੱਕ ਨਿਯਮ ਇੱਕ ਵਾਰ ਦੱਸੋ ਅਤੇ ਮਾਡਲ ਨੂੰ ਇਸਨੂੰ ਯਾਦ ਰੱਖਣ ਦਿਓ।
- few-shot examples ਦੀ ਬਜਾਏ ਟੂਲ-ਡਰਿਵਨ ਪੈਰਾਮੀਟਰਾਂ ਦੀ ਵਰਤੋਂ – ਟੂਲ ਸਕੀਮਾ (tool schema) ਵਿੱਚ ਇਨਪੁਟ ਅਤੇ ਆਉਟਪੁੱਟ ਦੇ ਰੂਪਾਂ ਦਾ ਵਰਣਨ ਕਰੋ ਅਤੇ ਮਾਡਲ ਨੂੰ ਉਹਨਾਂ ਨੂੰ ਭਰਨ ਦਿਓ।
- ਪ੍ਰੋਗਰੈਸਿਵ ਡਿਸਕਲੋਜ਼ਰ (Progressive disclosure) – ਸਿਰਫ਼ ਮੌਜੂਦਾ ਕਦਮ ਲਈ ਲੋੜੀਂਦਾ ਕੰਟੈਕਸਟ ਹੀ ਦਿਓ, ਜੇਕਰ ਲੋੜ ਹੋਵੇ ਤਾਂ ਬਾਅਦ ਵਿੱਚ ਹੋਰ ਜੋੜੋ।
- ਸਥਿਰ ਮਾਰਗਦਰਸ਼ਨ ਨੂੰ ਟੂਲ ਦੇ ਵਰਣਨ ਵਿੱਚ ਲਿਜਾਓ – "ਵੇਰੀਏਬਲਜ਼ ਲਈ camelCase ਦੀ ਵਰਤੋਂ ਕਰੋ" ਵਰਗੀਆਂ ਚੀਜ਼ਾਂ ਟੂਲ ਦੇ ਸਪੈਕ (spec) ਵਿੱਚ ਹੋਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ, ਨਾ ਕਿ ਸਿਸਟਮ ਪ੍ਰੋਂਪਟ ਵਿੱਚ।
- ਹਾਰਡਕੋਡਡ ਨਿਯਮਾਂ ਨੂੰ ਹਿਊਰਿਸਟਿਕਸ (heuristics) ਨਾਲ ਬਦਲੋ – ਨਿਯਮ ਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਸ਼ਰਤ ਦੇ ਲਾਗੂ ਕਰਨ ਦੀ ਬਜਾਏ ਮਾਡਲ ਨੂੰ ਇਹ ਫੈਸਲਾ ਕਰਨ ਦਿਓ ਕਿ ਨਿਯਮ ਕਦੋਂ ਲਾਗੂ ਹੁੰਦਾ ਹੈ।
ਇਹ ਤਕਨੀਕਾਂ ਇਸ ਲਈ ਕੰਮ ਕਰਦੀਆਂ ਹਨ ਕਿਉਂਕਿ ਮਾਡਲ ਪਹਿਲਾਂ ਹੀ ਬਹੁਤ ਸਾਰੇ ਅਜਿਹੇ ਰਵਾਇਤੀ ਤਰੀਕਿਆਂ ਨੂੰ ਜਾਣਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਲਈ ਪਹਿਲਾਂ ਸਪੱਸ਼ਟ ਮਜ਼ਬੂਤੀ ਦੀ ਲੋੜ ਹੁੰਦੀ ਸੀ।
ਜ਼ਿਆਦਾ ਕਟੌਤੀ ਕਰਨ ਦਾ ਖਤਰਾ
ਉਹੀ ਛਾਂਟਾਈ ਜੋ ਅਤਿ-ਆਧੁਨਿਕ (frontier) ਮਾਡਲਾਂ ਨੂੰ ਲਾਭ ਪਹੁੰਚਾਉਂਦੀ ਹੈ, ਉਹ ਛੋਟੇ ਮਾਡਲਾਂ ਨੂੰ ਨੁਕਸਾਨ ਪਹੁੰਚਾ ਸਕਦੀ ਹੈ। Anthropic ਦਾ ਕਹਿਣਾ ਹੈ ਕਿ Haiku ਵਰਗੇ ਮਾਡਲ ਅਜੇ ਵੀ ਰਸਤੇ 'ਤੇ ਰਹਿਣ ਲਈ ਵਧੇਰੇ ਵਿਸਤ੍ਰਿਤ ਪ੍ਰੋਂਪਟਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ। ਘੱਟ ਸਮਰੱਥ ਮਾਡਲ ਤੋਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਮਾਰਗਦਰਸ਼ਨ ਹਟਾਉਣ ਨਾਲ ਉਹ ਗਲਤੀਆਂ ਦੁਬਾਰਾ ਆ ਸਕਦੀਆਂ ਹਨ ਜਿਨ੍ਹਾਂ ਨੂੰ ਅਸਲ ਪ੍ਰੋਂਪਟ ਰੋਕਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰ ਰਿਹਾ ਸੀ: ਅਸੰਗਤ ਨਾਮਕਰਨ (inconsistent naming), ਬਹੁਤ ਜ਼ਿਆਦਾ ਕਮੈਂਟਸ, ਜਾਂ ਮਿਸ ਹੋਏ ਐਜ ਕੇਸ (edge cases)।
ਆਪਣੇ ਪ੍ਰੋਂਪਟਾਂ ਦਾ ਆਡਿਟ ਕਿਵੇਂ ਕਰੀਏ
ਜੇਕਰ ਤੁਸੀਂ ਕੋਡ-ਜਨਰੇਸ਼ਨ ਪਾਈਪਲਾਈਨ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦੇ ਹੋ, ਤਾਂ ਪ੍ਰੋਂਪਟ ਆਡਿਟ ਫਾਲਤੂ ਭਾਰ ਨੂੰ ਪ੍ਰਗਟ ਕਰ ਸਕਦਾ ਹੈ। ਇੱਕ ਵਿਹਾਰਕ ਚੈੱਕਲਿਸਟ ਇਸ ਤਰ੍ਹਾਂ ਹੈ:
- ਇੰਸਟ੍ਰਕਸ਼ਨ ਡੈਂਸਿਟੀ (instruction density) ਨੂੰ ਮੁੜ-ਅਨੁਕੂਲਿਤ ਕਰੋ – ਮਾਰਗਦਰਸ਼ਨ ਦੀ ਮਾਤਰਾ ਨੂੰ ਉਸ ਮਾਡਲ ਦੇ ਅਨੁਸਾਰ ਰੱਖੋ ਜੋ ਤੁਸੀਂ ਅਸਲ ਵਿੱਚ ਚਲਾ ਰਹੇ ਹੋ।
- ਦੁਹਰਾਏ ਗਏ ਨਿਰਦੇਸ਼ਾਂ ਨੂੰ ਹਟਾਓ – ਜੇਕਰ ਕੋਈ ਨਿਯਮ ਸਿਸਟਮ ਪ੍ਰੋਂਪਟ ਅਤੇ ਟੂਲ ਦੇ ਵਰਣਨ ਦੋਵਾਂ ਵਿੱਚ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਸਿਰਫ਼ ਇੱਕ ਵਾਰ ਹੀ ਰੱਖੋ।
- ਕੰਮ ਕੀਤੇ ਗਏ ਉਦਾਹਰਣਾਂ ਨੂੰ ਵਧੇਰੇ ਅਮੀਰ ਸਕੀਮਾ ਵਿੱਚ ਬਦਲੋ – ਖਾਸ ਉਦਾਹਰਣਾਂ ਦੀ ਜਗ੍ਹਾ ਗਿਣਤੀ ਕੀਤੇ ਗਏ ਪੈਰਾਮੀਟਰਾਂ ਦੀਆਂ ਕਿਸਮਾਂ ਜਾਂ enums ਦੀ ਵਰਤੋਂ ਕਰੋ।
- ਸਥਿਤੀ ਅਨੁਸਾਰ ਵੇਰਵਿਆਂ ਨੂੰ ਬਾਹਰੀ ਬਣਾਓ – ਵੱਡੇ ਰੈਫਰੈਂਸ ਬਲਾਕਾਂ ਨੂੰ ਵੱਖਰੀਆਂ ਫਾਈਲਾਂ ਵਿੱਚ ਲਿਜਾਓ ਜਿਨ੍ਹਾਂ ਨੂੰ ਮਾਡਲ ਲੋੜ ਪੈਣ 'ਤੇ ਪ੍ਰਾਪਤ ਕਰ ਸਕੇ।
- ਖਤਮ ਹੋ ਚੁੱਕੇ ਵਿਵਹਾਰਾਂ ਨੂੰ ਕਵਰ ਕਰਨ ਵਾਲੇ ਨਿਯਮਾਂ ਨੂੰ ਹਟਾਓ – ਜੇਕਰ ਮਾਡਲ ਹੁਣ ਅਣਚਾਹੇ ਕਮੈਂਟਸ ਨਹੀਂ ਜੋੜਦਾ, ਤਾਂ "no-comment" ਨਿਯਮ ਨੂੰ ਹਟਾ ਦਿਓ।
ਸਿਰਫ਼ ਅੰਦਾਜ਼ੇ 'ਤੇ ਭਰੋਸਾ ਨਾ ਕਰੋ। ਇੱਕ ਸਧਾਰਨ "3-Test Rule" ਦੀ ਵਰਤੋਂ ਕਰੋ: ਪੰਜ ਅਸਲੀ ਕੋਡਿੰਗ ਕੰਮ ਚਲਾਓ, ਹਰੇਕ ਡਿਲੀਸ਼ਨ ਤੋਂ ਪਹਿਲਾਂ ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਨਤੀਜਿਆਂ ਦੀ ਤੁਲਨਾ ਕਰੋ, ਅਤੇ ਕਿਸੇ ਵੀ ਰਿਗਰੈਸ਼ਨ (regression) ਨੂੰ ਨੋਟ ਕਰੋ।
- ਬੇਸਲਾਈਨ (Baseline) – ਪੂਰੇ ਪ੍ਰੋਂਪਟ ਨਾਲ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਮਾਪੋ।
- ਡਿਲੀਟ (Delete) – ਕਿਸੇ ਸੰਭਾਵਿਤ ਲਾਈਨ ਜਾਂ ਬਲਾਕ ਨੂੰ ਹਟਾਓ।
- ਰੀ-ਰਨ (Re-run) – ਉਹੀ ਪੰਜ ਕੰਮ ਦੁਬਾਰਾ ਕਰੋ।
ਜੇਕਰ ਆਉਟਪੁੱਟ ਬਦਲ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇੱਕ ਅਜਿਹੀ ਲਾਈਨ ਦੀ ਪਛਾਣ ਕਰ ਲਈ ਹੈ ਜੋ ਅਜੇ ਵੀ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਜੇਕਰ ਨਹੀਂ, ਤਾਂ ਉਸ ਲਾਈਨ ਨੂੰ ਸੁਰੱਖਿਅਤ ਰੂਪ ਵਿੱਚ ਹਟਾਇਆ ਜਾ ਸਕਦਾ ਹੈ।
ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਅੱਗੇ ਕਿਸ ਚੀਜ਼ 'ਤੇ ਨਜ਼ਰ ਰੱਖਣੀ ਚਾਹੀਦੀ ਹੈ
ਫਿਲਹਾਲ, ਸਿੱਖਿਆ ਸਪੱਸ਼ਟ ਹੈ: ਸਿਸਟਮ ਪ੍ਰੋਂਪਟ ਇੱਕ ਜਿਉਂਦਾ-ਜਾਗਦਾ ਦਸਤਾਵੇਜ਼ ਹੈ। ਹਰ ਲਾਈਨ ਨੂੰ ਇੱਕ ਸੀਮਤ ਉਮਰ (shelf life) ਵਾਲੀ ਸਮਝੋ, ਨਿਯਮਤ ਤੌਰ 'ਤੇ ਆਡਿਟ ਕਰੋ, ਅਤੇ ਮਾਡਲ ਦੀ ਵਧਦੀ ਸਮਰੱਥਾ ਨੂੰ ਮੁੱਖ ਕੰਮ ਕਰਨ ਦਿਓ।
ਸਰੋਤ: dev.to/ialijr/your-system-prompt-has-a-shelf-life-maintaining-prompts-as-models-improve-cd9
