มีโอกาสคุยกับกลุ่มในสาย Data Science พบว่า
ปัญหาหลัก ๆ ของคนกลุ่มนี้คือ เรื่องการจัดการ environment ที่ใช้งาน
ประกอบไปด้วย
- ปัญหาในการติดตั้ง software
- ปัญหาในการติดตั้ง library หรือ dependency ต่าง ๆ
- ปัญหาในการ configuration และ setting ค่าต่าง ๆ
บริษัทต่าง ๆ เขาแก้ไขปัญหานี้อย่างไรกันนะ ?
เท่าที่คุยมาก็มีอยู่ 2 แบบคือ- แบบที่ 1 ใครอยากทำอะไร ติดตั้งอะไรก็ทำไปเลย ง่ายนะ เร็วด้วย แต่ว่าต่างคนก็ต่างไปคนละทาง
- แบบที่ 2 บริษัททำการควบคุมทุกอย่าง ลงได้เท่าที่กำหนดเท่านั้น ทำให้ฝ่าน IT ควบคุมได้หมด แต่สำหรับคนใช้มันยากต่อการเปลี่ยนแปลงมาก ๆ
หนึ่งในวิธีการที่ขอแนะนำคือ Docker
ยิ่งที่โลกของ Data Science ยิ่งต้องใช้กัน เนื่องจากมีเครื่องมือ และ library ต่าง ๆ เป็นจำนวนมาก ถ้าเรามีชุดเครื่องมือเตรียมไว้ให้ทั้งหมด จากนั้นแต่ละคนก็นำสิ่งที่เตรียมไว้ไปใช้งาน น่าจะลดปัญหาไปได้เยอะ และน่าจะเริ่มงานได้อย่างรวดเร็วปัญหาที่มักเจอเช่น Python 2.7 vs 3.x
คำถามคือ ลำบากไหมที่ต้องสลับ version ของ Python ไปมา !! เลยยกตัวอย่างของการนำ Docker มาแก้ไขปัญหาเหล่านี้นิดหน่อย เริ่มด้วยการสร้าง Docker Image สำหรับ Python 3 ขึ้นมาก่อน มี library ที่ต้องการใช้คือ- numpy
- scipy
- scikit-learn
- เลือก base image เป็น Python 3.6.8
- กำหนด working directory
- ทำการ copy ไฟล์ requirements.txt เข้าไป
- ทำการ copy ไฟล์ทั้งหมดเข้าไป
- ทำการติดตั้ง library ต่าง ๆ ที่กำหนดไว้ในไฟล์ requirement.txt
- กำหนดให้ทำการ run คำสั่ง python app.py เพื่อทดสอบไฟล์ที่เราต้องการนั่นคือ app.py
ขอยกตัวอย่าง Docker image ที่น่าสนจาก Kaggle
ประกอบไปด้วย- kaggle/python สำหรับภาษา Python
- kaggle/rstats สำหรับภาษา R
- kaggle/julia สำหรับภาษา Julia
แต่สิ่งที่สำคัญคือ ตอบรับกับความต้องการหรือการเปลี่ยนแปลงได้รวดเร็วเพียงใด ลดผลกระทบจากการเปลี่ยนแปลงให้น้อยหรือไม่เกิดเลยได้อย่างไรขอให้สนุกกับการ coding ครับ