Automatic Prompt Engineer (APE) ਇੱਕ ਭਾਸ਼ਾ ਮਾਡਲ (language model) ਨੂੰ ਕਿਸੇ ਦਿੱਤੇ ਗਏ ਕੰਮ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਪ੍ਰੋਂਪਟ ਲਿਖਣ, ਟੈਸਟ ਕਰਨ ਅਤੇ ਚੁਣਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇੱਕ ਸਮੇਂ ਦੀ 'ਟਰਿਆਲ-ਐਂਡ-ਐਰਰ' (trial-and-error) ਕਲਾ ਨੂੰ ਇੱਕ ਦੁਹਰਾਉਣਯੋਗ ਡੇਟਾ-ਡ੍ਰਿਵਨ ਖੋਜ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।

ਪ੍ਰੋਂਪਟ ਲਿਖਣਾ ਇੱਕ ਰੁਕਾਵਟ (bottleneck) ਕਿਉਂ ਬਣ ਗਿਆ ਹੈ

ਪ੍ਰੋਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ—ਉਹ ਸਹੀ ਸ਼ਬਦਾਵਲੀ ਤਿਆਰ ਕਰਨਾ ਜੋ ਮਾਡਲ ਨੂੰ ਦੱਸਦੀ ਹੈ ਕਿ ਕੀ ਕਰਨਾ ਹੈ—ਲੰਬੇ ਸਮੇਂ ਤੋਂ ਅੰਤਰ-ਬੁੱਧੀ (intuition) ਅਤੇ ਕਿਸਮਤ ਦਾ ਮਿਸ਼ਰਣ ਰਹੀ ਹੈ। ਮਾਹਰ ਇੱਥੇ ਇੱਕ ਸ਼ਬਦ ਬਦਲਦੇ ਹਨ, ਉੱਥੇ ਇੱਕ ਵਾਕ ਬਦਲਦੇ ਹਨ, ਮਾਡਲ ਚਲਾਉਂਦੇ ਹਨ, ਅਤੇ ਉਦੋਂ ਰੁਕ ਜਾਂਦੇ ਹਨ ਜਦੋਂ ਆਉਟਪੁੱਟ "ਸਹੀ ਲੱਗਦਾ ਹੈ।" ਇਹ ਤਰੀਕਾ ਲੰਬਾ ਖਿੱਚਦਾ ਹੈ, ਇੰਜੀਨੀਅਰ ਦੀ ਕਲਪਨਾ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ, ਅਤੇ ਪ੍ਰਦਰਸ਼ਨ (performance) ਨੂੰ ਸੀਮਤ ਕਰਦਾ ਹੈ। ਪ੍ਰੋਡਕਸ਼ਨ ਵਿੱਚ ਇਸਦਾ ਮਤਲਬ ਹੈ ਲੰਬੇ ਚੱਕਰ, ਅਸਥਿਰ ਨਤੀਜੇ, ਅਤੇ ਲੁਕੀਆਂ ਹੋਈਆਂ ਲਾਗਤਾਂ ਜੋ ਲਾਂਚ ਤੋਂ ਬਾਅਦ ਹੀ ਸਾਹਮਣੇ ਆਉਂਦੀਆਂ ਹਨ।

APE ਦਾ ਤਿੰਨ-ਪੜਾਵੀ ਵਰਕਫਲੋ (workflow)

APE ਪ੍ਰੋਂਪਟ ਬਣਾਉਣ ਨੂੰ ਇੱਕ ਖੋਜ (search) ਸਮੱਸਿਆ ਵਜੋਂ ਮੰਨਦਾ ਹੈ। ਉਪਭੋਗਤਾ ਇਨਪੁੱਟ-ਆਉਟਪੁੱਟ ਦੀਆਂ ਕੁਝ ਉਦਾਹਰਣਾਂ ਦਿੰਦਾ ਹੈ। ਫਿਰ ਸਿਸਟਮ ਤਿੰਨ ਸਵੈਚਾਲਿਤ ਪੜਾਅ ਚਲਾਉਂਦਾ ਹੈ:

  1. Propose (ਪ੍ਰਸਤਾਵ ਦੇਣਾ) – ਮਾਡਲ ਉਦਾਹਰਣਾਂ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ ਅਤੇ ਉਮੀਦਵਾਰ ਨਿਰਦੇਸ਼ਾਂ ਦਾ ਇੱਕ ਸਮੂਹ ਤਿਆਰ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ “return the opposite” ਜਾਂ “write the antonym।”
  2. Score (ਸਕੋਰ ਕਰਨਾ) – ਸਿਸਟਮ ਹਰੇਕ ਉਮੀਦਵਾਰ ਨੂੰ ਅਣਡਿੱਠੀਆਂ ਉਦਾਹਰਣਾਂ ਦੇ ਇੱਕ ਵੱਖਰੇ ਸਮੂਹ 'ਤੇ ਚਲਾਉਂਦਾ ਹੈ ਅਤੇ ਗਿਣਦਾ ਹੈ ਕਿ ਕਿੰਨੇ ਜਵਾਬ ਉਮੀਦ ਕੀਤੇ ਗਏ ਆਉਟਪੁੱਟ ਨਾਲ ਮੇਲ ਖਾਂਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਇੱਕ ਰਅਅ (raw) ਅਕੂਰੇਸੀ ਨੰਬਰ ਮਿਲਦਾ ਹੈ। ਇਸ ਪੜਾਅ ਵਿੱਚ ਮਨੁੱਖੀ ਫੈਸਲਾ ਸ਼ਾਮਲ ਨਹੀਂ ਹੁੰਦਾ।
  3. Select (ਚੁਣਨਾ) – ਸਭ ਤੋਂ ਵੱਧ ਅਕੂਰੇਸੀ ਵਾਲਾ ਨਿਰਦੇਸ਼ ਅੰਤਿਮ ਪ੍ਰੋਂਪਟ ਬਣ ਜਾਂਦਾ ਹੈ।

ਇਹ ਚੱਕਰ ਦੁਹਰਾਇਆ ਜਾ ਸਕਦਾ ਹੈ। ਜੇਤੂ ਪ੍ਰੋਂਪਟ ਨਵਾਂ 'ਸੀਡ' (seed) ਬਣ ਜਾਂਦਾ ਹੈ, ਅਤੇ ਮਾਡਲ ਵੱਖ-ਵੱਖ ਰੂਪਾਂ ਦਾ ਸੁਝਾਅ ਦਿੰਦਾ ਹੈ। ਰਿਪੋਰਟ ਕੀਤੇ ਗਏ ਰਨਾਂ ਵਿੱਚ, ਇੱਕ ਆਮ ਨਿਰਦੇਸ਼ ਜਿਸਨੇ 83% ਸਕੋਰ ਕੀਤਾ ਸੀ, ਉਸਨੂੰ ਇੱਕ ਅਜਿਹੇ ਵਰਜ਼ਨ ਵਿੱਚ ਬਦਲ ਦਿੱਤਾ ਗਿਆ ਜਿਸਨੇ ਟੈਸਟ ਸੈੱਟ 'ਤੇ 100% ਪ੍ਰਾਪਤ ਕੀਤਾ।

ਕੀ ਇਸ ਤਰੀਕੇ ਨੂੰ ਮਨੁੱਖੀ ਹੱਥਾਂ ਨਾਲੋਂ ਮਜ਼ਬੂਤ ​​ਬਣਾਉਂਦਾ ਹੈ

  • Coverage (ਕਵਰੇਜ) – ਇੱਕ LLM ਸਕਿੰਟਾਂ ਵਿੱਚ ਦਰਜਨਾਂ ਵੱਖ-ਵੱਖ ਸ਼ਬਦਾਵਲੀ ਦੇ ਵਿਕਲਪ ਤਿਆਰ ਕਰ ਦਿੰਦਾ ਹੈ, ਜੋ ਕਿ ਇੱਕ ਵਿਅਕਤੀ ਦੁਆਰਾ ਟੈਸਟ ਕੀਤੇ ਜਾ ਸਕਣ ਵਾਲੇ ਵਿਕਲਪਾਂ ਨਾਲੋਂ ਕਿਤੇ ਜ਼ਿਆਦਾ ਹੈ।
  • Objectivity (ਨਿਰਪੱਖਤਾ) – ਚੋਣ ਮਾਪਣਯੋਗ ਅਕੂਰੇਸੀ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀ ਹੈ, ਨਾ ਕਿ ਇਸ 'ਤੇ ਕਿ ਸ਼ਬਦਾਵਲੀ ਸੁਣਨ ਵਿੱਚ ਕਿੰਨੀ ਸੁਚੱਜੀ ਲੱਗਦੀ ਹੈ। ਇੱਕ ਪਾਠ-ਪੁਸਤਕ ਸ਼ੈਲੀ ਦਾ ਨਿਰਦੇਸ਼ ਵੀ ਇੱਕ ਸੰਖੇਪ, ਅਜੀਬ ਸੁਣਨ ਵਾਲੇ ਵਿਕਲਪ ਤੋਂ ਹਾਰ ਸਕਦਾ ਹੈ ਜਿਸ ਨੂੰ ਮਾਡਲ ਬਿਹਤਰ ਸਮਝਦਾ ਹੈ।

ਕਿਉਂਕਿ ਸਕੋਰਿੰਗ ਮੈਟ੍ਰਿਕ ਉਪਭੋਗਤਾ ਤੋਂ ਆਉਂਦੀ ਹੈ—ਆਮ ਤੌਰ 'ਤੇ ਇੱਕ 'ਐਗਜ਼ੈਕਟ-ਮੈਚ' (exact-match) ਚੈੱਕ ਜਾਂ ਯੂਨਿਟ ਟੈਸਟ—ਸਿਸਟਮ ਨੂੰ ਕੋਡ ਜਨਰੇਸ਼ਨ ਤੋਂ ਲੈ ਕੇ ਸੈਂਟੀਮੈਂਟ ਵਿਸ਼ਲੇਸ਼ਣ (sentiment analysis) ਤੱਕ ਕਿਸੇ ਵੀ ਡਾਊਨਸਟ੍ਰੀਮ ਲੋੜ ਲਈ ਟਿਊਨ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ।

ਆਟੋਮੇਸ਼ਨ ਦੀ ਕੀਮਤ

ਇਸਦਾ ਸਮਝੌਤਾ (trade-off) ਕੰਪਿਊਟ (compute) ਹੈ। ਹਰੇਕ ਉਮੀਦਵਾਰ ਨੂੰ ਸਕੋਰ ਕਰਨ ਲਈ ਕਈ ਮਾਡਲ ਕਾਲਾਂ ਕਰਨੀਆਂ ਪੈਂਦੀਆਂ ਹਨ, ਇਸ ਲਈ ਵਿਕਾਸ ਪੜਾਅ (development phase) ਵਿੱਚ API ਦੀ ਵਰਤੋਂ ਦੀ ਇੱਕ ਵੱਡੀ ਮਾਤਰਾ ਖਰਚ ਹੁੰਦੀ ਹੈ। APE ਉਸ ਖਰਚੇ ਨੂੰ ਇੱਕ ਵਾਰ ਦੇ ਨਿਵੇਸ਼ ਵਜੋਂ ਮੰਨਦਾ ਹੈ: ਇੱਕ ਵਾਰ ਜਦੋਂ ਸਰਵੋਤਮ ਪ੍ਰੋਂਪਟ ਦੀ ਪਛਾਣ ਹੋ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਤੁਸੀਂ ਇਸਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਵਾਧੂ ਲਾਗਤ ਦੇ ਹਮੇਸ਼ਾ ਲਈ ਦੁਬਾਰਾ ਵਰਤ ਸਕਦੇ ਹੋ।

ਦੋ ਸ਼ਰਤਾਂ ਵੀ ਇਸਦੇ ਅਪਣਾਉਣ ਨੂੰ ਸੀਮਤ ਕਰਦੀਆਂ ਹਨ:

  • Labeled examples (ਲੇਬਲ ਕੀਤੇ ਉਦਾਹਰਣਾਂ) – ਸਿਸਟਮ ਨੂੰ ਇਨਪੁੱਟ ਅਤੇ ਸਹੀ ਆਉਟਪੁੱਟ ਦੇ ਇੱਕ ਪ੍ਰਤੀਨਿਧ ਸਮੂਹ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
  • Scoring function (ਸਕੋਰਿੰਗ ਫੰਕਸ਼ਨ) – ਉਪਭੋਗਤਾਵਾਂ ਨੂੰ ਇਹ ਪਰਿਭਾਸ਼ਿਤ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਉਹਨਾਂ ਦੇ ਕੰਮ ਲਈ “ਸਹੀ” ਦਾ ਕੀ ਮਤਲਬ ਹੈ, ਚਾਹੇ ਉਹ ਇੱਕ ਐਗਜ਼ੈਕਟ ਸਟ੍ਰਿੰਗ ਮੈਚ ਹੋਵੇ, ਇੱਕ ਨੰਬਰ ਟੋਲਰੈਂਸ ਹੋਵੇ, ਜਾਂ ਇੱਕ ਕਸਟਮ ਵੈਲੀਡੇਟਰ ਹੋਵੇ।

ਕਿੱਥੇ ਇਹ ਵਿਚਾਰ ਅਸਫਲ ਹੋ ਸਕਦਾ ਹੈ

ਜੇਕਰ ਸ਼ੁਰੂਆਤੀ ਉਦਾਹਰਣਾਂ ਦਾ ਸਮੂਹ ਬਹੁਤ ਛੋਟਾ ਜਾਂ ਗੈਰ-ਪ੍ਰਤੀਨਿਧ ਹੈ, ਤਾਂ ਚੁਣਿਆ ਗਿਆ ਪ੍ਰੋਂਪਟ 'ਓਵਰਫਿਟ' (overfit) ਹੋ ਸਕਦਾ ਹੈ ਅਤੇ ਅਸਲ ਦੁਨੀਆ ਦੀ ਵਰਤੋਂ ਵਿੱਚ ਫੇਲ ਹੋ ਸਕਦਾ ਹੈ।

ਅੱਗੇ ਕੀ ਦੇਖਣਾ ਹੈ

ਇਹ ਟੂਲ ਇੱਕ ਵਿਕਲਪ ਪੇਸ਼ ਕਰਦਾ ਹੈ: ਕੁਝ ਉਦਾਹਰਣਾਂ ਦਿਓ, ਮਾਡਲ ਨੂੰ ਦੁਹਰਾਉਣ ਦਿਓ, ਅਤੇ ਇੱਕ ਅਜਿਹਾ ਪ੍ਰੋਂਪਟ ਪ੍ਰਾਪਤ ਕਰੋ ਜਿਸਨੂੰ ਸਿਸਟਮ ਆਪਣੇ ਯਤਨਾਂ ਵਿੱਚ ਸਭ ਤੋਂ ਉੱਚਾ ਰੈਂਕ ਦਿੰਦਾ ਹੈ। ਡੈਮੋ ਅਸਲ ਐਨੁਨਸਿਅਮੈਂਟ ਵਿੱਚ ਦਿੱਤੇ ਲਿੰਕ 'ਤੇ ਉਪਲਬਧ ਹੈ, ਅਤੇ ਇੱਕ ਲਰਨਿੰਗ ਕਮਿਊਨਿਟੀ ਟੈਲੀਗ੍ਰਾਮ (Telegram) 'ਤੇ ਇਕੱਠੀ ਹੁੰਦੀ ਹੈ।

ਸਿੱਖਿਆ (Takeaway): ਪ੍ਰੋਂਪਟ ਇੰਜੀਨੀਅਰਿੰਗ ਨੂੰ ਆਟੋਮੇਟ ਕਰਨਾ ਅੰਦਾਜ਼ੇ ਦੀ ਜਗ੍ਹਾ ਮਾਪਣਯੋਗ ਪ੍ਰਦਰਸ਼ਨ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਪਰ ਇਸ ਲਈ ਪਹਿਲਾਂ ਤੋਂ ਡੇਟਾ, ਕੰਪਿਊਟ ਅਤੇ ਸਫਲਤਾ ਦੀ ਇੱਕ ਸਪਸ਼ਟ ਪਰਿਭਾਸ਼ਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।