ਛੋਟਾ ਜਵਾਬ: AI ਸਿਖਲਾਈ ਲਈ NVIDIA GPUs ਦੀ ਵਰਤੋਂ ਪਹਿਲਾਂ ਇਹ ਪੁਸ਼ਟੀ ਕਰਕੇ ਕਰੋ ਕਿ ਡਰਾਈਵਰ ਅਤੇ GPU nvidia-smi , ਫਿਰ ਇੱਕ ਅਨੁਕੂਲ ਫਰੇਮਵਰਕ/CUDA ਸਟੈਕ ਸਥਾਪਤ ਕਰੋ ਅਤੇ ਇੱਕ ਛੋਟਾ ਜਿਹਾ "model + batch on cuda" ਟੈਸਟ ਚਲਾਓ। ਜੇਕਰ ਤੁਸੀਂ ਮੈਮੋਰੀ ਤੋਂ ਬਾਹਰ ਹੋ ਜਾਂਦੇ ਹੋ, ਤਾਂ ਵਰਤੋਂ, ਮੈਮੋਰੀ ਅਤੇ ਤਾਪਮਾਨ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦੇ ਹੋਏ, ਬੈਚ ਦਾ ਆਕਾਰ ਘਟਾਓ ਅਤੇ ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਦੀ ਵਰਤੋਂ ਕਰੋ।
ਮੁੱਖ ਗੱਲਾਂ:
ਬੇਸਲਾਈਨ ਜਾਂਚ : nvidia-smi ; ਫਰੇਮਵਰਕ ਸਥਾਪਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਡਰਾਈਵਰ ਦਿੱਖ ਨੂੰ ਠੀਕ ਕਰੋ।
ਸਟੈਕ ਅਨੁਕੂਲਤਾ : ਕਰੈਸ਼ਾਂ ਅਤੇ ਭੁਰਭੁਰਾ ਸਥਾਪਨਾਵਾਂ ਨੂੰ ਰੋਕਣ ਲਈ ਡਰਾਈਵਰ, CUDA ਰਨਟਾਈਮ, ਅਤੇ ਫਰੇਮਵਰਕ ਸੰਸਕਰਣਾਂ ਨੂੰ ਇਕਸਾਰ ਰੱਖੋ।
ਛੋਟੀ ਸਫਲਤਾ : ਪ੍ਰਯੋਗਾਂ ਨੂੰ ਵਧਾਉਣ ਤੋਂ ਪਹਿਲਾਂ CUDA 'ਤੇ ਇੱਕ ਸਿੰਗਲ ਫਾਰਵਰਡ ਪਾਸ ਚੱਲਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।
VRAM ਅਨੁਸ਼ਾਸਨ : ਵੱਡੇ ਮਾਡਲਾਂ ਨੂੰ ਫਿੱਟ ਕਰਨ ਲਈ ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ, ਗਰੇਡੀਐਂਟ ਇਕੱਤਰਤਾ, ਅਤੇ ਚੈੱਕਪੁਆਇੰਟਿੰਗ 'ਤੇ ਭਰੋਸਾ ਕਰੋ।
ਨਿਗਰਾਨੀ ਦੀ ਆਦਤ : ਵਰਤੋਂ, ਮੈਮੋਰੀ ਪੈਟਰਨ, ਪਾਵਰ ਅਤੇ ਤਾਪਮਾਨ ਨੂੰ ਟਰੈਕ ਕਰੋ ਤਾਂ ਜੋ ਤੁਸੀਂ ਰੁਕਾਵਟਾਂ ਨੂੰ ਜਲਦੀ ਪਛਾਣ ਸਕੋ।

ਇਸ ਤੋਂ ਬਾਅਦ ਤੁਸੀਂ ਜੋ ਲੇਖ ਪੜ੍ਹਨਾ ਪਸੰਦ ਕਰ ਸਕਦੇ ਹੋ:
🔗 ਏਆਈ ਏਜੰਟ ਕਿਵੇਂ ਬਣਾਇਆ ਜਾਵੇ
ਆਪਣੇ ਏਜੰਟ ਦੇ ਵਰਕਫਲੋ, ਟੂਲ, ਮੈਮੋਰੀ ਅਤੇ ਸੁਰੱਖਿਆ ਗਾਰਡ ਡਿਜ਼ਾਈਨ ਕਰੋ।.
🔗 ਏਆਈ ਮਾਡਲਾਂ ਨੂੰ ਕਿਵੇਂ ਤੈਨਾਤ ਕਰਨਾ ਹੈ
ਵਾਤਾਵਰਣ, ਪੈਕੇਜ ਮਾਡਲ ਸਥਾਪਤ ਕਰੋ, ਅਤੇ ਉਤਪਾਦਨ ਲਈ ਭਰੋਸੇਯੋਗ ਢੰਗ ਨਾਲ ਭੇਜੋ।.
🔗 ਏਆਈ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਕਿਵੇਂ ਮਾਪਣਾ ਹੈ
ਮੈਟ੍ਰਿਕਸ ਚੁਣੋ, ਮੁਲਾਂਕਣ ਚਲਾਓ, ਅਤੇ ਸਮੇਂ ਦੇ ਨਾਲ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਟਰੈਕ ਕਰੋ।.
🔗 ਏਆਈ ਨਾਲ ਕੰਮਾਂ ਨੂੰ ਸਵੈਚਾਲਿਤ ਕਿਵੇਂ ਕਰੀਏ
ਪ੍ਰੋਂਪਟ, ਵਰਕਫਲੋ ਅਤੇ ਏਕੀਕਰਣ ਨਾਲ ਦੁਹਰਾਉਣ ਵਾਲੇ ਕੰਮ ਨੂੰ ਸਵੈਚਾਲਿਤ ਕਰੋ।.
1) ਵੱਡੀ ਤਸਵੀਰ - ਜਦੋਂ ਤੁਸੀਂ "GPU 'ਤੇ ਸਿਖਲਾਈ" ਲੈਂਦੇ ਹੋ ਤਾਂ ਤੁਸੀਂ ਕੀ ਕਰ ਰਹੇ ਹੋ 🧠⚡
ਜਦੋਂ ਤੁਸੀਂ AI ਮਾਡਲਾਂ ਨੂੰ ਸਿਖਲਾਈ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਜ਼ਿਆਦਾਤਰ ਮੈਟ੍ਰਿਕਸ ਗਣਿਤ ਦਾ ਪਹਾੜ ਕਰ ਰਹੇ ਹੁੰਦੇ ਹੋ। GPUs ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਸਮਾਨਾਂਤਰ ਕੰਮ ਲਈ ਬਣਾਏ ਜਾਂਦੇ ਹਨ, ਇਸ ਲਈ PyTorch, TensorFlow, ਅਤੇ JAX ਵਰਗੇ ਫਰੇਮਵਰਕ GPU ਵਿੱਚ ਭਾਰੀ ਲਿਫਟਿੰਗ ਨੂੰ ਆਫਲੋਡ ਕਰ ਸਕਦੇ ਹਨ। ( PyTorch CUDA docs , TensorFlow install (pip) , JAX Quickstart )
ਅਭਿਆਸ ਵਿੱਚ, "ਸਿਖਲਾਈ ਲਈ NVIDIA GPUs ਦੀ ਵਰਤੋਂ" ਦਾ ਆਮ ਤੌਰ 'ਤੇ ਅਰਥ ਹੁੰਦਾ ਹੈ:
-
ਤੁਹਾਡੇ ਮਾਡਲ ਪੈਰਾਮੀਟਰ (ਜ਼ਿਆਦਾਤਰ) GPU VRAM ਵਿੱਚ ਰਹਿੰਦੇ ਹਨ।
-
ਤੁਹਾਡੇ ਬੈਚ ਹਰ ਕਦਮ 'ਤੇ RAM ਤੋਂ VRAM ਵਿੱਚ ਤਬਦੀਲ ਹੋ ਜਾਂਦੇ ਹਨ।
-
ਤੁਹਾਡਾ ਫਾਰਵਰਡ ਪਾਸ ਅਤੇ ਬੈਕਪ੍ਰੌਪ CUDA ਕਰਨਲਾਂ 'ਤੇ ਚੱਲਦੇ ਹਨ ( CUDA ਪ੍ਰੋਗਰਾਮਿੰਗ ਗਾਈਡ )
-
ਤੁਹਾਡੇ ਆਪਟੀਮਾਈਜ਼ਰ ਅੱਪਡੇਟ GPU 'ਤੇ ਹੁੰਦੇ ਹਨ (ਆਦਰਸ਼ਕ ਤੌਰ 'ਤੇ)
-
ਤੁਸੀਂ ਤਾਪਮਾਨ, ਮੈਮੋਰੀ, ਵਰਤੋਂ ਦੀ ਨਿਗਰਾਨੀ ਕਰਦੇ ਹੋ ਤਾਂ ਜੋ ਤੁਸੀਂ ਕੁਝ ਵੀ ਨਾ ਪਕਾਓ 🔥 ( NVIDIA nvidia-smi docs )
ਜੇ ਇਹ ਬਹੁਤ ਜ਼ਿਆਦਾ ਲੱਗਦਾ ਹੈ, ਤਾਂ ਚਿੰਤਾ ਨਾ ਕਰੋ। ਇਹ ਜ਼ਿਆਦਾਤਰ ਇੱਕ ਚੈੱਕਲਿਸਟ ਅਤੇ ਕੁਝ ਆਦਤਾਂ ਹਨ ਜੋ ਤੁਸੀਂ ਸਮੇਂ ਦੇ ਨਾਲ ਬਣਾਉਂਦੇ ਹੋ।.
2) NVIDIA GPU AI ਸਿਖਲਾਈ ਸੈੱਟਅੱਪ ਦਾ ਇੱਕ ਚੰਗਾ ਸੰਸਕਰਣ ਕੀ ਬਣਾਉਂਦਾ ਹੈ 🤌
ਇਹ "ਜੈਲੀ 'ਤੇ ਘਰ ਨਾ ਬਣਾਓ" ਭਾਗ ਹੈ। AI ਸਿਖਲਾਈ ਲਈ NVIDIA GPU ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ ਉਹ ਹੈ ਜੋ ਘੱਟ-ਡਰਾਮਾ ਹੈ। ਘੱਟ-ਡਰਾਮਾ ਸਥਿਰ ਹੈ। ਸਥਿਰ ਤੇਜ਼ ਹੈ। ਤੇਜ਼ ਹੈ...ਖੈਰ, ਤੇਜ਼ 😄
ਇੱਕ ਠੋਸ ਸਿਖਲਾਈ ਸੈੱਟਅੱਪ ਵਿੱਚ ਆਮ ਤੌਰ 'ਤੇ ਇਹ ਹੁੰਦੇ ਹਨ:
-
ਤੁਹਾਡੇ ਬੈਚ ਆਕਾਰ + ਮਾਡਲ + ਆਪਟੀਮਾਈਜ਼ਰ ਸਥਿਤੀਆਂ ਲਈ ਕਾਫ਼ੀ VRAM ਹੈ
-
VRAM ਸੂਟਕੇਸ ਸਪੇਸ ਵਾਂਗ ਹੈ। ਤੁਸੀਂ ਸਮਾਰਟ ਪੈਕ ਕਰ ਸਕਦੇ ਹੋ, ਪਰ ਤੁਸੀਂ ਅਨੰਤ ਪੈਕ ਨਹੀਂ ਕਰ ਸਕਦੇ।.
-
-
ਇੱਕ ਮੇਲ ਖਾਂਦਾ ਸਾਫਟਵੇਅਰ ਸਟੈਕ (ਡਰਾਈਵਰ + CUDA ਰਨਟਾਈਮ + ਫਰੇਮਵਰਕ ਅਨੁਕੂਲਤਾ) ( PyTorch ਸ਼ੁਰੂਆਤ ਕਰੋ (CUDA ਚੋਣਕਾਰ) , TensorFlow ਇੰਸਟਾਲ (pip) )
-
ਤੇਜ਼ ਸਟੋਰੇਜ (NVMe ਵੱਡੇ ਡੇਟਾਸੈੱਟਾਂ ਲਈ ਬਹੁਤ ਮਦਦ ਕਰਦਾ ਹੈ)
-
ਵਧੀਆ CPU + RAM ਤਾਂ ਜੋ ਡਾਟਾ ਲੋਡਿੰਗ GPU ਨੂੰ ਭੁੱਖ ਨਾ ਲੱਗੇ ( PyTorch Performance Tuning Guide )
-
ਕੂਲਿੰਗ ਅਤੇ ਪਾਵਰ ਹੈੱਡਰੂਮ (ਘੱਟ ਦਰਜਾ ਦਿੱਤਾ ਗਿਆ ਜਦੋਂ ਤੱਕ ਇਹ 😬 ਨਹੀਂ ਹੁੰਦਾ)
-
ਦੁਬਾਰਾ ਪੈਦਾ ਕਰਨ ਯੋਗ ਵਾਤਾਵਰਣ (ਵੇਨਵ/ਕੌਂਡਾ ਜਾਂ ਕੰਟੇਨਰ) ਤਾਂ ਜੋ ਅੱਪਗ੍ਰੇਡ ਹਫੜਾ-ਦਫੜੀ ਨਾ ਬਣ ਜਾਣ ( NVIDIA ਕੰਟੇਨਰ ਟੂਲਕਿੱਟ ਸੰਖੇਪ ਜਾਣਕਾਰੀ )
ਅਤੇ ਇੱਕ ਹੋਰ ਗੱਲ ਜੋ ਲੋਕ ਛੱਡ ਦਿੰਦੇ ਹਨ:
-
ਇੱਕ ਨਿਗਰਾਨੀ ਆਦਤ - ਤੁਸੀਂ GPU ਮੈਮੋਰੀ ਅਤੇ ਵਰਤੋਂ ਦੀ ਜਾਂਚ ਕਰਦੇ ਹੋ ਜਿਵੇਂ ਤੁਸੀਂ ਗੱਡੀ ਚਲਾਉਂਦੇ ਸਮੇਂ ਸ਼ੀਸ਼ੇ ਚੈੱਕ ਕਰਦੇ ਹੋ। ( NVIDIA nvidia-smi docs )
3) ਤੁਲਨਾ ਸਾਰਣੀ - NVIDIA GPUs ਨਾਲ ਸਿਖਲਾਈ ਦੇਣ ਦੇ ਪ੍ਰਸਿੱਧ ਤਰੀਕੇ (ਕੁਝ ਖਾਸ ਗੱਲਾਂ ਦੇ ਨਾਲ) 📊
ਹੇਠਾਂ ਇੱਕ ਛੋਟੀ ਜਿਹੀ "ਕਿਹੜੀ ਫਿੱਟ ਬੈਠਦੀ ਹੈ?" ਚੀਟ ਸ਼ੀਟ ਹੈ। ਕੀਮਤਾਂ ਬਹੁਤ ਜ਼ਿਆਦਾ ਹਨ (ਕਿਉਂਕਿ ਅਸਲੀਅਤ ਵੱਖਰੀ ਹੁੰਦੀ ਹੈ), ਅਤੇ ਹਾਂ ਇਹਨਾਂ ਵਿੱਚੋਂ ਇੱਕ ਸੈੱਲ ਥੋੜ੍ਹਾ ਜਿਹਾ ਬੇਢੰਗਾ ਹੈ, ਜਾਣਬੁੱਝ ਕੇ।.
| ਔਜ਼ਾਰ / ਪਹੁੰਚ | ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ | ਕੀਮਤ | ਇਹ ਕਿਉਂ ਕੰਮ ਕਰਦਾ ਹੈ (ਜ਼ਿਆਦਾਤਰ) |
|---|---|---|---|
| ਪਾਈਟੋਰਚ (ਵਨੀਲਾ) ਪਾਈਟੋਰਚ | ਜ਼ਿਆਦਾਤਰ ਲੋਕ, ਜ਼ਿਆਦਾਤਰ ਪ੍ਰੋਜੈਕਟ | ਮੁਫ਼ਤ | ਲਚਕਦਾਰ, ਵਿਸ਼ਾਲ ਈਕੋਸਿਸਟਮ, ਆਸਾਨ ਡੀਬੱਗਿੰਗ - ਨਾਲ ਹੀ ਹਰ ਕਿਸੇ ਦੇ ਵਿਚਾਰ ਹੁੰਦੇ ਹਨ। |
| ਪਾਈਟੋਰਚ ਲਾਈਟਨਿੰਗ ਲਾਈਟਨਿੰਗ ਦਸਤਾਵੇਜ਼ | ਟੀਮਾਂ, ਢਾਂਚਾਗਤ ਸਿਖਲਾਈ | ਮੁਫ਼ਤ | ਬਾਇਲਰਪਲੇਟ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ, ਲੂਪਸ ਨੂੰ ਸਾਫ਼ ਕਰਦਾ ਹੈ; ਕਈ ਵਾਰ "ਜਾਦੂ" ਵਾਂਗ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ, ਜਦੋਂ ਤੱਕ ਇਹ ਨਹੀਂ ਹੁੰਦਾ |
| ਹੱਗਿੰਗ ਫੇਸ ਟ੍ਰਾਂਸਫਾਰਮਰ + ਟ੍ਰੇਨਰ ਟ੍ਰੇਨਰ ਦਸਤਾਵੇਜ਼ | NLP + LLM ਫਾਈਨ-ਟਿਊਨਿੰਗ | ਮੁਫ਼ਤ | ਬੈਟਰੀਆਂ-ਸ਼ਾਮਲ ਸਿਖਲਾਈ, ਵਧੀਆ ਡਿਫਾਲਟ, ਤੇਜ਼ ਜਿੱਤਾਂ 👍 |
| ਐਕਸਲਰੇਟ ਐਕਸਲਰੇਟ ਦਸਤਾਵੇਜ਼ | ਦਰਦ ਤੋਂ ਬਿਨਾਂ ਮਲਟੀ-ਜੀਪੀਯੂ | ਮੁਫ਼ਤ | DDP ਨੂੰ ਘੱਟ ਤੰਗ ਕਰਨ ਵਾਲਾ ਬਣਾਉਂਦਾ ਹੈ, ਹਰ ਚੀਜ਼ ਨੂੰ ਦੁਬਾਰਾ ਲਿਖੇ ਬਿਨਾਂ ਸਕੇਲਿੰਗ ਕਰਨ ਲਈ ਵਧੀਆ ਹੈ। |
| ਡੀਪਸਪੀਡ ਜ਼ੀਰੋ ਦਸਤਾਵੇਜ਼ | ਵੱਡੇ ਮਾਡਲ, ਯਾਦਦਾਸ਼ਤ ਦੀਆਂ ਚਾਲਾਂ | ਮੁਫ਼ਤ | ਜ਼ੀਰੋ, ਆਫਲੋਡ, ਸਕੇਲਿੰਗ - ਕਲਿੱਕ ਕਰਨ 'ਤੇ ਇਹ ਔਖਾ ਪਰ ਸੰਤੁਸ਼ਟੀਜਨਕ ਹੋ ਸਕਦਾ ਹੈ। |
| ਟੈਂਸਰਫਲੋ + ਕੇਰਸ ਟੀਐਫ ਇੰਸਟਾਲ | ਉਤਪਾਦਨ-ਅਧਾਰਤ ਪਾਈਪਲਾਈਨਾਂ | ਮੁਫ਼ਤ | ਮਜ਼ਬੂਤ ਟੂਲਿੰਗ, ਵਧੀਆ ਤੈਨਾਤੀ ਕਹਾਣੀ; ਕੁਝ ਲੋਕ ਇਸਨੂੰ ਪਸੰਦ ਕਰਦੇ ਹਨ, ਕੁਝ ਚੁੱਪਚਾਪ ਨਹੀਂ ਕਰਦੇ। |
| JAX + ਫਲੈਕਸ JAX ਕੁਇੱਕਸਟਾਰਟ / ਫਲੈਕਸ ਦਸਤਾਵੇਜ਼ | ਰਿਸਰਚ + ਸਪੀਡ ਨਰਡਸ | ਮੁਫ਼ਤ | XLA ਸੰਕਲਨ ਬਹੁਤ ਤੇਜ਼ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ ਡੀਬੱਗਿੰਗ...ਸਾਰ ਮਹਿਸੂਸ ਕਰ ਸਕਦੀ ਹੈ |
| NVIDIA NeMo NeMo ਸੰਖੇਪ ਜਾਣਕਾਰੀ | ਭਾਸ਼ਣ + LLM ਵਰਕਫਲੋ | ਮੁਫ਼ਤ | NVIDIA-ਅਨੁਕੂਲ ਸਟੈਕ, ਵਧੀਆ ਪਕਵਾਨਾਂ - ਇੱਕ ਸ਼ਾਨਦਾਰ ਓਵਨ ਨਾਲ ਖਾਣਾ ਪਕਾਉਣ ਵਰਗਾ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ 🍳 |
| ਡੌਕਰ + NVIDIA ਕੰਟੇਨਰ ਟੂਲਕਿੱਟ ਟੂਲਕਿੱਟ ਸੰਖੇਪ ਜਾਣਕਾਰੀ | ਦੁਬਾਰਾ ਪੈਦਾ ਕਰਨ ਯੋਗ ਵਾਤਾਵਰਣ | ਮੁਫ਼ਤ | "ਮੇਰੀ ਮਸ਼ੀਨ 'ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ" "ਸਾਡੀਆਂ ਮਸ਼ੀਨਾਂ 'ਤੇ ਕੰਮ ਕਰਦਾ ਹੈ" ਬਣ ਜਾਂਦਾ ਹੈ (ਜ਼ਿਆਦਾਤਰ, ਦੁਬਾਰਾ) |
4) ਪਹਿਲਾ ਕਦਮ - ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਤੁਹਾਡਾ GPU ਸਹੀ ਢੰਗ ਨਾਲ ਦੇਖਿਆ ਗਿਆ ਹੈ 🕵️♂️
ਇੱਕ ਦਰਜਨ ਚੀਜ਼ਾਂ ਲਗਾਉਣ ਤੋਂ ਪਹਿਲਾਂ, ਮੂਲ ਗੱਲਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।.
ਉਹ ਗੱਲਾਂ ਜੋ ਤੁਸੀਂ ਸੱਚੀਆਂ ਹੋਣਾ ਚਾਹੁੰਦੇ ਹੋ:
-
ਮਸ਼ੀਨ GPU ਦੇਖਦੀ ਹੈ
-
NVIDIA ਡਰਾਈਵਰ ਸਹੀ ਢੰਗ ਨਾਲ ਸਥਾਪਿਤ ਹੈ।
-
GPU ਕੁਝ ਹੋਰ ਕਰਨ ਵਿੱਚ ਫਸਿਆ ਨਹੀਂ ਹੈ।
-
ਤੁਸੀਂ ਇਸਨੂੰ ਭਰੋਸੇਯੋਗ ਢੰਗ ਨਾਲ ਪੁੱਛਗਿੱਛ ਕਰ ਸਕਦੇ ਹੋ
ਕਲਾਸਿਕ ਚੈੱਕ ਇਹ ਹੈ:
-
ਐਨਵੀਡੀਆ-ਐਸਐਮਆਈ( ਐਨਵੀਡੀਆ ਐਨਵੀਡੀਆ-ਐਸਐਮਆਈ ਡੌਕਸ )
ਤੁਸੀਂ ਕੀ ਲੱਭ ਰਹੇ ਹੋ:
-
GPU ਨਾਮ (ਜਿਵੇਂ ਕਿ, RTX, A-ਸੀਰੀਜ਼, ਆਦਿ)
-
ਡਰਾਈਵਰ ਵਰਜਨ
-
ਮੈਮੋਰੀ ਵਰਤੋਂ
-
ਚੱਲ ਰਹੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ( NVIDIA nvidia-smi ਦਸਤਾਵੇਜ਼ )
ਜੇਕਰ nvidia-smi ਅਸਫਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਉੱਥੇ ਹੀ ਰੁਕ ਜਾਓ। ਅਜੇ ਫਰੇਮਵਰਕ ਇੰਸਟਾਲ ਨਾ ਕਰੋ। ਇਹ ਤੁਹਾਡੇ ਓਵਨ ਦੇ ਪਲੱਗ ਇਨ ਨਾ ਹੋਣ 'ਤੇ ਰੋਟੀ ਪਕਾਉਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਵਰਗਾ ਹੈ। ( NVIDIA ਸਿਸਟਮ ਮੈਨੇਜਮੈਂਟ ਇੰਟਰਫੇਸ (NVSMI) )
ਛੋਟੀ ਜਿਹੀ ਮਨੁੱਖੀ ਟਿੱਪਣੀ: ਕਈ ਵਾਰ nvidia-smi ਕੰਮ ਕਰਦਾ ਹੈ ਪਰ ਤੁਹਾਡੀ ਸਿਖਲਾਈ ਅਜੇ ਵੀ ਅਸਫਲ ਹੋ ਜਾਂਦੀ ਹੈ ਕਿਉਂਕਿ ਤੁਹਾਡੇ ਫਰੇਮਵਰਕ ਦੁਆਰਾ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ CUDA ਰਨਟਾਈਮ ਡਰਾਈਵਰ ਦੀਆਂ ਉਮੀਦਾਂ ਨਾਲ ਮੇਲ ਨਹੀਂ ਖਾਂਦਾ। ਇਹ ਤੁਸੀਂ ਮੂਰਖ ਨਹੀਂ ਹੋ। ਇਹ...ਬੱਸ ਇਹੀ ਹੈ 😭 ( PyTorch Get Started (CUDA selector) , TensorFlow install (pip) )
5) ਸਾਫਟਵੇਅਰ ਸਟੈਕ ਬਣਾਓ - ਡਰਾਈਵਰ, CUDA, cuDNN, ਅਤੇ "ਅਨੁਕੂਲਤਾ ਡਾਂਸ" 💃
ਇਹ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਲੋਕ ਘੰਟੇ ਬਰਬਾਦ ਕਰਦੇ ਹਨ। ਚਾਲ ਇਹ ਹੈ: ਇੱਕ ਰਸਤਾ ਚੁਣੋ ਅਤੇ ਇਸ 'ਤੇ ਟਿਕੇ ਰਹੋ ।
ਵਿਕਲਪ A: ਫਰੇਮਵਰਕ-ਬੰਡਲਡ CUDA (ਅਕਸਰ ਸਭ ਤੋਂ ਆਸਾਨ)
ਬਹੁਤ ਸਾਰੇ PyTorch ਆਪਣੇ ਖੁਦ ਦੇ CUDA ਰਨਟਾਈਮ ਨਾਲ ਜਹਾਜ਼ ਬਣਾਉਂਦੇ ਹਨ, ਜਿਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਹਾਨੂੰ ਸਿਸਟਮ-ਵਿਆਪੀ ਇੱਕ ਪੂਰੇ CUDA ਟੂਲਕਿੱਟ ਦੀ ਜ਼ਰੂਰਤ ਨਹੀਂ ਹੈ। ਤੁਹਾਨੂੰ ਜ਼ਿਆਦਾਤਰ ਇੱਕ ਅਨੁਕੂਲ NVIDIA ਡਰਾਈਵਰ ਦੀ ਜ਼ਰੂਰਤ ਹੁੰਦੀ ਹੈ। ( PyTorch ਸ਼ੁਰੂਆਤ ਕਰੋ (CUDA ਚੋਣਕਾਰ) , ਪਿਛਲੇ PyTorch ਸੰਸਕਰਣ (CUDA ਪਹੀਏ) )
ਫ਼ਾਇਦੇ:
-
ਘੱਟ ਹਿੱਲਦੇ ਹਿੱਸੇ
-
ਆਸਾਨ ਸਥਾਪਨਾਵਾਂ
-
ਪ੍ਰਤੀ ਵਾਤਾਵਰਣ ਵਧੇਰੇ ਪ੍ਰਜਨਨਯੋਗ
ਨੁਕਸਾਨ:
-
ਜੇਕਰ ਤੁਸੀਂ ਵਾਤਾਵਰਣ ਨੂੰ ਅਚਨਚੇਤ ਮਿਲਾਉਂਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਉਲਝਣ ਵਿੱਚ ਪੈ ਸਕਦੇ ਹੋ।
ਵਿਕਲਪ B: ਸਿਸਟਮ CUDA ਟੂਲਕਿੱਟ (ਵਧੇਰੇ ਨਿਯੰਤਰਣ)
ਤੁਸੀਂ ਸਿਸਟਮ 'ਤੇ CUDA ਟੂਲਕਿੱਟ ਇੰਸਟਾਲ ਕਰਦੇ ਹੋ ਅਤੇ ਹਰ ਚੀਜ਼ ਨੂੰ ਇਸ ਨਾਲ ਇਕਸਾਰ ਕਰਦੇ ਹੋ। ( CUDA ਟੂਲਕਿੱਟ ਡੌਕਸ )
ਫ਼ਾਇਦੇ:
-
ਕਸਟਮ ਬਿਲਡ ਲਈ ਵਧੇਰੇ ਨਿਯੰਤਰਣ, ਕੁਝ ਖਾਸ ਟੂਲਿੰਗ
-
ਕੁਝ ਖਾਸ ਓਪਸ ਨੂੰ ਕੰਪਾਇਲ ਕਰਨ ਲਈ ਲਾਭਦਾਇਕ
ਨੁਕਸਾਨ:
-
ਸੰਸਕਰਣਾਂ ਨੂੰ ਮੇਲ ਨਾ ਖਾਣ ਅਤੇ ਚੁੱਪਚਾਪ ਰੋਣ ਦੇ ਹੋਰ ਤਰੀਕੇ
cuDNN ਅਤੇ NCCL, ਮਨੁੱਖੀ ਸ਼ਬਦਾਂ ਵਿੱਚ
-
cuDNN ਡੂੰਘੀ ਸਿਖਲਾਈ ਦੇ ਮੁੱਢਲੇ ਤੱਤਾਂ (ਕਨਵੋਲਿਊਸ਼ਨ, RNN ਬਿੱਟ, ਆਦਿ) ਨੂੰ ਤੇਜ਼ ਕਰਦਾ ਹੈ ( NVIDIA cuDNN ਦਸਤਾਵੇਜ਼ )
-
NCCL ਮਲਟੀ-GPU ਸਿਖਲਾਈ ਲਈ ਤੇਜ਼ "GPU-ਤੋਂ-GPU ਸੰਚਾਰ" ਲਾਇਬ੍ਰੇਰੀ ਹੈ ( NCCL ਸੰਖੇਪ ਜਾਣਕਾਰੀ )
ਜੇਕਰ ਤੁਸੀਂ ਮਲਟੀ-ਜੀਪੀਯੂ ਸਿਖਲਾਈ ਲੈਂਦੇ ਹੋ, ਤਾਂ ਐਨਸੀਸੀਐਲ ਤੁਹਾਡਾ ਸਭ ਤੋਂ ਵਧੀਆ ਦੋਸਤ ਹੈ - ਅਤੇ, ਕਈ ਵਾਰ, ਤੁਹਾਡਾ ਸੁਭਾਅ ਵਾਲਾ ਰੂਮਮੇਟ। ( ਐਨਸੀਸੀਐਲ ਸੰਖੇਪ ਜਾਣਕਾਰੀ )
6) ਤੁਹਾਡੀ ਪਹਿਲੀ GPU ਸਿਖਲਾਈ ਦੌੜ (ਪਾਈਟੋਰਚ ਉਦਾਹਰਣ ਮਾਨਸਿਕਤਾ) ✅🔥
AI ਸਿਖਲਾਈ ਲਈ NVIDIA GPU ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ ਇਸ ਬਾਰੇ ਜਾਣਨ ਲਈ , ਤੁਹਾਨੂੰ ਪਹਿਲਾਂ ਇੱਕ ਵੱਡੇ ਪ੍ਰੋਜੈਕਟ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਤੁਹਾਨੂੰ ਇੱਕ ਛੋਟੀ ਜਿਹੀ ਸਫਲਤਾ ਦੀ ਲੋੜ ਹੈ।
ਮੁੱਖ ਵਿਚਾਰ:
-
ਡਿਵਾਈਸ ਦਾ ਪਤਾ ਲਗਾਓ
-
ਮਾਡਲ ਨੂੰ GPU ਵਿੱਚ ਭੇਜੋ
-
ਟੈਂਸਰਾਂ ਨੂੰ GPU ਵਿੱਚ ਭੇਜੋ
-
ਉੱਥੇ ਫਾਰਵਰਡ ਪਾਸ ਚੱਲਣ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ ( PyTorch CUDA ਡੌਕਸ )
ਉਹ ਚੀਜ਼ਾਂ ਜਿਨ੍ਹਾਂ ਦੀ ਮੈਂ ਹਮੇਸ਼ਾ ਪਹਿਲਾਂ ਜਾਂਚ ਕਰਦਾ ਹਾਂ:
-
torch.cuda.is_available()True( torch.cuda.is_available ) ਵਾਪਸ ਕਰਦਾ ਹੈ -
next(model.parameters()).devicecudaਦਿਖਾਉਂਦਾ ਹੈ ( PyTorch ਫੋਰਮ: CUDA 'ਤੇ ਮਾਡਲ ਦੀ ਜਾਂਚ ਕਰੋ ) -
ਇੱਕ ਸਿੰਗਲ ਬੈਚ ਫਾਰਵਰਡ ਪਾਸ ਗਲਤੀ ਨਹੀਂ ਕਰਦਾ।
-
ਜਦੋਂ ਤੁਸੀਂ ਸਿਖਲਾਈ ਸ਼ੁਰੂ ਕਰਦੇ ਹੋ ਤਾਂ GPU ਮੈਮੋਰੀ ਵੱਧ ਜਾਂਦੀ ਹੈ (ਇੱਕ ਚੰਗਾ ਸੰਕੇਤ!) ( NVIDIA nvidia-smi docs )
ਆਮ "ਇਹ ਹੌਲੀ ਕਿਉਂ ਹੈ?" gotchas
-
ਤੁਹਾਡਾ ਡਾਟਾਲੋਡਰ ਬਹੁਤ ਹੌਲੀ ਹੈ (GPU ਨਿਸ਼ਕਿਰਿਆ ਉਡੀਕ ਕਰ ਰਿਹਾ ਹੈ) ( PyTorch ਪ੍ਰਦਰਸ਼ਨ ਟਿਊਨਿੰਗ ਗਾਈਡ )
-
ਤੁਸੀਂ ਡੇਟਾ ਨੂੰ GPU ਵਿੱਚ ਤਬਦੀਲ ਕਰਨਾ ਭੁੱਲ ਗਏ ਹੋ (ਓਹ)
-
ਬੈਚ ਦਾ ਆਕਾਰ ਛੋਟਾ ਹੈ (GPU ਘੱਟ ਵਰਤਿਆ ਗਿਆ)
-
ਤੁਸੀਂ ਸਿਖਲਾਈ ਪੜਾਅ ਵਿੱਚ ਭਾਰੀ CPU ਪ੍ਰੀਪ੍ਰੋਸੈਸਿੰਗ ਕਰ ਰਹੇ ਹੋ।
ਨਾਲ ਹੀ, ਹਾਂ, ਜੇਕਰ ਰੁਕਾਵਟ ਡੇਟਾ ਹੈ ਤਾਂ ਤੁਹਾਡਾ GPU ਅਕਸਰ "ਇੰਨਾ ਵਿਅਸਤ ਨਹੀਂ" ਦਿਖਾਈ ਦੇਵੇਗਾ। ਇਹ ਇੱਕ ਰੇਸ ਕਾਰ ਡਰਾਈਵਰ ਨੂੰ ਨੌਕਰੀ 'ਤੇ ਰੱਖਣ ਅਤੇ ਫਿਰ ਉਹਨਾਂ ਨੂੰ ਹਰ ਲੈਪ ਵਿੱਚ ਬਾਲਣ ਦੀ ਉਡੀਕ ਕਰਨ ਵਾਂਗ ਹੈ।.
7) VRAM ਗੇਮ - ਬੈਚ ਦਾ ਆਕਾਰ, ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ, ਅਤੇ ਫਟਣਾ ਨਹੀਂ 💥🧳
ਜ਼ਿਆਦਾਤਰ ਵਿਹਾਰਕ ਸਿਖਲਾਈ ਸਮੱਸਿਆਵਾਂ ਯਾਦਦਾਸ਼ਤ 'ਤੇ ਨਿਰਭਰ ਕਰਦੀਆਂ ਹਨ। ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਹੁਨਰ ਸਿੱਖਦੇ ਹੋ, ਤਾਂ VRAM ਪ੍ਰਬੰਧਨ ਸਿੱਖੋ।.
ਯਾਦਦਾਸ਼ਤ ਦੀ ਵਰਤੋਂ ਘਟਾਉਣ ਦੇ ਤੇਜ਼ ਤਰੀਕੇ
-
ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ (FP16/BF16)
-
ਆਮ ਤੌਰ 'ਤੇ ਵੱਡੀ ਸਪੀਡ ਬੂਸਟ ਵੀ। ਜਿੱਤ-ਜਿੱਤ 😌 ( ਪਾਈਟੋਰਚ ਏਐਮਪੀ ਡੌਕਸ , ਟੈਂਸਰਫਲੋ ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਗਾਈਡ )
-
-
ਗਰੇਡੀਐਂਟ ਇਕੱਠਾ ਹੋਣਾ
-
ਕਈ ਪੜਾਵਾਂ 'ਤੇ ਗਰੇਡੀਐਂਟ ਇਕੱਠੇ ਕਰਕੇ ਵੱਡੇ ਬੈਚ ਆਕਾਰ ਦੀ ਨਕਲ ਕਰੋ ( ਟ੍ਰਾਂਸਫਾਰਮਰ ਸਿਖਲਾਈ ਦਸਤਾਵੇਜ਼ (ਗਰੈਡੀਐਂਟ ਇਕੱਠਾ, fp16) )
-
-
ਛੋਟੀ ਕ੍ਰਮ ਲੰਬਾਈ / ਕ੍ਰੌਪ ਆਕਾਰ
-
ਬੇਰਹਿਮ ਪਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ
-
-
ਐਕਟੀਵੇਸ਼ਨ ਚੈੱਕਪੁਆਇੰਟਿੰਗ
-
ਮੈਮੋਰੀ ਲਈ ਵਪਾਰ ਗਣਨਾ (ਬੈਕਵਰਡ ਦੌਰਾਨ ਐਕਟੀਵੇਸ਼ਨਾਂ ਨੂੰ ਮੁੜ ਗਣਨਾ ਕਰੋ) ( torch.utils.checkpoint )
-
-
ਇੱਕ ਹਲਕਾ ਆਪਟੀਮਾਈਜ਼ਰ ਵਰਤੋ
-
ਕੁਝ ਆਪਟੀਮਾਈਜ਼ਰ ਵਾਧੂ ਸਥਿਤੀਆਂ ਨੂੰ ਸਟੋਰ ਕਰਦੇ ਹਨ ਜੋ VRAM ਨੂੰ ਚਬਾਉਂਦੀਆਂ ਹਨ।
-
"ਮੇਰੇ ਰੁਕਣ ਤੋਂ ਬਾਅਦ ਵੀ VRAM ਕਿਉਂ ਭਰਿਆ ਰਹਿੰਦਾ ਹੈ?" ਵਾਲਾ ਪਲ
ਫਰੇਮਵਰਕ ਅਕਸਰ ਮੈਮੋਰੀ ਨੂੰ ਕੈਸ਼ ਕਰਦੇ ਹਨ । ਇਹ ਆਮ ਗੱਲ ਹੈ। ਇਹ ਡਰਾਉਣਾ ਲੱਗਦਾ ਹੈ ਪਰ ਇਹ ਹਮੇਸ਼ਾ ਲੀਕ ਨਹੀਂ ਹੁੰਦਾ। ਤੁਸੀਂ ਪੈਟਰਨਾਂ ਨੂੰ ਪੜ੍ਹਨਾ ਸਿੱਖਦੇ ਹੋ। ( PyTorch CUDA ਅਰਥ ਸ਼ਾਸਤਰ: ਕੈਸ਼ਿੰਗ ਐਲੋਕੇਟਰ )
ਵਿਹਾਰਕ ਆਦਤ:
-
ਘੜੀ ਅਲਾਟ ਕੀਤੀ ਗਈ ਬਨਾਮ ਰਾਖਵੀਂ ਮੈਮੋਰੀ (ਫਰੇਮਵਰਕ-ਵਿਸ਼ੇਸ਼) ( PyTorch CUDA ਅਰਥ ਸ਼ਾਸਤਰ: ਕੈਸ਼ਿੰਗ ਅਲਾਟ ਕਰਨ ਵਾਲਾ )
-
ਪਹਿਲੇ ਡਰਾਉਣੇ ਨੰਬਰ ਤੋਂ ਘਬਰਾਓ ਨਾ 😅
8) GPU ਨੂੰ ਅਸਲ ਵਿੱਚ ਕੰਮ ਕਰਨ ਦਿਓ - ਪ੍ਰਦਰਸ਼ਨ ਟਿਊਨਿੰਗ ਜੋ ਤੁਹਾਡੇ ਸਮੇਂ ਦੇ ਯੋਗ ਹੈ 🏎️
"GPU ਸਿਖਲਾਈ ਨੂੰ ਕੰਮ ਕਰਨਾ" ਪਹਿਲਾ ਕਦਮ ਹੈ। ਇਸਨੂੰ ਜਲਦੀ ਦੂਜਾ ਕਦਮ ਹੈ।
ਉੱਚ-ਪ੍ਰਭਾਵ ਅਨੁਕੂਲਨ
-
ਬੈਚ ਦਾ ਆਕਾਰ ਵਧਾਓ (ਜਦੋਂ ਤੱਕ ਦਰਦ ਨਾ ਹੋਵੇ, ਫਿਰ ਥੋੜ੍ਹਾ ਜਿਹਾ ਪਿੱਛੇ ਹਟੋ)
-
ਪਿੰਨ ਕੀਤੀ ਮੈਮੋਰੀ ਦੀ ਵਰਤੋਂ ਕਰੋ (ਹੋਸਟ-ਟੂ-ਡਿਵਾਈਸ ਕਾਪੀਆਂ ਤੇਜ਼) ( ਪਾਈਟੋਰਚ ਪਰਫਾਰਮੈਂਸ ਟਿਊਨਿੰਗ ਗਾਈਡ , ਪਾਈਟੋਰਚ ਪਿੰਨ_ਮੈਮੋਰੀ/ਨਾਨ_ਬਲਾਕਿੰਗ ਟਿਊਟੋਰਿਅਲ )
-
ਡਾਟਾਲੋਡਰ ਵਰਕਰਾਂ ਨੂੰ ਵਧਾਓ (ਸਾਵਧਾਨ ਰਹੋ, ਬਹੁਤ ਜ਼ਿਆਦਾ ਉਲਟਾ ਅਸਰ ਪਾ ਸਕਦੇ ਹਨ) ( ਪਾਈਟੋਰਚ ਪਰਫਾਰਮੈਂਸ ਟਿਊਨਿੰਗ ਗਾਈਡ )
-
ਬੈਚਾਂ ਨੂੰ ਪ੍ਰੀਫੈਚ ਕਰੋ ਤਾਂ ਜੋ GPU ਵਿਹਲਾ ਨਾ ਰਹੇ।
-
ਜਦੋਂ ਉਪਲਬਧ ਹੋਵੇ ਤਾਂ ਫਿਊਜ਼ਡ ਓਪਸ / ਅਨੁਕੂਲਿਤ ਕਰਨਲ ਵਰਤੋ।
-
ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਦੀ ਵਰਤੋਂ ਕਰੋ (ਦੁਬਾਰਾ, ਇਹ ਬਹੁਤ ਵਧੀਆ ਹੈ) ( PyTorch AMP ਦਸਤਾਵੇਜ਼ )
ਸਭ ਤੋਂ ਵੱਧ ਅਣਦੇਖੀ ਕੀਤੀ ਗਈ ਰੁਕਾਵਟ
ਤੁਹਾਡੀ ਸਟੋਰੇਜ ਅਤੇ ਪ੍ਰੀਪ੍ਰੋਸੈਸਿੰਗ ਪਾਈਪਲਾਈਨ। ਜੇਕਰ ਤੁਹਾਡਾ ਡੇਟਾਸੈੱਟ ਵੱਡਾ ਹੈ ਅਤੇ ਹੌਲੀ ਡਿਸਕ 'ਤੇ ਸਟੋਰ ਕੀਤਾ ਗਿਆ ਹੈ, ਤਾਂ ਤੁਹਾਡਾ GPU ਇੱਕ ਮਹਿੰਗਾ ਸਪੇਸ ਹੀਟਰ ਬਣ ਜਾਂਦਾ ਹੈ। ਇੱਕ ਬਹੁਤ ਹੀ ਉੱਨਤ, ਬਹੁਤ ਚਮਕਦਾਰ ਸਪੇਸ ਹੀਟਰ।.
ਇਸ ਤੋਂ ਇਲਾਵਾ, ਇੱਕ ਛੋਟਾ ਜਿਹਾ ਇਕਬਾਲ: ਮੈਂ ਇੱਕ ਮਾਡਲ ਨੂੰ ਇੱਕ ਘੰਟੇ ਲਈ "ਅਨੁਕੂਲ" ਕੀਤਾ ਪਰ ਇਹ ਅਹਿਸਾਸ ਹੋਇਆ ਕਿ ਲੌਗਿੰਗ ਹੀ ਰੁਕਾਵਟ ਸੀ। ਬਹੁਤ ਜ਼ਿਆਦਾ ਪ੍ਰਿੰਟਿੰਗ ਸਿਖਲਾਈ ਨੂੰ ਹੌਲੀ ਕਰ ਸਕਦੀ ਹੈ। ਹਾਂ, ਇਹ ਕਰ ਸਕਦਾ ਹੈ।.
9) ਮਲਟੀ-ਜੀਪੀਯੂ ਸਿਖਲਾਈ - ਡੀਡੀਪੀ, ਐਨਸੀਸੀਐਲ, ਅਤੇ ਬਿਨਾਂ ਕਿਸੇ ਹਫੜਾ-ਦਫੜੀ ਦੇ ਸਕੇਲਿੰਗ 🧩🤝
ਇੱਕ ਵਾਰ ਜਦੋਂ ਤੁਸੀਂ ਵਧੇਰੇ ਸਪੀਡ ਜਾਂ ਵੱਡੇ ਮਾਡਲ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਮਲਟੀ-ਜੀਪੀਯੂ ਜਾਂਦੇ ਹੋ। ਇਹ ਉਹ ਥਾਂ ਹੈ ਜਿੱਥੇ ਚੀਜ਼ਾਂ ਮਸਾਲੇਦਾਰ ਹੋ ਜਾਂਦੀਆਂ ਹਨ।.
ਆਮ ਤਰੀਕੇ
-
ਡੇਟਾ ਪੈਰਲਲ (DDP)
-
GPUs ਵਿੱਚ ਬੈਚਾਂ ਨੂੰ ਵੰਡੋ, ਗਰੇਡੀਐਂਟ ਸਿੰਕ ਕਰੋ
-
ਆਮ ਤੌਰ 'ਤੇ ਡਿਫਾਲਟ "ਚੰਗਾ" ਵਿਕਲਪ ( PyTorch DDP docs )
-
-
ਮਾਡਲ ਪੈਰਲਲ / ਟੈਂਸਰ ਪੈਰਲਲ
-
ਮਾਡਲ ਨੂੰ GPUs ਵਿੱਚ ਵੰਡੋ (ਬਹੁਤ ਵੱਡੇ ਮਾਡਲਾਂ ਲਈ)
-
-
ਪਾਈਪਲਾਈਨ ਸਮਾਨਾਂਤਰ
-
ਮਾਡਲ ਲੇਅਰਾਂ ਨੂੰ ਪੜਾਵਾਂ ਵਿੱਚ ਵੰਡੋ (ਇੱਕ ਅਸੈਂਬਲੀ ਲਾਈਨ ਵਾਂਗ, ਪਰ ਟੈਂਸਰਾਂ ਲਈ)
-
ਜੇਕਰ ਤੁਸੀਂ ਸ਼ੁਰੂਆਤ ਕਰ ਰਹੇ ਹੋ, ਤਾਂ DDP-ਸ਼ੈਲੀ ਦੀ ਸਿਖਲਾਈ ਤੁਹਾਡੇ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਥਾਂ ਹੈ। ( PyTorch DDP ਟਿਊਟੋਰਿਅਲ )
ਵਿਹਾਰਕ ਮਲਟੀ-ਜੀਪੀਯੂ ਸੁਝਾਅ
-
ਯਕੀਨੀ ਬਣਾਓ ਕਿ GPU ਵੀ ਇਸੇ ਤਰ੍ਹਾਂ ਸਮਰੱਥ ਹਨ (ਮਿਕਸਿੰਗ ਕੈਨ ਬਾਟਲਨੈਕ)
-
ਵਾਚ ਇੰਟਰਕਨੈਕਟ: ਸਿੰਕ-ਹੈਵੀ ਵਰਕਲੋਡ ਲਈ NVLink ਬਨਾਮ PCIe ਮਾਇਨੇ ਰੱਖਦਾ ਹੈ ( NVIDIA NVLink ਸੰਖੇਪ ਜਾਣਕਾਰੀ , NVIDIA NVLink ਦਸਤਾਵੇਜ਼ )
-
ਪ੍ਰਤੀ-GPU ਬੈਚ ਆਕਾਰ ਸੰਤੁਲਿਤ ਰੱਖੋ
-
CPU ਅਤੇ ਸਟੋਰੇਜ ਨੂੰ ਨਜ਼ਰਅੰਦਾਜ਼ ਨਾ ਕਰੋ - ਮਲਟੀ-GPU ਡੇਟਾ ਰੁਕਾਵਟਾਂ ਨੂੰ ਵਧਾ ਸਕਦਾ ਹੈ
ਅਤੇ ਹਾਂ, NCCL ਦੀਆਂ ਗਲਤੀਆਂ "ਹੁਣ ਕਿਉਂ" ਵਿੱਚ ਲਪੇਟੀ ਹੋਈ ਇੱਕ ਰਹੱਸ ਵਿੱਚ ਲਪੇਟੀ ਹੋਈ ਬੁਝਾਰਤ ਵਾਂਗ ਮਹਿਸੂਸ ਹੋ ਸਕਦੀਆਂ ਹਨ। ਤੁਸੀਂ ਸਰਾਪਿਆ ਨਹੀਂ ਹੋ। ਸ਼ਾਇਦ। ( NCCL ਸੰਖੇਪ ਜਾਣਕਾਰੀ )
10) ਨਿਗਰਾਨੀ ਅਤੇ ਪ੍ਰੋਫਾਈਲਿੰਗ - ਉਹ ਬੇਦਾਗ ਚੀਜ਼ਾਂ ਜੋ ਤੁਹਾਡੇ ਘੰਟੇ ਬਚਾਉਂਦੀਆਂ ਹਨ 📈🧯
ਤੁਹਾਨੂੰ ਸ਼ੁਰੂਆਤ ਕਰਨ ਲਈ ਫੈਂਸੀ ਡੈਸ਼ਬੋਰਡਾਂ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ। ਤੁਹਾਨੂੰ ਧਿਆਨ ਦੇਣ ਦੀ ਲੋੜ ਹੈ ਕਿ ਜਦੋਂ ਕੁਝ ਬੰਦ ਹੁੰਦਾ ਹੈ।.
ਦੇਖਣ ਲਈ ਮੁੱਖ ਸੰਕੇਤ
-
GPU ਉਪਯੋਗਤਾ : ਕੀ ਇਹ ਲਗਾਤਾਰ ਉੱਚਾ ਹੈ ਜਾਂ ਸਪਾਈਕੀ?
-
ਯਾਦਦਾਸ਼ਤ ਦੀ ਵਰਤੋਂ : ਸਥਿਰ, ਚੜ੍ਹਾਈ, ਜਾਂ ਅਜੀਬ?
-
ਪਾਵਰ ਡਰਾਅ : ਅਸਧਾਰਨ ਤੌਰ 'ਤੇ ਘੱਟ ਹੋਣ ਦਾ ਮਤਲਬ ਘੱਟ ਵਰਤੋਂ ਹੋ ਸਕਦਾ ਹੈ।
-
ਤਾਪਮਾਨ : ਲਗਾਤਾਰ ਉੱਚ ਤਾਪਮਾਨ ਪ੍ਰਦਰਸ਼ਨ ਨੂੰ ਘਟਾ ਸਕਦਾ ਹੈ।
-
CPU ਵਰਤੋਂ : ਡਾਟਾ ਪਾਈਪਲਾਈਨ ਮੁੱਦੇ ਇੱਥੇ ਦਿਖਾਈ ਦਿੰਦੇ ਹਨ ( PyTorch ਪ੍ਰਦਰਸ਼ਨ ਟਿਊਨਿੰਗ ਗਾਈਡ )
ਪ੍ਰੋਫਾਈਲਿੰਗ ਮਾਨਸਿਕਤਾ (ਸਧਾਰਨ ਸੰਸਕਰਣ)
-
ਜੇਕਰ GPU ਘੱਟ ਉਪਯੋਗਤਾ ਵਾਲਾ ਹੈ - ਡੇਟਾ ਜਾਂ CPU ਰੁਕਾਵਟ
-
ਜੇਕਰ GPU ਉੱਚਾ ਹੈ ਪਰ ਹੌਲੀ ਹੈ - ਕਰਨਲ ਦੀ ਅਕੁਸ਼ਲਤਾ, ਸ਼ੁੱਧਤਾ, ਜਾਂ ਮਾਡਲ ਆਰਕੀਟੈਕਚਰ
-
ਜੇਕਰ ਸਿਖਲਾਈ ਦੀ ਗਤੀ ਬੇਤਰਤੀਬ ਤੌਰ 'ਤੇ ਘੱਟ ਜਾਂਦੀ ਹੈ - ਥਰਮਲ ਥ੍ਰੋਟਲਿੰਗ, ਪਿਛੋਕੜ ਪ੍ਰਕਿਰਿਆਵਾਂ, I/O ਹਿਚਕੀ
ਮੈਨੂੰ ਪਤਾ ਹੈ, ਨਿਗਰਾਨੀ ਕਰਨਾ ਮਜ਼ੇਦਾਰ ਨਹੀਂ ਲੱਗਦਾ। ਪਰ ਇਹ ਫਲੌਸਿੰਗ ਵਰਗਾ ਹੈ। ਤੰਗ ਕਰਨ ਵਾਲਾ, ਫਿਰ ਅਚਾਨਕ ਤੁਹਾਡੀ ਜ਼ਿੰਦਗੀ ਵਿੱਚ ਸੁਧਾਰ ਹੋ ਜਾਂਦਾ ਹੈ।.
11) ਸਮੱਸਿਆ ਨਿਪਟਾਰਾ - ਆਮ ਸ਼ੱਕੀ (ਅਤੇ ਘੱਟ ਆਮ) 🧰😵💫
ਇਹ ਭਾਗ ਮੂਲ ਰੂਪ ਵਿੱਚ ਹੈ: "ਉਹੀ ਪੰਜ ਮੁੱਦੇ, ਹਮੇਸ਼ਾ ਲਈ।"
ਮੁੱਦਾ: CUDA ਦੀ ਮੈਮੋਰੀ ਖਤਮ ਹੋ ਗਈ ਹੈ
ਫਿਕਸ:
-
ਬੈਚ ਦਾ ਆਕਾਰ ਘਟਾਓ
-
ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਦੀ ਵਰਤੋਂ ਕਰੋ ( PyTorch AMP ਡੌਕਸ , TensorFlow ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਗਾਈਡ )
-
ਗਰੇਡੀਐਂਟ ਇਕੱਠਾ ਕਰਨਾ ( ਟ੍ਰਾਂਸਫਾਰਮਰ ਸਿਖਲਾਈ ਦਸਤਾਵੇਜ਼ (ਗਰੇਡੀਐਂਟ ਇਕੱਠਾ ਕਰਨਾ, fp16) )
-
ਚੈੱਕਪੁਆਇੰਟ ਐਕਟੀਵੇਸ਼ਨ ( torch.utils.checkpoint )
-
ਹੋਰ GPU ਪ੍ਰਕਿਰਿਆਵਾਂ ਬੰਦ ਕਰੋ
ਮੁੱਦਾ: ਸਿਖਲਾਈ ਗਲਤੀ ਨਾਲ CPU 'ਤੇ ਚੱਲਦੀ ਹੈ
ਫਿਕਸ:
-
cudaਵਿੱਚ ਭੇਜਿਆ ਗਿਆ ਹੈ -
cudaਵਿੱਚ ਭੇਜਿਆ ਗਿਆ ਹੈ -
ਫਰੇਮਵਰਕ ਡਿਵਾਈਸ ਕੌਂਫਿਗ ਦੀ ਜਾਂਚ ਕਰੋ ( PyTorch CUDA ਡੌਕਸ )
ਮੁੱਦਾ: ਅਜੀਬ ਕਰੈਸ਼ ਜਾਂ ਗੈਰ-ਕਾਨੂੰਨੀ ਮੈਮੋਰੀ ਪਹੁੰਚ
ਫਿਕਸ:
-
ਡਰਾਈਵਰ + ਰਨਟਾਈਮ ਅਨੁਕੂਲਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ ( ਪਾਈਟੋਰਚ ਸ਼ੁਰੂ ਕਰੋ (CUDA ਚੋਣਕਾਰ) , ਟੈਂਸਰਫਲੋ ਇੰਸਟਾਲ (ਪਾਈਪ) )
-
ਇੱਕ ਸਾਫ਼ ਵਾਤਾਵਰਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰੋ
-
ਕਸਟਮ ਓਪਸ ਘਟਾਓ
-
ਦੁਬਾਰਾ ਪੈਦਾ ਕਰਨ ਲਈ ਨਿਰਧਾਰਕ-ਇਸ਼ ਸੈਟਿੰਗਾਂ ਨਾਲ ਦੁਬਾਰਾ ਚਲਾਓ
ਮੁੱਦਾ: ਉਮੀਦ ਨਾਲੋਂ ਹੌਲੀ
ਫਿਕਸ:
-
ਡਾਟਾਲੋਡਰ ਥਰੂਪੁੱਟ ਦੀ ਜਾਂਚ ਕਰੋ ( ਪਾਈਟੋਰਚ ਪਰਫਾਰਮੈਂਸ ਟਿਊਨਿੰਗ ਗਾਈਡ )
-
ਬੈਚ ਦਾ ਆਕਾਰ ਵਧਾਓ
-
ਲਾਗਿੰਗ ਘਟਾਓ
-
ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ ( PyTorch AMP ਡੌਕਸ )
-
ਪ੍ਰੋਫਾਈਲ ਸਟੈਪ ਟਾਈਮ ਬ੍ਰੇਕਡਾਊਨ
ਸਮੱਸਿਆ: ਮਲਟੀ-ਜੀਪੀਯੂ ਹੈਂਗ ਹੋ ਰਿਹਾ ਹੈ
ਫਿਕਸ:
-
ਸਹੀ ਬੈਕਐਂਡ ਸੈਟਿੰਗਾਂ ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ ( PyTorch ਵੰਡੇ ਗਏ ਦਸਤਾਵੇਜ਼ )
-
NCCL ਵਾਤਾਵਰਣ ਸੰਰਚਨਾਵਾਂ ਦੀ ਜਾਂਚ ਕਰੋ (ਸਾਵਧਾਨੀ ਨਾਲ) ( NCCL ਸੰਖੇਪ ਜਾਣਕਾਰੀ )
-
ਪਹਿਲਾਂ ਸਿੰਗਲ GPU ਦੀ ਜਾਂਚ ਕਰੋ
-
ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਨੈੱਟਵਰਕ / ਇੰਟਰਕਨੈਕਟ ਸਿਹਤਮੰਦ ਹੈ
ਛੋਟੀ ਜਿਹੀ ਬੈਕਟ੍ਰੈਕਿੰਗ ਨੋਟ: ਕਈ ਵਾਰ ਫਿਕਸ ਅਸਲ ਵਿੱਚ ਰੀਬੂਟ ਹੁੰਦਾ ਹੈ। ਇਹ ਮੂਰਖਤਾ ਭਰਿਆ ਲੱਗਦਾ ਹੈ। ਇਹ ਕੰਮ ਕਰਦਾ ਹੈ। ਕੰਪਿਊਟਰ ਅਜਿਹੇ ਹੀ ਹੁੰਦੇ ਹਨ।.
12) ਲਾਗਤ ਅਤੇ ਵਿਹਾਰਕਤਾ - ਬਿਨਾਂ ਜ਼ਿਆਦਾ ਸੋਚੇ ਸਹੀ NVIDIA GPU ਅਤੇ ਸੈੱਟਅੱਪ ਚੁਣਨਾ 💸🧠
ਹਰ ਪ੍ਰੋਜੈਕਟ ਨੂੰ ਸਭ ਤੋਂ ਵੱਡੇ GPU ਦੀ ਲੋੜ ਨਹੀਂ ਹੁੰਦੀ। ਕਈ ਵਾਰ ਤੁਹਾਨੂੰ ਕਾਫ਼ੀ GPU ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।
ਜੇਕਰ ਤੁਸੀਂ ਦਰਮਿਆਨੇ ਮਾਡਲਾਂ ਨੂੰ ਠੀਕ ਕਰ ਰਹੇ ਹੋ
-
VRAM ਅਤੇ ਸਥਿਰਤਾ ਨੂੰ ਤਰਜੀਹ ਦਿਓ
-
ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਬਹੁਤ ਮਦਦ ਕਰਦੀ ਹੈ ( PyTorch AMP ਡੌਕਸ , TensorFlow ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਗਾਈਡ )
-
ਤੁਸੀਂ ਅਕਸਰ ਇੱਕ ਮਜ਼ਬੂਤ GPU ਨਾਲ ਬਚ ਸਕਦੇ ਹੋ
ਜੇਕਰ ਤੁਸੀਂ ਸ਼ੁਰੂ ਤੋਂ ਵੱਡੇ ਮਾਡਲਾਂ ਨੂੰ ਸਿਖਲਾਈ ਦੇ ਰਹੇ ਹੋ
-
ਤੁਹਾਨੂੰ ਕਈ GPU ਜਾਂ ਬਹੁਤ ਵੱਡੇ VRAM ਚਾਹੀਦੇ ਹੋਣਗੇ।
-
ਤੁਹਾਨੂੰ NVLink ਅਤੇ ਸੰਚਾਰ ਗਤੀ ਦੀ ਪਰਵਾਹ ਹੋਵੇਗੀ ( NVIDIA NVLink ਸੰਖੇਪ ਜਾਣਕਾਰੀ , NCCL ਸੰਖੇਪ ਜਾਣਕਾਰੀ )
-
ਤੁਸੀਂ ਸ਼ਾਇਦ ਮੈਮੋਰੀ ਆਪਟੀਮਾਈਜ਼ਰ (ਜ਼ੀਰੋ, ਆਫਲੋਡ, ਆਦਿ) ਦੀ ਵਰਤੋਂ ਕਰੋਗੇ ( ਡੀਪਸਪੀਡ ਜ਼ੀਰੋ ਡੌਕਸ , ਮਾਈਕ੍ਰੋਸਾਫਟ ਰਿਸਰਚ: ਜ਼ੀਰੋ/ਡੀਪਸਪੀਡ )
ਜੇਕਰ ਤੁਸੀਂ ਪ੍ਰਯੋਗ ਕਰ ਰਹੇ ਹੋ
-
ਤੁਸੀਂ ਤੇਜ਼ ਦੁਹਰਾਓ ਚਾਹੁੰਦੇ ਹੋ
-
ਆਪਣੇ ਸਾਰੇ ਪੈਸੇ GPU 'ਤੇ ਖਰਚ ਨਾ ਕਰੋ ਅਤੇ ਫਿਰ ਸਟੋਰੇਜ ਅਤੇ RAM ਦੀ ਭੁੱਖ ਨਾ ਮਾਰੋ।
-
ਇੱਕ ਸੰਤੁਲਿਤ ਪ੍ਰਣਾਲੀ ਇੱਕ ਇਕਪਾਸੜ ਪ੍ਰਣਾਲੀ ਨੂੰ ਮਾਤ ਦਿੰਦੀ ਹੈ (ਜ਼ਿਆਦਾਤਰ ਦਿਨ)
ਅਤੇ ਸੱਚਾਈ ਵਿੱਚ, ਤੁਸੀਂ "ਸੰਪੂਰਨ" ਹਾਰਡਵੇਅਰ ਵਿਕਲਪਾਂ ਦਾ ਪਿੱਛਾ ਕਰਦੇ ਹੋਏ ਹਫ਼ਤੇ ਬਰਬਾਦ ਕਰ ਸਕਦੇ ਹੋ। ਕੁਝ ਕੰਮ ਕਰਨ ਯੋਗ ਬਣਾਓ, ਮਾਪੋ, ਅਤੇ ਫਿਰ ਵਿਵਸਥਿਤ ਕਰੋ। ਅਸਲ ਦੁਸ਼ਮਣ ਫੀਡਬੈਕ ਲੂਪ ਨਾ ਹੋਣਾ ਹੈ।.
ਸਮਾਪਤੀ ਨੋਟ - ਬਿਨਾਂ ਦਿਮਾਗ ਗੁਆਏ AI ਸਿਖਲਾਈ ਲਈ NVIDIA GPU ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ 😌✅
ਜੇਕਰ ਤੁਸੀਂ AI ਸਿਖਲਾਈ ਲਈ NVIDIA GPU ਦੀ ਵਰਤੋਂ ਕਿਵੇਂ ਕਰੀਏ , ਤਾਂ ਇਹ ਲਓ:
-
ਯਕੀਨੀ ਬਣਾਓ ਕਿ
nvidia-smiਪਹਿਲਾਂ ਕੰਮ ਕਰਦਾ ਹੈ ( NVIDIA nvidia-smi docs ) -
ਇੱਕ ਸਾਫ਼ ਸਾਫਟਵੇਅਰ ਮਾਰਗ ਚੁਣੋ (ਫਰੇਮਵਰਕ-ਬੰਡਲਡ CUDA ਅਕਸਰ ਸਭ ਤੋਂ ਆਸਾਨ ਹੁੰਦਾ ਹੈ) ( PyTorch ਸ਼ੁਰੂ ਕਰੋ (CUDA ਚੋਣਕਾਰ) )
-
ਸਕੇਲਿੰਗ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਛੋਟੇ ਜਿਹੇ GPU ਸਿਖਲਾਈ ਰਨ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰੋ ( torch.cuda.is_available )
-
VRAM ਨੂੰ ਇਸ ਤਰ੍ਹਾਂ ਪ੍ਰਬੰਧਿਤ ਕਰੋ ਜਿਵੇਂ ਇਹ ਇੱਕ ਸੀਮਤ ਪੈਂਟਰੀ ਸ਼ੈਲਫ ਹੋਵੇ
-
ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਦੀ ਵਰਤੋਂ ਜਲਦੀ ਕਰੋ - ਇਹ ਸਿਰਫ਼ "ਐਡਵਾਂਸਡ ਸਟਫ" ਨਹੀਂ ਹੈ ( ਪਾਈਟੋਰਚ ਏਐਮਪੀ ਡੌਕਸ , ਟੈਂਸਰਫਲੋ ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਗਾਈਡ )
-
PyTorch Performance Tuning Guide ) ਨੂੰ ਦੋਸ਼ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਡਾਟਾਲੋਡਰ ਅਤੇ I/O 'ਤੇ ਸ਼ੱਕ ਕਰੋ।
-
ਮਲਟੀ-ਜੀਪੀਯੂ ਸ਼ਕਤੀਸ਼ਾਲੀ ਹੈ ਪਰ ਜਟਿਲਤਾ ਜੋੜਦਾ ਹੈ - ਹੌਲੀ-ਹੌਲੀ ਸਕੇਲ ਕਰਦਾ ਹੈ ( ਪਾਈਟੋਰਚ ਡੀਡੀਪੀ ਡੌਕਸ , ਐਨਸੀਸੀਐਲ ਸੰਖੇਪ ਜਾਣਕਾਰੀ )
-
ਵਰਤੋਂ ਅਤੇ ਤਾਪਮਾਨ ਦੀ ਨਿਗਰਾਨੀ ਕਰੋ ਤਾਂ ਜੋ ਸਮੱਸਿਆਵਾਂ ਜਲਦੀ ਦਿਖਾਈ ਦੇਣ ( NVIDIA nvidia-smi docs )
NVIDIA GPUs 'ਤੇ ਸਿਖਲਾਈ ਉਹਨਾਂ ਹੁਨਰਾਂ ਵਿੱਚੋਂ ਇੱਕ ਹੈ ਜੋ ਡਰਾਉਣਾ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ, ਫਿਰ ਅਚਾਨਕ ਇਹ ਬਸ...ਆਮ ਹੋ ਜਾਂਦਾ ਹੈ। ਜਿਵੇਂ ਗੱਡੀ ਚਲਾਉਣਾ ਸਿੱਖਣਾ। ਪਹਿਲਾਂ ਤਾਂ ਸਭ ਕੁਝ ਉੱਚਾ ਅਤੇ ਉਲਝਣ ਵਾਲਾ ਹੁੰਦਾ ਹੈ ਅਤੇ ਤੁਸੀਂ ਪਹੀਏ ਨੂੰ ਬਹੁਤ ਜ਼ੋਰ ਨਾਲ ਫੜਦੇ ਹੋ। ਫਿਰ ਇੱਕ ਦਿਨ ਤੁਸੀਂ ਕਰੂਜ਼ ਕਰ ਰਹੇ ਹੋ, ਕੌਫੀ ਪੀ ਰਹੇ ਹੋ, ਅਤੇ ਅਚਾਨਕ ਬੈਚ ਸਾਈਜ਼ ਦੇ ਮੁੱਦੇ ਨੂੰ ਡੀਬੱਗ ਕਰ ਰਹੇ ਹੋ ਜਿਵੇਂ ਇਹ ਕੋਈ ਵੱਡੀ ਗੱਲ ਨਹੀਂ ਹੈ ☕😄
ਅਕਸਰ ਪੁੱਛੇ ਜਾਂਦੇ ਸਵਾਲ
ਇੱਕ NVIDIA GPU 'ਤੇ ਇੱਕ AI ਮਾਡਲ ਨੂੰ ਸਿਖਲਾਈ ਦੇਣ ਦਾ ਕੀ ਅਰਥ ਹੈ?
NVIDIA GPU 'ਤੇ ਸਿਖਲਾਈ ਦਾ ਮਤਲਬ ਹੈ ਕਿ ਤੁਹਾਡੇ ਮਾਡਲ ਪੈਰਾਮੀਟਰ ਅਤੇ ਸਿਖਲਾਈ ਬੈਚ GPU VRAM ਵਿੱਚ ਰਹਿੰਦੇ ਹਨ, ਅਤੇ ਭਾਰੀ ਗਣਿਤ (ਫਾਰਵਰਡ ਪਾਸ, ਬੈਕਪ੍ਰੌਪ, ਆਪਟੀਮਾਈਜ਼ਰ ਸਟੈਪਸ) CUDA ਕਰਨਲਾਂ ਰਾਹੀਂ ਚਲਦੇ ਹਨ। ਅਭਿਆਸ ਵਿੱਚ, ਇਹ ਅਕਸਰ ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ 'ਤੇ ਨਿਰਭਰ ਕਰਦਾ ਹੈ ਕਿ ਮਾਡਲ ਅਤੇ ਟੈਂਸਰ cuda ' , ਫਿਰ ਮੈਮੋਰੀ, ਉਪਯੋਗਤਾ ਅਤੇ ਤਾਪਮਾਨ 'ਤੇ ਨਜ਼ਰ ਰੱਖਦੇ ਹਨ ਤਾਂ ਜੋ ਥ੍ਰੁਪੁੱਟ ਇਕਸਾਰ ਰਹੇ।
ਕੁਝ ਹੋਰ ਇੰਸਟਾਲ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ NVIDIA GPU ਦੇ ਕੰਮ ਕਰਨ ਦੀ ਪੁਸ਼ਟੀ ਕਿਵੇਂ ਕਰੀਏ
nvidia-smi ਨਾਲ ਸ਼ੁਰੂਆਤ ਕਰੋ । ਇਸ ਵਿੱਚ GPU ਨਾਮ, ਡਰਾਈਵਰ ਸੰਸਕਰਣ, ਮੌਜੂਦਾ ਮੈਮੋਰੀ ਵਰਤੋਂ, ਅਤੇ ਕੋਈ ਵੀ ਚੱਲ ਰਹੀਆਂ ਪ੍ਰਕਿਰਿਆਵਾਂ ਦਿਖਾਈ ਦੇਣੀਆਂ ਚਾਹੀਦੀਆਂ ਹਨ। ਜੇਕਰ nvidia-smi ਅਸਫਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ PyTorch/TensorFlow/JAX 'ਤੇ ਰੁਕੋ - ਪਹਿਲਾਂ ਡਰਾਈਵਰ ਦਿੱਖ ਨੂੰ ਠੀਕ ਕਰੋ। ਇਹ ਬੇਸਲਾਈਨ ਹੈ "ਕੀ ਓਵਨ ਪਲੱਗ ਇਨ ਹੈ" GPU ਸਿਖਲਾਈ ਦੀ ਜਾਂਚ ਕਰੋ।
ਸਿਸਟਮ CUDA ਅਤੇ PyTorch ਨਾਲ ਬੰਡਲ ਕੀਤੇ CUDA ਵਿੱਚੋਂ ਚੋਣ ਕਰਨਾ
ਇੱਕ ਆਮ ਤਰੀਕਾ ਫਰੇਮਵਰਕ-ਬੰਡਲਡ CUDA (ਬਹੁਤ ਸਾਰੇ PyTorch ਪਹੀਏ ਵਾਂਗ) ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਹੈ ਕਿਉਂਕਿ ਇਹ ਹਿੱਲਣ ਵਾਲੇ ਹਿੱਸਿਆਂ ਨੂੰ ਘਟਾਉਂਦਾ ਹੈ - ਤੁਹਾਨੂੰ ਮੁੱਖ ਤੌਰ 'ਤੇ ਇੱਕ ਅਨੁਕੂਲ NVIDIA ਡਰਾਈਵਰ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਪੂਰਾ ਸਿਸਟਮ CUDA ਟੂਲਕਿੱਟ ਸਥਾਪਤ ਕਰਨ ਨਾਲ ਵਧੇਰੇ ਨਿਯੰਤਰਣ (ਕਸਟਮ ਬਿਲਡ, ਕੰਪਾਇਲਿੰਗ ਓਪਸ) ਦੀ ਪੇਸ਼ਕਸ਼ ਹੁੰਦੀ ਹੈ, ਪਰ ਇਹ ਸੰਸਕਰਣ ਮੇਲ ਨਾ ਖਾਣ ਅਤੇ ਉਲਝਣ ਵਾਲੇ ਰਨਟਾਈਮ ਗਲਤੀਆਂ ਲਈ ਵਧੇਰੇ ਮੌਕੇ ਵੀ ਪੇਸ਼ ਕਰਦਾ ਹੈ।.
NVIDIA GPU ਦੇ ਨਾਲ ਵੀ ਸਿਖਲਾਈ ਹੌਲੀ ਕਿਉਂ ਹੋ ਸਕਦੀ ਹੈ
ਅਕਸਰ, GPU ਇਨਪੁੱਟ ਪਾਈਪਲਾਈਨ ਦੁਆਰਾ ਭੁੱਖਾ ਰਹਿੰਦਾ ਹੈ। ਡਾਟਾਲੋਡਰ ਜੋ ਪਛੜ ਜਾਂਦੇ ਹਨ, ਸਿਖਲਾਈ ਪੜਾਅ ਦੇ ਅੰਦਰ ਭਾਰੀ CPU ਪ੍ਰੀਪ੍ਰੋਸੈਸਿੰਗ, ਛੋਟੇ ਬੈਚ ਆਕਾਰ, ਜਾਂ ਹੌਲੀ ਸਟੋਰੇਜ ਇਹ ਸਭ ਇੱਕ ਸ਼ਕਤੀਸ਼ਾਲੀ GPU ਨੂੰ ਇੱਕ ਵਿਹਲੇ ਸਪੇਸ ਹੀਟਰ ਵਾਂਗ ਵਿਵਹਾਰ ਕਰ ਸਕਦੇ ਹਨ। ਡਾਟਾਲੋਡਰ ਵਰਕਰਾਂ ਨੂੰ ਵਧਾਉਣਾ, ਪਿੰਨ ਕੀਤੀ ਮੈਮੋਰੀ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣਾ, ਪ੍ਰੀਫੈਚਿੰਗ ਜੋੜਨਾ, ਅਤੇ ਲੌਗਿੰਗ ਨੂੰ ਕੱਟਣਾ ਮਾਡਲ ਨੂੰ ਦੋਸ਼ ਦੇਣ ਤੋਂ ਪਹਿਲਾਂ ਆਮ ਪਹਿਲੇ ਕਦਮ ਹਨ।.
NVIDIA GPU ਸਿਖਲਾਈ ਦੌਰਾਨ "CUDA ਆਊਟ ਆਫ਼ ਮੈਮੋਰੀ" ਗਲਤੀਆਂ ਨੂੰ ਕਿਵੇਂ ਰੋਕਿਆ ਜਾਵੇ
ਜ਼ਿਆਦਾਤਰ ਫਿਕਸ VRAM ਰਣਨੀਤੀਆਂ ਹਨ: ਬੈਚ ਦਾ ਆਕਾਰ ਘਟਾਓ, ਮਿਸ਼ਰਤ ਸ਼ੁੱਧਤਾ ਨੂੰ ਸਮਰੱਥ ਬਣਾਓ (FP16/BF16), ਗਰੇਡੀਐਂਟ ਇਕੱਠਾ ਕਰਨ ਦੀ ਵਰਤੋਂ ਕਰੋ, ਕ੍ਰਮ ਦੀ ਲੰਬਾਈ/ਕਰੌਪ ਆਕਾਰ ਨੂੰ ਛੋਟਾ ਕਰੋ, ਜਾਂ ਐਕਟੀਵੇਸ਼ਨ ਚੈੱਕਪੌਇੰਟਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਮੈਮੋਰੀ ਦੀ ਖਪਤ ਕਰਨ ਵਾਲੀਆਂ ਹੋਰ GPU ਪ੍ਰਕਿਰਿਆਵਾਂ ਦੀ ਵੀ ਜਾਂਚ ਕਰੋ। ਕੁਝ ਟ੍ਰਾਇਲ ਅਤੇ ਗਲਤੀ ਆਮ ਹੈ - VRAM ਬਜਟਿੰਗ ਵਿਹਾਰਕ GPU ਸਿਖਲਾਈ ਵਿੱਚ ਇੱਕ ਮੁੱਖ ਆਦਤ ਬਣ ਜਾਂਦੀ ਹੈ।.
ਸਿਖਲਾਈ ਸਕ੍ਰਿਪਟ ਖਤਮ ਹੋਣ ਤੋਂ ਬਾਅਦ ਵੀ VRAM ਪੂਰਾ ਕਿਉਂ ਦਿਖਾਈ ਦੇ ਸਕਦਾ ਹੈ
ਫਰੇਮਵਰਕ ਅਕਸਰ ਗਤੀ ਲਈ GPU ਮੈਮੋਰੀ ਨੂੰ ਕੈਸ਼ ਕਰਦੇ ਹਨ, ਇਸ ਲਈ ਰਾਖਵੀਂ ਮੈਮੋਰੀ ਉਦੋਂ ਵੀ ਉੱਚੀ ਰਹਿ ਸਕਦੀ ਹੈ ਜਦੋਂ ਨਿਰਧਾਰਤ ਮੈਮੋਰੀ ਘੱਟ ਜਾਂਦੀ ਹੈ। ਇਹ ਇੱਕ ਲੀਕ ਵਰਗਾ ਹੋ ਸਕਦਾ ਹੈ, ਪਰ ਇਹ ਅਕਸਰ ਕੈਚਿੰਗ ਐਲੋਕੇਟਰ ਡਿਜ਼ਾਈਨ ਕੀਤੇ ਅਨੁਸਾਰ ਵਿਵਹਾਰ ਕਰਦਾ ਹੈ। ਵਿਹਾਰਕ ਆਦਤ ਇਹ ਹੈ ਕਿ ਸਮੇਂ ਦੇ ਨਾਲ ਪੈਟਰਨ ਨੂੰ ਟਰੈਕ ਕੀਤਾ ਜਾਵੇ ਅਤੇ ਇੱਕ ਸਿੰਗਲ ਅਲਾਰਮਿੰਗ ਸਨੈਪਸ਼ਾਟ 'ਤੇ ਫਿਕਸ ਕਰਨ ਦੀ ਬਜਾਏ "ਅਲਾਟ ਕੀਤੇ ਬਨਾਮ ਰਾਖਵੇਂ" ਦੀ ਤੁਲਨਾ ਕੀਤੀ ਜਾਵੇ।.
ਇਹ ਕਿਵੇਂ ਪੁਸ਼ਟੀ ਕਰੀਏ ਕਿ ਕੋਈ ਮਾਡਲ ਚੁੱਪਚਾਪ CPU 'ਤੇ ਸਿਖਲਾਈ ਨਹੀਂ ਲੈ ਰਿਹਾ ਹੈ
ਸੈਨਿਟੀ-ਚੈੱਕ ਜਲਦੀ ਕਰੋ: confirm torch.cuda.is_available() True ਵਾਪਸ ਕਰਦਾ ਹੈ , verify next(model.parameters()).device cuda ਦਿਖਾਉਂਦਾ ਹੈ , ਅਤੇ ਬਿਨਾਂ ਕਿਸੇ ਗਲਤੀ ਦੇ ਇੱਕ ਸਿੰਗਲ ਫਾਰਵਰਡ ਪਾਸ ਚਲਾਉਂਦਾ ਹੈ। ਜੇਕਰ ਪ੍ਰਦਰਸ਼ਨ ਸ਼ੱਕੀ ਤੌਰ 'ਤੇ ਹੌਲੀ ਮਹਿਸੂਸ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਇਹ ਵੀ ਪੁਸ਼ਟੀ ਕਰੋ ਕਿ ਤੁਹਾਡੇ ਬੈਚ GPU ਵਿੱਚ ਮੂਵ ਕੀਤੇ ਜਾ ਰਹੇ ਹਨ। ਮਾਡਲ ਨੂੰ ਮੂਵ ਕਰਨਾ ਅਤੇ ਗਲਤੀ ਨਾਲ ਡੇਟਾ ਨੂੰ ਪਿੱਛੇ ਛੱਡਣਾ ਆਮ ਗੱਲ ਹੈ।
ਮਲਟੀ-ਜੀਪੀਯੂ ਸਿਖਲਾਈ ਦਾ ਸਭ ਤੋਂ ਸਰਲ ਰਸਤਾ
ਡੇਟਾ ਪੈਰਲਲ (DDP-ਸ਼ੈਲੀ ਦੀ ਸਿਖਲਾਈ) ਅਕਸਰ ਸਭ ਤੋਂ ਵਧੀਆ ਪਹਿਲਾ ਕਦਮ ਹੁੰਦਾ ਹੈ: GPUs ਅਤੇ ਸਿੰਕ ਗਰੇਡੀਐਂਟ ਵਿੱਚ ਬੈਚਾਂ ਨੂੰ ਵੰਡੋ। ਐਕਸੀਲਰੇਟ ਵਰਗੇ ਟੂਲ ਪੂਰੇ ਰੀਰਾਈਟ ਤੋਂ ਬਿਨਾਂ ਮਲਟੀ-GPU ਨੂੰ ਘੱਟ ਦਰਦਨਾਕ ਬਣਾ ਸਕਦੇ ਹਨ। ਵਾਧੂ ਵੇਰੀਏਬਲਾਂ ਦੀ ਉਮੀਦ ਕਰੋ - NCCL ਸੰਚਾਰ, ਇੰਟਰਕਨੈਕਟ ਅੰਤਰ (NVLink ਬਨਾਮ PCIe), ਅਤੇ ਐਂਪਲੀਫਾਈਡ ਡੇਟਾ ਰੁਕਾਵਟਾਂ - ਇਸ ਲਈ ਇੱਕ ਠੋਸ ਸਿੰਗਲ-GPU ਰਨ ਤੋਂ ਬਾਅਦ ਹੌਲੀ-ਹੌਲੀ ਸਕੇਲਿੰਗ ਬਿਹਤਰ ਹੁੰਦੀ ਹੈ।.
NVIDIA GPU ਸਿਖਲਾਈ ਦੌਰਾਨ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਜਲਦੀ ਫੜਨ ਲਈ ਕੀ ਨਿਗਰਾਨੀ ਕਰਨੀ ਹੈ
GPU ਉਪਯੋਗਤਾ, ਮੈਮੋਰੀ ਵਰਤੋਂ (ਸਥਿਰ ਬਨਾਮ ਚੜ੍ਹਾਈ), ਪਾਵਰ ਡਰਾਅ, ਅਤੇ ਤਾਪਮਾਨ ਵੇਖੋ - ਥ੍ਰੋਟਲਿੰਗ ਚੁੱਪਚਾਪ ਗਤੀ ਨੂੰ ਘਟਾ ਸਕਦੀ ਹੈ। CPU ਵਰਤੋਂ 'ਤੇ ਵੀ ਨਜ਼ਰ ਰੱਖੋ, ਕਿਉਂਕਿ ਡੇਟਾ ਪਾਈਪਲਾਈਨ ਸਮੱਸਿਆ ਅਕਸਰ ਪਹਿਲਾਂ ਉੱਥੇ ਦਿਖਾਈ ਦਿੰਦੀ ਹੈ। ਜੇਕਰ ਉਪਯੋਗਤਾ ਸਪਾਈਕੀ ਜਾਂ ਘੱਟ ਹੈ, ਤਾਂ I/O ਜਾਂ ਡੇਟਾਲੋਡਰਾਂ 'ਤੇ ਸ਼ੱਕ ਕਰੋ; ਜੇਕਰ ਇਹ ਉੱਚਾ ਹੈ ਪਰ ਸਟੈਪ ਟਾਈਮ ਅਜੇ ਵੀ ਹੌਲੀ ਹੈ, ਪ੍ਰੋਫਾਈਲ ਕਰਨਲ, ਸ਼ੁੱਧਤਾ ਮੋਡ, ਅਤੇ ਸਟੈਪ-ਟਾਈਮ ਬ੍ਰੇਕਡਾਊਨ।.
ਹਵਾਲੇ
-
ਐਨਵੀਆਈਡੀਆ - ਐਨਵੀਆਈਡੀਆ ਐਨਵੀਆਈਡੀਆ-ਐਸਐਮਆਈ ਡੌਕਸ - docs.nvidia.com
-
NVIDIA - NVIDIA ਸਿਸਟਮ ਮੈਨੇਜਮੈਂਟ ਇੰਟਰਫੇਸ (NVSMI) - developer.nvidia.com
-
NVIDIA - NVIDIA NVLink ਸੰਖੇਪ ਜਾਣਕਾਰੀ - nvidia.com
-
ਪਾਈਟੋਰਚ - ਪਾਈਟੋਰਚ ਸ਼ੁਰੂ ਕਰੋ (CUDA ਚੋਣਕਾਰ) - pytorch.org
-
ਪਾਈਟੋਰਚ - ਪਾਈਟੋਰਚ CUDA ਦਸਤਾਵੇਜ਼ - docs.pytorch.org
-
ਟੈਂਸਰਫਲੋ - ਟੈਂਸਰਫਲੋ ਇੰਸਟਾਲ (ਪਾਈਪ) - tensorflow.org
-
JAX - JAX ਕੁਇੱਕਸਟਾਰਟ - docs.jax.dev
-
ਜੱਫੀ ਪਾਉਣ ਵਾਲਾ ਚਿਹਰਾ - ਟ੍ਰੇਨਰ ਦਸਤਾਵੇਜ਼ - huggingface.co
-
ਲਾਈਟਨਿੰਗ ਏਆਈ - ਲਾਈਟਨਿੰਗ ਦਸਤਾਵੇਜ਼ - lightning.ai
-
ਡੀਪਸਪੀਡ - ਜ਼ੀਰੋ ਡੌਕਸ - deepspeed.readthedocs.io
-
ਮਾਈਕ੍ਰੋਸਾਫਟ ਰਿਸਰਚ - ਮਾਈਕ੍ਰੋਸਾਫਟ ਰਿਸਰਚ: ZeRO/DeepSpeed - microsoft.com
-
ਪਾਈਟੋਰਚ ਫੋਰਮ - ਪਾਈਟੋਰਚ ਫੋਰਮ: CUDA 'ਤੇ ਮਾਡਲ ਦੀ ਜਾਂਚ ਕਰੋ - discuss.pytorch.org