Categories
Computer Diary

#5 ติดตั้ง Docker เพื่อใช้งาน AI/ML

ปัญหาสำหรับงาน AI/ML หนึ่งคือปัญหาการติดตั้ง, การจัดการแพคเกจ และไลบรารี ส่งผลให้งานล่าช้า วิธีแก้ที่แก้ได้ดีคือการใช้ Docker บทความนี้แนะนำวิธีการติดตั้ง

ปัญหาสำหรับงาน Machine Learning ส่วนหนึ่งเลยคือปัญหาการติดตั้ง และจัดการ Environment สำหรับการใช้งานทีประกอบไปด้วยปัญหาการติดตั้งเครื่องมือ ปัญหาการติดตั้งไลบรารี และปัญหาการตั้งค่า

ปัญหาเหล่านี้ส่งผลทำให้งานเป็นไปได้ล่าช้า หรือถึงแม้ติดตั้งเองได้แต่ก็ลืม รวมถึงถึงติดตั้งได้ แต่เครื่องมือเหล่านี้ก็เป็นเวอร์ชันเก่าแล้ว

โดยสำหรับเรา เดิมที่เราติดตั้งผ่านการใช้งาน Miniconda3 ที่มีปัญหาว่าเราจำเป็นต้องติดตั้งเครื่องมือเยอะแยะ หลายขั้นตอนไปหมด ส่งผลให้การทำงานเป็นได้อย่างล่าช้า แต่ปัญหานี้จะหมดไปได้ด้วยการใช้งาน Docker

Docker เป็นเครื่องมือที่ช่วยในการพัฒนา ช่วยรันโปรแกรมต่าง ๆ ที่ช่วยทำให้ผู้ใช้สามารถใช้งานได้ง่ายขึ้น โดยเราสามารถติดตั้งเครื่องมือ ไลบารีที่จำเป็นลงไปในตัว Container นั้นได้เลย และเราสามารถย้ายตัว Container ไปใช้งานกับคอมพิวเตอร์เครื่องอื่นได้โดยไม่จำเป็นต้องตั้งค่าให้ยุ่งยากแต่อย่างใด

วิธีการเริ่มใช้งานทำได้ไม่ยาก ผู้อ่านสามารถเข้าไปอ่านได้ที่คู่มือการติดตั้ง Docker โดยผู้อ่านสามารถเลือกได้ว่าจะติดตั้ง

  • Docker Desktop ที่มีหน้าต่างแบบวินโดว์ หรือ
  • ติดตั้งตัว Docker เฉย ๆ ที่ใช้งานผ่านคอมมานไลน์ก็ได้

วิธีติดตั้งแพคเกจ Docker แบบคอมมานไลน์

ส่วนของเราที่ใช้ลินุกซ์ Ubuntu อยู่แล้ว ก็ติดตั้งแบบที่ใช้งานผ่านคอมมานไลน์ วิธีการติดตั้งทำได้ไม่ยาก ทำได้โดยการติดตั้งแพคเกจที่จำเป็นต่อการใช้งาน Docker ด้วยการพิมพ์คำสั่งด้านล่างนี้

$ sudo apt-get update
$ sudo apt-get install ca-certificates curl gnupg

ต่อมา ระบบจะติดตั้งแพคเกจที่จำเป็นต่อการรติดตั้ง Docker ขั้นตอนต่อไป เราจะเพิ่มตำแหน่งแพคเกจของ Docker (Docker package repository) เพื่อติดตั้ง Docker ได้สองขั้นตอน

ขั้นตอนแรก เป็นการเพิ่มคีย์สำหรับการเพิ่มตำแหน่งแพคเกจของ Docker

$ sudo install -m 0755 -d /etc/apt/keyrings
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
$ sudo chmod a+r /etc/apt/keyrings/docker.gpg

ขั้นตอนที่สอง เพิ่มตำแหน่งแพคเกจของ Docker ได้โดยการพิมพ์คำสั่งตามด้านล่างนี้

$ echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

จากนั้น พิมพ์คำสั่งหลังจากเปลี่ยนแปลงทีอยู่ของแพคเกจสำหรับการติดตั้ง Docker เพื่ออัพเดทได้ตามด้านล่างนี้

$ sudo apt-get update

สุดท้าย ติดตั้งแพคเกจ Docker

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

เมื่อติดตั้งเสร็จแล้ว ผู้ใช้สามารถทดสอบการใช้งานได้โดยการพิมพ์คำสั่ง

$ sudo docker run hello-world

ระบบจะปรากฏหน้าจอสำหรับการทดสอบของแพคเกจ hello-world เพื่อแสดงว่าการติดตั้งแพคเกจ Docker สำเร็จด้วยดี

หน้าจอ Docker (hello-world)

จากข้างบนนี้เป็นการติดตั้ง Docker สำหรับการนำไปใช้ทำอะไรก็ได้ เช่นการพัฒนาโปรแกรม การติดตั้งตัวเว็บเซิร์ฟเวอร์ และอื่น ๆ แล้วครับ

การติดตั้ง NVIDIA Container Toolkit

ส่วนถ้าต้องการติดตั้งเพื่อใช้งานการ์ดจอเพิ่มเติม ผู้อ่านสามารถติดตั้งแพคเกจ NVIDIA Container Toolkit โดยเราสามารถติดตั้งได้ตามด้านล่างนี้

หนึ่ง เพิ่มตำแหน่งแพคเกจของ NVIDIA Container Toolkit ได้โดยการพิมพ์คำสั่งตามด้านล่างนี้

distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \
      && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
      && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
            sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
            sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

สอง ติดตั้งแพคเกจ NVIDIA Container Toolkit

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

สาม ตั้งค่าให้ Docker รับทราบถึง NVIDIA Container Toolkit ตามด้านล่างนี้

sudo nvidia-ctk runtime configure --runtime=docker

สี่ รีสตาร์ทตัวเครื่องมือ Docker แล้วทดสอบการใช้งาน NVIDIA Container Toolkit ได้โดยการพิมพ์คำสั่งตามด้านล่างนี้

sudo nvidia-ctk runtime configure --runtime=docker

sudo docker run --rm --runtime=nvidia --gpus all nvidia/cuda:11.6.2-base-ubuntu20.04 nvidia-smi

เมื่อพิมพ์เสร็จแล้ว ระบบจะแสดงหน้าจอของเครื่องมือ ์nvidia-smi โดยแสดงตัวอย่างตามด้านล่างนี้

หน้าจอ nvidia-smi

เมื่อแสดงตามด้านบนนี้ก็แสดงว่าเราติดตั้ง Docker และ NVIDIA Container Toolkit เรียบร้อย เราสามารถดึงแพคเกจ PyTorch หรือ Tensorflow หรืออื่น ๆ เพื่อใช้งานทางด้าน Machine Learning ต่อไปได้ครับ

By Kittisak Chotikkakamthorn

อดีตนักศึกษาฝึกงานทางด้าน AI ที่ภาควิชาวิศวกรรมไฟฟ้า มหาวิทยาลัย National Chung Cheng ที่ไต้หวัน ที่กำลังหางานทางด้าน Data Engineer ที่มีความสนใจทางด้าน Data, Coding และ Blogging / ติดต่อได้ที่: contact [at] nickuntitled.com