Notifications
Clear all

GPU-TPU Cloud Resources ฟรีหรือราคาประหยัด

7 ข้อความ
1 Users
0 Likes
23.9 K Views
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  

update 2023: ชี้เป้าแหล่งใช้ GPU ฟรีหรือเช่าราคาถูก (เลื่อนลงไปดูกระทู้ล่าสุดครับ)

 

.

ทุนวิจัย Tensorflow Research Cloud ที่ให้พวกเราสามารถใช้ TPU ได้ฟรี 60 วัน!

ThaiKeras 13 มิย. 2563  

สวัสดีครับ ถ้าเพื่อนๆ ได้อ่านบทความของ ThaiKeras & Kaggle หลังๆ จะพบว่าเราพูดถึง TPU หรือ Tensor Processing Unit บ่อยมากๆ ทั้งนี้เพราะเจ้า TPU นี้เจ๋งสุดๆ ด้วย speed ที่เร็วระดับ fast & furious ยิ่งกว่า GPU ที่ใช้กันทั่วไปหลายสิบเท่า นอกจากนี้ยังเรียกใช้ได้ง่ายๆ บน Keras-TF2.0 … โดยไม่กี่เดือนที่ผ่านมานั้น Kaggle ได้อนุญาตให้ทุกคนใช้ TPU ได้ฟรีๆ ถึง 30 ชม. ต่อสัปดาห์ (เทียบเท่าค่าเช่าบน Google Cloud มากกว่า 3 หมื่นบาทต่อเดือน)

 

วันนี้เรามีข่าวดียิ่งกว่าเดิมมาฝากเพื่อนๆ ครับ นั่นคือทาง Tensorflow นั้นได้ยินดีที่จะมอบทุนวิจัยเพื่อใช้ TPU ฟรีๆ เป็นเวลาถึง 60 วันเต็มๆ (ไม่จำกัดจำนวนชั่วโมง) แก่บุคคลทั่วไป โดยเราเพียงเข้าไปที่เว็บไซต์ของ Tensorflow Research Cloud (TFRC) นี้เพื่อกรอกรายละเอียดงานวิจัยอย่างย่อของงานที่เราต้องการใช้ TPU ครับ

 

https://www.tensorflow.org/tfrc

 

โดยส่วนใหญ่ทีม TFRC จะตอบรับภายในเวลาไม่กี่วันครับ

 

อนึ่งทุนนี้จะอนุญาตให้เราใช้ TPU ฟรีๆ ไม่จำกัดชั่วโมงภายในเวลาที่กำหนด (ส่วนใหญ่คือ 60 วัน) บน cloud.google.com ซึ่งมีเรื่องต้องทราบสองเรื่องดังนี้

 

  1. เราต้องสร้าง Compute Engine (Virtual Machine) ซึ่งประกอบไปด้วย CPU, Ram, Disk, etc. ขึ้นมาใช้งานก่อน โดยค่าใช้จ่ายในส่วนของ VM นี้จะไม่รวมอยู่ในทุนของ TFRC (ค่าใช้จ่ายขึ้นอยู่กับ spec ของ CPU, Ram, Disk ที่เรากำหนด โดยทั่วไปมักไม่เกิน1$ ต่อชม. -- ในการใช้ gmail account ครั้งแรกบน GCP ทุกคนจะได้เครดิต 300$ ฟรีๆ ดังนั้นค่าใช้จ่ายตรงนี้แทบจะฟรีเช่นกันครับ)

 

ดูวิธีสร้าง tensorflow VM พร้อม Jupyter Notebook บน GCP ภายใน 90 วินาที!!

https://towardsdatascience.com/90-second-setup-challenge-jupyter-tensorflow-in-google-cloud-93038bcac996  

  1. ต้องสร้าง VM อยู่ในโซนที่กำหนด โดยเมื่อทางทีม TFRC ตอบรับข้อเสนอทุน TPU ของเราแล้ว ทาง TFRC จะกำหนดโซนที่เราจะใช้งานได้ฟรีมาให้ทางอีเมล์ เช่น

europe-west4-a หรือ us-east1-a เป็นต้น ซึ่งเราต้องสร้าง GCP VM ให้อยู่ในโซนเดียวกันนี้เท่านั้นครับ

 

หลังจากผ่านขั้นตอนที่ 1) และ 2) มาแล้วเราเข้าไปที่หน้า console.cloud.google.com ของเรา เราจะเจอเมนู TPU อยู่ด้านซ้ายก็สามารถกดเข้าไปเพื่อ Activate ได้ทันทีครับ!

 

This topic was modified 4 years ago 2 times by The Neural Engineer
This topic was modified 1 year ago by The Neural Engineer

   
อ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  

 

ตัวอย่างโค้ด TPU ที่เรานำมาประยุกต์เข้ากับงานวิจัยได้

 

 

This post was modified 4 years ago by The Neural Engineer

   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  

Colab vs. Kaggle - ไม่ต้องเลือก ใช้ทั้งคู่ดีที่สุด

ThaiKeras and Kaggle  6 กย. 2563

 

สวัสดีครับเพื่อนๆ ทั้ง Colab และ Kaggle ต่างก็เป็นสุดยอดคอมพิวเตอร์แล็บบน Cloud ที่ให้ใช้ Virtual Machine (VM) ประสิทธิภาพสูงทั้ง GPU และ TPU ฟรีๆ (โดย Colab มี Pro-option จ่ายเงินเพิ่มเพียง 300 บาทต่อเดือน)

ทั้งคู่เปิดโอกาสให้คนทั่วไปสามารถทำการทดลอง Deep Learning หรือ AI ระดับงานวิจัยชั้นสูงได้โดยไม่ต้องมีทุนหนา โดยก่อนหน้าที่จะมี Colab และ Kaggle นี้ (ราวๆ 2-3 ปีก่อน) การจะใช้ GPU / TPU ประสิทธิภาพสูงเช่นนี้ต้องจ่ายเงินอย่างน้อยราว 30,000 บาทต่อเดือน และอาจจะทะลุไปถึงหลักแสนบาทต่อเดือน (ในกรณีใช้ Multi-GPUs ซึ่งเทียบเท่ากับการใช้ TPU)

หลายคนอาจสงสัยว่าควรจะใช้ Colab หรือ Kaggle ดีกว่ากัน สำหรับส่วนตัวผมเองคิดว่าใช้ทั้งคู่ร่วมกันนั้นยอดเยี่ยมที่สุดครับ 

กล่าวโดยสรุป Colab นั้นจะโดดเด่นเรื่องสเป็คโดยรวมที่สูงกว่า ทำให้การทดลองแบบ Interactive หรือผู้ใช้งานทำการทดลองอยู่กับหน้าจอตลอดเวลานั้นทำได้อย่างมีประสิทธิภาพ

ส่วน Kaggle นั้นจะได้ความง่ายและสะดวกเรื่องการเซพและเข้าถึงข้อมูล และความมั่นใจในการรัน Batch Session นั่นคือเรารันงานทิ้งไว้โดยการันตีว่าเครื่องจะไม่ดับกลางคัน ถ้าเราใช้งานไม่เกินโควตาครับ

นอกจากนี้ยังมีรายละเอียดปลีกย่อย ที่เราจะมาลองขุดเพิ่มเติมกันในบทความนี้ ซึ่งข้อมูลต่างๆ จะเป็นข้อมูล ณ ขณะเขียนบทความนี้คือ 6 กันยายน 2563 ครับ

ถ้าพร้อมแล้วเรามาเริ่มกันเลยครับ

.

 

โหมดการใช้งาน interactive vs. batch modes

Kaggle มีทั้ง interactive mode และ Batch mode

ใน interactive mode เราต้องเปิด browser ทิ้งไว้ตลอดเวลา ถ้ามีการปิด browser หรือ internet เสียหาย เราจะมีเวลาราว 60 นาทีที่จะเชื่อมต่อใหม่อีกครั้งสำหรับ CPU และ GPU มิเช่นนั้นตัว server จะตัดการเชื่อมต่ออย่างสมบูรณ์หลังจาก 60 นาทีไปแล้ว ส่วน TPU นั้นต้องเชื่อมต่อภายใน 15 นาทีก่อนที่ VM จะถูกทำลาย

ส่วนใน batch mode เราสามารถปิด browser และสั่งให้ VM รันจนเสร็จและเซพ output ให้เราโดยอัตโนมัติได้เลย แต่ต้องรันต่อเนื่องไม่เกินโควต้าที่จะอธิบายในหัวข้อถัดไปด้วยนะครับ

ใน Kaggle เราสามารถรัน 10 CPU batch, 2 GPU batch, 2 TPU batch ได้พร้อมกัน ดังนั้นถ้าเราต้องการรันงานเล็กๆ หลายๆ งานพร้อมกัน (ไม่เกินโควตาที่กล่าวในหัวข้อถัดไป) โดยไม่ต้องพะวงเรื่องการเชื่อมต่อถูกตัด การรันบน Kaggle ก็จะสะดวกมากๆ ครับ

Colab นั้นมีเพียง interactive mode เท่านั้นจึงต้องเปิด browser และเชื่อมต่อ internet ตลอดเวลา โดยถ้าการเชื่อมต่อหลุด เรามีเวลาราว 30 นาทีก่อนที่ VM จะถูกทำลายครับ

.

 

โควต้าในการใช้งาน

Kaggle นั้นมี Quota ในการใช้งานเป็นรายสัปดาห์ โดยสามารถใช้ CPU ได้ไม่จำกัด  แต่รันต่อเนื่องไม่เกิน 9 ชม. นั่นคือถ้าเกิน 9 ชม. VM จะถูกทำลายและข้อมูลทั้งหมดจะถูกลบถ้าเราไม่ได้เซพข้อมูลไว้ แต่เราสามารถสั่งสร้าง VM ใหม่ได้เรื่อยๆ ไม่จำกัด

Kaggle มีโควตา GPU รวมให้ **ไม่น้อยกว่า** 30 ชม. ต่อสัปดาห์ โควต้าจะเปลี่ยนทุกสัปดาห์ตามที่ Kaggle ประเมินว่าจะมีทรัพยากรมากหรือน้อยในสัปดาห์นั้นๆ  บางสัปดาห์อาจได้เกือบๆ 50 ชม. เลยทีเดียว

ตัว GPU รันต่อเนื่องได้ไม่เกิน 9 ชม. เช่นเดียวกัน CPU

Kaggle TPU นั้นมีโควตาให้ 30 ชม. ต่อสัปดาห์ Kaggle-TPU นั้นเป็น resource ที่ประสิทธิภาพสูงมากและแพง ดังนั้นจึงรันต่อเนื่องได้ไม่เกิน 3 ชม. ครับ

 

Colab นั้นมีโควตาเช่นกัน แต่ไม่เปิดเผยชัดเจน และไม่เท่ากันในแต่ละสัปดาห์เช่นเดียวกับ Kaggle  โดย

Colab อนุญาตให้ใช้งานต่อเนื่องราวๆ 12 ชม. ส่วน Colab-pro ที่มีค่าใช้จ่ายราวๆ 300 บาทต่อเดือน จะให้ใช้งานได้ต่อเนื่องไม่เกิน 24 ชม. ทั้งนี้ขึ้นกับว่ามีผู้ใช้งานเยอะหรือไม่ในวันนั้นๆ ด้วย 

ถ้าเราใช้งานมากเกินโควตา Colab อาจหยุดทำงานกลางทางได้แม้นเราจะเปิด browser และต่อ internet ตลอดเวลาก็ตาม

.

 

การรันต่อเนื่องนานๆ

บางครั้งถ้า training data เรามีขนาดใหญ่มากๆ เราจำเป็นต้องรันต่อเนื่องนานๆ เพื่อให้การ train สำเร็จอย่างน้อย 1-3 epochs

ตรงนี้ Colab จะง่ายกว่าเนื่องจาก Colab สามารถรันต่อเนื่องได้นานถึง 12-24 ชม. ต่างจาก Kaggle ที่ได้เพียง 9 ชม. ซึ่งถ้าจะรันนานกว่านั้นบน Kaggle ทำให้ต้องมีการเซพ states ของ model, optimizer และโหลด states เหล่านั้นขึ้นมาในการรันครั้งต่อไป

อย่างไรก็ดีเนื่องจากโควตา Colab ไม่ระบุชัดเจน บางครั้งเมื่อเราใช้งานเยอะ และโควตาใกล้หมด VM อาจถูกทำลายก่อน 12 หรือ 24 ชม.  ดังนั้นเราจึงต้องระมัดระวังเซพข้อมูลมากขึ้นเพื่อกันไม่ให้ข้อมูลสูญหายครับ

 

Spec เทียบหมัดต่อหมัด

** GPU **

บน Colab ถ้าเรายังมีโควตาเราจะได้  P100 ซึ่งเป็นรุ่นประสิทธิภาพค่อนข้างสูง แต่ถ้าเราใช้งานจนโควตาเหลือน้อยเราอาจจะได้รุ่น T4 หรือ K80 ซึ่งประสิทธิภาพด้อยกว่าแทน ส่วน Kaggle นั้นการันตี P100 บนโควตารายสัปดาห์ที่กล่าวในหัวข้อข้างบนครับ

 

** TPU ** 

TPU คือหน่วยประมวลผลที่ใกล้เคียง Multi-GPUs 8 units จึงทรงพลังอย่างมาก โดย Kaggle นั้นเราจะได้รุ่นใหม่คือ V3-8 ที่มี RAM 16GB ทั้ง 8 Cores ในขณะที่บน Colab จะได้รุ่น V2-8 คือ RAM 8GB ทั้ง 8 Cores ข้อดีของ Kaggle คือ V3-8 ทำงานได้เร็วกว่า V2-8 เกือบเท่าตัว แต่ข้อเสียก็คือรันได้ต่อเนืองไม่เกิน 3 ชม. ทำให้ถ้าเรามีข้อมูลหรือโมเดลขนาดใหญ่มากๆ การรันบนบน Colab ที่ลิมิตสูงถึง 12-24 ชม. ก็อาจจะเทรนข้อมูลได้สะดวกกว่า

 

** RAM **

บน Kaggle CPU และ TPU จะมี RAM 16GB ส่วน GPU จะมี RAM เพียง 13GB

ส่วน Colab นั้นมาตรฐานคือ 13 GB แต่สำหรับ Colab-Pro จะมีโหมด High-RAM ที่เพิ่ม RAM ให้เป็น 25 GB สำหรับ CPU, GPU และ 35GB สำหรับ TPU ซึ่งยอดเยี่ยมมากๆ

โดย Colab เวอร์ชันธรรมดา (ไม่ Pro) ก็มีเคล็ดลับเข้าสู่โหมด High-RAM ได้ด้วยการใช้ RAM ให้เต็ม ซึ่งตัว Colab ก็จะมี option สลับให้เราใช้โหมด High-RAM ได้ครับ

 

** Disk **

Colab ใจป้ำมากๆ ให้ Disk มี่ขนาดมากถึง 226GB สำหรับ CPU, TPU และ 147GB สำหรับ GPU

อย่างไรก็ดีในกรณีที่เราต้องการเซพ output แบบถาวร เช่น weights ของ model ที่สอนเสร็จแล้ว เราจำเป็นต้องเซพลง Google Drive หรือ Cloud Storage อื่นๆ ซึ่งอาจมีค่าใช้จ่ายเพิ่มเติมครับ

ส่วนใน Kaggle ก็ใจป้ำเช่นกันแต่จะซับซ้อนกว่าหน่อย นั้นโควตา Disk จะแยกเป็นสามส่วนคือ /kaggle/input ซึ่งเราสามารถโหลด datasets ที่มีอยู่บน Kaggle ได้ 100GB (ดูรายละเอียดด้านล่าง),  /kaggle/temp/ ที่เราสามารถเซพข้อมูลชั่วคราวได้มากกว่า 100GB และ /kaggle/working 5GB ซึ่งจะเป็น output ที่ Kaggle จะเซพให้เราถาวรในกรณีที่เรารัน Batch Session โดยอัตโนมัติ ซึ่งทำให้การเซพ output ของเราสะดวกมากกว่า Colab ครับ

 

** spec สูงสุด **

โดยส่วนตัวแล้ว Colab TPU-HighRAM ที่เทียบเท่าการใช้งาน Multi-GPUs บน RAM 35GB, Disk 226GB และรันต่อเนื่องได้ถึง 24 ชม. นั้นถือว่าสุดยอดมากๆ ซึ่งน่าจะเทียบเท่ากับการเช่าเครื่องบน Cloud อย่าง AWS หรือ GCP หลายหมื่นบาทต่อเดือนทีเดียว

อย่างไรก็ดีเนื่องจากโควตามีจำกัด ก็พยายามไม่ใช้ spec นี้ถ้าไม่จำเป็นนะครับ 🙂

ในกรณีทั่วๆ ไป Kaggle TPU นับว่าเหลือเฟือมากแล้วดังนั้น การรัน Batch session พร้อมกัน 2 sessions และเซพ output ถาวรอัตโนมัติก็ถือว่าเป็นอะไรที่สะดวกมากๆ ครับ

 

.

การสร้าง notebook เพื่อเขียนโปรแกรม

ถ้าเรามีไฟล์โน้ตบุคอยู่แล้ว ทั้ง Colab และ Kaggle สามารถ upload ไฟล์โน้ตบุคนามสกุล .ipynb ได้อย่างง่ายดายครับ

โดย Colab นั้นจะมี option import (ก็คือก้อปปี้) โน้ตบุคจาก GitHub ซึ่งทำให้เราสามารถเข้าถึงโน้ตบุคสำเร็จรูปบน GitHub ได้สะดวกเพียง 1 click

ส่วนใน Kaggle นั้นจะโดดเด่นในเรื่องที่มีการจัดกลุ่มโน้ตบุคตาม Datasets และตาม Competitions ซึ่งทำให้เราสามารถค้นหาโน้ตบุคที่เราสนใจได้อย่างเป็นหมวดหมู่ เช่น ปัจจุบันมีการแข่งขัน "ทำนายประเภทนกจากเสียงร้อง" (Cornell Birdcall Identification) เราก็สามารถหาโน้ตบุคทั้งหมดที่เกี่ยวข้องกับการแข่งขันและ dataset นี้ได้ที่ https://www.kaggle.com/c/birdsong-recognition/notebooks  ซึ่งการรวมโน้ตบุคเป็นหมวดหมู่ไว้ที่เดียวกันแบบนี้ทำให้การค้นหางานที่น่าสนใจทำได้ง่ายมากครับ   

นอกจากนี้สามารถโน้ตบุคที่กำลังมาแรงในปัจจุบันได้ที่ https://www.kaggle.com/notebooks เราสามารถก้อปปี้โน้ตบุคเหล่านั้นได้ง่ายๆ เพียง 1 click (คลิ้กที่มุมขวาบนของโน้ตบุคและเลือกคำสั่ง Copy and Edit Notebook)

 

.

การโหลดข้อมูล input

การโหลดข้อมูลบน Kaggle นั้นสามารถทำได้อย่างเป็นระบบ เนื่องจาก Kaggle เองเป็นหนึ่งในแหล่งรวม Dataset ที่ใหญ่ที่สุดในโลก เราสามารถหา Datasets ที่เกี่ยวข้องกับงานของเราได้ที่

https://www.kaggle.com/datasets และสามารถ import datasets เหล่านี้เข้า notebooks เราได้ง่ายๆ บนเมนูในโน้ตบุค (กดปุ่ม Add Data ในเมนูขวามือ) โดยเราสามารถโหลด Datasets ทั้งหมดในโน้ตบุคได้ไม่เกิน 100 GB ครับ

นอกจากนี้เรายังสามารถ Upload Datasets ส่วนตัวเข้าสู่ Server Kaggle โดยตรงได้อีกด้วยครับ โดยแต่ละ User นั้นมีโควต้า upload ข้อมูลส่วนตัวที่ไม่แชร์คนอื่น (Private) ได้ 100GB แต่ถ้า upload แบบให้คนอื่นใช้ได้แบบสาธารณะ (Public) ก็จะไม่มีโควตาครับ ดังนั้นการจัดการข้อมูลบน Kaggle จึงได้เนื้อที่แทบจะ unlimited ฟรีๆ และค่อนข้างสะดวกมากๆ ครับ

 

ส่วน Colab เราจำเป็นต้องมีแหล่งข้อมูลที่เซพอยู่ใน Google Drive, Cloud Storage อื่นๆ หรือแม้แต่ Kaggle ก็ได้ครับ และใช้ API ของแต่ละค่ายโหลดมากันเอง ก็จะมีขั้นตอนมากกว่า Kaggle หน่อย

.

 

สรุป

จากข้อมูลทั้งหมดที่กล่าวมาก็หวังว่าจะเป็นไอเดียให้เพื่อนๆ เลือกใช้งานทั้ง Colab และ Kaggle ได้เต็มประสิทธิภาพนะครับ โดยส่วนตัวผมเอง ใช้ทั้งคู่ร่วมกัน โดยจะใช้ Kaggle ให้หมดโควตาก่อนเนื่องจากการโหลด input/output ทำได้สะดวกกว่า และเมื่อ setup pipeline ที่มั่นใจแล้ว ก็จะเทรนด้วยโมเดลขนาดใหญ่และข้อมูลขนาดใหญ่ ก็จะเลือกใช้ Colab Pro TPU

ซึ่ง เมื่อใช้ทั้ง Colab และ Kaggle ร่วมกันแบบนี้แล้ว ทำงาน 7 วันยังไม่เคยใช้โควตาหมดพร้อมกันแม้แต่ครั้งเดียวเลยครับ

เพื่อนๆ ที่มีประสบการณ์ดีๆ บนทั้ง 2 platforms นี้เพิ่มเติมสามารถแชร์ได้ในคอมเมนท์ข้างล่างเลยนะครับผม 🙂

และสำหรับเพื่อนๆ ที่ยังไม่ได้เป็นสมาชิก FB Group Colab Thailand สามารถเข้าไปร่วมแชร์ประสบการณ์กันได้ที่นี่ครับ : https://www.facebook.com/groups/colab.thailand/


   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  
ประสานงาน 3 สุดยอดของฟรี Kaggle , Colab & Github

   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  
ย่อสุดๆ สำหรับ Colab Pro+ เดือนละ 1650 บาทคุ้มหรือไม่?
 
สรุปจาก
 
เดือนที่ผ่านมา Colab เปิด tier Pro+ ใหม่ซึ่งคิดราคา $49/เดือน หรือราวๆ 1650 บาท ซึ่งแพงกว่า tier Pro เดิมที่มีราคาเพียง 325 บาท/เดือน ถึง 5 เท่า
 
สิ่งที่จะได้จาก Pro+ คือ โดยทั่วไปโอกาสได้ GPU V100 สูงมาก, บวกกับ RAM 53GB และ Disk 150GB ซึ่งนับว่า Spec อลังการมาก รวมทั้งยังรันแบบ Background session ได้ด้วย
 
อย่างไรก็ดีข้อจำกัดคือ
- รันได้แค่ 1 session เท่านั้น ไม่สามารถเปิดหลายหน้าจอพร้อมกันแล้วได้ V100 เหมือนกันได้
- ทำงานต่อเนื่อง 1 session ไม่เกิน 24 ชม. เหมือนเดิม
- นโยบายคือ ถ้าใครได้ใช้งาน V100 มากเกินไปในเดือนหนึ่งๆ เดือนถัดมาอาจถูกลด priority ลงครับ เพื่อไม่ให้ใครคนนึงผูกขาด resource มากเกินไป
 
ตัวเลือกอื่นที่น่าสนใจ
- Vast.ai ให้เช่า GPU จาก user ทั่วไปมี RTX 3090 ให้เช่าในราคาค่อนข้างถูก $0.5 - $0.7/ชั่วโมง ราคาถูกกว่า Colab Pro+ ถ้าเราใช้ไม่เกิน 100 ชม.
 
- Ovhcloud.com ให้ spec 45 GB /V100 /1400GB SSD ในราคา $1.7925 /hour ถ้าเป็น project เร่งด่วนใช้ไม่เกิน 30 ชม. ก็จะดีกว่า Colab Pro+ครับ
 
- Spec ของ Colab Pro เดิม / Kaggle (ฟรี) ดูที่ https://thaikeras.com/community/main-forum/tfrc-tpu-researcg-grant/#post-382
This post was modified 3 years ago by The Neural Engineer

   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  
Posted by: @neural-engineer
 
 
 
เดือนที่ผ่านมา Colab เปิด tier Pro+ ใหม่ซึ่งคิดราคา $49/เดือน หรือราวๆ 1650 บาท ซึ่งแพงกว่า tier Pro เดิมที่มีราคาเพียง 325 บาท/เดือน ถึง 5 เท่า
 
สิ่งที่จะได้จาก Pro+ คือ โดยทั่วไปโอกาสได้ GPU V100 สูงมาก, บวกกับ RAM 53GB และ Disk 150GB ซึ่งนับว่า Spec อลังการมาก รวมทั้งยังรันแบบ Background session ได้ด้วย
 
 

วันนี้มีโอกาสลอง colab pro plus, ปรากฏว่าได้ GPU A100 ซึ่งแรงและ memory มากกว่า V100 3เท่าตัว รวมทั้ง RAM 88GB (ยังไมไ่ด้เลือก High-ram)

และ Disk 166GB .... เข้าใจว่า quota คงจำกัด  แต่การได้มีโอกาสได้ใช้เครื่องระดับนี้น่าจะราคา เหยียบ 5แสน  หรือหลักล้าน ถือว่าสุดยอดมากๆ ครับ

UPDATE เพิ่มเติม 10 พย 2564 :  สรุปว่าได้เครื่องแรงเพียงวันเดียวและใช้งานราวๆ 5 ชม. ครับ หลังจากนั้น แม้ไม่ได้ใช้งานอีกเลย จะพยายามอย่างไรก็ได้เครื่องที่สเปคต่ำมาก เทียบเท่าเครื่องฟรีที่ Kaggle นั่นคือ P100 , Ram 13GB แม้จะเลือก HighRAM อย่างไรก็ไม่ได้เกินนี้  พยายามมา เกือบ 2 สัปดาห์  (ซึ่งพยายามไม่ใช้เลย เพราะให้ Colab algorithm เข้าใจว่าเราใช้งานน้อย) ก็ยังไม่สามารถได้เครื่องดีกว่าเครื่องฟรี  จากที่คุ้มมากๆ กลายเป็นไม่คุ้มแล้วครับเพราะ เครื่อง A100 นั้น เช่าเองจะตกราวๆ 4$ ถ้า 5 ชม. ก็ราวๆ 20$ ถ้าได้ใช้สัก 10+ ชม. ถึงจะคุ้มราคา Colab pro+ 50$ ต่อเดือนครับ

ในกรณีนี้ ที่ vast.ai มีเครื่อง RTX 3090 และ A5000 ให้เช่า ในราคาชม ละ <= 1เหรียญ  และความแรงน้องๆ A100 (ราวๆ 60%) ถือว่าคุ้มกว่าครับ

This post was modified 3 years ago by The Neural Engineer

   
ตอบกลับอ้างอิง
The Neural Engineer
(@neural-engineer)
Honorable Member Admin
เข้าร่วมเมื่อ: 6 years ago
ข้อความ: 400
Topic starter  

เลือก GPU ฟรี/ถูกปี 2023 ทางเลือกอื่นนอกจาก Colab และ Kaggle

ThaiKeras & Kaggle - 19 กพ. 2023

 

 

ในปี 2022 ที่ผ่านมาทั้ง Colab และ Kaggle นั้นมีการเปลี่ยนแปลงนโยบายในการให้ใช้ GPU โดยโควต้า GPU นั้นลดลงอย่างมีนัยยะสำคัญ ถึงแม้จะจ่ายรายเดือนเพื่อใช้ Colab Pro(+) ก็ตาม ซึ่งทำให้การทดลองโมเดล Deep Learning ใหม่ๆ ทำได้ยาก

 

ในบทความนี้เราจะมาลองดูตลาดกันว่า ถ้าเราต้องการหา GPU+Jupyter Notebook ดีๆ มาใช้งานในราคาไม่แพง (หรือฟรี) นอกจาก Colab แล้วเรามีทางเลือกอะไรบ้างในปี 2023 นี้

 

โดยก่อนที่เราจะไปดูผู้ให้บริการเด่นๆ ราคาถูกๆ เราจะจำแนกประเภทของ GPU ที่เจอบ่อยๆ ก่อนจะได้เปรียบเทียบว่าผู้ให้บริการราคาถูกให้ทางเลือก GPU ใดกันบ้าง

 

.

 

-------

จัดกลุ่ม GPU ที่พบบ่อย

-------

 

 

เพื่อนๆ มือใหม่อาจจะงง เวลาต้องเลือกใช้งาน GPU ต่อไปนี้

K80, P100, V100, T4, 1080ti, 2080ti, 3090, RTX5000, A5000, A100, etc. ว่า GPU ไหนราคาเท่าไรถึงจะคุ้ม  สำหรับ grade ของ GPU เหล่านี้ผมขอเรียงบ้านๆ แบบนี้ครับผม

 

หมายเหตุ: การเรียงประสิทธิภาพ GPU อย่างละเอียดดูได้จาก benchmark 2 แหล่งนี้

https://lambdalabs.com/gpu-benchmarks

https://timdettmers.com/2023/01/30/which-gpu-for-deep-learning/#Raw_Performance_Ranking_of_GPUs

 

ส่วนการเรียงด้านล่าง (หรือดูรูปที่ 1) เป็นแบบคร่าวๆ บ้านๆ สไตล์แอดมินเองครับ

 

.

 

** Tier-E   - K80 (12GB)  รุ่นเก่ามาก แต่ถ้ามีใช้งานแบบถูกมากๆ หรือได้ใช้ฟรี ก็ใช้เทรนโมเดลเร็วกว่าบน CPU ทั่วไปหลายเท่าอยู่ครับ ปัจจุบันไม่ค่อยเห็นที่ไหนให้เช่าแล้ว อาจมีหลุดมาให้ใช้ฟรีที่ Colab บ้าง

 

 

** Tier-D  -  1080ti (11GB), P100 (16GB), T4 (16GB)

GPUs ในกลุ่มนี้ถือว่า พอๆ กันและจะเร็วกว่า K80 ราวๆ 2x-3x โดย 1080ti จะเสียเปรียบเพื่อนอยู่หน่อยตรงที่หน่วยความจำน้อยกว่าก็จะเทรนโมเดลได้ขนาดเล็กกว่าที่ batch size เท่ากันครับ

 

ส่วน T4 นั้นต้องใช้โหมด fp16 ถึงจะเร็วเกรดเดียวหรือดีกว่า P100 เล็กน้อยนะครับ โดย fp16 หมายถึงการเก็บตัวเลขทศนิยมด้วยหน่วยความจำ 16 บิต ดูเพิ่มเติมที่ https://thaikeras.com/community/postid/438/

และตั้งแต่ Tier-C เป็นต้นไปจะต้องใช้โหมด fp16 ถึงจะได้ประสิทธิภาพสูงสุดครับ

 

กลุ่ม Tier-D นี้ยังสามารถใช้ได้ฟรีที่ Kaggle หรือที่ Colab

 

 

** Tier-C  - 2080ti (11GB), A4000 (16GB), RTX5000 (16GB)

GPUs ใน tier-C นี้อาจจะไม่ค่อยมีคนกล่าวถึง ทว่าก็น่าสนใจเพราะหลายๆ ที่ให้เช่าในราคาถูก และ Tier-C นี้จะเทรนโมเดลเร็วกว่า Tier-D ราวๆ 2x ครับ

 

 

** Tier-B  - RTX3090 (24GB), A5000 (24GB) , V100 (16/32GB), A6000 (48GB), RTX5/6000 (24GB)

Tier นี้ถือว่าเป็นกลุ่มเทพแล้วครับ ถ้าใครมีใช้ส่วนตัวถือว่าโชคดีมากๆ

เนื่องจากกลุ่มนี้ยังเร็วกว่า Tier-C ราวๆ 1.5X - 2X นั่นคือจากประสบการณ์ส่วนตัวเร็วกว่า K80 ราว 8x-10x เลยทีเดียว 

 

เพื่อให้เห็นภาพ 5 ปีก่อนทีมเคยไปเช่า 8 x K80 จาก Azure ซึ่งแพงมากๆ ตอนนั้นตกเดือนละเกือบแสน ปัจจุบันเราสามารถเช่า RTX3090 ซึ่งเร็วพอๆ กันได้ราคาประมาณ ชม.ละ 15 บาทเท่านั้น (ตามรายละเอียดด้านล่าง) หรือตกเดือนละราวๆ 1 หมื่นถ้วนๆ ถ้าใช้ตลอด 24 ชม. หรือถ้าปิดเมื่อไม่ใช้งานก็จะเหลือหลักหลายพันต่อเดือนเท่านั้นครับ

 

อย่างไรก็ดีรุ่น 3090 Nvidia ออกแบบมาให้อยู่ในหมวด Personal GPU ซึ่งเมื่อเราไปเช่าเครื่องเหล่านี้ก็มักจะมีความเสถียรน้อยกว่า (หลุดบ่อยกว่า) GPU ในกลุ่ม Workstation เช่น V100 ซึ่งมีราคาแพงกว่าครับ

 

หมายเหตุ ส่วนตัวมองว่าราคานี้เช่าคุ้มกว่าซื้อ เพราะในแต่ละปีจะมีรุ่นใหม่ๆ ออกมาเร็วกว่าเดิม 1.5x - 2x ซึ่งจะทำให้รุ่นเหล่านี้ราคาเช่าถูกลงไปอีก และเราไม่ต้องเสียเวลาบำรุงรักษาหรืออัพเดต environment ใหม่ๆ ครับ

 

** Tier-A  - A100 (40GB / 80GB) ซึ่งยังเร็วกว่า GPU ใน tier-B ไปอีกราวๆ 2x  ส่วนตัวเคยใช้งานไม่กี่ครั้งเพราะปีที่ผ่านมาจากราคาเช่าในตลาดมองว่าใช้ Tier-B คุ้มกว่า

 

อย่างไรก็ดีปัจจุบัน A100 ราคาถูกลงมาอาจจะพอหาได้ในราคาราวๆ 40 บาท/ชม.  ซึ่งทำให้น่าใช้มากขึ้น

 

ล่าสุด Nvidia ออกรุ่น 4090 ซึ่งเป็นกลุ่ม Personal GPU และหลายๆ benchmark เทียบว่าประสิทธิภาพด้อยกว่า A100 เล็กน้อย เริ่มเห็นบางรายให้เช่าราคาไม่แพงก็ป็นทางเลือกที่น่าสนใจครับ

 

นอกจากนี้ขอแถม TPU V3x8 ที่มีให้ใช้ฟรีที่ Kaggle ซึ่งมี 8 cores และแต่ละ cores มีหน่วยความจำ 16GB รวมทั้งเร็วเกรดเดียวกับ P100 ดังนั้น TPU V3x8  (8 cores ช่วยกัน) นี้ถือว่าอยู่เกรดเดียวกันกับ A100 เลยครับ โดยผู้ใช้ Tensorflow/Keras สามารถใช้งานได้แทบจะทันที (เปลี่ยนโค้ดน้อยมากจาก GPU) ทว่าอาจจะใช้ค่อนข้างยากสำหรับผู้ใช้ Pytorch ครับ

 

สุดท้ายยังมี GPU H100 ซึ่งอาจจะจัดอยู่ใน Tier-A+ เพราะบาง Benchmark กล่าวว่าเร็วกว่า A100 ขึ้นไปได้อีก 1.5-2x  แต่แอดมินไม่เคยใช้และยังไม่เคยเห็นแหล่งให้เช่าครับผม

 

.

 

-------

เช่าที่ไหน ราคาเท่าไร

-------

ในที่นี่เราจะไม่พิจารณา 3 เจ้าใหญ่คือ AWS, GCP และ Azure เพราะราคาค่อนข้างแพงและเหมาะกับระดับ production

 

สำหรับระดับ development/experiment  บทความนี้ขอได้ survey 7 ตัวเลือกครับคือ : Kaggle, Colab, Paperspace, Jarvis, Vast, Lambdalabs และ Runpod โดยขอเล่าย่อๆ ทีละตัวเลือกดังนี้ครับ

(ดูรูป 1 ด้านบนประกอบ)

 

.

 

1) ก่อนอื่นเลย ณ กุมภาพันธ์ปี 2023 นี้ Kaggle จะยังเป็น experiment lab ที่ทุกคนควรพิจารณาเป็นที่แรก เพราะ (1) ใช้ P100 หรือ T4x2 ได้ฟรีอย่างน้อย 30 ชม./สัปดาห์ ซึ่งถ้าเราเลือก T4x2 และใช้งานแบบ multi-GPUs เท่ากับเราได้ประสิทธิภาพใน Tier-C ครับ

 

นอกจากนี้สำหรับแฟนๆ Tensorflow/Keras ยังได้ใช้ TPU V3-8 ระดับ Tier-B เพิ่ม 20 ชม. โดยแทบไม่ต้องเปลี่ยนโค้ดอีกด้วย

 

ข้อมูล spec ของ Kaggle (และ Colab) ลองดูจากบทความเก่านี้นะครับ ข้อมูลส่วนที่ update 2023 ให้ดูใน comment ใต้บทความครับ

https://web.facebook.com/thaikeras/posts/643930456521638/

 

.

 

2) Colab Pro นั้นเก็บรายเดือนเท่าเดิม คือ $10 หรือราวๆ 350บาท/เดือน อย่างไรก็ดี ได้กำหนดให้ผู้ใช้งานมีโควตาเท่ากับ "100 compute units" ซึ่งจากการ survey ผู้ใช้งานหลายท่านพบว่า

T4 จะกินราวๆ 2 units/ชม. และ A100 ราวๆ 13-15 units/ชม. ซึ่งทำให้ชม.การใช้งานต่อเดือนจำกัดมากกว่าสมัยก่อนค่อนข้างมากครับ  (บางท่านว่า V100 ราคาราวๆ 5 units/ชม. แต่หาข้อมูลสนับสนุนไม่ค่อยเจอครับ)

 

อย่างไรก็ดี T4 บางครั้งก็ยังมีให้ใช้งานใน free-tier แบบจำกัดด้วยครับ

 

.

 

3) Paperspace เป็นทางเลือกที่น่าสนใจ ซึ่งมีโมเดลการคิดราคาคล้าย Colab Pro แบบสมัยก่อนครับ นั่นคือ Paperspace Gradient Pro นั้นคิดเงิน $8 หรือราวๆ 280 บาท/ เดือน และมี GPU A4000, RTX4000 ซึ่งเป็น Tier-C/D ให้เลือก (ขึ้นกับจำนวนผู้ใช้งานในขณะนั้น) 

 

ถ้าโชคดีอาจจ่ายครั้งเดียวต่อเดือนและใช้ยาวๆ เหมือน Colab Pro สมัยก่อนครับ โดย paperspace อนุญาตให้เราจ่ายเงินเช่ารายชม.เพิ่มได้ในกรณีไม่มีเครื่องฟรีเหลือ ทว่าราคาก็ไม่ได้ถูกมากครับ 

ดูรายละเอียดเพิ่มเติม : https://www.paperspace.com/gradient/pricing

 

 

.

 

4) Vast.ai เป็นโมเดล crowd/communiting-hosting คือ เป็น vast จะคนกลางที่คอยประสานให้ personal users ต่างๆ ที่มี resource เหลือที่บ้านนำเครื่องมาให้พวกเราได้เช่าใช้งาน

 

และที่นี่เป็นทางเลือกรายชั่วโมงที่น่าจะถูกที่สุดครับ อาทิเช่น 3090 ราคารวม storage ตกเพียง $0.4 / ชม. ในบางครั้งอาจได้ดีลที่ดีกว่านั้นอีกคือ V100x2 หรือ A5000x2 ซึ่งเกือบเทียบเท่า Tier-A ในราคาเพียง $0.4-0.5

 

ข้อเสียของ vast.ai ก็คือเนื่องจากเครื่องนั้นมาจาก personal users ไม่ใช่ work station ทำให้ความเสถียรน้อยกว่าเจ้าอื่นๆ โดยประสบการณ์ส่วนตัวก็พบว่าหลุดบ่อยกว่าเจ้าอื่นๆ ครับ และบางเครื่องอนุญาตให้เช่าไม่กี่วันด้วยครับ

 

ข้อเสียอีกอย่างก็คือ ข้อมูลที่เช่าไว้บนเครื่อง personal user คนหนึ่งจะไม่สามารถโอนไปที่อีกคนหนึ่งได้  สมมติเราเช่า 3090 บน vast.ai ไว้ แล้วอยากปิดชั่วคราว   ในระหว่างที่เราปิดชั่วคราวนั้น เครื่องนั้นอาจถูกผู้ใช้งานคนอื่นเช่าไป ซึ่งในกรณีที่เรามีข้อมูลค้างอยู่การที่เราอยากกลับมาเปิดเครื่องใหม่ ก็ต้องรอให้เครื่องเดิมว่างก่อน  (ซึ่งไม่รู้ว่าผู้เช่าคนปัจจุบันจะเช่านานเท่าไร)

 

และถ้าเราย้ายไปเครื่องใหม่ ข้อมูลบนเครื่องเก่าก็จะไม่สามารถโอนไปได้ ดังนั้นจึงต้อง backup ข้อมูลเข้า local computer ของเราเอง ก่อนปิดเครื่องชั่วคราวจาก vast.ai ทุกครั้งครับ  (ปัญหานี้ไม่เกิดกับระบบ cloud ที่ข้อมูลสามารถเข้าถึงได้จากเครื่องใหม่) 

 

ในกรณีที่เรา backup ข้อมูลทั้งหมด แล้วเครื่องเก่าไม่ว่าง เราก็อาจเลือกที่จะเปิดเครื่องใหม่ ซึ่งก็ทำให้เราต้องมา setup environment ลง libraries ต่างๆ ใหม่ทั้งหมด ซึ่งความไม่สะดวกตรงนี้เองที่ทำให้ราคาของ vast.ai ถูกกว่าเพื่อนครับ

 

รายละเอียดเพิ่มเติม ดูได้ที่ https://console.vast.ai/create ครับผม

 

.

 

5) Jarvis เป็นผู้ให้บริการ DeepLearning GPU cloud ราคาประหยัด แม้ราคารายชั่วโมงจะแพงกว่า vast.ai  แต่ก็สามารถเลือกที่จะปิดเครื่องเพื่อประหยัดค่าใช้จ่ายได้ และไม่ต้องกังวลเรื่องโอนข้อมูลเหมือนระบบ cloud เจ้าใหญ่ของ AWS, Azure หรือ GCP   (แม้ไม่ต้องจ่าย GPU แต่ยังต้องจ่ายค่า storage อยู่นะครับ)

 

ส่วนตัวเคยใช้ Jarvis เยอะพอสมควร และไม่ค่อยพบปัญหาหลุดบ่อยเหมือน vast.ai ถึงแม้ราคา GPUs ส่วนใหญ่จะแพงกว่า vast.ai พอสมควร แต่ก็ยังถูกกว่า 3 เจ้าใหญ่ข้างต้นมาก รวมทั้งตัดปัญหาจุกจิกไปได้เยอะ

 

ณ กุมภาพันธ์ 2566 ตอนนี้ Jarvis คิดราคา A5000 ซึ่งเป็น GPU ราวๆ low-Tier-B ราคารวม storage ราวๆ $0.6x/ชม. ซึ่งก็ถือว่าน่าสนใจครับ

 

Jarvis ยังมีราคาแบบ spot หรือ interruptible ที่ได้ส่วนลด >50% ทว่าอาจถูกหยุดเครื่องเมื่อไรก็ได้ครับ

 

ดูเพิ่มเติม : https://cloud.jarvislabs.ai/

 

 

.

 

6) & 7) LambdaLabs และ RunPod

 

2 เจ้านี้แอดมินไม่เคยใช้ แต่เพิ่งค้นเจอ และเมื่อลองดูข้อมูลราคาพบว่าน่าสนใจมากครับ โดย Lambdalabs มีชื่อเสียงเรื่องเป็น OEM ขายส่ง Deep Learning Machines มาหลายปี และเป็นผู้ทำ benchmark GPUs ค่อนข้างเชื่อถือได้

 

ปัจจุบัน Lambdalabs ก็ให้เช่า GPU machine โดยเท่าที่ส่องดูมีราคาที่น่าสนใจคือ RTX6000 Tier-B $0.6/ชม.  และ A100 $1.1/ชม.

 

และราคานี้รวม storage 512GB 14-30 CPU cores, HighRAM แล้วด้วยครับ

โดยรวมดูดี ถูกกว่า Jarvis เล็กน้อย ดูรายละเอียดเพิ่มเติมที่นี่ครับ

 

https://lambdalabs.com/service/gpu-cloud/pricing

 

ส่วน RunPod น่าสนใจขึ้นไปอีกเพราะมีทั้งระบบ community cloud (แบบเดียวกับ vast.ai และราคาพอๆ กัน) รวมทั้ง secure cloud แบบเจ้าใหญ่อื่นๆ

 

ในส่วน secure cloud ที่น่าสนใจคือ 4090 Tier-A ราคา 0.7x/ชม. (ต้องจ่ายค่า storage เพิ่ม)

 

RTX3090 Tier-B ราคา 0.4x/ชม.

 

A4000 Tier-C ราคา 0.3x/ชม.

 

ราคาแพงกว่า vast.ai เพียงเล็กน้อย แต่อาจจะเสถียรและข้อจุกจิกน้อยกว่า ขอเวลาแอดมินไปลองใช้ก่อนครับ 😀 ดูราคาเพิ่มเติมที่

https://www.runpod.io/gpu-instance/pricing

 

.

 

 

==เพิ่มเติม : ไม่ใช่แค่จ่ายเงิน ==

 

ปัจจุบันในการใช้งานหรือสอนโมเดลใหญ่ๆ นอกจากต้องใช้ GPU tier-สูงๆ แล้ว โชคดีมากที่มีหลายเทคนิก ที่ทำให้ GPU-tier ต่ำๆ เช่น tier-D หรือ tier-C สามารถเข้าถึงโมเดลขนาดใหญ่ได้ครับ อาทิเช่น (ตอนนี้ใช้ได้เฉพาะกับ Pytorch นะครับ แฟนๆ TF/Keras ถึงคราวรอไปก่อนบ้าง)

 

  • 8bits-fp - ซึ่งทำให้โมเดลเล็กยิ่งกว่า 16fp ไปอีก 50% อ่านเพิ่มเติมที่นี่ครับ : https://thaikeras.com/community/postid/780/

 

  • Adapters - โมเดลขนาดใหญ่ แทนที่เราจะเทรนทั้งโมเดล เรา freeze โมเดลเกือบทั้งหมดไว้ แต่เทรนเฉพาะบางส่วน ทำให้เทรนโมเดลขนาดใหญ่ใน GPU ขนาดเล็กได้ เป็น concept ที่ยอดเยี่ยมมากและ Huggingface กำลังพัฒนา library ให้ใช้ได้ง่ายๆ ดูเพิ่มที่ : https://huggingface.co/blog/peft

 

 


   
ตอบกลับอ้างอิง
Share: