เครื่องมือ AI 101
การตั้งค่าสำหรับการฝึกอบรม การปรับให้เหมาะสม และการอนุมานของ LLMs ด้วย GPU ของ NVIDIA และ CUDA
สาขาหนึ่งของปัญญาประดิษฐ์ (AI) ได้เห็นการพัฒนาที่น่าประทับใจในช่วงไม่กี่ปีที่ผ่านมา และที่ใจกลางของมันคือการรวมกันของหน่วยประมวลผลกราฟิก (GPU) และแพลตฟอร์มการประมวลผลขนาน
โมเดล เช่น GPT, BERT และ Llama และ Mistral สามารถเข้าใจและสร้างข้อความที่เหมือนมนุษย์ได้ด้วยความชำนาญและความสอดคล้องที่ไม่เคยเห็นมาก่อน อย่างไรก็ตาม การฝึกอบรมโมเดลเหล่านี้ต้องใช้ข้อมูลและทรัพยากรการประมวลผลจำนวนมาก ทำให้ GPU และ CUDA เป็นเครื่องมือที่จำเป็นในความพยายามนี้
คู่มือที่ครอบคลุมนี้จะพาคุณผ่านขั้นตอนการตั้งค่า GPU ของ NVIDIA (NVDA ) บน Ubuntu โดยครอบคลุมถึงการติดตั้งซอฟต์แวร์สำคัญ เช่น ไดรเวอร์ NVIDIA, CUDA Toolkit, cuDNN, PyTorch และอื่นๆ
การเพิ่มขึ้นของเฟรมเวิร์ก AI ที่เร่งความเร็วด้วย CUDA
การเร่งความเร็วการเรียนรู้ของเครื่องด้วย GPU ได้รับการขับเคลื่อนโดยการพัฒนาเฟรมเวิร์ก AI ที่ได้รับความนิยม ซึ่งใช้ CUDA สำหรับการคำนวณที่มีประสิทธิภาพ เฟรมเวิร์ก เช่น TensorFlow, PyTorch และ MXNet มีการสนับสนุน CUDA ที่มีประสิทธิภาพ ทำให้สามารถรวมการเร่งความเร็วของ GPU เข้ากับพายพันการเรียนรู้ของเครื่องได้อย่างราบรื่น
ตามการศึกษาผลการทำงานของผลิตภัณฑ์เรียนรู้ของเครื่องดีปของ NVIDIA การเร่งความเร็วของโมเดลการเรียนรู้ของเครื่องด้วย CUDA สามารถให้ผลการทำงานที่เร็วขึ้นได้ถึง 100 เท่า เมื่อเทียบกับการใช้ CPU
การเร่งความเร็วการอนุมานของ LLM ด้วย NVIDIA TensorRT
ในขณะที่ GPU มีบทบาทสำคัญในการฝึกอบรม LLM การอนุมานที่มีประสิทธิภาพก็มีความสำคัญไม่แพ้กันในการใช้งานใน生产 NVIDIA TensorRT เป็นตัวเร่งการอนุมานและรันไทม์สำหรับการเรียนรู้ของเครื่องด้วยประสิทธิภาพสูง ซึ่งมีบทบาทสำคัญในการเร่งความเร็วการอนุมานของ LLM บน GPU ที่รองรับ CUDA
ตามข้อมูลที่ NVIDIA เผยแพร่ TensorRT สามารถให้ผลการทำงานที่เร็วขึ้นได้ถึง 8 เท่า และต้นทุนรวมที่ลดลงถึง 5 เท่า เมื่อเทียบกับการอนุมานบน CPU สำหรับโมเดลภาษาขนาดใหญ่ เช่น GPT-3
การติดตั้ง
เมื่อตั้งค่าพัฒนา AI การใช้ไดรเวอร์และไลบรารีล่าสุดอาจไม่ใช่ตัวเลือกที่ดีที่สุดเสมอไป ตัวอย่างเช่น ไดรเวอร์ NVIDIA ล่าสุด (545.xx) รองรับ CUDA 12.3 แต่ PyTorch และไลบรารีอื่นๆ อาจไม่รองรับเวอร์ชันนี้ ดังนั้น เราจะใช้ไดรเวอร์เวอร์ชัน 535.146.02 พร้อมกับ CUDA 12.2 เพื่อให้แน่ใจถึงความเข้ากันได้
ขั้นตอนการติดตั้ง
1. ติดตั้งไดรเวอร์ NVIDIA
ขั้นแรก คุณต้องระบุ型号ของ GPU ของคุณ ไปที่ หน้าดาวน์โหลดไดรเวอร์ NVIDIA เลือกไดรเวอร์ที่เหมาะสมสำหรับ GPU ของคุณ และบันทึกเวอร์ชันของไดรเวอร์
ตรวจสอบแพ็คเกจ GPU ที่สร้างไว้ล่วงหน้าบน Ubuntu โดยใช้คำสั่ง:
sudo ubuntu-drivers list --gpgpu
รีบูตคอมพิวเตอร์และตรวจสอบการติดตั้ง:
nvidia-smi
2. ติดตั้ง CUDA Toolkit
CUDA Toolkit ให้สภาพแวดล้อมพัฒนาสำหรับการสร้างแอปพลิเคชันที่เร่งความเร็วด้วย GPU
สำหรับการตั้งค่าที่ไม่ใช่ LLM/การเรียนรู้ของเครื่อง คุณสามารถใช้:
sudo apt install nvidia-cuda-toolkit
อย่างไรก็ตาม เพื่อให้แน่ใจถึงความเข้ากันได้กับ BitsAndBytes เราจะทำตามขั้นตอนเหล่านี้:
git clone https://github.com/TimDettmers/bitsandbytes.git cd bitsandbytes/ bash install_cuda.sh 122 ~/local 1
ตรวจสอบการติดตั้ง:
~/local/cuda-12.2/bin/nvcc --version
ตั้งค่าตัวแปรสภาพแวดล้อม:
export CUDA_HOME=/home/roguser/local/cuda-12.2/ export LD_LIBRARY_PATH=/home/roguser/local/cuda-12.2/lib64 export BNB_CUDA_VERSION=122 export CUDA_VERSION=122
3. ติดตั้ง cuDNN
ดาวน์โหลดแพ็คเกจ cuDNN จาก เว็บไซต์นักพัฒนา NVIDIA ติดตั้งโดยใช้:
sudo apt install ./cudnn-local-repo-ubuntu2204-8.9.7.29_1.0-1_amd64.deb
ทำตามคำแนะนำเพื่อเพิ่มคีย์ริง:
sudo cp /var/cudnn-local-repo-ubuntu2204-8.9.7.29/cudnn-local-08A7D361-keyring.gpg /usr/share/keyrings/
ติดตั้งไลบรารี cuDNN:
sudo apt update sudo apt install libcudnn8 libcudnn8-dev libcudnn8-samples
4. ตั้งค่าสภาพแวดล้อม Python 仮想
Ubuntu 22.04 มาพร้อมกับ Python 3.10 ติดตั้ง venv:
sudo apt-get install python3-pip sudo apt install python3.10-venv
สร้างและเปิดใช้งานสภาพแวดล้อม 仮想:
cd mkdir test-gpu cd test-gpu python3 -m venv venv source venv/bin/activate
5. ติดตั้ง BitsAndBytes จากแหล่งที่มา
ไปที่ไดเร็กทอรี BitsAndBytes และสร้างจากแหล่งที่มา:
cd ~/bitsandbytes CUDA_HOME=/home/roguser/local/cuda-12.2/ \ LD_LIBRARY_PATH=/home/roguser/local/cuda-12.2/lib64 \ BNB_CUDA_VERSION=122 \ CUDA_VERSION=122 \ make cuda12x
CUDA_HOME=/home/roguser/local/cuda-12.2/ \
LD_LIBRARY_PATH=/home/roguser/local/cuda-12.2/lib64 \
BNB_CUDA_VERSION=122 \
CUDA_VERSION=122 \
python setup.py install
[/code]
6. ติดตั้ง PyTorch
ติดตั้ง PyTorch โดยใช้คำสั่ง:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
7. ติดตั้ง Hugging และ Transformers
ติดตั้งไลบรารี Transformers และ Accelerate:
pip install transformers pip install accelerate
พลังของการประมวลผลขนาน
ที่แก่นกลาง GPU เป็นตัวประมวลผลขนานที่ออกแบบมาเพื่อจัดการเธรดพร้อมกันหลายพันเธรดได้อย่างมีประสิทธิภาพ สถาปัตยกรรมนี้ทำให้พวกมันเหมาะสมสำหรับงานที่ต้องใช้การประมวลผลมาก เช่น การฝึกอบรมโมเดลการเรียนรู้ของเครื่อง รวมถึง LLM
การเร่งความเร็วการฝึกอบรม LLM ด้วย GPU และ CUDA
การฝึกอบรมโมเดลภาษาขนาดใหญ่ต้องใช้การประมวลผลข้อมูลและดำเนินการเมทริกซ์จำนวนมาก GPU มีคอร์หลายพันและแบนด์วิธหน่วยความจำสูง ทำให้พวกมันเหมาะสำหรับงานเหล่านี้
การฝึกอบรม GPT-3 ซึ่งเป็นหนึ่งในโมเดลภาษาที่ใหญ่ที่สุดจนถึงปัจจุบัน ได้รับการทำได้โดยใช้ GPU ของ NVIDIA หลายพันเครื่องพร้อมกับโค้ดที่ได้รับการปรับให้เหมาะสมสำหรับ CUDA
ไลบรารีที่เร่งความเร็วด้วย CUDA สำหรับการเรียนรู้ของเครื่อง
除了แพลตฟอร์ม CUDA เอง NVIDIA และชุมชนโอเพ่นซอร์สได้พัฒนาไลบรารีหลายตัวที่เร่งความเร็วด้วย CUDA ซึ่งช่วยให้สามารถนำไปใช้ในการเรียนรู้ของเครื่องได้อย่างมีประสิทธิภาพ
ไลบรารีหนึ่งคือ cuDNN (CUDA Deep Neural Network library) ซึ่งให้การดำเนินการที่ได้รับการปรับให้เหมาะสมสำหรับโครงข่ายประสาทเทียม
การฝึกอบรมหลาย GPU และการฝึกอบรมแบบกระจายสำหรับการปรับขนาด
เมื่อโมเดล LLM และการเรียนรู้ของเครื่องมีขนาดใหญ่ขึ้น ความต้องการการประมวลผลสำหรับการฝึกอบรมเหล่านี้ก็เพิ่มขึ้นด้วย เพื่อแก้ไขปัญหานี้ นักวิจัยและนักพัฒนาได้หันมาใช้เทคนิคการฝึกอบรมหลาย GPU และการฝึกอบรมแบบกระจาย
CUDA และไลบรารีที่เกี่ยวข้อง เช่น NCCL (NVIDIA Collective Communications Library) ให้คำสั่งการสื่อสารที่มีประสิทธิภาพซึ่งช่วยให้สามารถส่งผ่านและซิงค์ข้อมูลระหว่าง GPU หลายตัวได้อย่างราบรื่น
การนำโมเดลการเรียนรู้ของเครื่องไปใช้กับ CUDA
ในขณะที่ GPU และ CUDA ได้ถูกใช้ในการฝึกอบรมโมเดลการเรียนรู้ของเครื่อง พวกมันก็มีความสำคัญไม่แพ้กันในการใช้งานในผลิต NVIDIA TensorRT เป็นตัวเร่งการอนุมานและรันไทม์สำหรับการเรียนรู้ของเครื่องด้วยประสิทธิภาพสูง
สรุป
การรวมกันของ GPU และ CUDA ได้ขับเคลื่อนความก้าวหน้าในโมเดลภาษาขนาดใหญ่ การมองเห็นของเครื่อง การรู้จำเสียง และโดเมนอื่นๆ ของการเรียนรู้ของเครื่อง ด้วยการนำความสามารถการประมวลผลขนานของ GPU และไลบรารีที่ได้รับการปรับให้เหมาะสมจาก CUDA นักวิจัยและนักพัฒนาสามารถฝึกอบรมและใช้โมเดลที่ซับซ้อนมากขึ้นด้วยประสิทธิภาพสูง
เมื่ออุตสาหกรรม AI ต่อไปนี้ ความสำคัญของ GPU และ CUDA จะเพิ่มขึ้นเท่านั้น ด้วยฮาร์ดแวร์และซอฟต์แวร์ที่มีประสิทธิภาพมากขึ้น เราสามารถคาดหวังการผ่านพื้นที่ใหม่ๆ ในการพัฒนาและการใช้งานระบบ AI












