Direct Preference Optimization (DPO) ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਇੱਕ ਵੱਖਰੇ ਰਿਵਾਰਡ ਮਾਡਲ (reward model) ਨੂੰ ਟ੍ਰੇਨ ਕੀਤੇ ਬਿਨਾਂ ਜਾਂ ਰਿਨਫੋਰਸਮੈਂਟ-ਲਰਨਿੰਗ (RL) ਲੂਪ ਚਲਾਏ ਬਿਨਾਂ ਵੱਡੇ ਭਾਸ਼ਾ ਮਾਡਲਾਂ (large language models) ਨੂੰ ਫਾਈਨ-ਟਿਊਨ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਕੰਪਿਊਟਿੰਗ ਲਾਗਤਾਂ ਅਤੇ ਉਸ ਅਸਥਿਰਤਾ (instability) ਦੋਵਾਂ ਵਿੱਚ ਕਮੀ ਆਉਂਦੀ ਹੈ ਜੋ ਅਕਸਰ ਰਵਾਇਤੀ RL-from-human-feedback ਪਾਈਪਲਾਈਨਾਂ ਵਿੱਚ ਦੇਖੀ ਜਾਂਦੀ ਹੈ।
RL-from-Human-Feedback ਭਾਰੀ ਕਿਉਂ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ
ਮਿਆਰੀ RL-from-human-feedback (RLHF) ਪ੍ਰਕਿਰਿਆ ਦੇ ਤਿੰਨ ਪੜਾਅ ਹੁੰਦੇ ਹਨ। ਪਹਿਲਾਂ, ਇੱਕ ਬੇਸ ਮਾਡਲ ਨੂੰ ਇੱਕ ਚੁਣੇ ਹੋਏ ਡੇਟਾਸੈੱਟ 'ਤੇ ਫਾਈਨ-ਟਿਊਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਅਗਲੇ ਪੜਾਅ ਵਿੱਚ, ਇੱਕ ਰਿਵਾਰਡ ਮਾਡਲ ਆਉਟਪੁੱਟ ਦੇ ਜੋੜਿਆਂ (pairs) ਵਿਚਕਾਰ ਮਨੁੱਖੀ ਪਸੰਦ ਦੀ ਭਵਿੱਖਬਾਣੀ ਕਰਨਾ ਸਿੱਖਦਾ ਹੈ। ਅੰਤ ਵਿੱਚ, ਪ੍ਰੈਕਟੀਸ਼ਨਰ Proximal Policy Optimization (PPO) – ਜੋ ਕਿ ਇੱਕ ਕਲਾਸਿਕ RL ਐਲਗੋਰਿਦਮ ਹੈ – ਚਲਾਉਂਦੇ ਹਨ ਤਾਂ ਜੋ ਪਾਲਿਸੀ ਨੂੰ ਅਸਲ ਮਾਡਲ ਦੇ ਨੇੜੇ ਰੱਖਦੇ ਹੋਏ ਉੱਚੇ ਅਨੁਮਾਨਿਤ ਰਿਵਾਰਡਾਂ ਵੱਲ ਵਧਾਇਆ ਜਾ ਸਕੇ।
ਉਹ ਤਿੰਨ-ਮਾਡਲ ਸੈੱਟਅੱਪ ਇੱਕੋ ਸਮੇਂ ਮੈਮੋਰੀ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਮਹਿੰਗੇ RL ਲੂਪ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ ਜੋ ਹਰ ਅਪਡੇਟ 'ਤੇ ਨਵਾਂ ਟੈਕਸਟ ਸੈਂਪਲ ਕਰਦਾ ਹੈ। ਟੀਮਾਂ ਅਕਸਰ ਦੇਖਦੀਆਂ ਹਨ ਕਿ ਪਾਲਿਸੀ ਰਿਵਾਰਡ ਨੂੰ "ਗੇਮ" (game) ਕਰਨਾ ਸਿੱਖ ਲੈਂਦੀ ਹੈ, ਜਿਸ ਨਾਲ ਅਜਿਹੇ ਆਉਟਪੁੱਟ ਮਿਲਦੇ ਹਨ ਜੋ ਪ੍ਰੌਕਸੀ (proxy) 'ਤੇ ਤਾਂ ਵਧੀਆ ਸਕੋਰ ਕਰਦੇ ਹਨ ਪਰ ਲੋੜੀਂਦੀ ਗੁਣਵੱਤਾ ਵਿੱਚ ਕਮੀ ਰੱਖਦੇ ਹਨ। ਨਤੀਜੇ ਵਜੋਂ ਇੱਕ ਅਜਿਹੀ ਪਾਈਪਲਾਈਨ ਮਿਲਦੀ ਹੈ ਜੋ ਮਹਿੰਗੀ, ਨਾਜ਼ੁਕ ਅਤੇ ਸਕੇਲ ਕਰਨ ਵਿੱਚ ਮੁਸ਼ਕਲ ਹੁੰਦੀ ਹੈ।
DPO ਦਾ ਐਲਜੇਬ੍ਰਿਕ ਸ਼ਾਰਟਕੱਟ
DPO ਰਿਵਾਰਡ ਮਾਡਲ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਛੱਡ ਦਿੰਦਾ ਹੈ। ਮੁੱਖ ਨਿਰੀਖਣ ਇਹ ਹੈ ਕਿ RLHF ਦਾ ਉਦੇਸ਼ – ਰੈਫਰੈਂਸ ਮਾਡਲ ਤੋਂ ਵੱਖਰੇ ਹੋਣ 'ਤੇ ਜੁਰਮਾਨਾ ਲਗਾਉਂਦੇ ਹੋਏ ਸੰਭਾਵਿਤ ਰਿਵਾਰਡ ਨੂੰ ਵੱਧ ਤੋਂ ਵੱਧ ਕਰਨਾ – ਇੱਕ ਕਲੋਜ਼ਡ-ਫਾਰਮ ਐਕਸਪ੍ਰੈਸ਼ਨ (closed-form expression) ਰੱਖਦਾ ਹੈ। ਗਣਿਤ ਨੂੰ ਦੁਬਾਰਾ ਵਿਵਸਥਿਤ ਕਰਕੇ, ਕਿਸੇ ਵੀ ਟੋਕਨ ਲਈ ਰਿਵਾਰਡ ਪਾਲਿਸੀ ਦੁਆਰਾ ਦਿੱਤੀ ਗਈ log-probability ਅਤੇ ਰੈਫਰੈਂਸ ਮਾਡਲ ਦੁਆਰਾ ਦਿੱਤੀ ਗਈ log-probability ਵਿਚਕਾਰ ਅੰਤਰ ਬਣ ਜਾਂਦਾ ਹੈ।
ਅਸਲ ਵਿੱਚ ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ "ਰਿਵਾਰਡ" ਖੁਦ ਪਾਲਿਸੀ ਦੇ ਅੰਦਰ ਹੀ ਹੁੰਦਾ ਹੈ। ਟ੍ਰੇਨਿੰਗ ਪਸੰਦ ਦੇ ਜੋੜਿਆਂ (preference pairs) 'ਤੇ ਇੱਕ ਸਿੰਗਲ ਕਲਾਸੀਫਿਕੇਸ਼ਨ ਲਾਸ (classification loss) ਤੱਕ ਸੀਮਤ ਹੋ ਜਾਂਦੀ ਹੈ: ਇੱਕ ਚੁਣੇ ਹੋਏ ਜਵਾਬ ਅਤੇ ਇੱਕ ਰੱਦ ਕੀਤੇ ਗਏ ਜਵਾਬ ਦੇ ਦਿੱਤੇ ਜਾਣ 'ਤੇ, ਮਾਡਲ ਨੂੰ ਚੁਣੇ ਹੋਏ ਟੈਕਸਟ ਨੂੰ ਉੱਚੀ ਸੰਭਾਵਨਾ (probability) ਦੇਣ ਲਈ ਪ੍ਰੇਰਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਕੋਈ ਸੈਂਪਲਿੰਗ ਨਹੀਂ, ਕੋਈ PPO ਅਪਡੇਟ ਨਹੀਂ, ਅਤੇ ਸਟੋਰ ਕਰਨ ਲਈ ਕੋਈ ਵਾਧੂ ਮਾਡਲ ਨਹੀਂ।
ਨਵਾਂ ਲਾਸ (loss) ਕਿਹੋ ਜਿਹਾ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ
ਲਾਸ ਮੌਜੂਦਾ ਪਾਲਿਸੀ ਦੇ ਅਧੀਨ ਪਸੰਦ ਕੀਤੇ ਗਏ ਜਵਾਬ ਦੀ log-probability ਦੀ ਤੁਲਨਾ ਰੈਫਰੈਂਸ ਮਾਡਲ ਦੇ ਅਧੀਨ log-probability ਨਾਲ ਕਰਦਾ ਹੈ, ਜਿਸ ਨੂੰ ਇੱਕ ਟੈਂਪਰੇਚਰ ਵਰਗੇ ਹਾਈਪਰਪੈਰਾਮੀਟਰ β ਦੁਆਰਾ ਸਕੇਲ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਉੱਚਾ β ਪਾਲਿਸੀ ਨੂੰ ਰੈਫਰੈਂਸ ਦੇ ਨੇੜੇ ਰਹਿਣ ਲਈ ਮਜਬੂਰ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਰਵਾਨਗੀ (fluency) ਅਤੇ ਸੁਰੱਖਿਆ ਬਣੀ ਰਹਿੰਦੀ ਹੈ। ਘੱਟ β ਪਾਲਿਸੀ ਨੂੰ ਹੋਰ ਦੂਰ ਜਾਣ ਦਿੰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਚੁਣੇ ਹੋਏ ਜਵਾਬ ਲਈ ਇਸਦੀ ਪਸੰਦ ਹੋਰ ਤਿੱਖੀ ਹੋ ਜਾਂਦੀ ਹੈ।
ਫਾਇਦੇ ਜੋ ਡਿਵੈਲਪਰਾਂ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹਨ
- ਕੋਈ ਰਿਵਾਰਡ ਮਾਡਲ ਨਹੀਂ – ਇੱਕ ਵੱਖਰੇ ਪ੍ਰੈਡਿਕਟਰ ਲਈ ਵਾਧੂ ਮਨੁੱਖੀ ਫੀਡਬੈਕ ਇਕੱਠਾ ਕਰਨ ਦੀ ਲੋੜ ਨੂੰ ਖਤਮ ਕਰਦਾ ਹੈ।
- ਟ੍ਰੇਨਿੰਗ ਦੌਰਾਨ ਕੋਈ ਸੈਂਪਲਿੰਗ ਨਹੀਂ – ਮਾਡਲ ਗ੍ਰੇਡੀਐਂਟਸ (gradients) ਦੀ ਗਣਨਾ ਕਰਨ ਲਈ ਕਦੇ ਵੀ ਨਵਾਂ ਟੈਕਸਟ ਤਿਆਰ ਨਹੀਂ ਕਰਦਾ, ਜਿਸ ਨਾਲ GPU ਸਮੇਂ ਵਿੱਚ ਭਾਰੀ ਕਟੌਤੀ ਹੁੰਦੀ ਹੈ।
- ਸਥਿਰਤਾ (Stability) – ਇੱਕ ਮਿਆਰੀ binary-cross-entropy loss, ਉੱਚ-ਵੈਰੀਐਂਸ ਵਾਲੇ RL ਗ੍ਰੇਡੀਐਂਟਸ ਦੀ ਜਗ੍ਹਾ ਲੈਂਦਾ ਹੈ ਜੋ ਅਕਸਰ ਡਾਇਵਰਜੈਂਸ (divergence) ਦਾ ਕਾਰਨ ਬਣਦੇ ਹਨ।
- ਕਾਰਜਕੁਸ਼ਲਤਾ (Efficiency) – ਹਰੇਕ ਪਸੰਦ ਦੇ ਜੋੜੇ 'ਤੇ ਇੱਕ ਸਿੰਗਲ ਗ੍ਰੇਡੀਐਂਟ ਸਟੈਪ ਕਾਫੀ ਹੈ; ਟ੍ਰੇਨਿੰਗ PPO ਦੇ ਮੁਕਾਬਲੇ ਬਹੁਤ ਘੱਟ epochs ਵਿੱਚ ਪੂਰੀ ਹੋ ਜਾਂਦੀ ਹੈ।
ਸ਼ੁਰੂਆਤੀ ਪ੍ਰਯੋਗ ਦਿਖਾਉਂਦੇ ਹਨ ਕਿ DPO ਕੰਪਿਊਟ ਬਜਟ ਦੇ ਇੱਕ ਛੋਟੇ ਹਿੱਸੇ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਬੈਂਚਮਾਰਕ ਪਸੰਦ ਡੇਟਾਸੈੱਟਾਂ 'ਤੇ PPO ਦੇ ਪ੍ਰਦਰਸ਼ਨ ਦੇ ਬਰਾਬਰ ਜਾਂ ਉਸ ਤੋਂ ਬਿਹਤਰ ਪ੍ਰਦਰਸ਼ਨ ਕਰਦਾ ਹੈ। ਉਹ ਲਾਗਤ ਦਾ ਫਾਇਦਾ ਦੱਸਦਾ ਹੈ ਕਿ ਕਿਉਂ ਕਈ ਓਪਨ-ਸੋਰਸ ਪ੍ਰੋਜੈਕਟਾਂ ਨੇ ਪਹਿਲਾਂ ਹੀ DPO ਜਾਂ ਇਸ ਦੇ ਨੇੜਲੇ ਰੂਪ ਨੂੰ ਆਪਣੇ ਡਿਫੌਲਟ ਅਲਾਈਨਮੈਂਟ ਮੈਥਡ ਵਜੋਂ ਅਪਣਾ ਲਿਆ ਹੈ।
ਸਮਝੌਤੇ (Trade-offs)
DPO ਪਸੰਦ ਦੇ ਜੋੜਿਆਂ ਦੇ ਇੱਕ ਨਿਸ਼ਚਿਤ ਸੈੱਟ 'ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ। ਕਿਉਂਕਿ ਇਹ ਟ੍ਰੇਨਿੰਗ ਦੌਰਾਨ ਕਦੇ ਵੀ ਨਵੇਂ ਮੁਕੰਮਲ ਜਵਾਬਾਂ (completions) ਨੂੰ ਸੈਂਪਲ ਨਹੀਂ ਕਰਦਾ, ਇਸ ਲਈ ਇਹ ਉਹਨਾਂ ਜਵਾਬਾਂ ਦੀ ਖੋਜ ਨਹੀਂ ਕਰ ਸਕਦਾ ਜੋ ਅਸਲ ਡੇਟਾ ਵਿੱਚ ਨਹੀਂ ਸਨ। ਇਸਦੇ ਉਲਟ, ਇੱਕ ਆਨਲਾਈਨ PPO ਰਨ ਮਾਡਲ ਦੀ ਲਗਾਤਾਰ ਜਾਂਚ ਕਰਕੇ ਨਵੇਂ, ਉੱਚੇ-ਰਿਵਾਰਡ ਵਾਲੇ ਵਿਵਹਾਰਾਂ ਦੀ ਖੋਜ ਕਰ ਸਕਦਾ ਹੈ।
ਜੇਕਰ β ਨੂੰ ਬਹੁਤ ਘੱਟ ਸੈੱਟ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਜਾਂ ਟ੍ਰੇਨਿੰਗ ਬਹੁਤ ਜ਼ਿਆਦਾ ਸਟੈਪਸ ਲਈ ਚਲਾਈ ਜਾਂਦੀ ਹੈ, ਤਾਂ ਪਾਲਿਸੀ ਰੈਫਰੈਂਸ ਮਾਡਲ ਤੋਂ ਇੰਨੀ ਦੂਰ ਜਾ ਸਕਦੀ ਹੈ ਕਿ ਰਵਾਨਗੀ ਖਤਮ ਹੋ ਜਾਵੇ ਜਾਂ ਅਣਚਾਹੇ ਆਰਟੀਫੈਕਟਸ (artefacts) ਪੈਦਾ ਹੋ ਜਾਣ।
ਸਿੱਟਾ (Takeaway)
Direct Preference Optimization ਤਿੰਨ-ਮਾਡਲ, RL-ਭਾਰੀ RLHF ਸਟੈਕ ਨੂੰ ਇੱਕ ਸਿੰਗਲ, ਸਥਿਰ ਲਾਸ (loss) ਨਾਲ ਬਦਲ ਦਿੰਦਾ ਹੈ ਜੋ ਸਿੱਧੇ ਤੌਰ 'ਤੇ ਮਨੁੱਖੀ ਪਸੰਦ ਦੇ ਜੋੜਿਆਂ ਤੋਂ ਸਿੱਖਦਾ ਹੈ। ਨਤੀਜਾ ਭਾਸ਼ਾ ਮਾਡਲਾਂ ਨੂੰ ਅਲਾਈਨ ਕਰਨ ਲਈ ਇੱਕ ਸਸਤਾ ਅਤੇ ਵਧੇਰੇ ਅਨੁਮਾਨਯੋਗ ਮਾਰਗ ਹੈ—ਬਸ਼ਰਤੇ ਟ੍ਰੇਨਿੰਗ ਡੇਟਾ ਉਹ ਵਿਵਹਾਰ ਕੈਪਚਰ ਕਰੇ ਜਿਸਦੀ ਤੁਹਾਨੂੰ ਲੋੜ ਹੈ ਅਤੇ ਤੁਸੀਂ ਡ੍ਰਿਫਟ ਪੈਰਾਮੀਟਰ (drift parameter) ਨੂੰ ਕਾਬੂ ਵਿੱਚ ਰੱਖੋ।
