ਜਾਣੋ ਕਿ Noam Shazeer ਨੇ Transformer ਨੂੰ ਕਿਵੇਂ ਆਕਾਰ ਦਿੱਤਾ: self-attention, multi-head attention, ਅਤੇ ਕਿਉਂ ਇਹ ਡਿਜ਼ਾਈਨ ਆਧੁਨਿਕ LLMs ਦਾ ਮੁੱਖ ਢਾਂਚਾ ਬਣ ਗਿਆ।

Transformer ਇੱਕ ਤਰੀਕਾ ਹੈ ਜੋ ਕੰਪਿੂਟਰਾਂ ਨੂੰ ਸੀਕੁਐਂਸਾਂ — ਜਿਵੇਂ ਕਿ ਵਾਕ, ਕੋਡ, ਜਾਂ ਖੋਜ-ਕੁਇਰੀਆਂ — ਨੂੰ ਸਮਝਣ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। ਪੁਰਾਣੇ ਢੰਗ ਵਿੱਚ ਇੱਕ ਟੋਕਨ ਇਕ ਵਾਰ ਪੜ੍ਹਕੇ ਅਗਲੇ ਲਈ ਨਾਜੁਕ ਯਾਦ ਰੱਖੀ ਜਾਂਦੀ ਸੀ; Transformer ਦੀ ਢੰਗ ਸਾਰੇ ਸੀਕੁਐਂਸ 'ਤੇ ਇੱਕ ਝਲਕ ਮਾਰਦੀ ਹੈ ਅਤੇ ਹਰ ਹਿੱਸੇ ਨੂੰ ਸਮਝਣ ਵੇਲੇ ਕਿੱਥੇ ਧਿਆਨ ਦੇਣਾ ਹੈ ਇਹ ਫੈਸਲਾ ਕਰਦੀ ਹੈ।
ਇਹ ਸਧਾਰਨ ਬਦਲਾਅ ਇਕ ਵੱਡੀ ਗੱਲ ਨਿਕਲਿਆ: ਇਹੀ ਕਾਰਨ ਹੈ ਕਿ ਆਧੁਨਿਕ LLMs ਪ੍ਰਸੰਗ ਨੂੰ ਰੱਖ ਸਕਦੇ ਹਨ, ਹੁਕਮਾਂ ਨੂੰ ਮੰਨ ਸਕਦੇ ਹਨ, ਸਮਝਦਾਰ ਪੈਰਾਗ੍ਰਾਫ ਲਿਖ ਸਕਦੇ ਹਨ, ਅਤੇ ਐਸਾ ਕੋਡ ਜਨਰੇਟ ਕਰ ਸਕਦੇ ਹਨ ਜੋ ਪਹਿਲਾਂ ਦਿੱਤੇ ਫੰਕਸ਼ਨਾਂ ਅਤੇ ਵੈਰੀਏਬਲਾਂ ਦਾ ਹਵਾਲਾ ਦੇਵੇ।
ਜੇ ਤੁਸੀਂ ਕਿਸੇ ਚੈਟਬੋਟ, “ਇਸ ਨੂੰ ਸੰਖੇਪ ਕਰੋ” ਫੀਚਰ, ਸੈਮੈਂਟਿਕ ਖੋਜ, ਜਾਂ ਕੋਡਿੰਗ ਸਹਾਇਕ ਵਰਤੇ ਹਨ, ਤਾਂ ਤੁਸੀਂ Transformer-ਆਧਾਰਿਤ ਸਿਸਟਮਾਂ ਨਾਲ ਵੰਝ ਰਹੇ ਹੋ। ਇੱਕੋ ਹੀ ਕੋਰ ਨਕਸ਼ਾ ਹੇਠ ਲਿਖੀਆਂ ਚੀਜ਼ਾਂ ਨੂੰ ਸਮਰਥਨ ਦਿੰਦਾ ਹੈ:
ਅਸੀਂ ਮੁੱਖ ਭਾਗ — self-attention, multi-head attention, positional encoding, ਅਤੇ ਮੂਲ Transformer ਬਲਾਕ — ਨੂੰ ਬਰੇਕਡਾਊਨ ਕਰਾਂਗੇ ਅਤੇ ਸਮਝਾਵਾਂਗੇ ਕਿ ਇਹ ਡਿਜ਼ਾਈਨ ਵੱਡੇ ਮਾਡਲਾਂ ਨਾਲ ਕਿਉਂ ਚੰਗਾ ਸਕੇਲ ਕਰਦਾ ਹੈ।
ਸਾਥ ਹੀ ਸਮਕਾਲੀ ਵਰਜਨ ਦੀ ਵੀ ਛੋਟੀ ਝਲਕ ਮਿਲੇਗੀ ਜੋ ਤੇਜ਼ੀ, ਲਾਗਤ, ਜਾਂ ਲੰਬੇ context ਵਿੰਡੋਜ਼ ਲਈ ਇਸਨੂੰ ਟਵਿੱਪ ਕਰਦੇ ਹਨ।
ਇਹ ਇੱਕ ਉੱਚ-ਸਤਰ ਦਾ ਟੂਰ ਹੈ ਜਿਸ ਵਿੱਚ ਸਧਾਰਨ ਭਾਸ਼ਾ ਵਿਚ ਵਿਆਖਿਆਵਾਂ ਅਤੇ ਘੱਟ-ਤੱਥੀ ਗਣਿਤ ਰਹੇਗੀ। ਮਕਸਦ ਹੈ ਅਭਿਆਸ ਬਣਾਉਣਾ: ਹਰੇਕ ਹਿੱਸਾ ਕੀ ਕਰਦਾ ਹੈ, ਕਿਵੇਂ ਇਹ ਇਕੱਠੇ ਕੰਮ ਕਰਦੇ ਹਨ, ਅਤੇ ਇਹ ਕਿਸ ਤਰ੍ਹਾਂ ਵਾਸਤਵਿਕ ਉਤਪਾਦੀ ਖ਼ਾਸੀਅਤਾਂ ਵਿੱਚ ਬਦਲਦਾ ਹੈ।
Noam Shazeer ਇੱਕ AI ਖੋਜੀ ਅਤੇ ਇੰਜੀਨੀਅਰ ਹਨ ਜੋ 2017 ਦੇ ਪੇਪਰ “Attention Is All You Need” ਦੇ ਇੱਕ co-author ਵਜੋਂ ਜਾਣੇ ਜਾਂਦੇ ਹਨ। ਉਸ ਪੇਪਰ ਨੇ Transformer ਆਰਕੀਟੈਕਚਰ ਨੂੰ ਪੇਸ਼ ਕੀਤਾ, ਜੋ ਬਾਅਦ ਵਿੱਚ ਕਈ ਆਧੁਨਿਕ LLMs ਦੀ ਬੁਨਿਆਦ ਬਣਿਆ। Shazeer ਦਾ ਕੰਮ ਟੀਮ-ਅਧਾਰਿਤ ਯਤਨ ਦਾ ਹਿੱਸਾ ਹੈ: Transformer Google ਦੀ ਇੱਕ ਖੋਜ ਟੀਮ ਨੇ ਮਿਲਕੇ ਤਿਆਰ ਕੀਤਾ।
Transformer ਤੋਂ ਪਹਿਲਾਂ, ਬਹੁਤ ਸਾਰੇ NLP ਸਿਸਟਮ RNNs ਤੇ ਨਿਰਭਰ ਸਨ ਜੋ ਟੈਕਸਟ ਨੂੰ ਕਦਮ-ਦਰ-ਕਦਮ ਪ੍ਰੋਸੈਸ ਕਰਦੇ ਸੀ। Transformer ਨੇ ਦਿਖਾਇਆ ਕਿ ਤੁਸੀਂ recurrence ਦੇ ਬਿਨਾਂ ਵੀ attention ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਸੀਕੁਐਂਸ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਮਾਡਲ ਕਰ ਸਕਦੇ ਹੋ।
ਇਹ ਬਦਲਾਅ ਮਹੱਤਵਪੂਰਨ ਸੀ ਕਿਉਂਕਿ ਇਹ ਟ੍ਰੇਨਿੰਗ ਨੂੰ ਪੈਰਲੇਲ ਕਰਨ ਲਈ ਆਸਾਨ ਬਣਾਉਂਦਾ ਹੈ (ਤੁਸੀਂ ਬਹੁਤ ਸਾਰੇ ਟੋਕਨ ਇੱਕ ਵਾਰ ਵਿੱਚ ਪ੍ਰੋਸੈਸ ਕਰ ਸਕਦੇ ਹੋ), ਅਤੇ ਇਸ ਨੇ ਮਾਡਲਾਂ ਅਤੇ ਡੇਟਾਸੈਟਾਂ ਨੂੰ ਸਕੇਲ ਕਰਨ ਦਾ ਰਸਤਾ ਖੋਲ੍ਹਿਆ।
Shazeer ਅਤੇ ਹੋਰ ਲੇਖਕਾਂ ਦੀ ਯੋਗਦਾਨ ਅਕੈਡਮਿਕ ਬੈਂਚਮਾਰਕਾਂ ਤੱਕ ਸੀਮਿਤ ਨਹੀਂ ਰਹੀ। Transformer ਇੱਕ ਦੁਹਰਾਏ ਜਾਣ ਵਾਲਾ ਮਾਡਿਊਲ ਬਣ ਗਿਆ ਜਿਸਨੂੰ ਟੀਮਾਂ ਅਨੁਕੂਲ ਕਰ ਸਕਦੀਆਂ ਹਨ: ਕੰਪੋਨੈਂਟ ਬਦਲੋ, ਆਕਾਰ ਬਦਲੋ, ਟਾਸਕ ਲਈ ਟਿਊਨ ਕਰੋ, ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਵੱਡੇ ਪੈਮਾਨੇ 'ਤੇ ਪ੍ਰੀ-ਟ੍ਰੇਨ ਕਰੋ।
ਅਕਸਰ ਇਨ੍ਹਾਂ ਤਰ੍ਹਾਂ ਦੇ ਤਬਦੀਲੀਆਂ ਇੱਕ ਸਾਫ, ਜਨਰਲ ਨੁਸਖੇ ਵੇਖਾਇਆ ਜਾਂਦਾ ਹੈ; ਇੰਜੀਨੀਅਰ ਇਸਨੂੰ ਸੁਧਾਰਦੇ ਹਨ; ਕੰਪਨੀਆਂ ਇਸਨੂੰ operationalize ਕਰਦੀਆਂ ਹਨ; ਅਤੇ ਆਖਿਰਕਾਰ ਇਹ ਭਾਸ਼ਾਈ ਫੀਚਰਾਂ ਦੀ ਨਿਰੰਤਰ ਚੋਣ ਬਣ ਜਾਂਦੀ ਹੈ।
ਇਹ ਕਹਿਣਾ ਠੀਕ ਹੈ ਕਿ Shazeer ਇੱਕ ਮੁੱਖ ਯੋਗਦਾਨਕਾਰ ਅਤੇ Transformer ਪੇਪਰ ਦੇ co-author ਸਨ। ਪਰ ਇਹ ਗਲਤ ਹੈ ਕਿ ਉਨ੍ਹਾਂ ਨੂੰ ਇਸ ਦਾ ਇਕਲੌਤਾ ਆਵিষਕਾਰਕ ਦੱਸਿਆ ਜਾਵੇ। ਪ੍ਰਭਾਵ ਉਸ ਸਮੂਹੀ ਡਿਜ਼ਾਈਨ ਤੋਂ ਆਉਂਦਾ ਹੈ — ਅਤੇ ਉਨ੍ਹਾਂ ਬਾਅਦ ਦੀਆਂ ਕਈ ਸੁਧਾਰਾਂ ਤੋਂ ਜੋ ਸਮੂਦਾਇ ਨੇ ਉਸ ਮੂਲ ਰੂਪ 'ਤੇ ਬਣਾਈਆਂ।
Transformer ਤੋਂ ਪਹਿਲਾਂ, ਬਹੁਤ ਸਾਰੇ ਸੀਕੁਐਂਸ ਸਮੱਸਿਆਵਾਂ (ਅਨੁਵਾਦ, ਬੋਲਚਾਲ, ਟੈਕਸਟ ਜਨਰੇਸ਼ਨ) ਉੱਤੇ Recurrent Neural Networks (RNNs) ਅਤੇ ਬਾਅਦ ਵਿੱਚ LSTMs ਹਕੂਮਤ ਕਰਦੇ ਸਨ। ਮੁੱਖ ਵਿFchar=iddea ਸੀ: ਟੈਕਸਟ ਨੂੰ ਇੱਕ ਟੋਕਨ ਇੱਕ ਵਾਰ ਪੜ੍ਹੋ, ਇੱਕ ਚਲਦੀ “ਮੈਮੋਰੀ” (hidden state) ਰੱਖੋ, ਅਤੇ ਅਗਲੇ ਟੋਕਨ ਦੀ ਭਵਿੱਖਬਾਣੀ ਕਰੋ।
RNN ਇਕ ਵਾਕ ਨੂੰ ਇੱਕ ਕੜੀ ਵਾਂਗ ਪ੍ਰੋਸੈਸ ਕਰਦਾ ਹੈ। ਹਰ ਕਦਮ hidden state ਨੂੰ ਹਾਲੀਆ ਸ਼ਬਦ ਅਤੇ ਪਹਿਲੇ hidden state ਦੇ ਆਧਾਰ 'ਤੇ ਅਪਡੇਟ ਕਰਦਾ ਹੈ। LSTMs ਨੇ gates ਜੋੜ ਕੇ ਇਸਨੂੰ ਸੁਧਾਰਿਆ—ਜੋ ਰੱਖਣ, ਭੁੱਲਣ ਜਾਂ ਆਊਟਪੁੱਟ ਕਰਨ ਦਾ ਫੈਸਲਾ ਕਰਦੇ ਹਨ—ਜਿਸ ਨਾਲ ਲੰਬੇ ਸਮੇਂ ਲਈ ਲਾਗੂ ਸੰਕੇਤ ਧਾਰਨ ਕਰਨਾ ਆਸਾਨ ਹੋਇਆ।
ਅਮਲ ਵਿੱਚ, ਕ੍ਰਮਿਕ ਮੈਮੋਰੀ ਵਿੱਚ ਇੱਕ ਬੋਤਲਨੈਕ ਹੁੰਦਾ ਹੈ: ਜਦੋਂ ਵਾਕ ਲੰਬਾ ਹੋ ਜਾਂਦਾ ਹੈ ਤਾਂ ਬਹੁਤ ਸਾਰੀ ਜਾਣਕਾਰੀ ਇਕ ਹੀ state ਵਿੱਚ ਨਿਪੇੜੀ ਜਾਂਦੀ ਹੈ। LSTMs ਹੋਣ ਦੇ ਬਾਵਜੂਦ, ਦੂਰ-ਦੂਰ ਦੇ ਸ਼ਬਦਾਂ ਤੋਂ ਸਨੈਗਲਾਂ ਧੁੰਦਲੀ ਜਾਂ ਓਵਰਰਾਈਟ ਹੋ ਸਕਦੀਆਂ ਹਨ।
ਇਸ ਕਾਰਨ ਕੁਝ ਸੰਬੰਧ ਮੁਕੰਮਲ ਤਰੀਕੇ ਨਾਲ ਸਿੱਖਣਾ ਔਖਾ ਹੁੰਦਾ — ਜਿਵੇਂ ਕਿ ਕਈ ਸ਼ਬਦ ਪਹਿਲਾਂ ਆਏ ਗਏ ਨਾਂ ਨੂੰ ਪ੍ਰੋਨਾਊਨ ਨਾਲ ਜੋੜਨਾ, ਜਾਂ ਬਹੁਪ੍ਰਸਤਾਵਾਂ ਵਿਚ ਥੀਮ ਨੂੰ ਟਰੈਕ ਕਰਨਾ।
RNNs ਅਤੇ LSTMs ਟ੍ਰੇਨ ਕਰਨ ਵਿੱਚ ਧੀਮੇ ਹੁੰਦੇ ਹਨ ਕਿਉਂਕਿ ਉਹ ਸਮੇਂ 'ਤੇ ਪੂਰੀ ਤਰ੍ਹਾਂ ਪੈਰਲੇਲ ਨਹੀਂ ਹੋ ਸਕਦੇ। ਤੁਸੀਂ ਵੱਖ-ਵੱਖ ਵਾਕਾਂ ਉੱਤੇ ਬੈਚ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਇੱਕ ਹੀ ਵਾਕ ਦੇ ਅੰਦਰ ਕਦਮ 50 ਨੂੰ ਕਦਮ 49 ਦੀ ਲੋੜ ਹੈ, ਜੋ ਕਿ ਕਦਮ 48 'ਤੇ ਨਿਰਭਰ ਹੈ, ਆਦਿ।
ਜਦੋਂ ਤੁਸੀਂ ਵੱਡੇ ਮਾਡਲ, ਵਧੇਰੇ ਡੇਟਾ, ਅਤੇ ਤੇਜ਼ ਅਨੁਸੰਧਾਨ ਚਾਹੁੰਦੇ ਹੋ, ਇਹ ਕਦਮ-ਦਰ-ਕਦਮ ਗਣਨਾ ਇੱਕ ਗੰਭੀਰ ਸੀਮਿਤਤਾ ਬਣ ਜਾਂਦੀ ਹੈ।
ਖੋਜਕਾਰਾਂ ਨੂੰ ਇੱਕ ਐਸਾ ਡਿਜ਼ਾਈਨ ਚਾਹੀਦਾ ਸੀ ਜੋ ਸ਼ਬਦਾਂ ਨੂੰ ਇਕ ਦੂਜੇ ਨਾਲ ਸਿੱਧਾ ਜੋੜ ਸਕੇ ਬਿਨਾਂ ਟਰੇਨਿੰਗ ਦੌਰਾਨ ਸਖਤੀ ਨਾਲ ਖੱਬੇ-ਤੁਰੇ ਕ੍ਰਮ ਵਿੱਚ ਚਲਣ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏ—ਇੱਕ ਤਰੀਕਾ ਜੋ ਲੰਬੇ-ਦੂਰੀ ਦੇ ਰਿਸ਼ਤਿਆਂ ਨੂੰ ਸਿੱਧਾ ਮਾਡਲ ਕਰੇ ਅਤੇ ਆਧੁਨਿਕ ਹਾਰਡਵੇਅਰ ਦਾ ਵਧੀਆ ਲਾਭ ਉਠਾ ਸਕੇ। ਇਸ ਦਬਾਅ ਨੇ Attention Is All You Need ਵਿੱਚ ਪੇਸ਼ ਕੀਤੇ attention-ਪਹਿਲਾਂ ਰੂਪ ਲਈ ਰਸਤਾ ਬਣਾਇਆ।
Attention ਮਾਡਲ ਦਾ ਤਰੀਕਾ ਹੈ: “ਇਸ ਸਮੇਂ ਇਸ ਸ਼ਬਦ ਨੂੰ ਸਮਝਣ ਲਈ ਮੈਂ ਹੋਰ ਕਿਹੜੇ ਸ਼ਬਦਾਂ ਨੂੰ ਵੇਖਣਾ ਚਾਹੀਦਾ ਹਾਂ?”
ਕਦਮ-ਦਰ-ਕਦਮ ਟੈਕਸਟ ਪੜ੍ਹਨ ਅਤੇ ਆਸਰੇ 'ਤੇ ਭਰੋਸਾ ਕਰਨ ਦੀ ਥਾਂ, attention ਮਾਡਲ ਨੂੰ ਲੋੜੀਂਦੇ ਸਮੇਂ ਸੀਕੁਐਂਸ ਦੇ ਸਭ ਤੋਂ ਪ੍ਰਸੰਗਿਕ ਹਿੱਸਿਆਂ ਨੂੰ ਦੇਖਣ ਦਿੰਦਾ ਹੈ।
ਇੱਕ ਮਦਦਗਾਰ ਮਾਨਸਿਕ ਮਾਡਲ ਇੱਕ ਛੋਟੇ ਖੋਜ-ਇੰਜਣ ਦੀ ਤਰ੍ਹਾਂ ਹੈ ਜੋ ਵਾਕ ਦੇ ਅੰਦਰ ਚੱਲ ਰਿਹਾ ਹੈ।
ਮਾਡਲ ਮੌਜੂਦਾ ਸਥਾਨ ਲਈ ਇੱਕ query ਤਿਆਰ ਕਰਦਾ ਹੈ, ਉਹਨਾਂ keys ਨਾਲ ਤੁਲਨਾ ਕਰਦਾ ਹੈ, ਅਤੇ ਫਿਰ values ਦਾ ਇੱਕ ਮਿਲਾਇਨ-ਭਰਿਆ ਸੰਗ੍ਰਹਿਤ ਨਤੀਜਾ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ।
ਉਹ ਤੁਲਨਾਵਾਂ ਪ੍ਰਸੰਗਿਕਤਾ ਸਕੋਰ ਪੈਦਾ ਕਰਦੀਆਂ ਹਨ: ਇੱਕ ਤਕਰੀਬੀ “ਇਹ ਕਿੰਨਾ ਸਬੰਧਿਤ ਹੈ?” ਸ਼ਮੂਲ। ਮਾਡਲ ਫਿਰ ਉਨ੍ਹਾਂ ਨੂੰ attention ਵੈਟਾਂ ਵਿੱਚ ਬਦਲਦਾ ਹੈ, ਜੋ ਜੋੜ ਕੇ 1 ਬਣਦੇ ਹਨ।
ਜੇ ਇਕ ਸ਼ਬਦ ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਹੈ ਤਾਂ ਉਹੇ ਵੱਡਾ ਹਿੱਸਾ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਜੇ ਕਈ ਸ਼ਬਦ ਮਾਇਨੇ ਰੱਖਦੇ ਹਨ ਤਾਂ attention ਉਨ੍ਹਾਂ ਵਿੱਚ ਵੰਡ ਸਕਦਾ ਹੈ।
ਓਹ ਲਓ: “Maria told Jenna that she would call later.”
she ਨੂੰ ਸਮਝਣ ਲਈ ਮਾਡਲ ਨੂੰ “Maria” ਅਤੇ “Jenna” ਵਰਗੇ ਉਮੀਦਵਾਰਾਂ ਨੂੰ ਪਿੱਛੇ ਦੇਖਣਾ ਚਾਹੀਦਾ ਹੈ। Attention ਉਹ ਨਾਮ ਜ਼ਿਆਦਾ ਵੈਟ ਦਿੰਦੀ ਜੋ ਸੰਦਰਭ ਨੂੰ ਸਭ ਤੋਂ ਚੰਗੀ ਤਰ੍ਹਾਂ ਫਿੱਟ ਕਰਦਾ ਹੈ।
ਜਾਂ ਸੋਚੋ: “The keys to the cabinet are missing.” Attention “are” ਨੂੰ “keys” ਨਾਲ ਜੋੜਨ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ (ਸਹੀ ਵਿਸ਼ੇ), ਨਾ ਕਿ “cabinet” ਨਾਲ, ਭਾਵੇਂ “cabinet” ਨੇੜੇ ਹੋਵੇ। ਇਹੀ ਮੁੱਖ ਫਾਇਦਾ ਹੈ: attention ਦੂਰੀ 'ਤੇ ਮਾਨੇ ਜਾਣ ਵਾਲੀ ਅਰਥਕ ਲਿੰਕਾਂ ਬਣਾਉਂਦੀ ਹੈ।
Self-attention ਇਸ ਵਿਚਾਰ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਇੱਕ ਸੀਕੁਐਂਸ ਦਾ ਹਰ ਟੋਕਨ ਉਸੇ ਸੀਕੁਐਂਸ ਦੇ ਹੋਰ ਟੋਕਨਾਂ ਨੂੰ ਦੇਖ ਸਕਦਾ ਹੈ ਤਾਂ ਕਿ ਇਹ ਫੈਸਲਾ ਕਰ ਸਕੇ ਕਿ ਅਜੇ ਕਿਹੜੀ ਜਾਣਕਾਰੀ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਪੁਰਾਣੇ recurrent ਮਾਡਲਾਂ ਦੇ ਵਾਂਗ ਖੱਬੇ-ਤੁਰੇ ਪ੍ਰੋਸੈਸ ਕਰਨ ਦੀ ਥਾਂ, Transformer ਹਰ ਟੋਕਨ ਨੂੰ ਇਨਪੁਟ ਵਿੱਚ ਕਿਤੇ ਤੋਂ ਵੀ ਸੂਝ ਬੁਝ ਇਕੱਠੀ ਕਰਨ ਦੀ ਆਜ਼ਾਦੀ ਦਿੰਦਾ ਹੈ।
ਕਲਪਨਾ ਕਰੋ ਵਾਕ: “I poured the water into the cup because it was empty.” “it” ਨੂੰ “cup” ਨਾਲ ਜੋੜਨਾ ਚਾਹੀਦਾ ਹੈ, “water” ਨਾਲ ਨਹੀਂ। Self-attention ਵਿੱਚ “it” ਵਾਲਾ ਟੋਕਨ ਉਹਨਾਂ ਟੋਕਨਾਂ ਨੂੰ ਵੱਧ ਮਹੱਤਤਾ ਦਿੰਦਾ ਹੈ ਜੋ ਉਸਦੇ ਅਰਥ ਨੂੰ ਹੱਲ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦੀਆਂ ਹਨ (“cup”, “empty”) ਅਤੇ ਘੱਟ ਮਹੱਤਤਾ ਉਹਨਾਂ ਨੂੰ ਦਿੰਦਾ ਜੋ ਗੈਰ-ਸੰਬੰਧਿਤ ਹਨ।
Self-attention ਤੋਂ ਬਾਅਦ, ਹਰ ਟੋਕਨ ਹੁਣ ਸਿਰਫ ਆਪਣਾ ਹੀ ਨਹੀਂ ਰਹਿੰਦਾ। ਉਹ ਇੱਕ ਸੰਦਰਭ-ਸુખੇ ਸੰਸਕਰਨ ਬਣ ਜਾਂਦਾ ਹੈ—ਹੋਰ ਟੋਕਨਾਂ ਤੋਂ ਜਾਣਕਾਰੀ ਦਾ weighted ਮਿਸ਼ਰਣ। ਤੁਸੀਂ ਸੋਚ ਸਕਦੇ ਹੋ ਕਿ ਹਰ ਟੋਕਨ ਵਾਕ ਦਾ ਇੱਕ ਨਿੱਜੀ ਸੰਖੇਪ ਤਿਆਰ ਕਰਦਾ ਹੈ, ਜੋ ਉਸ ਟੋਕਨ ਦੀ ਲੋੜ ਮੁਤਾਬਕ ਟਿਊਨ ਕੀਤਾ ਹੁੰਦਾ ਹੈ।
ਅਮਲ ਵਿੱਚ, “cup” ਦੀ ਰੈਪ੍ਰਿਜ਼ੈਂਟੇਸ਼ਨ ‘poured’, ‘water’, ਅਤੇ ‘empty’ ਤੋਂ ਸੁਝਾਅ ਲਿਆ ਸਕਦੀ ਹੈ, ਜਦਕਿ “empty” ਉਹਦੀ ਵੇਰਵਾ ਕਰਨ ਵਾਲੀ ਚੀਜ਼ਾਂ ਤਕ ਪਹੁੰਚ ਸਕਦੀ ਹੈ।
ਕਿਉਂਕਿ ਹਰ ਟੋਕਨ ਪੂਰੇ ਸੀਕੁਐਂਸ ਉੱਤੇ ਆਪਣੀ attention ਇੱਕੋ ਵਾਰ ਵਿੱਚ ਗਣਨਾ ਕਰ ਸਕਦਾ ਹੈ, ਟ੍ਰੇਨਿੰਗ ਨੂੰ ਪਿਛਲੇ ਟੋਕਨਾਂ ਦੇ ਕਦਮ-ਦਰ-ਕਦਮ ਪ੍ਰੋਸੈਸ ਹੋਣ ਦੀ ਉਡੀਕ ਨਹੀਂ ਰਹਿੰਦੀ। ਇਹ ਪੈਰਲੇਲ ਪ੍ਰੋਸੈਸਿੰਗ Transformer ਨੂੰ ਵੱਡੇ ਡੇਟਾਸੈੱਟਾਂ 'ਤੇ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਤੌਰ 'ਤੇ ਟ੍ਰੇਨ ਕਰਨ ਦਾ ਇੱਕ ਮੁੱਖ ਕਾਰਕ ਹੈ।
Self-attention ਦੂਰੀ-ਦੂਰ ਦੇ ਟੈਕਸਟ ਹਿੱਸਿਆਂ ਨੂੰ ਜੋੜਨਾ ਆਸਾਨ ਕਰ ਦਿੰਦਾ ਹੈ। ਇੱਕ ਟੋਕਨ ਸਿੱਧਾ ਹੀ ਕਿਸੇ ਦੂਰਲੇ ਸਬੰਧਿਤ ਸ਼ਬਦ ਉੱਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰ ਸਕਦੀ—ਬਿਨਾਂ ਲੰਬੇ ਕੜੀ ਰਾਹੀਂ ਜਾਣਕਾਰੀ ਪਾਸ ਕਰਨ ਦੇ।
ਇਹ ਸਿੱਧਾ ਰਸਤਾ coreference, ਪੈਰਾ-ਵਿਆਪਕ ਵਿਸ਼ਿਆਂ ਦਾ ਟਰੈਕ ਰੱਖਣ, ਅਤੇ ਪਹਿਲਾਂ ਦਿੱਤੇ ਨਿਰਦੇਸ਼ਾਂ 'ਤੇ ਆਧਾਰਿਤ ਹੁਕਮਾਂ ਸੰਭਾਲਣ ਵਾਲੇ ਟਾਸਕਾਂ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।
ਇੱਕ attention ਮਕੈਨਿਜ਼ਮ ਹੀ ਤਾਕਤਵਰ ਹੈ, ਪਰ ਫਿਰ ਵੀ ਇਹ ਇਕ ही ਕੈਮਰੇ ਐਂਗਲ ਵਾਂਗ ਮਹਿਸੂਸ ਹੋ ਸਕਦਾ ਹੈ। ਵਾਕ ਅਕਸਰ ਇੱਕ ਸਮੇਂ ਕਈ ਰਿਸ਼ਤਿਆਂ ਨੂੰ ਰੱਖਦਾ ਹੈ: ਕਿਸ ਨੇ ਕੀ ਕੀਤਾ, “it” ਕਿਸ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ, ਟੋਨ ਕਿਹੜਾ ਹੈ, ਅਤੇ ਮੁੱਖ ਵਿਸ਼ਾ ਕੀ ਹੈ।
ਜਦੋਂ ਤੁਸੀਂ ਪੜ੍ਹਦੇ ਹੋ “The trophy didn’t fit in the suitcase because it was too small,” ਤੁਹਾਨੂੰ ਇੱਕੋ ਸਮੇਂ ਵਿਚ ਕਈ ਇਸ਼ਾਰਿਆਂ ਨੂੰ ਟਰੈਕ ਕਰਨਾ ਪੈ ਸਕਦਾ ਹੈ (ਵਿਆਕਰਨ, ਅਰਥ, ਅਤੇ ਹਕੀਕਤ-ਸੰਬੰਧੀ ਸੰਦਰਭ)। ਇਕ attention "ਵੇਖ" ਨਜ਼ਦੀਕੀ ਨਾਉਂ ਨੂੰ ਲੈ ਕੇ ਲੱਗ ਸਕਦੀ ਹੈ; ਹੋਰ ਨਜ਼ਰੀਆ ਕਿਰਿਆ-ਬਹੁਤਰੀ ਤੱਕ ਵੇਖ ਕੇ ਫੈਸਲਾ ਕਰ ਸਕਦਾ ਹੈ ਕਿ "it" ਕਿਸ ਲਈ ਹੈ।
Multi-head attention ਕਈ attention ਗਣਨਾਵਾਂ ਨੂੰ ਇੱਕੋ ਸਮੇਂ ਚਲਾਉਂਦਾ ਹੈ। ਹਰ "head" ਵੱਖਰੇ ਲੈਂਸ ਰਾਹੀਂ ਵਾਕ ਨੂੰ ਦੇਖਣ ਲਈ ਪ੍ਰੇਰਿਤ ਹੁੰਦਾ ਹੈ—ਅਕਸਰ ਇਹਨਾਂ ਨੂੰ ਵੱਖ-ਵੱਖ subspaces ਵਜੋਂ ਵਰਣਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਅਮਲ ਵਿੱਚ, heads ਵੱਖ-ਵੱਖ ਪੈਟਰਨਾਂ ਵਿੱਚ ਵਿਸ਼ੇਸ਼ ਹੋ ਸਕਦੇ ਹਨ, ਜਿਵੇਂ:
ਜੇਕਰ ਹਰੇਕ head ਆਪਣੀ ਜਾਣਕਾਰੀ ਨਿਕਾਲ ਲਏ, ਤਾਂ ਮਾਡਲ ਸਿਰਫ ਇੱਕ ਨਹੀਂ ਚੁਣਦਾ। ਇਹ head ਆਉਟਪੁੱਟਾਂ ਨੂੰ concatenate ਕਰਦਾ ਹੈ ਅਤੇ ਫਿਰ ਇੱਕ ਸਿੱਖੀ ਹੋਈ ਲੀਨੀਅਰ ਲੇਅਰ ਨਾਲ ਮੁੱਖ ਵਰਕਿੰਗ ਸਪੇਸ ਵਿੱਚ ਪ੍ਰੋਜੈਕਟ ਕਰਦਾ ਹੈ।
ਇਹ ਕਈ ਆਧਾਰ-ਧਾਰੀਆਂ ਨੋਟਾਂ ਨੂੰ ਇੱਕ ਸਾਫ਼ ਸੰਖੇਪ ਵਿੱਚ ਮਿਲਾਉਣ ਵਾਂਗ ਹੈ, ਜਿਸਨੂੰ ਅਗਲੀ ਲੇਅਰ ਵਰਤ ਸਕਦੀ ਹੈ। ਨਤੀਜਾ ਇੱਕ ਐਸੀ ਪ੍ਰਤੀਨਿਧੀ ਹੁੰਦੀ ਹੈ ਜੋ ਇੱਕ ਸਮੇਂ ਵਿੱਚ ਕਈ ਰਿਸ਼ਤਿਆਂ ਨੂੰ ਕੈਪਚਰ ਕਰ ਸਕਦੀ ਹੈ—ਇਹੀ ਇਨ੍ਹੀ ਕਾਰਨਾਂ ਵਿੱਚੋਂ ਇਕ ਹੈ ਜਿਨ੍ਹਾਂ ਕਰਕੇ Transformers ਸਕੇਲ 'ਤੇ ਚੰਗੇ ਕੰਮ ਕਰਦੇ ਹਨ।
Self-attention ਰਿਸ਼ਤਿਆਂ ਨੂੰ ਪਛਾਣਨ ਵਿੱਚ ਵਧੀਆ ਹੈ—ਪਰ ਆਪਣੇ ਆਪ ਵਿੱਚ ਇਹ ਨਹੀਂ ਜਾਣਦਾ ਕਿ ਕਿਹੜਾ ਸ਼ਬਦ ਪਹਿਲਾਂ ਆਇਆ। ਜੇ ਤੁਸੀਂ ਸ਼ਬਦਾਂ ਨੂੰ shuffle ਕਰ ਦਿਓ, ਸਾਦਾ self-attention ਲੇਅਰ shuffled ਵਰਜਨ ਨੂੰ ਵੀ ਸਮਾਨ ਮਾਨ ਸਕਦਾ ਹੈ, ਕਿਉਂਕਿ ਇਹ ਟੋਕਨਾਂ ਦੀ ਤੁਲਨਾ ਬਿਨਾਂ ਕਿਸੇ ਅੰਦਰੂਨੀ ਤਰਤੀਬ ਦਿਓਂਦਾ ਹੈ।
Positional encoding ਇਸ ਸਮੱਸਿਆ ਨੂੰ ਹੱਲ ਕਰਦੀ ਹੈ: ਇਹ token representations ਵਿੱਚ “ਮੈਂ ਸੀਕੁਐਂਸ ਵਿੱਚ ਕਿੱਥੇ ਹਾਂ?” ਦੀ ਜਾਣਕਾਰੀ ਸ਼ਾਮਿਲ ਕਰਦੀ ਹੈ। ਇਕ ਵਾਰ ਪੋਜ਼ੀਸ਼ਨ ਜੁੜ ਜਾਣ ਤੋਂ ਬਾਅਦ, attention ਇਹ ਪੈਟਰਨ ਸਿੱਖ ਸਕਦੀ ਹੈ ਕਿ “not ਦੇ ਬਾਅਦ ਆਉਂਦਾ ਸ਼ਬਦ ਅਕਸਰ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦਾ ਹੈ” ਜਾਂ “ਵਿਆਕਰਨਕ ਤੌਰ ਤੇ ਵਿਸ਼ਾ ਆਮ ਤੌਰ 'ਤੇ ਕ੍ਰਿਆ ਤੋਂ ਪਹਿਲਾਂ ਆਉਂਦਾ ਹੈ” — ਬਿਨਾਂ ਕ੍ਰਮ ਨੂੰ ਮੁੜ-ਨਿਰਮਾਣ ਕਰਨ ਦੇ।
ਮੁੱਢਲਾ ਵਿਚਾਰ ਸਧਾਰਨ ਹੈ: ਹਰ ਟੋਕਨ embedding ਨੂੰ Transformer ਬਲਾਕ ਵਿੱਚ ਜਾਣ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਸਥਿਤੀ-ਸੰਕੇਤ ਨਾਲ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਸਥਿਤੀ ਸੰਕੇਤ ਇੱਕ ਐਸੇ ਫੀਚਰਾਂ ਦੇ ਸੈੱਟ ਵਾਂਗ ਸੋਚਿਆ ਜਾ ਸਕਦਾ ਹੈ ਜੋ ਟੋਕਨ ਨੂੰ ਇਨਪੁਟ ਵਿੱਚ 1st, 2nd, 3rd… ਵਜੋਂ ਟੈਗ ਕਰਦੇ ਹਨ।
ਕੁਝ ਆਮ ਪਹੁੰਚਾਂ:
Positional ਚੋਣਾਂ ਲੰਬੇ-ਕਾਂਟੈਕਸਟ ਮਾਡਲਿੰਗ 'ਤੇ ਨਜ਼ਰ ਅੰਦਾਜ਼ਯੋਗ ਪ੍ਰਭਾਵ ਪਾ ਸਕਦੀਆਂ ਹਨ—ਜਿਵੇਂ ਕਿ ਲੰਬੇ ਰਿਪੋਰਟ ਦਾ ਸੰਖੇਪ, ਬਹੁ ਪੈਰਾਗ੍ਰਾਫਾਂ ਵਿੱਚ ਇਕਾਈਆਂ ਦਾ ਟਰੈਕ ਰੱਖਣਾ, ਜਾਂ ਹਜ਼ਾਰਾਂ ਟੋਕਨਾਂ ਪਿੱਛੇ ਦਿੱਤੀ ਜਾਣਕਾਰੀ ਖੋਜ ਕਰਨਾ।
ਲੰਬੀ ਇਨਪੁਟਾਂ ਨਾਲ, ਮਾਡਲ ਸਿਰਫ਼ ਭਾਸ਼ਾ ਨਹੀਂ ਸਿੱਖ ਰਿਹਾ; ਇਹ ਇਹ ਵੀ ਸਿੱਖ ਰਿਹਾ ਹੈ ਕਿ ਕਿੱਥੇ ਦੇਖਣਾ ਹੈ। Relative ਅਤੇ rotary-ਸਟਾਈਲ ਸਕੀਮਾਂ ਅਕਸਰ ਦੂਰ-ਦੂਰ ਟੋਕਨਾਂ ਦੀ ਤੁਲਨਾ ਕਰਨਾ ਅਤੇ ਪੈਟਰਨਾਂ ਨੂੰ context ਵਧਣ ਤੇ ਸੰਭਾਲ ਕੇ ਰੱਖਣਾ ਆਸਾਨ ਬਣਾਉਂਦੀਆਂ ਹਨ, ਜਦਕਿ ਕੁਝ absolute ਸਕੀਮਾਂ ਟ੍ਰੇਨਿੰਗ ਵਿੰਡੋ ਤੋਂ ਬਾਹਰ ਧੱਕਣ 'ਤੇ ਤੇਜ਼ੀ ਨਾਲ ਖਰਾਬ ਹੋ ਸਕਦੀਆਂ ਹਨ।
ਅਮਲੀ ਤੌਰ ਤੇ, positional encoding ਇੱਕ ਐਸਾ ਸ਼ਾਂਤਡਿਸਾਈਨ ਫੈਸਲਾ ਹੈ ਜੋ ਇਹ ਤੈਅ ਕਰ ਸਕਦਾ ਹੈ ਕਿ LLM 2,000 ਟੋਕਨਾਂ 'ਤੇ ਤੇਜ਼ ਅਤੇ ਮਿਲਾਪਯੋਗ ਲੱਗੇ — ਅਤੇ 100,000 'ਤੇ ਵੀ ਸੰਗਠਿਤ ਰਹੇ।
Transformer ਸਿਰਫ़ "attention" ਹੀ ਨਹੀਂ ਹੈ। ਅਸਲ ਕੰਮ ਇੱਕ ਦੁਹਰਾਏ ਜਾਂਦੇ ਯੂਨਿਟ—ਅਕਸਰ Transformer block ਕਹਿFchar=idਦਾ—ਵਿੱਚ ਹੁੰਦਾ ਹੈ ਜੋ ਟੋਕਨਾਂ ਵਿਚਕਾਰ ਜਾਣਕਾਰੀ ਮਿਲਾਉਂਦਾ ਹੈ ਅਤੇ ਫਿਰ ਇਸਨੂੰ ਨਿਖਾਰਦਾ ਹੈ। ਇਹ ਬਲਾਕ ਕਈ ਵਾਰ ਸਟੈਕ ਕਰਨ ਨਾਲ ਉਹ ਡੇਪਥ ਮਿਲਦੀ ਹੈ ਜੋ LLMs ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦੀ ਹੈ।
Self-attention ਚੈਨਲ ਹੈ: ਹਰ ਟੋਕਨ ਹੋਰ ਟੋਕਨਾਂ ਤੋਂ ਸੰਦਰਭ ਇਕੱਠਾ ਕਰਦਾ ਹੈ।
Feed-forward network (FFN), ਜਾਂ MLP, ਸੋਚ ਕਦਮ ਹੈ: ਇਹ ਹਰ ਟੋਕਨ ਦੀ ਅਪਡੇਟ ਕੀਤੀ ਰੈਪ੍ਰਿਜ਼ੈਂਟੇਸ਼ਨ ਨੂੰ ਲੈ ਕੇ ਉਸ 'ਤੇ ਇਕੋ ਛੋਟੀ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਲਗਾਉਂਦਾ ਹੈ।
ਸਧਾਰਨ ਸ਼ਬਦਾਂ ਵਿੱਚ, FFN ਟੋਕਨ ਦੇ ਜਾਣਕਾਰੀ ਨੂੰ ਪਰਿਵਰਤਨ ਅਤੇ ਨਰਮ ਕਰਦਾ ਹੈ, ਮਾਡਲ ਨੂੰ richer ਫੀਚਰ (ਸਿੰਟੈਕਸ ਪੈਟਰਨ, ਤੱਥ, ਲਿਪੀ-ਸ਼ੈਲੀ) ਬਣਾਉਣ ਵਿੱਚ ਮਦਦ ਕਰਦੀ ਹੈ।
ਇਹ ਦੁਹਰਾਉਣਾ ਇੱਦੇ ਲਈ ਜ਼ਰੂਰੀ ਹੈ ਕਿ ਦੋ ਹਿੱਸੇ ਵੱਖ ਵੱਖ ਕੰਮ ਕਰਦੇ ਹਨ:
ਇਸ ਢੰਗ ਨਾਲ, ਮਾਡਲ ਕ੍ਰਮਿਕ ਤੌਰ 'ਤੇ ਉੱਚ-ਸਤਰ ਦੀ ਸਮਝ ਬਣਾਉਂਦਾ ਹੈ: ਗੱਲਬਾਤ ਕਰੋ, ਸੋਚੋ, ਫਿਰ ਫਿਰ ਗੱਲਬਾਤ ਕਰੋ, ਫਿਰ ਸੋਚੋ।
ਹਰ sub-layer (attention ਜਾਂ FFN) residual connection ਨਾਲ ਘਿਰਿਆ ਹੁੰਦਾ ਹੈ: ਇਨਪੁਟ ਨੂੰ ਆਊਟਪੁੱਟ ਨਾਲ ਜੋੜ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਇਹ ਡੀਪ ਮਾਡਲਾਂ ਨੂੰ ਟ੍ਰੇਨ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿਉਂਕਿ gradients "skip lane" ਰਾਹੀਂ ਬਹਿ ਸਕਦੇ ਹਨ ਅਤੇ ਇੱਕ ਲੇਅਰ ਨੂੰ ਸਾਰੀ ਚੀਜ਼ ਮੁੜ-ਸਿੱਖਣ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਰਹਿੰਦੀ—ਸਥਾਨਾਂ ਨੂੰ ਛੋਟੇ ਸੋਧ ਕਰਨ ਦੇ ਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।
Layer normalization ਇੱਕ ਸਥਿਰਤਾ-ਵਾਲਾ ਕੰਮ ਹੈ ਜੋ ਐਕਟੀਵੇਸ਼ਨਾਂ ਨੂੰ ਬਹੁਤ ਵੱਡੀਆਂ ਜਾਂ ਬਹੁਤ ਛੋਟੀ ਹੋਣ ਤੋਂ ਰੋਕਦੀ ਹੈ ਜਦੋਂ ਉਹ ਕਈ ਲੇਅਰਾਂ ਵਿੱਚੋਂ ਗੁਜ਼ਰਦੇ ਹਨ। ਇਹ ਟ੍ਰੇਨਿੰਗ ਨੂੰ ਗਰਮ-ਥਰਮ ਬਣਾਓਂਦਾ ਹੈ ਅਤੇ ਖ਼ਾਸ ਤੌਰ 'ਤੇ LLM ਸਕੇਲ 'ਤੇ ਭਰੋਸੇਯੋਗ ਬਣਾਉਂਦਾ ਹੈ।
ਅਸਲ Transformer Attention Is All You Need ਵਿੱਚ ਮਸ਼ੀਨੀ ਅਨੁਵਾਦ ਲਈ ਬਣਾਇਆ ਗਿਆ ਸੀ, ਜਿੱਥੇ ਇੱਕ ਸੀਕੁਐਂਸ (ਫਰੈਂਚ) ਨੂੰ ਦੂਜੇ (ਅੰਗਰੇਜ਼ੀ) ਵਿੱਚ ਬਦਲਣਾ ਹੁੰਦਾ ਹੈ। ਇਹ ਕੰਮ ਕੁਦਰਤੀ ਤੌਰ 'ਤੇ ਦੋ ਭੂਮਿਕਾਵਾਂ ਵੰਡਦਾ ਹੈ: ਪੜ੍ਹਨਾ ਅਤੇ ਫਿਰ ਲਿਖਣਾ।
ਇਕ encoder–decoder Transformer ਵਿੱਚ, encoder ਪੂਰਾ ਇਨਪੁਟ ਵਾਕ ਇਕੱਠਾ ਪ੍ਰੋਸੈਸ ਕਰਦਾ ਹੈ ਅਤੇ ਇੱਕ ਸਮ੍ਰਿੱਧ ਰੈਪ੍ਰਿਜ਼ੈਂਟੇਸ਼ਨ ਤਿਆਰ ਕਰਦਾ ਹੈ। decoder ਫਿਰ ਆਉਟਪੁੱਟ ਨੂੰ ਇੱਕ-ਟੋਕਨ-ਇੱਕ-ਟੋਕਨ ਬਣਾਉਂਦਾ ਹੈ।
Decoder ਸਿਰਫ ਆਪਣੇ ਪਿਛਲੇ ਟੋਕਨਾਂ 'ਤੇ ਨਹੀਂ ਨਿਰਭਰ; ਇਹ cross-attention ਰਾਹੀਂ encoder ਦੇ ਆਊਟਪੁੱਟ ਨੂੰ ਵੀ ਵੇਖਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਇਹ ਸਰੋਤ ਟੈਕਸਟ ਨਾਲ grounded ਰਹਿੰਦਾ ਹੈ।
ਇਹ ਸੈਟਅਪ ਅਜੇ ਵੀ ਉਤਮ ਹੈ ਜਦੋਂ ਤੁਹਾਨੂੰ ਕਿਸੇ ਇਨਪੁਟ ਤੇ ਕੜੇ ਤੌਰ 'ਤੇ ਅਧਾਰਿਤ ਹੋਣਾ ਪੈਂਦਾ—ਜਿਵੇਂ ਅਨੁਵਾਦ, ਸੰਖੇਪ, ਜਾਂ ਇੱਕ ਨਿਰਧਾਰਤ ਪੈਸੲਜ 'ਤੇ ਆਧਾਰਿਤ ਪ੍ਰਸ਼ਨ-ਉੱਤਰ।
ਜ਼ਿਆਦਾਤਰ ਆਧੁਨਿਕ LLMs decoder-only ਹੁੰਦੇ ਹਨ। ਇਹ ਸਿੱਧਾ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ ਟਾਸਕ 'ਤੇ ਟ੍ਰੇਨ ਹੁੰਦੇ ਹਨ: ਅਗਲਾ ਟੋਕਨ ਪੇਸ਼ਗੋਈ।
ਇਸ ਲਈ, ਇਹ masked self-attention (causal attention) ਵਰਤਦੇ ਹਨ। ਹਰ ਸਥਾਨ ਸਿਰਫ ਪਹਿਲਾਂ ਆਉਣ ਵਾਲੇ ਟੋਕਨਾਂ ਨੂੰ ਹੀ ਦੇਖ ਸਕਦਾ ਹੈ, ਨਹੀਂ ਤਾਂ ਭਵਿੱਖ ਦੇ ਟੋਕਨਾਂ ਨੂੰ, ਤਾਂ ਕਿ ਜਨਰੇਸ਼ਨ ਖੱਬੇ-ਤੁਰੇ ਲਿਖਾਈ ਨੂੰ ਮਿਲੇ।
ਇਹ LLMs ਲਈ ਪ੍ਰਮੁਖਤ ਹੈ ਕਿਉਂਕਿ ਇਹ ਵੱਡੇ ਟੈਕਸਟ ਕੌਰਪਰਾ 'ਤੇ ਟ੍ਰੇਨ ਕਰਨ ਲਈ ਸਿੱਧਾ ਹੈ, ਇਹ ਜਨਰੇਸ਼ਨ ਯੂਜ਼-ਕੇਸ ਨਾਲ ਮਿਲਦਾ ਹੈ, ਅਤੇ ਡੇਟਾ ਤੇ ਕੱਨਫਿਊਟ ਨਾਲ ਚੰਗੀ ਤਰ੍ਹਾਂ ਸਕੇਲ ਹੁੰਦਾ ਹੈ।
Encoder-only Transformers (ਜਿਵੇਂ BERT-ਸਟਾਈਲ ਮਾਡਲ) ਟੈਕਸਟ ਜਨਰੇਟ ਨਹੀਂ ਕਰਦੇ; ਉਹ ਪੂਰੇ ਇਨਪੁਟ ਨੂੰ ਦੋ-ਤਰੀਕੇ ਨਾਲ ਪੜ੍ਹਦੇ ਹਨ। ਉਹ classification, search, ਅਤੇ embeddings ਲਈ ਸ਼ਾਨਦਾਰ ਹਨ—ਜਿੱਥੇ ਟੈਕਸਟ ਦੀ ਸਮਝ ਲੰਬੇ ਜਵਾਬ ਤਿਆਰ ਕਰਨ ਦੇ ਬਦਲੇ ਮਹੱਤਵਪੂਰਨ ਹੁੰਦੀ ਹੈ।
Transformers ਅਲੱਗ ਤਰੀਕੇ ਨਾਲ ਸਕੇਲ-ਫ੍ਰੈਂਡਲੀ ਸਾਬਤ ਹੋਏ: ਜੇ ਤੁਸੀਂ ਉਹਨਾਂ ਨੂੰ ਵਧੇਰੇ ਟੈਕਸਟ, ਵਧੇਰੇ ਕੱਨਫਿਊਟ, ਅਤੇ ਵੱਡੇ ਮਾਡਲ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਉਹ ਅਕਸਰ ਇਕ ਪਹਿਲੂਤਰੂਪ ਵਿੱਚ ਬਿਹਤਰ ਹੋ ਜਾਂਦੇ ਹਨ।
ਇਸਦਾ ਇੱਕ ਵੱਡਾ ਕਾਰਨ ਸਰਚਨਾਤਮਕ ਸਾਦਗੀ ਹੈ। Transformer ਦੁਹਰਾਏ ਜਾਂਦੇ ਬਲਾਕਾਂ (self-attention + ਛੋਟੀ FFN, ਨਾਰਮਲਾਈਜ਼ੇਸ਼ਨ) ਤੋਂ ਬਣਿਆ ਹੁੰਦਾ ਹੈ, ਅਤੇ ਉਹ ਬਲਾਕ ਚਾਹੇ ਤੁਸੀਂ ਮਿਲੀਅਨ ਸ਼ਬਦਾਂ 'ਤੇ ਟ੍ਰੇਨ ਕਰ ਰਹੇ ਹੋ ਜਾਂ ਟ੍ਰਿਲੀਅਨ 'ਤੇ, ਸਮਾਨ ਤਰੀਕੇ ਨਾਲ ਵਰਤੋਂਯੋਗ ਰਹਿੰਦੇ ਹਨ।
ਪੁਰਾਣੇ ਸੀਕੁਐਂਸ ਮਾਡਲ (RNNs ਵਰਗੇ) ਨੂੰ ਟੋਕਨ-ਵਾਰ ਪ੍ਰੋਸੈਸ ਕਰਨਾ ਪੈਂਦਾ ਸੀ, ਜਿਸ ਨਾਲ ਇੱਕ ਸਮੇਂ 'ਚ ਕੰਮ ਦੀ ਸੀਮਤਤਾ ਰਹਿੰਦੀ ਸੀ। Transformers ਟ੍ਰੇਨਿੰਗ ਦੌਰਾਨ ਸਾਰੀ ਸੀਕੁਐਂਸ ਨੂੰ ਪੈਰਲੇਲ ਪ੍ਰੋਸੈਸ ਕਰ ਸਕਦੇ ਹਨ।
ਇਸ ਨਾਲ GPU/TPU ਅਤੇ ਵੱਡੇ ਵਿਤਰਿਤ ਸੈਟਅਪਾਂ ਲਈ ਇਹ ਉਚਿਤ ਬਣ ਜਾਂਦੇ ਹਨ—ਜੋ ਆਧੁਨਿਕ LLMs ਨੂੰ ਟ੍ਰੇਨ ਕਰਨ ਲਈ ਲੋੜੀਦੀ ਚੀਜ਼ ਹੈ।
context window ਉਹ ਟੈਕਸਟ ਦਾ ਹਿੱਸਾ ਹੈ ਜੋ ਮਾਡਲ ਇੱਕ ਵਾਰੀ ਵਿੱਚ "ਦੇਖ" ਸਕਦਾ ਹੈ—ਤੁਹਾਡਾ ਪ੍ਰਾਂਪਟ ਅਤੇ ਹੋਰ ਹਾਲੀਆ ਗੱਲਬਾਤ ਜਾਂ ਦਸਤਾਵੇਜ਼। ਵੱਡੀ window ਮਾਡਲ ਨੂੰ ਵਧੇਰੇ ਵਾਕਾਂ ਜਾਂ ਪੰਨਿਆਂ 'ਤੇ ਝਾਂਕਣ ਦੀ ਆਜ਼ਾਦੀ ਦਿੰਦੀ ਹੈ, ਨਿਯਮਾਂ ਅਤੇ ਪਹਿਲਾਂ ਦਿੱਤੀਆਂ ਵਿਸਥਾਰਾਂ ਨੂੰ ਯਾਦ ਰੱਖਣ ਲਈ, ਅਤੇ ਉਹਨਾਂ ਸਵਾਲਾਂ ਦੇ ਜਵਾਬ ਦੇਣ ਲਈ ਜੋ ਪਹਿਲਾਂ ਦਿੱਤੇ ਵੇਰਵਿਆਂ 'ਤੇ ਨਿਰਭਰ ਹੁੰਦੇ ਹਨ।
ਪਰ context ਮੁਫ਼ਤ ਨਹੀਂ ਹੁੰਦੀ।
Self-attention ਟੋਕਨਾਂ ਨੂੰ ਇੱਕ-ਦੂਜੇ ਨਾਲ ਤੁਲਨਾ ਕਰਵਾਉਂਦਾ ਹੈ। ਜਿਵੇਂ ਸੀਕੁਐਂਸ ਲੰਬੀ ਹੁੰਦੀ ਹੈ, ਤੁਲਨਾਵਾਂ ਦੀ ਗਿਣਤੀ ਤੇਜ਼ੀ ਨਾਲ ਵਧਦੀ (ਲਗਭਗ ਵਰਗੀ) ਹੈ।
ਇਸ ਕਰਕੇ ਬਹੁਤ ਲੰਬੀਆਂ context windows ਮੈਮੋਰੀ ਅਤੇ ਕੁੰਪਿFੂਟ ਦੋਹਾਂ ਲਈ ਮਹਿੰਗੀਆਂ ਹੋ ਸਕਦੀਆਂ ਹਨ, ਅਤੇ ਇਸੇ ਲਈ ਕਈ ਆਧੁਨਿਕ ਯਤਨ attention ਨੂੰ ਹੋਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਬਣਾਉਣ 'ਤੇ ਧਿਆਨ ਦਿੰਦੇ ਹਨ।
ਜਦੋਂ Transformers ਨੂੰ ਵੱਡੇ ਪੈਮਾਨੇ ਤੇ ਟ੍ਰੇਨ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਉਹ ਸਿਰਫ਼ ਇੱਕ ਤੰਗ ਟਾਸਕ ਵਿੱਚ ਮਾਹਰ ਨਹੀਂ ਬਣਦੇ। ਉਹ ਆਮ ਤੌਰ 'ਤੇ ਵਿਸ਼ਾਲ, ਲਚਕੀਲੇ ਯੋਗਦਾਨ ਵਿਕਸਤ ਕਰ ਲੈਂਦੇ ਹਨ—ਸੰਖੇਪ, ਅਨੁਵਾਦ, ਲਿਖਾਈ, ਕੋਡਿੰਗ, ਅਤੇ ਤਰਕ-ਸ਼ਕਤੀ—ਕਿਉਂਕਿ ਇਹੋ ਜਿਹੀ ਜਨਰਲ ਲਰਨਿੰਗ ਮਸ਼ੀਨਰੀ ਵੱਡੇ, ਵੱਖ-ਵੱਖ ਡੇਟਾ 'ਤੇ ਲਾਗੂ ਹੁੰਦੀ ਹੈ।
ਅਸਲ Transformer ਡਿਜ਼ਾਈਨ ਅਜੇ ਵੀ ਸੰਦਰਭ-ਬਿੰਦੂ ਹੈ, ਪਰ ਜ਼ਿਆਦਾਤਰ ਪ੍ਰੋਡਕਸ਼ਨ LLMs “Transformers plus” ਹਨ: ਛੋਟੇ-ਪ੍ਰਯੋਗਿਕ ਸੋਧ ਜੋ ਕੋਰ ਬਲਾਕ (attention + MLP) ਨੂੰ ਬਣਾਈ ਰੱਖਦੇ ਹਨ ਪਰ ਤੇਜ਼ੀ, ਸਥਿਰਤਾ, ਜਾਂ context ਲੰਬਾਈ ਸੁਧਾਰਦੇ ਹਨ।
ਬਹੁਤ ਸਾਰੇ ਅਪਗ੍ਰੇਡ ਇਸ ਬਾਰੇ ਹਨ ਕਿ ਮਾਡਲ ਕੀ ਹੈ ਬਜਾਏ ਕਿ ਕਿਵੇਂ ਇਹ ਟ੍ਰੇਨ ਅਤੇ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ:
ਇਹ ਤਬਦੀਲੀਆਂ ਆਮ ਤੌਰ 'ਤੇ ਮੂਲ Transformer-ੋਹਪਣ ਨੂੰ ਬਦਲਦੀਆਂ ਨਹੀਂ—ਉਹ ਇਸਨੂੰ ਸੁਧਾਰਦੀਆਂ ਹਨ।
ਕੁਝ ਹਜ਼ਾਰ ਟੋਕਨਾਂ ਤੋਂ ਲੈ ਕੇ ਦਸਾਂ ਜਾਂ ਸੌਂ ਹਜ਼ਾਰਾਂ ਟੋਕਨਾਂ ਤੱਕ context ਵਧਾਉਣਾ ਅਕਸਰ sparse attention (ਸਿਰਫ਼ ਚੁਣਿੰਦੀਆਂ ਟੋਕਨਾਂ ਨੂੰ attend ਕਰਨਾ) ਜਾਂ efficient attention variants ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ (attention ਨੂੰ ਅੰਦਾਜ਼ਿਆ ਜਾਂ ਮੁੜ-ਸੰਰਚਿਤ ਕਰਕੇ ਖਪਤ ਘਟਾਉਣਾ)।
ਟਰੇਡ-ਆਫ਼ ਆਮ ਤੌਰ 'ਤੇ accuracy, ਯਾਦਾਸ਼ਤ, ਅਤੇ ਇੰਜੀਨੀਅਰਿੰਗ ਜਟਿਲਤਾ ਦਾ ਮਿਲਾਪ ਹੁੰਦਾ ਹੈ।
MoE ਮਾਡਲ ਕਈ “expert” sub-networks ਜੋੜਦੇ ਹਨ ਅਤੇ ਹਰ ਟੋਕਨ ਨੂੰ ਸਿਰਫ਼ ਕੁਝ ਤਕ ਹੀ ਰੂਟ ਕਰਦੇ ਹਨ। ਤੁਸੀਂ ਵੱਡਾ ਦਿਮਾਗ ਲਾਂਦੇ ਹੋ, ਪਰ ਹਰ ਵਾਰ ਸਾਰੇ हिस्सੇ ਚਾਲੂ ਨਹੀਂ ਹੁੰਦੇ।
ਇਸ ਨਾਲ ਦਿੱਤੇ ਗਏ ਪੈਰਾਮੀਟਰ ਗਿਣਤੀ ਲਈ ਪ੍ਰਤੀ ਟੋਕਨ ਕੁੰਪਿਊਟ ਘੱਟ ਹੋ ਸਕਦੀ ਹੈ, ਪਰ ਇਸ ਨਾਲ ਸਿਸਟਮ ਜਟਿਲਤਾ (routing, expert balancing, serving) ਵੱਧ ਜਾਂਦੀ ਹੈ।
ਜਦੋਂ ਕੋਈ ਮਾਡਲ ਕਿਸੇ ਨਵੇਂ Transformer variant ਦੀ ਵੱਡੀ ਗੱਲ ਕਰਦਾ ਹੈ, ਤਾਂ ਚਾਹੀਦਾ ਹੈ:
ਜ਼ਿਆਦਾਤਰ ਸੁਧਾਰ ਅਸਲ ਹੁੰਦੇ ਹਨ—ਪਰ ਉਹ ਅਕਸਰ ਮੁਫ਼ਤ ਨਹੀਂ ਹੁੰਦੇ।
Transformer ਵਿਚਾਰ — self-attention ਅਤੇ ਸਕੇਲਿੰਗ — ਦਿਲਚਸਪ ਹਨ, ਪਰ ਉਤਪਾਦ ਟੀਮਾਂ ਨੂੰ ਅਕਸਰ ਇਹ ਟਰੇਡ-ਆਫਸ ਵਜੋਂ ਮਹਿਸੂਸ ਹੁੰਦੇ ਹਨ: ਤੁਸੀਂ ਕਿੰਨਾ ਟੈਕਸਟ ਫੀਡ ਕਰ ਸਕਦੇ ਹੋ, ਜਵਾਬ ਕਿੰਨਾ ਤੇਜ਼ ਮਿਲਦਾ ਹੈ, ਅਤੇ ਪ੍ਰਤੀ ਰਿਕਵੇਸਟ ਲਾਗਤ ਕਿੰਨੀ ਆਉਂਦੀ ਹੈ।
Context length: ਵੱਡਾ context ਤੁਹਾਨੂੰ ਹੋਰ ਦਸਤਾਵੇਜ਼, ਚੈਟ ਇਤਿਹਾਸ, ਅਤੇ ਨਿਰਦੇਸ਼ ਸ਼ਾਮਿਲ ਕਰਨ ਦੀ ਆਜ਼ਾਦੀ ਦਿੰਦਾ ਹੈ। ਇਹ ਵੀ ਟੋਕਨ ਖਰਚ ਵਧਾਉਂਦਾ ਹੈ ਅਤੇ ਜਵਾਬਾਂ ਨੂੰ धीਮਾ ਕਰ ਸਕਦਾ ਹੈ। ਜੇ ਤੁਹਾਡਾ ਫੀਚਰ “30 ਪੰਨਿਆਂ ਨੂੰ ਪੜ੍ਹੋ ਅਤੇ ਜਵਾਬ ਦਿਓ” ‘ਤੇ ਨਿਰਭਰ ਹੈ, ਤਾਂ context length ਨੂੰ ਪ੍ਰਧਾਨਤਾ ਦਿਓ।
Latency: ਯੂਜ਼ਰ-ਸਾਮ੍ਹਣੇ ਵਾਲੇ ਚੈਟ ਅਤੇ ਕੋਪਾਇਲਟ ਅਨੁਭਵ ਜਵਾਬ ਸਮੇਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ। Streaming output ਮਦਦ ਕਰਦਾ ਹੈ, ਪਰ ਮਾਡਲ ਚੋਣ, ਖੇਤਰ (region), ਅਤੇ batching ਵੀ ਮਹੱਤਵਪੂਰਨ ਹਨ।
ਲਾਗਤ: ਮੁਕਾਬਲੇ ਅਕਸਰ ਪ੍ਰਤੀ ਟੋਕਨ (ਇਨਪੁਟ + ਆਉਟਪੁੱਟ) ਆਧਾਰਿਤ ਹੁੰਦੀ ਹੈ। ਇਕ ਮਾਡਲ ਜੋ 10% “ਵਧੀਆ” ਹੈ ਉਹ 2–5× ਲਾਗਤ ਦਾ ਹੋ ਸਕਦਾ ਹੈ। ਕੀਮਤ-ਸ਼ੈਲੀ ਤੁਲਨਾਂ ਨਾਲ ਇਹ ਨਿਰਧਾਰਿਤ ਕਰੋ ਕਿ ਕਿਸ ਗੁਣਵੱਤਾ ਪੱਧਰ ਲਈ ਭੁਗਤਾਨ ਕਰਨ ਯੋਗ ਹੈ।
ਗੁਣਵੱਤਾ: ਆਪਣੇ ਉਪਯੋਗ-ਮਾਮਲੇ ਲਈ ਇਹ ਪਰਿਭਾਸ਼ਿਤ ਕਰੋ: ਤੱਥੀ ਸਹੀ, ਹੁਕਮਾਂ ਦੀ ਪਾਲਣਾ, ਸੁਭਾਵ, ਟੂਲ-ਯੂਜ਼, ਜਾਂ ਕੋਡ। ਆਪਣੇ ਡੋਮੇਨ ਦੇ ਅਸਲੀ ਉਦਾਹਰਣਾਂ ਨਾਲ ਮੁਲਾਂਕਣ ਕਰੋ—ਸਿਰਫ਼ ਆਮ ਬੈਂਚਮਾਰਕਾਂ 'ਤੇ ਨਹੀਂ।
ਜੇ ਤੁਹਾਨੂੰ ਮੁੱਖ ਰੂਪ ਵਿੱਚ ਖੋਜ, ਡਿਡੁਪਲੀਕੇਸ਼ਨ, ਕਲੱਸਟਰਿੰਗ, ਸਿਫਾਰਸ਼ਾਂ, ਜਾਂ “ਸਮਾਨ ਲੱਭੋ” ਦੀ ਲੋੜ ਹੈ, ਤਾਂ embeddings (ਅਕਸਰ encoder-ਸਟਾਈਲ ਮਾਡਲ) ਆਮ ਤੌਰ 'ਤੇ ਸਸਤੇ, ਤੇਜ਼, ਅਤੇ ਜ਼ਿਆਦਾ ਸਥਿਰ ਹੁੰਦੇ ਹਨ ਬਨਾਮ chat ਮਾਡਲ ਨੂੰ prompting ਕਰਨ ਦੇ। ਜਨਰੇਸ਼ਨ ਨੂੰ ਆਮ ਤੌਰ 'ਤੇ ਅੰਤਲੇ ਕਦਮ ਵਜੋਂ ਵਰਤੋ (ਸੰਖੇਪ, ਵਿਆਖਿਆਵਾਂ, ਡਰਾਫਟ) retrieval ਤੋਂ ਬਾਅਦ।
For a deeper breakdown, link your team to a technical explainer like /blog/embeddings-vs-generation.
ਜਦੋਂ ਤੁਸੀਂ Transformer ਖ਼ਾਸੀਅਤਾਂ ਨੂੰ ਉਤਪਾਦ ਵਿੱਚ ਬਦਲਦੇ ਹੋ, ਮੁਸ਼ਕਲ ਅਕਸਰ ਆਰਕੀਟੈਕਚਰ ਤੋਂ ਘੱਟ ਅਤੇ workflow (prompt iteration, grounding, evaluation, ਅਤੇ safe deployment) ਨਾਲ ਜ਼ਿਆਦਾ ਸਬੰਧਤ ਹੁੰਦੀ ਹੈ।
ਇੱਕ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਰਸਤਾ Koder.ai ਵਰਗੇ vibe-coding ਪਲੇਟਫਾਰਮ ਦੀ ਵਰਤੋਂ ਹੈ ਤਾਂ ਕਿ ਤੁਸੀਂ LLM-ਪਿਛਲੇ ਫੀਚਰਾਂ ਨੂੰ ਤੇਜ਼ੀ ਨਾਲ ਪ੍ਰੋਟੋਟਾਈਪ ਅਤੇ ਸ਼ਿਪ ਕਰ ਸਕੋ: ਤੁਸੀਂ ਵੈੱਬ ਐਪ, ਬੈਕਐਂਡ endpoints, ਅਤੇ ਡੇਟਾ ਮਾਡਲ ਨੂੰ ਚੈਟ ਵਿੱਚ ਵਰਣਨ ਕਰ ਸਕਦੇ ਹੋ, planning mode ਵਿੱਚ iterate ਕਰ ਸਕਦੇ ਹੋ, ਅਤੇ ਫਿਰ source code export ਜਾਂ hosting, custom domains, ਅਤੇ snapshots ਰਾਹੀਂ rollback ਨਾਲ deploy ਕਰ ਸਕਦੇ ਹੋ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਹੈ ਜਦੋਂ ਤੁਸੀਂ retrieval, embeddings, ਜਾਂ tool-calling loops ਦਾ ਪ੍ਰਯੋਗ ਕਰ ਰਹੇ ਹੋ ਅਤੇ ਇੱਕੋ ਹੀ scaffolding ਨੂੰ ਮੁੜ-ਬਨਾਉਣਾ ਨਹੀਂ ਚਾਹੁੰਦੇ।
Transformer ਇੱਕ ਨਿਊਰਲ ਨੈੱਟਵਰਕ ਆਰਕੀਟੈਕਚਰ ਹੈ ਜੋ ਕ੍ਰਮਿਕ ਡੇਟਾ ਲਈ ਬਣਾਇਆ ਗਿਆ ਹੈ ਅਤੇ ਜੋ self-attention ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇੱਕੋ ਹੀ ਇਨਪੁਟ ਦੀਆਂ ਹਰ ਟੋਕਨ ਨੂੰ ਦੂਜੀਆਂ ਟੋਕਨਾਂ ਨਾਲ ਜੋੜਦਾ ਹੈ।
ਇਸਦੀ ਥਾਂ RNNs/LSTMs ਵਾਂਗ ਜਾਂਕਾਰੀ ਕਦਮ-ਬਦ-ਕਦਮ ਲੈ ਜਾਉਣ ਦੀ ਬਜਾਏ, ਇਹ ਪੂਰੇ ਸੀਕੁਐਂਸ ਵਿੱਚੋਂ ਉਹਨਾਂ ਹਿੱਸਿਆਂ 'ਤੇ ਧਿਆਨ ਦੇਣ ਦਾ ਫੈਸਲਾ ਕਰਦਾ ਹੈ ਜੋ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਮਹੱਤਵਪੂਰਨ ਹਨ — ਨਤੀਜੇ ਵੱਜੋਂ ਲੰਬੇ ਰਿਸ਼ਤਿਆਂ ਦੀ ਸਮਝ ਬਿਹਤਰ ਹੁੰਦੀ ਹੈ ਅਤੇ ਟ੍ਰੇਨਿੰਗ ਬਹੁਤ ਤੇਜ਼ ਅਤੇ ਪੈਰਲੇਲ-ਫਰੇਂਡਲੀ ਬਣਦੀ ਹੈ।
RNNs ਅਤੇ LSTMs ਟੈਕਸਟ ਨੂੰ ਇੱਕ ਟੋਕਨ ਇਕ ਵਾਰ ਵਿੱਚ ਪ੍ਰೋਸੈਸ ਕਰਦੇ ਹਨ, ਜਿਸ ਨਾਲ ਟ੍ਰੇਨਿੰਗ ਨੂੰ ਪੈਰਲੇਲ ਕਰਨਾ ਮੁਸ਼ਕਲ ਹੁੰਦਾ ਹੈ ਅਤੇ ਲੰਬੇ-ਦੂਰੀ ਦੇ ਨਾਤਿਆਂ ਲਈ ਬੋਤਲਨੈਕ ਬਣ ਜਾਂਦਾ ਹੈ।
Transformers ਧਿਆਨ (attention) ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਦੂਰੇ ਟੋਕਨਾਂ ਨੂੰ ਸਿੱਧਾ ਜੋੜਦੇ ਹਨ, ਅਤੇ ਟ੍ਰੇਨਿੰਗ ਦੌਰਾਨ ਬਹੁਤ ਸਾਰੇ ਟੋਕਨ-ਟੂ-ਟੋਕਨ ਮਿਆਰ-ਕਰਨ ਇੱਕਸਾਥ ਕਰ ਸਕਦੇ ਹਨ—ਇਸ ਕਰਕੇ ਇਹ ਮਾਡਲ ਵੱਡੇ ਡੇਟਾ ਅਤੇ ਕੱਨਫਿਊਟ ਦੇ ਨਾਲ ਤੇਜ਼ੀ ਨਾਲ ਸਕੇਲ ਹੁੰਦੇ ਹਨ।
Attention ਇੱਕ ਮਕੈਨਿਜ਼ਮ ਹੈ ਜੋ ਸਵਾਲ ਪੁੱਛਦਾ ਹੈ: “ਇਸ ਵੇਲੇ ਇਸ ਟੋਕਨ ਦੀ ਸਮਝ ਲਈ ਹੋਰ ਕਿਹੜੇ ਟੋਕਨ ਸਭ ਤੋਂ ਜ਼ਿਆਦਾ ਮਹੱਤਵਪੂਰਨ ਹਨ?”
ਇਸਨੂੰ ਛੋਟੇ ਅੰਦਰੂਨੀ ਖੋਜ-ਇੰਜਣ ਵਾਂਗ ਸੋਚੋ:
ਆਉਟਪੁਟ ਇੱਕ ਵੈਟ ਕੀਤੀ ਮੇਲ ਹੈ ਜੋ ਮੌਜੂਦਾ ਸਥਾਨ ਲਈ ਸੰਦਰਭ-ਸਮਝ ਦਿੰਦੀ ਹੈ।
Self-attention ਦਾ ਅਰਥ ਹੈ ਕਿ ਇੱਕ ਸੀਕੁਐਂਸ ਦੇ ਟੋਕਨ ਆਪਣੇ ਹੀ ਸੀਕੁਐਂਸ ਦੇ ਹੋਰ ਟੋਕਨਾਂ ਨੂੰ ਦੇਖਦੇ ਹਨ।
ਇਹ ਮਾਡਲ ਨੂੰ ਉਹ ਸਮੱਸਿਆਵਾਂ ਹੱਲ ਕਰਨ ਦਿੰਦਾ ਹੈ ਜਿਵੇਂ ਕਿ coreference (ਉਦਾਹਰਨ ਲਈ “it” ਕਿਹੜੇ ਵਸਤੂ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ), ਵਿਸਥਾਰ-ਕਰਮਿਕ ਰਿਸ਼ਤੇ, ਅਤੇ ਲੰਬੇ ਫਾਕਿਆਂ 'ਤੇ ਨਿਰਭਰਤਾ—ਬਿਨਾਂ ਇਕ ਹੀ ਰੀਕਰਨਟ ਮੈਮੋਰੀ ਵਿੱਚ ਸਾਰਾ ਡੇਟਾ ਸਮੇਟੇ।
Multi-head attention ਇੱਕੋ ਸਮੇਂ ਵਿੱਚ ਕਈ attention ਗਣਨਾਵਾਂ ਚਲਾਉਂਦਾ ਹੈ, ਜਿੱਥੇ ਹਰ head ਵੱਖਰਾ ਰਿਸ਼ਤਾ ਖੋਜ ਸਕਦਾ ਹੈ।
ਅਮਲ ਵਿੱਚ, ਵੱਖ-ਵੱਖ heads ਅਕਸਰ ਵੱਖ-ਵੱਖ ਪੈਟਰਨਾਂ (ਸਿੰਟੈਕਸ, ਲੰਬੇ-ਦੂਰੀ ਦੇ ਜੋੜ, ਸਰਨਾਮ-ਸਮਝ ਆਦਿ) ‘ਤੇ ਧਿਆਨ ਕੇਂਦਰਿਤ ਕਰਦੇ ਹਨ ਅਤੇ ਮਾਡਲ ਉਨ੍ਹਾਂ ਨਜ਼ਰੀਆਂ ਨੂੰ ਮਿਲਾ ਕੇ ਇੱਕ ਬਹੁ-ਪੱਖੀ ਪ੍ਰਤੀਨਿਧੀ ਬਣਾਉਂਦਾ ਹੈ।
ਸਵੈ-ਅਟੈਨਸ਼ਨ ਆਪੇ-ਆਪ ਹੀ ਟੋਕਨਾਂ ਨੂੰ ਤੁਲਨਾ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਇਸਦੇ ਕੋਲ ਤਰਤੀਬ ਦੀ ਜਾਣਕਾਰੀ ਨਹੀਂ ਹੁੰਦੀ।
Positional encodings ਟੋਕਨ ਰੈਪ੍ਰਿਜ਼ੈਂਟੇਸ਼ਨਾਂ ਵਿੱਚ “ਮੈਂ ਸੀਕੁਐਂਸ ਵਿੱਚ ਕਿੱਥੇ ਹਾਂ” ਦਾ ਸਿਗਨਲ ਡਾਲਦੇ ਹਨ, ਤਾਂ ਕਿ ਮਾਡਲ ਪੈਟਰਨਾਂ ਜਿਵੇਂ “not ਤੋਂ ਬਾਅਦ ਵਾਲਾ ਸ਼ਬਦ ਮਹੱਤਵਪੂਰਨ ਹੈ” ਜਾਂ ਵਿਸ਼ੇ-ਦਰ-ਕ੍ਰਮ ਨਿਯਮਾਂ ਨੂੰ ਸਿੱਖ ਸਕੇ।
ਸਧਾਰਨ ਢੰਗਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ sinusoidal (fixed), learned absolute positions, ਅਤੇ relative/rotary-ਸਟਾਈਲ ਤਰੀਕੇ।
ਇੱਕ Transformer ਬਲਾਕ ਆਮ ਤੌਰ 'ਤੇ ਇਹਨਾਂ ਨੂੰ ਮਿਲਾ ਕੇ ਬਣਿਆ ਹੁੰਦਾ ਹੈ:
ਇਹਨਾਂ ਬਲਾਕਾਂ ਨੂੰ ਹੋਰ ਵਾਰੀ ਦੁਹਰਾਉਂਣ ਨਾਲ ਮਾਡਲ ਵਿਚ ਡੇਪਥ ਤੇ ਸਮਰੱਥਾ ਆ ਜਾਂਦੀ ਹੈ।
ਅਸਲ 2017 ਦਸਤਾਵੇਜ਼ ਦਾ ਲੱਖਣ-ਸਪੱਸ਼ਟ ਸਹਿਯੋਗੀ ਹੋਣ ਦੇ ਨਾਤੇ, Noam Shazeer “Attention Is All You Need” ਪੇਪਰ ਦੇ ਇੱਕ co-author ਸੀ।
ਇਹ ਸਹੀ ਹੈ ਕਿ ਉਹ ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਯੋਗਦਾਨਕਾਰ ਸੀ, ਪਰ Transformer ਆਰਕੀਟੈਕਚਰ ਨੂੰ Google ਦੀ ਇੱਕ ਟੀਮ ਨੇ ਮਿਲਕੇ ਬਣਾਇਆ — ਇਸ ਲਈ ਉਸੇ ਨੂੰ ਇਕੱਲਾ ਆਵਿਸ਼ਕਾਰਕ ਸਾਬਤ ਕਰਨਾ ਗਲਤ ਹੋਵੇਗਾ।
ਲੰਬੇ ਇਨਪੁੱਟਾਂ ਲਈ, ਸਧਾਰਣ self-attention ਮਹਿੰਗੀ ਪੈ ਸਕਦੀ ਹੈ ਕਿਉਂਕਿ ਤੁਲਨਾਵਾਂ ਸੀਕੁਐਂਸ ਲੰਬਾਈ ਦੇ ਵਰਗ ਦੇ ਅਨੁਪਾਤ ਨਾਲ ਵਧਦੀਆਂ ਹਨ (ਤਕਰੀਬਨ ਵਰਗ)। ਇਹ ਯਾਦਾਸ਼ਤ ਅਤੇ ਕੁੰਪਿਊਟ ਦੋਹਾਂ 'ਤੇ ਪ੍ਰਭਾਵ ਪਾਉਂਦਾ ਹੈ।
ਟੀਮਾਂ ਅਕਸਰ ਇਹ ਹੱਲ ਵਰਤਦੀਆਂ ਹਨ: