ວິທີການໃຊ້ NVIDIA GPU ສຳລັບການຝຶກອົບຮົມ AI

ວິທີການໃຊ້ NVIDIA GPU ສຳລັບການຝຶກອົບຮົມ AI

ຄຳຕອບສັ້ນໆ: ໃຊ້ GPU NVIDIA ສຳລັບການຝຶກອົບຮົມ AI ໂດຍການຢືນຢັນວ່າໄດຣເວີ ແລະ GPU ສາມາດເບິ່ງເຫັນໄດ້ດ້ວຍ nvidia-smi , ຈາກນັ້ນຕິດຕັ້ງ framework/CUDA stack ທີ່ເຂົ້າກັນໄດ້ ແລະ ດຳເນີນການທົດສອບ “model + batch on cuda” ຂະໜາດນ້ອຍ. ຖ້າທ່ານໃຊ້ໜ່ວຍຄວາມຈຳໝົດ, ໃຫ້ຫຼຸດຂະໜາດ batch ແລະ ໃຊ້ຄວາມແມ່ນຍຳປະສົມ, ໃນຂະນະທີ່ຕິດຕາມການນຳໃຊ້, ໜ່ວຍຄວາມຈຳ ແລະ ອຸນຫະພູມ.

ບົດຮຽນຫຼັກ:

ການກວດສອບພື້ນຖານ : ເລີ່ມຕົ້ນດ້ວຍ nvidia-smi ; ແກ້ໄຂການເບິ່ງເຫັນໄດຣເວີກ່ອນທີ່ທ່ານຈະຕິດຕັ້ງເຟຣມເວີກ.

ຄວາມເຂົ້າກັນໄດ້ຂອງ Stack : ຮັກສາໄດຣເວີ, ຣັນໄທມ໌ CUDA, ແລະ ເວີຊັນເຟຣມເວີກໃຫ້ສອດຄ່ອງກັນເພື່ອປ້ອງກັນການຂັດຂ້ອງ ແລະ ການຕິດຕັ້ງທີ່ບໍ່ສະດວກ.

ຄວາມສຳເລັດເລັກນ້ອຍ : ຢືນຢັນການສົ່ງຕໍ່ຄັ້ງດຽວທີ່ເຮັດວຽກຢູ່ໃນ CUDA ກ່ອນທີ່ທ່ານຈະຂະຫຍາຍການທົດລອງ.

ລະບຽບວິໄນ VRAM : ອີງໃສ່ຄວາມແມ່ນຍໍາແບບປະສົມ, ການສະສົມ gradient, ແລະ checkpointing ເພື່ອໃຫ້ເໝາະສົມກັບຮູບແບບຂະໜາດໃຫຍ່.

ນິໄສການຕິດຕາມກວດກາ : ຕິດຕາມການນຳໃຊ້, ຮູບແບບຄວາມຈຳ, ພະລັງງານ ແລະ ອຸນຫະພູມ ເພື່ອໃຫ້ທ່ານສັງເກດເຫັນບັນຫາທີ່ຕິດຂັດໄດ້ແຕ່ຫົວທີ.

ບົດຄວາມທີ່ທ່ານອາດຈະຢາກອ່ານຫຼັງຈາກບົດຄວາມນີ້:

🔗 ວິທີການສ້າງຕົວແທນ AI
ອອກແບບຂັ້ນຕອນການເຮັດວຽກ, ເຄື່ອງມື, ໜ່ວຍຄວາມຈຳ ແລະ ລະບົບປ້ອງກັນຄວາມປອດໄພຂອງຕົວແທນຂອງທ່ານ.

🔗 ວິທີການນຳໃຊ້ຮູບແບບ AI
ຕັ້ງຄ່າສະພາບແວດລ້ອມ, ຮູບແບບການຫຸ້ມຫໍ່, ແລະຈັດສົ່ງໄປສູ່ການຜະລິດຢ່າງໜ້າເຊື່ອຖື.

🔗 ວິທີການວັດແທກປະສິດທິພາບ AI
ເລືອກຕົວຊີ້ວັດ, ດຳເນີນການປະເມີນຜົນ ແລະ ຕິດຕາມປະສິດທິພາບຕາມການເວລາ.

🔗 ວິທີການອັດຕະໂນມັດວຽກງານດ້ວຍ AI
ເຮັດໃຫ້ວຽກງານທີ່ຊ້ຳໆເປັນອັດຕະໂນມັດດ້ວຍການກະຕຸ້ນເຕືອນ, ຂັ້ນຕອນການເຮັດວຽກ ແລະ ການເຊື່ອມໂຍງ.


1) ພາບລວມ - ສິ່ງທີ່ເຈົ້າກຳລັງເຮັດເມື່ອເຈົ້າ “ຝຶກຊ້ອມກ່ຽວກັບ GPU” 🧠⚡

ເມື່ອທ່ານຝຶກອົບຮົມຮູບແບບ AI, ສ່ວນຫຼາຍແລ້ວທ່ານກຳລັງເຮັດການຄິດໄລ່ matrix ຢ່າງຫຼວງຫຼາຍ. GPU ຖືກສ້າງຂຶ້ນສຳລັບການເຮັດວຽກແບບຂະໜານນັ້ນ, ສະນັ້ນ frameworks ເຊັ່ນ PyTorch, TensorFlow, ແລະ JAX ສາມາດໂອນພາລະໜັກໃຫ້ກັບ GPU ໄດ້. ( ເອກະສານ PyTorch CUDA , ການຕິດຕັ້ງ TensorFlow (pip) , JAX Quickstart )

ໃນທາງປະຕິບັດ, “ການໃຊ້ NVIDIA GPUs ສຳລັບການຝຶກອົບຮົມ” ໂດຍປົກກະຕິແລ້ວໝາຍເຖິງ:

  • ພາລາມິເຕີຂອງຮູບແບບຂອງທ່ານອາໄສຢູ່ (ສ່ວນຫຼາຍແມ່ນ) ໃນ GPU VRAM

  • ກຸ່ມຂອງທ່ານຈະຖືກຍ້າຍຈາກ RAM ໄປຫາ VRAM ໃນແຕ່ລະບາດກ້າວ

  • ການ Forward pass ແລະ backprop ຂອງທ່ານເຮັດວຽກຢູ່ໃນ kernel CUDA ( ຄູ່ມືການຂຽນໂປຣແກຣມ CUDA )

  • ການອັບເດດເຄື່ອງມືເພີ່ມປະສິດທິພາບຂອງທ່ານເກີດຂຶ້ນໃນ GPU (ໂດຍຫລັກການແລ້ວ)

  • ເຈົ້າຕິດຕາມກວດກາອຸນຫະພູມ, ໜ່ວຍຄວາມຈຳ, ການນຳໃຊ້ ດັ່ງນັ້ນເຈົ້າຈຶ່ງບໍ່ແຕ່ງກິນຫຍັງເລີຍ 🔥 ( ເອກະສານ NVIDIA nvidia-smi )

ຖ້າສິ່ງນັ້ນຟັງຄືວ່າຫຼາຍ, ຢ່າກັງວົນ. ສ່ວນຫຼາຍແມ່ນລາຍການກວດສອບ ແລະ ນິໄສບາງຢ່າງທີ່ເຈົ້າສ້າງຂຶ້ນໃນໄລຍະເວລາ.


2) ສິ່ງທີ່ເຮັດໃຫ້ການຕັ້ງຄ່າການຝຶກອົບຮົມ AI NVIDIA GPU ລຸ້ນດີ 🤌

ນີ້ແມ່ນພາກສ່ວນ “ຢ່າສ້າງເຮືອນໃສ່ວຸ້ນ”. ການຕັ້ງຄ່າທີ່ດີສຳລັບ ວິທີການໃຊ້ GPU NVIDIA ສຳລັບການຝຶກອົບຮົມ AI ແມ່ນການຕັ້ງຄ່າທີ່ມີຄວາມໂດດເດັ່ນຕ່ຳ. ມີຄວາມໂດດເດັ່ນຕ່ຳແມ່ນໝັ້ນຄົງ. ໝັ້ນຄົງແມ່ນໄວ. ໄວແມ່ນ…ດີ, ໄວ 😄

ການຕັ້ງຄ່າການຝຶກອົບຮົມທີ່ແຂງແກ່ນມັກຈະມີ:

  • VRAM ພຽງພໍ ສຳລັບຂະໜາດ batch + model + ສະຖານະ optimizer ຂອງທ່ານ

    • VRAM ແມ່ນຄືກັບພື້ນທີ່ກະເປົ໋າເດີນທາງ. ເຈົ້າສາມາດຫຸ້ມຫໍ່ໄດ້ຢ່າງສະຫຼາດກວ່າ, ແຕ່ເຈົ້າບໍ່ສາມາດຫຸ້ມຫໍ່ໄດ້ຢ່າງບໍ່ມີຂອບເຂດ.

  • ຊຸດຊອບແວທີ່ກົງກັນ (ໄດຣເວີ + CUDA runtime + ຄວາມເຂົ້າກັນໄດ້ຂອງເຟຣມເວີກ) ( PyTorch Get Started (ຕົວເລືອກ CUDA) , ການຕິດຕັ້ງ TensorFlow (pip) )

  • ການເກັບຮັກສາໄວ (NVMe ຊ່ວຍໄດ້ຫຼາຍສຳລັບຊຸດຂໍ້ມູນຂະໜາດໃຫຍ່)

  • CPU + RAM ທີ່ເໝາະສົມ ດັ່ງນັ້ນການໂຫຼດຂໍ້ມູນຈະບໍ່ເຮັດໃຫ້ GPU ຂາດພະລັງງານ ( ຄູ່ມືການປັບແຕ່ງປະສິດທິພາບ PyTorch )

  • ຄວາມເຢັນ ແລະ ພະລັງງານທີ່ພຽງພໍສຳລັບຫົວ (ຖືກປະເມີນຄ່າຕໍ່າເກີນໄປຈົນກວ່າມັນຈະບໍ່ແມ່ນ 😬)

  • ສະພາບແວດລ້ອມທີ່ສາມາດຜະລິດຄືນໄດ້ (venv/conda ຫຼື ຕູ້ຄອນເທນເນີ) ດັ່ງນັ້ນການອັບເກຣດຈຶ່ງບໍ່ກາຍເປັນຄວາມວຸ້ນວາຍ ( ພາບລວມຂອງ NVIDIA Container Toolkit )

ແລະອີກຢ່າງໜຶ່ງທີ່ຄົນເຮົາມັກລືມ:

  • ນິໄສການຕິດຕາມກວດກາ - ທ່ານກວດສອບໜ່ວຍຄວາມຈຳ GPU ແລະ ການນຳໃຊ້ຄືກັບວ່າທ່ານກວດສອບກະຈົກໃນຂະນະທີ່ຂັບລົດ. ( ເອກະສານ NVIDIA nvidia-smi )


3) ຕາຕະລາງປຽບທຽບ - ວິທີທີ່ນິຍົມໃນການຝຶກອົບຮົມດ້ວຍ NVIDIA GPUs (ພ້ອມດ້ວຍຄວາມແປກປະຫຼາດ) 📊

ຂ້າງລຸ່ມນີ້ແມ່ນແບບຟອມສະຫຼຸບສັ້ນໆກ່ຽວກັບ "ອັນໃດທີ່ເໝາະສົມ?". ລາຄາແມ່ນຫຍາບຄາຍ (ເພາະວ່າຄວາມເປັນຈິງແຕກຕ່າງກັນ), ແລະແມ່ນແລ້ວໜຶ່ງໃນຫ້ອງເຫຼົ່ານີ້ແມ່ນມີການເຄື່ອນໄຫວເລັກນ້ອຍ, ໂດຍເຈດຕະນາ.

ເຄື່ອງມື / ວິທີການ ດີທີ່ສຸດສຳລັບ ລາຄາ ເປັນຫຍັງມັນຈຶ່ງໃຊ້ໄດ້ (ສ່ວນຫຼາຍແມ່ນ)
PyTorch (ວານິລາ) PyTorch ຄົນສ່ວນໃຫຍ່, ໂຄງການສ່ວນໃຫຍ່ ຟຣີ ລະບົບນິເວດທີ່ມີຄວາມຍືດຫຍຸ່ນ, ຂະໜາດໃຫຍ່, ການດີບັກງ່າຍ - ທຸກຄົນລ້ວນແຕ່ມີຄວາມຄິດເຫັນ
ເອກະສານ PyTorch Lightning ທີມງານ, ການຝຶກອົບຮົມທີ່ມີໂຄງສ້າງ ຟຣີ ຫຼຸດຜ່ອນຮູບແບບການໃຊ້ງານ, ວົງຈອນທີ່ສະອາດກວ່າ; ບາງຄັ້ງຮູ້ສຶກຄືກັບ "ມະຫັດສະຈັນ", ຈົນກວ່າມັນຈະບໍ່ແມ່ນ
ເອກະສານຄູຝຶກສອນກ່ຽວ ກັບ Hugging Face Transformers + Trainer ການປັບແຕ່ງ NLP + LLM ຟຣີ ການຝຶກອົບຮົມທີ່ມາພ້ອມກັບແບັດເຕີຣີ, ຄ່າເລີ່ມຕົ້ນທີ່ດີເລີດ, ໄຊຊະນະໄວ 👍
ເອກະສານເລັ່ງ ລັດ ຫຼາຍ GPU ໂດຍບໍ່ມີຄວາມເຈັບປວດ ຟຣີ ເຮັດໃຫ້ DDP ບໍ່ໜ້າລຳຄານ, ດີສຳລັບການຂະຫຍາຍໂດຍບໍ່ຕ້ອງຂຽນທຸກຢ່າງຄືນໃໝ່
DeepSpeed ​​ZeRO ຮູບແບບໃຫຍ່, ເຄັດລັບຄວາມຊົງຈຳ ຟຣີ ZeRO, offload, scaling - ອາດຈະຫຍຸ້ງຍາກແຕ່ກໍ່ໜ້າພໍໃຈເມື່ອມັນຄລິກ
TensorFlow + Keras TF ທໍ່ສົ່ງການຜະລິດ ຟຣີ ເຄື່ອງມືທີ່ເຂັ້ມແຂງ, ເລື່ອງການນຳໃຊ້ທີ່ດີ; ບາງຄົນມັກມັນ, ບາງຄົນກໍ່ບໍ່ມັກຢ່າງງຽບໆ
JAX + Flax JAX Quickstart / ເອກະສານ Flax ການຄົ້ນຄວ້າ + ຄວາມຮູ້ຄວາມໄວ ຟຣີ ການລວບລວມ XLA ສາມາດໄວຫຼາຍ, ແຕ່ການ debugging ສາມາດຮູ້ສຶກ…ບໍ່ມີຕົວຕົນ
ຂອງ NVIDIA NeMo NeMo ຂັ້ນຕອນການເຮັດວຽກການປາກເວົ້າ + LLM ຟຣີ ການຊ້ອນກັນທີ່ປັບປຸງໃຫ້ດີທີ່ສຸດໂດຍ NVIDIA, ສູດອາຫານທີ່ດີ - ຮູ້ສຶກຄືກັບການແຕ່ງກິນດ້ວຍເຕົາອົບທີ່ທັນສະໄໝ 🍳
ພາບລວມຂອງຊຸດເຄື່ອງ ມື Docker + NVIDIA Container Toolkit ສະພາບແວດລ້ອມທີ່ສາມາດຜະລິດຄືນໄດ້ ຟຣີ "ເຮັດວຽກຢູ່ໃນເຄື່ອງຂອງຂ້ອຍ" ກາຍເປັນ "ເຮັດວຽກຢູ່ໃນເຄື່ອງຂອງພວກເຮົາ" (ສ່ວນຫຼາຍແມ່ນ, ອີກເທື່ອໜຶ່ງ)

4) ຂັ້ນຕອນທີໜຶ່ງ - ຢືນຢັນວ່າ GPU ຂອງທ່ານຖືກເບິ່ງເຫັນຢ່າງຖືກຕ້ອງ 🕵️‍♂️

ກ່ອນທີ່ທ່ານຈະຕິດຕັ້ງສິ່ງຂອງຫຼາຍຢ່າງ, ໃຫ້ກວດສອບພື້ນຖານກ່ອນ.

ສິ່ງທີ່ເຈົ້າຢາກໃຫ້ເປັນຄວາມຈິງ:

  • ເຄື່ອງເຫັນ GPU

  • ໄດຣເວີ NVIDIA ຖືກຕິດຕັ້ງຢ່າງຖືກຕ້ອງ

  • GPU ບໍ່ໄດ້ຕິດຢູ່ກັບການເຮັດສິ່ງອື່ນ

  • ສາມາດສອບຖາມໄດ້ຢ່າງໜ້າເຊື່ອຖື

ການກວດສອບແບບຄລາສສິກແມ່ນ:

ສິ່ງທີ່ທ່ານກຳລັງຊອກຫາ:

  • ຊື່ GPU (ເຊັ່ນ: RTX, A-series, ແລະອື່ນໆ)

  • ເວີຊັນໄດຣເວີ

  • ການໃຊ້ໜ່ວຍຄວາມຈຳ

  • ຂະບວນການແລ່ນ ( ເອກະສານ NVIDIA nvidia-smi )

ຖ້າ nvidia-smi ລົ້ມເຫຼວ, ໃຫ້ຢຸດຢູ່ທີ່ນັ້ນ. ຢ່າຕິດຕັ້ງ frameworks ເທື່ອ. ມັນຄືກັບການພະຍາຍາມອົບເຂົ້າຈີ່ໃນເວລາທີ່ເຕົາອົບຂອງເຈົ້າບໍ່ໄດ້ສຽບປລັກ. ( NVIDIA System Management Interface (NVSMI) )

ໝາຍເຫດເລັກນ້ອຍຂອງມະນຸດ: ບາງຄັ້ງ nvidia-smi ໃຊ້ໄດ້ແຕ່ການຝຶກອົບຮົມຂອງເຈົ້າຍັງລົ້ມເຫຼວເພາະວ່າ CUDA runtime ທີ່ໃຊ້ໂດຍ framework ຂອງເຈົ້າບໍ່ກົງກັບຄວາມຄາດຫວັງຂອງໄດຣເວີ. ນັ້ນບໍ່ແມ່ນເຈົ້າໂງ່. ນັ້ນແມ່ນ…ພຽງແຕ່ວິທີທີ່ມັນເປັນ 😭 ( PyTorch Get Started (CUDA selector) , TensorFlow install (pip) )


5) ສ້າງຊຸດຊອບແວ - ໄດຣເວີ, CUDA, cuDNN, ແລະ “ການເຕັ້ນລຳທີ່ເຂົ້າກັນໄດ້” 💃

ນີ້ແມ່ນບ່ອນທີ່ຄົນເຮົາເສຍເວລາຫຼາຍຊົ່ວໂມງ. ເຄັດລັບຄື: ເລືອກເສັ້ນທາງແລະຍຶດໝັ້ນກັບມັນ .

ທາງເລືອກ A: CUDA ທີ່ມາພ້ອມກັບ Framework (ມັກຈະງ່າຍທີ່ສຸດ)

ໂປຣແກຣມ PyTorch ຫຼາຍໂປຣແກຣມມາພ້ອມກັບ CUDA runtime ຂອງຕົນເອງ, ຊຶ່ງໝາຍຄວາມວ່າທ່ານບໍ່ຈຳເປັນຕ້ອງມີຊຸດເຄື່ອງມື CUDA ເຕັມຮູບແບບຕິດຕັ້ງໄວ້ທົ່ວລະບົບ. ສ່ວນຫຼາຍແລ້ວທ່ານພຽງແຕ່ຕ້ອງການໄດຣເວີ NVIDIA ທີ່ເຂົ້າກັນໄດ້. ( PyTorch Get Started (ຕົວເລືອກ CUDA) , PyTorch ລຸ້ນກ່ອນໜ້ານີ້ (ລໍ້ CUDA) )

ຂໍ້ດີ:

  • ຊິ້ນສ່ວນທີ່ເຄື່ອນທີ່ໜ້ອຍລົງ

  • ຕິດຕັ້ງງ່າຍຂຶ້ນ

  • ສາມາດຜະລິດຄືນໄດ້ຫຼາຍຂຶ້ນຕາມສະພາບແວດລ້ອມ

ຂໍ້ເສຍ:

  • ຖ້າທ່ານປະສົມປະສານສະພາບແວດລ້ອມຕ່າງໆຢ່າງບໍ່ເປັນທາງການ, ທ່ານອາດຈະສັບສົນ

ທາງເລືອກ B: ຊຸດເຄື່ອງມື CUDA ຂອງລະບົບ (ຄວບຄຸມເພີ່ມເຕີມ)

ເຈົ້າຕິດຕັ້ງຊຸດເຄື່ອງມື CUDA ໃນລະບົບ ແລະ ຈັດລຽງທຸກຢ່າງໃຫ້ກົງກັບມັນ. ( ເອກະສານ CUDA Toolkit )

ຂໍ້ດີ:

  • ການຄວບຄຸມເພີ່ມເຕີມສຳລັບການສ້າງແບບກຳນົດເອງ, ເຄື່ອງມືພິເສດບາງຢ່າງ

  • ສະດວກສຳລັບການລວບລວມບາງ ops

ຂໍ້ເສຍ:

  • ວິທີການເພີ່ມເຕີມໃນການບໍ່ກົງກັບເວີຊັນ ແລະ ຮ້ອງໄຫ້ຢ່າງງຽບໆ

cuDNN ແລະ NCCL, ໃນແງ່ຂອງມະນຸດ

  • cuDNN ເລັ່ງການຮຽນຮູ້ແບບເລິກເຊິ່ງ (convolutions, RNN bits, ແລະອື່ນໆ) ( ເອກະສານ NVIDIA cuDNN )

  • NCCL ແມ່ນຫ້ອງສະໝຸດ “ການສື່ສານ GPU ກັບ GPU” ທີ່ໄວທີ່ສຸດສຳລັບການຝຶກອົບຮົມຫຼາຍ GPU ( ພາບລວມຂອງ NCCL )

ຖ້າທ່ານເຮັດການຝຶກອົບຮົມຫຼາຍ GPU, NCCL ແມ່ນເພື່ອນທີ່ດີທີ່ສຸດຂອງທ່ານ - ແລະບາງຄັ້ງກໍ່ເປັນເພື່ອນຮ່ວມຫ້ອງທີ່ມີອາລົມດີຂອງທ່ານ. ( ພາບລວມຂອງ NCCL )


6) ການຝຶກຊ້ອມ GPU ຄັ້ງທຳອິດຂອງເຈົ້າ (ຕົວຢ່າງແນວຄິດຂອງ PyTorch) ✅🔥

ເພື່ອຕິດຕາມ ວິທີການໃຊ້ NVIDIA GPU ສຳລັບການຝຶກອົບຮົມ AI , ທ່ານບໍ່ຕ້ອງການໂຄງການໃຫຍ່ໆກ່ອນ. ທ່ານຕ້ອງການຄວາມສຳເລັດເລັກນ້ອຍ.

ແນວຄວາມຄິດຫຼັກ:

  • ກວດຫາອຸປະກອນ

  • ຍ້າຍຮູບແບບໄປຫາ GPU

  • ຍ້າຍ tensor ໄປຫາ GPU

  • ຢືນຢັນວ່າການສົ່ງຕໍ່ດຳເນີນການຢູ່ທີ່ນັ້ນ ( ເອກະສານ PyTorch CUDA )

ສິ່ງທີ່ຂ້ອຍກວດສອບສະຕິສະເໝີແຕ່ຫົວທີ:

ຄຳຖາມທົ່ວໄປທີ່ວ່າ "ເປັນຫຍັງມັນຊ້າ?" ເຂົ້າໃຈຜິດ

  • ຕົວໂຫຼດຂໍ້ມູນຂອງເຈົ້າຊ້າເກີນໄປ (GPU ລໍຖ້າຢູ່) ( ຄູ່ມືການປັບແຕ່ງປະສິດທິພາບ PyTorch )

  • ເຈົ້າລືມຍ້າຍຂໍ້ມູນໄປຫາ GPU (ອຸ້ຍ)

  • ຂະໜາດຂອງຊຸດມີຂະໜາດນ້ອຍ (GPU ບໍ່ໄດ້ໃຊ້ປະໂຫຍດ)

  • ທ່ານກຳລັງປະມວນຜົນ CPU ລ່ວງໜ້າຢ່າງໜັກຢູ່ໃນຂັ້ນຕອນການຝຶກອົບຮົມ

ນອກຈາກນັ້ນ, ແມ່ນແລ້ວ, GPU ຂອງເຈົ້າມັກຈະເບິ່ງຄືວ່າ "ບໍ່ຫຍຸ້ງຫຼາຍ" ຖ້າບັນຫາແມ່ນຂໍ້ມູນ. ມັນຄືກັບການຈ້າງຄົນຂັບລົດແຂ່ງແລ້ວໃຫ້ພວກເຂົາລໍຖ້ານໍ້າມັນທຸກໆຮອບ.


7) ເກມ VRAM - ຂະໜາດເປັນຊຸດ, ຄວາມແມ່ນຍຳປະສົມ, ແລະ ບໍ່ລະເບີດ 💥🧳

ບັນຫາການຝຶກອົບຮົມຕົວຈິງສ່ວນໃຫຍ່ແມ່ນຂຶ້ນກັບຄວາມຊົງຈຳ. ຖ້າທ່ານຮຽນຮູ້ທັກສະໜຶ່ງ, ໃຫ້ຮຽນຮູ້ການຈັດການ VRAM.

ວິທີໄວໃນການຫຼຸດຜ່ອນການໃຊ້ໜ່ວຍຄວາມຈຳ

  • ຄວາມແມ່ນຍຳປະສົມ (FP16/BF16)

  • ການສະສົມລະດັບຄວາມຊັນ

  • ຄວາມຍາວຂອງລຳດັບ / ຂະໜາດການຕັດທີ່ນ້ອຍກວ່າ

    • ໂຫດຮ້າຍແຕ່ມີປະສິດທິພາບ

  • ຈຸດກວດສອບການເປີດໃຊ້ງານ

    • ການຄ້າການຄິດໄລ່ສຳລັບໜ່ວຍຄວາມຈຳ (ຄິດໄລ່ການເປີດໃຊ້ງານຄືນໃໝ່ໃນລະຫວ່າງການຍ້ອນກັບ) ( torch.utils.checkpoint )

  • ໃຊ້ຕົວເພີ່ມປະສິດທິພາບທີ່ເບົາກວ່າ

    • ຕົວເພີ່ມປະສິດທິພາບບາງອັນເກັບຮັກສາສະຖານະພິເສດທີ່ກັດ VRAM

ຊ່ວງເວລາ “ເປັນຫຍັງ VRAM ຍັງເຕັມຫຼັງຈາກຂ້ອຍຢຸດ?”

ເຟຣມເວີກມັກ ຈະເກັບຂໍ້ມູນໄວ້ໃນໜ່ວຍຄວາມຈຳ ເພື່ອປະສິດທິພາບ. ນີ້ແມ່ນເລື່ອງປົກກະຕິ. ມັນເບິ່ງຄືວ່າໜ້າຢ້ານແຕ່ມັນບໍ່ແມ່ນການຮົ່ວໄຫຼສະເໝີໄປ. ເຈົ້າຮຽນຮູ້ທີ່ຈະອ່ານຮູບແບບຕ່າງໆ. ( PyTorch CUDA semantics: caching allocator )

ນິໄສປະຕິບັດ:

  • ເບິ່ງໜ່ວຍຄວາມຈຳທີ່ຈັດສັນໄວ້ ທຽບກັບ ໜ່ວຍຄວາມຈຳທີ່ສະຫງວນໄວ້ (ສະເພາະເຟຣມເວີກ) ( PyTorch CUDA semantics: caching allocator )

  • ຢ່າຕົກໃຈກັບຕົວເລກທຳອິດທີ່ໜ້າຢ້ານ 😅


8) ເຮັດໃຫ້ GPU ເຮັດວຽກໄດ້ແທ້ - ການປັບແຕ່ງປະສິດທິພາບທີ່ຄຸ້ມຄ່າກັບເວລາຂອງທ່ານ 🏎️

ການເຮັດໃຫ້ "ການຝຶກອົບຮົມ GPU ເຮັດວຽກ" ແມ່ນຂັ້ນຕອນທີໜຶ່ງ. ການເຮັດໃຫ້ມັນ ໄວ ແມ່ນຂັ້ນຕອນທີສອງ.

ການເພີ່ມປະສິດທິພາບທີ່ມີຜົນກະທົບສູງ

ອຸປະສັກທີ່ຖືກມອງຂ້າມຫຼາຍທີ່ສຸດ

ການເກັບຮັກສາ ແລະ ຂັ້ນຕອນການປະມວນຜົນກ່ອນຂອງທ່ານ. ຖ້າຊຸດຂໍ້ມູນຂອງທ່ານມີຂະໜາດໃຫຍ່ ແລະ ເກັບໄວ້ໃນແຜ່ນດິດທີ່ຊ້າ, GPU ຂອງທ່ານຈະກາຍເປັນເຄື່ອງເຮັດຄວາມຮ້ອນພື້ນທີ່ທີ່ມີລາຄາແພງ. ເຄື່ອງເຮັດຄວາມຮ້ອນພື້ນທີ່ທີ່ກ້າວໜ້າຫຼາຍ ແລະ ເຫຼື້ອມເປັນເງົາງາມຫຼາຍ.

ນອກຈາກນັ້ນ, ຂໍສາລະພາບເລັກນ້ອຍ: ຂ້ອຍໄດ້ "ປັບປຸງ" ຮູບແບບເປັນເວລາໜຶ່ງຊົ່ວໂມງ ແຕ່ກໍ່ຮູ້ວ່າການບັນທຶກແມ່ນຈຸດທີ່ເຮັດໃຫ້ເກີດບັນຫາ. ການພິມຫຼາຍເກີນໄປສາມາດເຮັດໃຫ້ການຝຶກອົບຮົມຊ້າລົງ. ແມ່ນແລ້ວ, ມັນສາມາດເຮັດໄດ້.


9) ການຝຶກອົບຮົມຫຼາຍ GPU - DDP, NCCL, ແລະ ການຂະຫຍາຍໂດຍບໍ່ມີຄວາມວຸ້ນວາຍ 🧩🤝

ເມື່ອທ່ານຕ້ອງການຄວາມໄວຫຼາຍຂຶ້ນ ຫຼື ຮຸ່ນທີ່ໃຫຍ່ກວ່າ, ທ່ານກໍ່ໃຊ້ multi-GPU. ນີ້ແມ່ນບ່ອນທີ່ສິ່ງຕ່າງໆກາຍເປັນເລື່ອງທີ່ໜ້າຕື່ນເຕັ້ນ.

ວິທີການທົ່ວໄປ

  • ຂໍ້ມູນຂະໜານ (DDP)

    • ແບ່ງກຸ່ມຕ່າງໆໃນທົ່ວ GPU, ຊິ້ງຄ່າ gradients

    • ໂດຍປົກກະຕິແລ້ວຕົວເລືອກ "ດີ" ຕາມຄ່າເລີ່ມຕົ້ນ ( ເອກະສານ PyTorch DDP )

  • ຮູບແບບຂະໜານ / Tensor ຂະໜານ

    • ແບ່ງໂມເດວຕາມ GPU (ສຳລັບໂມເດວຂະໜາດໃຫຍ່ຫຼາຍ)

  • ທໍ່ສົ່ງນ້ຳຂະໜານ

    • ແບ່ງຊັ້ນຮູບແບບອອກເປັນຂັ້ນຕອນຕ່າງໆ (ຄືກັບສາຍການປະກອບ, ແຕ່ສຳລັບເທັນເຊີ)

ຖ້າທ່ານເລີ່ມຕົ້ນ, ການຝຶກອົບຮົມແບບ DDP ແມ່ນຈຸດທີ່ດີທີ່ສຸດ. ( ບົດແນະນຳ PyTorch DDP )

ຄຳແນະນຳທີ່ໃຊ້ໄດ້ຈິງຫຼາຍ GPU

  • ໃຫ້ແນ່ໃຈວ່າ GPU ມີຄວາມສາມາດຄ້າຍຄືກັນ (ການປະສົມສາມາດເປັນບັນຫາຄໍຂວດໄດ້)

  • ການເຊື່ອມຕໍ່ລະຫວ່າງໂມງ: NVLink ທຽບກັບ PCIe ມີຄວາມສຳຄັນຕໍ່ວຽກງານທີ່ມີການຊິ້ງຫຼາຍ ( ພາບລວມຂອງ NVIDIA NVLink , ເອກະສານ NVIDIA NVLink )

  • ຮັກສາຂະໜາດຂອງຊຸດຕໍ່ GPU ໃຫ້ສົມດຸນ

  • ຢ່າລະເລີຍ CPU ແລະ ບ່ອນເກັບຂໍ້ມູນ - ຫຼາຍ GPU ສາມາດເຮັດໃຫ້ເກີດບັນຫາຂໍ້ຈຳກັດຂອງຂໍ້ມູນໄດ້

ແລະແມ່ນແລ້ວ, ຄວາມຜິດພາດຂອງ NCCL ສາມາດຮູ້ສຶກຄືກັບປິດສະໜາທີ່ຫໍ່ດ້ວຍຄວາມລຶກລັບທີ່ຫໍ່ດ້ວຍ “ເປັນຫຍັງຕອນນີ້”. ເຈົ້າບໍ່ໄດ້ຖືກສາບແຊ່ງ. ອາດຈະແມ່ນ. ( ພາບລວມຂອງ NCCL )


10) ການຕິດຕາມກວດກາ ແລະ ການວິເຄາະໂປຣໄຟລ໌ - ສິ່ງທີ່ບໍ່ໜ້າສົນໃຈທີ່ຊ່ວຍປະຢັດເວລາຂອງທ່ານຫຼາຍຊົ່ວໂມງ 📈🧯

ທ່ານບໍ່ຕ້ອງການແຜງຄວບຄຸມທີ່ຫຼູຫຼາເພື່ອເລີ່ມຕົ້ນ. ທ່ານຈໍາເປັນຕ້ອງສັງເກດເຫັນເມື່ອມີບາງສິ່ງບາງຢ່າງຜິດປົກກະຕິ.

ສັນຍານສຳຄັນທີ່ຄວນຕິດຕາມ

  • ການນຳໃຊ້ GPU : ມັນສູງ ຫຼື ແຫຼມສະເໝີບໍ?

  • ການໃຊ້ໜ່ວຍຄວາມຈຳ : ໝັ້ນຄົງ, ເພີ່ມຂຶ້ນ, ຫຼື ແປກ?

  • ການໃຊ້ພະລັງງານ : ຕໍ່າຜິດປົກກະຕິອາດໝາຍເຖິງການນຳໃຊ້ພະລັງງານໜ້ອຍເກີນໄປ

  • ອຸນຫະພູມ : ອຸນຫະພູມສູງຢ່າງຕໍ່ເນື່ອງສາມາດຫຼຸດຜ່ອນປະສິດທິພາບໄດ້

  • ການໃຊ້ CPU : ບັນຫາທໍ່ສົ່ງຂໍ້ມູນສະແດງຢູ່ທີ່ນີ້ ( ຄູ່ມືການປັບແຕ່ງປະສິດທິພາບ PyTorch )

ແນວຄິດການສ້າງໂປຣໄຟລ໌ (ສະບັບງ່າຍໆ)

  • ຖ້າ GPU ມີການນຳໃຊ້ຕໍ່າ - ຂໍ້ມູນ ຫຼື ຄໍຂວດຂອງ CPU

  • ຖ້າ GPU ສູງແຕ່ຊ້າ - ການຂາດປະສິດທິພາບຂອງເຄີເນລ, ຄວາມແມ່ນຍໍາ, ຫຼື ສະຖາປັດຕະຍະກໍາແບບຈໍາລອງ

  • ຖ້າຄວາມໄວໃນການຝຶກຊ້ອມຫຼຸດລົງແບບສຸ່ມ - ການຄວບຄຸມຄວາມຮ້ອນ, ຂະບວນການພື້ນຫຼັງ, ການຂາດ I/O

ຂ້ອຍຮູ້, ການຕິດຕາມກວດກາຟັງແລ້ວບໍ່ມ່ວນ. ແຕ່ມັນຄືກັບການໃຊ້ໄໝຂັດແຂ້ວ. ໜ້າລຳຄານ, ແລ້ວທັນທີທັນໃດຊີວິດຂອງເຈົ້າກໍ່ດີຂຶ້ນ.


11) ການແກ້ໄຂບັນຫາ - ຜູ້ຕ້ອງສົງໄສທົ່ວໄປ (ແລະຜູ້ທີ່ບໍ່ຄ່ອຍພົບເຫັນ) 🧰😵💫

ພາກນີ້ແມ່ນໂດຍພື້ນຖານແລ້ວ: "ບັນຫາຫ້າຢ່າງດຽວກັນ, ຕະຫຼອດໄປ."

ບັນຫາ: ໜ່ວຍຄວາມຈຳ CUDA ໝົດ

ການແກ້ໄຂ:

ບັນຫາ: ການຝຶກອົບຮົມເຮັດວຽກໂດຍໃຊ້ CPU ໂດຍບັງເອີນ

ການແກ້ໄຂ:

  • ຮັບປະກັນວ່າຮູບແບບຖືກຍ້າຍໄປ cuda

  • ຮັບປະກັນວ່າ tensors ຖືກຍ້າຍໄປ cuda

  • ກວດສອບການຕັ້ງຄ່າອຸປະກອນ framework ( ເອກະສານ PyTorch CUDA )

ບັນຫາ: ການຂັດຂ້ອງທີ່ແປກປະຫຼາດ ຫຼື ການເຂົ້າເຖິງໜ່ວຍຄວາມຈຳທີ່ຜິດກົດໝາຍ

ການແກ້ໄຂ:

  • ຢືນຢັນຄວາມເຂົ້າກັນໄດ້ຂອງໄດຣເວີ + ຣັນໄທມ໌ ( PyTorch Get Started (ຕົວເລືອກ CUDA) , ການຕິດຕັ້ງ TensorFlow (pip) )

  • ລອງໃຊ້ສະພາບແວດລ້ອມທີ່ສະອາດ

  • ຫຼຸດຜ່ອນການປະຕິບັດງານແບບກຳນົດເອງ

  • ເປີດໃຊ້ງານຄືນໃໝ່ດ້ວຍການຕັ້ງຄ່າແບບກຳນົດເພື່ອຜະລິດຊ້ຳ

ບັນຫາ: ຊ້າກວ່າທີ່ຄາດໄວ້

ການແກ້ໄຂ:

ບັນຫາ: Multi-GPU ຄ້າງ

ການແກ້ໄຂ:

  • ຢືນຢັນການຕັ້ງຄ່າ backend ທີ່ຖືກຕ້ອງ ( ເອກະສານແຈກຢາຍ PyTorch )

  • ກວດສອບການຕັ້ງຄ່າສະພາບແວດລ້ອມ NCCL (ລະມັດລະວັງ) ( ພາບລວມຂອງ NCCL )

  • ທົດສອບ GPU ດຽວກ່ອນ

  • ຮັບປະກັນວ່າເຄືອຂ່າຍ / ການເຊື່ອມຕໍ່ລະຫວ່າງເຄືອຂ່າຍມີສຸຂະພາບດີ

ຂໍ້ສັງເກດນ້ອຍໆທີ່ຄວນຈື່ໄວ້: ບາງຄັ້ງການແກ້ໄຂກໍ່ຄືການຣີບູດເຄື່ອງໃໝ່. ມັນຮູ້ສຶກໂງ່ໆ. ມັນໃຊ້ໄດ້. ຄອມພິວເຕີກໍ່ເປັນແບບນັ້ນແຫຼະ.


12) ຄ່າໃຊ້ຈ່າຍ ແລະ ການນຳໃຊ້ໄດ້ຈິງ - ການເລືອກ GPU ແລະ ການຕັ້ງຄ່າ NVIDIA ທີ່ເໝາະສົມໂດຍບໍ່ຕ້ອງຄິດຫຼາຍເກີນໄປ 💸🧠

ບໍ່ແມ່ນທຸກໆໂຄງການຕ້ອງການ GPU ທີ່ໃຫຍ່ທີ່ສຸດ. ບາງຄັ້ງທ່ານຕ້ອງການ GPU ພຽງພໍ

ຖ້າທ່ານກຳລັງປັບແຕ່ງຮູບແບບຂະໜາດກາງ

ຖ້າທ່ານກຳລັງຝຶກອົບຮົມຕົວແບບທີ່ໃຫຍ່ກວ່າຕັ້ງແຕ່ເລີ່ມຕົ້ນ

ຖ້າທ່ານກຳລັງເຮັດການທົດລອງ

  • ເຈົ້າຕ້ອງການການເຮັດຊ້ຳໄວໆ

  • ຢ່າໃຊ້ເງິນທັງໝົດຂອງເຈົ້າໃສ່ GPU ແລະຈາກນັ້ນກໍ່ເຮັດໃຫ້ພື້ນທີ່ເກັບຂໍ້ມູນ ແລະ RAM ຫຼຸດລົງ

  • ລະບົບທີ່ສົມດຸນຈະເອົາຊະນະລະບົບທີ່ບໍ່ສົມດຸນ (ສ່ວນຫຼາຍແມ່ນທຸກມື້)

ແລະໃນຄວາມເປັນຈິງ, ເຈົ້າສາມາດເສຍເວລາຫຼາຍອາທິດໃນການໄລ່ຕາມການເລືອກຮາດແວທີ່ "ສົມບູນແບບ". ສ້າງບາງສິ່ງບາງຢ່າງທີ່ໃຊ້ໄດ້ຜົນ, ວັດແທກ, ແລ້ວປັບ. ສັດຕູທີ່ແທ້ຈິງບໍ່ແມ່ນການມີວົງຈອນຄຳຕິຊົມ.


ບັນທຶກສຸດທ້າຍ - ວິທີການໃຊ້ NVIDIA GPU ສຳລັບການຝຶກອົບຮົມ AI ໂດຍບໍ່ສູນເສຍສະຕິ 😌✅

ຖ້າທ່ານບໍ່ໄດ້ໃຊ້ຫຍັງອີກຈາກຄູ່ມືນີ້ກ່ຽວກັບ ວິທີການໃຊ້ NVIDIA GPU ສຳລັບການຝຶກອົບຮົມ AI , ໃຫ້ໃຊ້ອັນນີ້:

ການຝຶກຊ້ອມກ່ຽວກັບ GPU ຂອງ NVIDIA ແມ່ນໜຶ່ງໃນທັກສະເຫຼົ່ານັ້ນທີ່ຮູ້ສຶກຢ້ານກົວ, ແຕ່ທັນໃດນັ້ນມັນກໍ່ກາຍເປັນ...ປົກກະຕິ. ຄືກັບການຮຽນຂັບລົດ. ໃນຕອນທຳອິດທຸກຢ່າງມີສຽງດັງ ແລະ ສັບສົນ ແລະ ເຈົ້າຈັບພວງມາໄລແຮງເກີນໄປ. ແລ້ວມື້ໜຶ່ງເຈົ້າກໍ່ຂັບລົດ, ຈິບກາເຟ, ແລະ ແກ້ໄຂບັນຫາຂະໜາດຂອງ batch ຢ່າງສະບາຍໆຄືກັບວ່າມັນບໍ່ແມ່ນເລື່ອງໃຫຍ່ ☕😄

ຄຳຖາມທີ່ຖືກຖາມເລື້ອຍໆ

ມັນໝາຍຄວາມວ່າແນວໃດທີ່ຈະຝຶກອົບຮົມແບບຈຳລອງ AI ໃນ GPU NVIDIA

ການຝຶກອົບຮົມໃນ NVIDIA GPU ໝາຍຄວາມວ່າພາລາມິເຕີຂອງໂມເດວ ແລະ ກຸ່ມການຝຶກອົບຮົມຂອງທ່ານຢູ່ໃນ GPU VRAM, ແລະ ຄະນິດສາດທີ່ໜັກໜ່ວງ (forward pass, backprop, ຂັ້ນຕອນ optimizer) ຈະປະຕິບັດຜ່ານ kernel CUDA. ໃນທາງປະຕິບັດ, ສິ່ງນີ້ມັກຈະຂຶ້ນກັບການຮັບປະກັນວ່າໂມເດວ ແລະ tensors ຢູ່ໃນ cuda , ຈາກນັ້ນຕິດຕາມໜ່ວຍຄວາມຈຳ, ການນຳໃຊ້, ແລະ ອຸນຫະພູມເພື່ອໃຫ້ throughput ຄົງທີ່.

ວິທີການຢືນຢັນວ່າ GPU NVIDIA ເຮັດວຽກກ່ອນທີ່ຈະຕິດຕັ້ງສິ່ງອື່ນໃດ

ເລີ່ມຕົ້ນດ້ວຍ nvidia-smi . ມັນຄວນສະແດງຊື່ GPU, ເວີຊັນຂອງໄດຣເວີ, ການໃຊ້ໜ່ວຍຄວາມຈຳປັດຈຸບັນ, ແລະ ຂະບວນການຕ່າງໆທີ່ກຳລັງເຮັດວຽກ. ຖ້າ nvidia-smi ລົ້ມເຫຼວ, ໃຫ້ລໍຖ້າ PyTorch/TensorFlow/JAX - ແກ້ໄຂການເບິ່ງເຫັນໄດຣເວີກ່ອນ. ມັນເປັນພື້ນຖານ "ເຕົາອົບສຽບຢູ່ແລ້ວບໍ" ການກວດສອບການຝຶກອົບຮົມ GPU.

ການເລືອກລະຫວ່າງລະບົບ CUDA ແລະ CUDA ທີ່ມາພ້ອມກັບ PyTorch

ວິທີການທົ່ວໄປແມ່ນການໃຊ້ CUDA ທີ່ມາພ້ອມກັບ framework (ເຊັ່ນດຽວກັບລໍ້ PyTorch ຫຼາຍອັນ) ເພາະມັນຊ່ວຍຫຼຸດຜ່ອນຊິ້ນສ່ວນທີ່ເຄື່ອນທີ່ - ສ່ວນໃຫຍ່ທ່ານຕ້ອງການໄດຣເວີ NVIDIA ທີ່ເຂົ້າກັນໄດ້. ການຕິດຕັ້ງຊຸດເຄື່ອງມື CUDA ເຕັມລະບົບສະເໜີການຄວບຄຸມຫຼາຍຂຶ້ນ (ການສ້າງແບບກຳນົດເອງ, ການລວບລວມການເຮັດວຽກ), ແຕ່ມັນຍັງນຳສະເໜີໂອກາດຫຼາຍຂຶ້ນສຳລັບຄວາມບໍ່ກົງກັນຂອງລຸ້ນ ແລະ ຄວາມຜິດພາດໃນເວລາແລ່ນທີ່ສັບສົນ.

ເປັນຫຍັງການຝຶກອົບຮົມຈຶ່ງຍັງຊ້າເຖິງແມ່ນວ່າຈະມີ GPU NVIDIA ກໍຕາມ

ໂດຍສ່ວນຫຼາຍແລ້ວ, GPU ມັກຈະຂາດແຄນຂໍ້ມູນຈາກທໍ່ສົ່ງຂໍ້ມູນ. ຕົວໂຫຼດຂໍ້ມູນທີ່ຊັກຊ້າ, ການປະມວນຜົນ CPU ລ່ວງໜ້າຫຼາຍພາຍໃນຂັ້ນຕອນການຝຶກອົບຮົມ, ຂະໜາດກຸ່ມຂໍ້ມູນຂະໜາດນ້ອຍ, ຫຼື ການເກັບຮັກສາທີ່ຊ້າ ລ້ວນແຕ່ສາມາດເຮັດໃຫ້ GPU ທີ່ມີປະສິດທິພາບເຮັດວຽກຄືກັບເຄື່ອງເຮັດຄວາມຮ້ອນພື້ນທີ່ຫວ່າງ. ການເພີ່ມພະນັກງານໂຫຼດຂໍ້ມູນ, ການເປີດໃຊ້ໜ່ວຍຄວາມຈຳທີ່ຖືກປັກໝຸດໄວ້, ການເພີ່ມການດຶງຂໍ້ມູນລ່ວງໜ້າ, ແລະ ການຕັດບັນທຶກແມ່ນການເຄື່ອນໄຫວທຳອິດທີ່ພົບເລື້ອຍກ່ອນທີ່ຈະຕຳນິຮູບແບບ.

ວິທີປ້ອງກັນຄວາມຜິດພາດ “CUDA ໝົດໜ່ວຍຄວາມຈຳ” ໃນລະຫວ່າງການຝຶກອົບຮົມ GPU NVIDIA

ການແກ້ໄຂສ່ວນໃຫຍ່ແມ່ນຍຸດທະວິທີ VRAM: ຫຼຸດຂະໜາດຂອງ batch, ເປີດໃຊ້ງານຄວາມແມ່ນຍຳແບບປະສົມ (FP16/BF16), ໃຊ້ການສະສົມ gradient, ຫຼຸດຄວາມຍາວຂອງ sequence/crop size, ຫຼື ໃຊ້ຈຸດກວດສອບການເປີດໃຊ້ງານ. ກວດສອບຂະບວນການ GPU ອື່ນໆທີ່ໃຊ້ໜ່ວຍຄວາມຈຳ. ການລອງຜິດລອງຖືກບາງຢ່າງເປັນເລື່ອງປົກກະຕິ - ການວາງແຜນງົບປະມານ VRAM ກາຍເປັນນິໄສຫຼັກໃນການຝຶກອົບຮົມ GPU ແບບປະຕິບັດຕົວຈິງ.

ເປັນຫຍັງ VRAM ຈຶ່ງຍັງສາມາດເບິ່ງເຕັມຫຼັງຈາກສະຄຣິບການຝຶກອົບຮົມສິ້ນສຸດລົງ

ເຟຣມເວີກມັກຈະເກັບໜ່ວຍຄວາມຈຳ GPU ໄວ້ເພື່ອຄວາມໄວ, ສະນັ້ນໜ່ວຍຄວາມຈຳທີ່ສະຫງວນໄວ້ສາມາດຍັງຄົງສູງໄດ້ເຖິງແມ່ນວ່າໜ່ວຍຄວາມຈຳທີ່ຈັດສັນໄວ້ຈະຫຼຸດລົງ. ມັນອາດຈະຄ້າຍຄືກັບການຮົ່ວໄຫຼ, ແຕ່ມັນມັກຈະເປັນຕົວຈັດສັນແຄດທີ່ປະພຶດຕົວຕາມທີ່ອອກແບບມາ. ນິໄສທີ່ໃຊ້ໄດ້ຈິງແມ່ນການຕິດຕາມຮູບແບບໃນໄລຍະເວລາ ແລະ ປຽບທຽບ “ຈັດສັນໄວ້ທຽບກັບສະຫງວນໄວ້” ແທນທີ່ຈະສຸມໃສ່ snapshot ດຽວທີ່ໜ້າຕົກໃຈ.

ວິທີການຢືນຢັນວ່າຮູບແບບບໍ່ໄດ້ຝຶກອົບຮົມຢ່າງງຽບໆໃນ CPU

ການກວດສອບຄວາມສະງົບກ່ອນໄວອັນຄວນ: ຢືນຢັນວ່າ torch.cuda.is_available() ສົ່ງຄືນ True , ກວດສອບ next(model.parameters()).device ສະແດງ cuda , ແລະແລ່ນສົ່ງຕໍ່ຄັ້ງດຽວໂດຍບໍ່ມີຂໍ້ຜິດພາດ. ຖ້າປະສິດທິພາບຮູ້ສຶກຊ້າຢ່າງໜ້າສົງໄສ, ໃຫ້ຢືນຢັນວ່າກຸ່ມຂອງທ່ານກຳລັງຖືກຍ້າຍໄປ GPU. ມັນເປັນເລື່ອງທຳມະດາທີ່ຈະຍ້າຍຮູບແບບແລະປະໄວ້ຂໍ້ມູນໄວ້ໂດຍບັງເອີນ.

ເສັ້ນທາງທີ່ງ່າຍທີ່ສຸດໃນການຝຶກອົບຮົມຫຼາຍ GPU

Data Parallel (ການຝຶກອົບຮົມແບບ DDP) ມັກຈະເປັນຂັ້ນຕອນທຳອິດທີ່ດີທີ່ສຸດ: ແບ່ງກຸ່ມ GPU ແລະ sync gradients. ເຄື່ອງມືເຊັ່ນ Accelerate ສາມາດເຮັດໃຫ້ multi-GPU ເຈັບປວດໜ້ອຍລົງໂດຍບໍ່ຕ້ອງຂຽນຄືນໃໝ່ເຕັມຮູບແບບ. ຄາດວ່າຈະມີຕົວແປເພີ່ມເຕີມ - ການສື່ສານ NCCL, ຄວາມແຕກຕ່າງຂອງການເຊື່ອມຕໍ່ (NVLink vs PCIe), ແລະ ການເພີ່ມຂຶ້ນຂອງຂໍ້ຈຳກັດຂອງຂໍ້ມູນທີ່ເພີ່ມຂຶ້ນ - ສະນັ້ນການຂະຫຍາຍເທື່ອລະກ້າວຫຼັງຈາກການໃຊ້ GPU ດຽວທີ່ແຂງແກ່ນມັກຈະດີຂຶ້ນ.

ສິ່ງທີ່ຄວນຕິດຕາມກວດກາໃນລະຫວ່າງການຝຶກອົບຮົມ GPU NVIDIA ເພື່ອກວດພົບບັນຫາຕ່າງໆແຕ່ຫົວທີ

ຕິດຕາມການນຳໃຊ້ GPU, ການໃຊ້ໜ່ວຍຄວາມຈຳ (ຄົງທີ່ vs ເພີ່ມຂຶ້ນ), ການໃຊ້ພະລັງງານ, ແລະ ອຸນຫະພູມ - ການຄວບຄຸມຄວາມໄວສາມາດເຮັດໃຫ້ຄວາມໄວຫຼຸດລົງຢ່າງງຽບໆ. ໃຫ້ຕິດຕາມການນຳໃຊ້ CPU ນຳ, ເນື່ອງຈາກບັນຫາທໍ່ສົ່ງຂໍ້ມູນມັກຈະປາກົດຂຶ້ນກ່ອນ. ຖ້າການນຳໃຊ້ມີຄວາມຄົມຊັດ ຫຼື ຕ່ຳ, ໃຫ້ສົງໃສວ່າ I/O ຫຼື ຕົວໂຫຼດຂໍ້ມູນ; ຖ້າມັນສູງແຕ່ເວລາຂັ້ນຕອນຍັງຊ້າ, ເຄີເນລໂປຣໄຟລ໌, ໂໝດຄວາມແມ່ນຍຳ, ແລະ ການແຍກເວລາຂັ້ນຕອນ.

ເອກະສານອ້າງອີງ

  1. NVIDIA - ເອກະສານ NVIDIA nvidia-smi - docs.nvidia.com

  2. NVIDIA - ອິນເຕີເຟດການຈັດການລະບົບ NVIDIA (NVSMI) - developer.nvidia.com

  3. NVIDIA - ພາບລວມຂອງ NVIDIA NVLink - nvidia.com

  4. PyTorch - ເລີ່ມຕົ້ນ PyTorch (ຕົວເລືອກ CUDA) - pytorch.org

  5. PyTorch - ເອກະສານ PyTorch CUDA - docs.pytorch.org

  6. TensorFlow - ການຕິດຕັ້ງ TensorFlow (pip) - tensorflow.org

  7. JAX - ການເລີ່ມຕົ້ນດ່ວນຂອງ JAX - docs.jax.dev

  8. ກອດໜ້າ - ເອກະສານຄູຝຶກ - huggingface.co

  9. AI ຟ້າຜ່າ - ເອກະສານຟ້າຜ່າ - lightning.ai

  10. DeepSpeed ​​- ເອກະສານ ZeRO - deepspeed.readthedocs.io

  11. ການຄົ້ນຄວ້າຂອງ Microsoft - ການຄົ້ນຄວ້າຂອງ Microsoft: ZeRO/DeepSpeed ​​- microsoft.com

  12. ເວທີສົນທະນາ PyTorch - ເວທີສົນທະນາ PyTorch: ກວດສອບຮູບແບບໃນ CUDA - discuss.pytorch.org

ຊອກຫາ AI ລ່າສຸດໄດ້ທີ່ຮ້ານ AI Assistant ຢ່າງເປັນທາງການ

ກ່ຽວກັບພວກເຮົາ

ກັບໄປທີ່ບລັອກ