Tricks ของการใช้ Kernel ในการแข่งขัน Kaggle (reuse data / results / fork / parallel)
รอติดตามอ่านได้ในกระทู้ในอนาคตครับ
บทความนี้เป็นบทความที่ดีมากๆ ครับ :
เราควรใช้งาน Kaggle เพื่ออะไร? เพื่อเหรียญรางวัล เพื่อไต่อันดับโลก หรือเพื่อพัฒนาตนเอง?
https://towardsdatascience.com/how-to-farm-kaggle-in-the-right-way-b27f781b78da
ตอนนี้ Kaggle Notebook สามารถโหลดไฟล์โน้ตบุคจาก URL เช่น Github ได้แล้วครับ! โดยสามารถกดตรง File Menu เพื่อเลือก option "Load from URL" ได้ทันที กดดูตัวอย่าง gif ตามลิงก์ข้างล่างนี้ครับ ?
อัพเดตบนความปี 2020 ครับ:
คู่มือเริ่มต้น Kaggle เพื่อเติบโตในเส้นทาง DS / ML!
สวัสดีครับเพื่อนๆ เนื่องจากมีอาจารย์ที่เคารพนับถือวานให้ทีมงานไปบรรยายเรื่อง "เส้นทางเติบโตใน Data Science / Machine learning (DS / ML) ด้วย Kaggle" เราจึงขอเขียนสรุปเป็นบทความเพื่อเป็นประโยชน์กับเพื่อนๆ ด้วยครับ
**เนื้อหา**
- Kaggle คืออะไร
- ลงแข่ง Kaggle แล้วได้ประโยชน์อันใดหรือไม่
- ร่วมแข่ง Kaggle เริ่มต้นอย่างไร
- พัฒนาประสิทธิภาพของโมเดลให้ดีขึ้นระหว่างแข่งอย่างไร
- ความแตกต่างสำคัญของการแข่งบน Kaggle Vs. ตำรา Vs. การทำโปรเจกต์ในชีวิตจริง
1. Kaggle คืออะไร?
Kaggle ซึ่งเป็นบริษัทลูกของ Google ได้สร้างหลายปรากฏการณ์ที่ผมเชื่อว่าเป็นส่วนหนึ่งที่ช่วยผลักดันให้วงการ DS และ ML ของทั้งโลกให้ก้าวไกลไปอีกหลายขั้น
1.1 Kaggle คือ ที่ที่เปลี่ยน DS/ML โปรเจกต์ระดับโลกในแต่ละศาสตร์ (วิทยาศาสตร์ สังคมศาสตร์ ธุรกิจ การแพทย์ ฯลฯ) มาเป็น "การแข่งขัน" ของมืออาชีพทั่วโลก เป็นศูนย์กลางการจัด ranking และมีเงินรางวัล เฉกเช่นเดียวกับ สมาคมกีฬาอาชีพอื่นๆ (กอล์ฟ เทนนิส สนุกเกอร์ ฯลฯ)
โดยทั่วไปจะมีโปรเจกต์การแข่งขันพร้อมๆ กันอยู่ 3-5 งานอยู่ตลอดเวลา เมื่อการแข่งขันหนึ่งใกล้จบก็จะมีการแข่งขันแปลกใหม่ เข้ามาทันที โดยนอกจากการแข่งขันด้าน Supervised Learning แล้ว ยังมีการแข่งขันด้าน Reinforcement Learning, Generative ML (เช่น GANs) รวมทั้ง Optimization อีกด้วย ในแต่ละการแข่งขันมีระยะเวลาราวๆ 1-3 เดือน
เราเคยเขียนบทความเกี่ยวกับการแข่งขันบน Kaggle อย่างละเอียดไว้แล้วที่นี่ครับ : http://bit.ly/thaikeras-kaggle
1.2 Kaggle คือที่ๆ ให้คุณใช้ GPU / TPU คุณภาพสูงราคาแพง เทียบเท่าเครื่องหลักแสน เพื่อรันงานต่างๆ ได้ฟรี! (เดือนก่อนเราเพิ่งเขียนบทความเทียบ/ใช้ร่วมกับ Colab ที่นี่ครับ : https://bit.ly/thaikeras-tfrc-grant )
1.3 Kaggle คือหนึ่งในที่ๆ รวม Datasets ครบครันที่สุดในโลก
1.4 ด้านอื่นๆ เช่น free online courses , แหล่งพูดคุยกับ DS ระดับโลก , หางานที่เกี่ยวกับ DS/ML
.
2. ลงแข่งขันใน Kaggle แล้วได้อะไร?
ขอสรุปเป็น 8 ข้อจากมุมมองส่วนตัวครับ
2.1 ได้เงินรางวัลสำหรับผู้ชนะอันดับ 1-5 โดยเงินรางวัลผู้ชนะส่วนใหญ่ราวๆ 1-3แสนบาท ในการแข่งขันใหญ่เงินรางวัลจะมีมูลค่าถึง 1 ล้านบาทหรือมากกว่า อย่างไรก็ดีในแต่ละการแข่งขันจะมีผู้เข้าแข่งเก่งๆ จากทั่วโลกหลายพันทีมดังนั้น ประเด็นนี้อาจตัดออกไปได้ในทางปฏิบัติ 🙂
2.2 ได้มีส่วนร่วมทำโปรเจกต์ใหญ่ๆ ที่ีมีนัยสำคัญต่อโลก (Significance) เช่น โปรเจกต์ช่วยออกแบบวัคซีน RNA ของ Covid-19 ที่เพิ่งจบลงไปสดๆ ร้อนๆ เป็นต้น
2.3 ได้เรียนรู้การเขียนโค้ด เทคนิค และโมเดลใหม่ๆ (เชิงกว้าง) ทั้งทฤษฎีและปฏิบัตินับไม่ถ้วนในระหว่างการแข่งขัน โดยเป็นการแชร์ความรู้กันระหว่าง Data Scientists ระดับโลกที่ลงแข่งด้วยกัน ที่แน่ๆ เราจะได้ลิ้มลอง State of the Arts หรือโมเดลที่ดีที่สุดในด้านต่างๆ เช่น
- Vision : Object detection , segmentation หรือ video models
- Sequence & Language : Transformers
- อื่นๆ : เช่น Graph neuron networks, GANs, Reinforcement Learning
2.4 ได้ประสบการณ์จริงเชิงลึก การออกแบบโมเดล ML เพื่อช่วยงานเฉพาะทางแต่ละด้านที่เราสนใจ นอกจากนี้ถ้าอยู่ระดับบนตารางบ่อยๆ จะได้ฝึกการออกแบบกลยุทธการแข่งขันตลอด 1-3 เดือนอีกด้วย
โดยสิ่งสำคัญที่มักไม่เจอในตำราเรียน แต่สำคัญอย่างมากบน Kaggle คือการออกแบบ "pipeline" เช่น
- Data pipeline : การทำความเข้าใจข้อมูลและที่มาของข้อมูล การ preprocess ข้อมูล และการทำ data augmentation เพื่อเพิ่มปริมาณข้อมูลอย่างมีคุณภาพ
- Validation pipeline: การศึกษา metrics ที่เกี่ยวข้องเชิงลึก ออกแบบระบบทดสอบอย่างไรเพื่อจะให้ใกล้เคียงกับการนำไปใช้จริงขั้นสุดท้ายมากที่สุด
- Prediction pipeline: การนำโมเดลที่แม่นยำหลายๆ โมเดลมาร่วมกันทำนายเพื่อให้ผลทำนายแม่นยิ่งขึ้นไปอีกด้วยเทคนิคเช่น Ensemble หรือ Stacking
จากสองข้อข้างบน เมื่อคุณได้เข้าร่วมโปรเจกต์หรือการแข่งขันตั้งแต่ต้นจนจบ คุณจะพบว่า "ทักษะการเขียนโปรแกรม" ในด้าน DS/ML ของคุณจะเพิ่มขึ้นสูงแบบแทบไม่เชื่อตัวเอง
2.5 เป็น portfolio เพื่อนำไปสู่การทำงานในสายงานนี้ เพราะนอกจากเงินรางวัล Kaggle ยังมอบคะแนนเพื่อจัดลำดับ ranking (แบบเดียวกับเทนนิส กอล์ฟ ฯลฯ) เหรียญรางวัลเหรียญทอง เหรียญเงิน และเหรียญทองแดงให้กับผู้เข้าแข่งขันที่ทำคะแนนได้ระดับบนๆ อีกด้วย และเหรียญรางวัลบน Kaggle ถือว่าได้รับการยอมรับจากบริษัทชั้นนำหลายบริษัท
บริษัทเช่น NVIDIA เพิ่งจะสร้างทีม Kaggle โดยรับ Kaggle Grandmasters โดยเฉพาะ ( https://www.glassdoor.com/job-listing/senior-deep-learning-data-scientist-rapids-ai-nvidia-JV_IC1147439_KO0,45_KE46,52.htm?jl=3523010135 ) ส่วนที่ญี่ปุ่นก็มีบริษัท Data ชั้นนำชื่อ DeNA ที่อนุญาตพนักงานให้แข่ง Kaggle ได้ถึง 50% ของเวลาทำงาน ( https://dena.ai/en/kaggle/ )
โดยมีผู้เข้าแข่งขันนับไม่ถ้วนที่เป็นนักเรียน และ Data Scientists ทั้งฝึกหัดและมืออาชีพ ซึ่งมาสร้างชื่อเสียงบน Kaggle และได้เข้าไปทำงานกับบริษัทยักษ์ใหญ่ทั่วโลก (ส่วนใหญ่เป็นคนจีน และอินเดียที่มาหาโอกาสให้ตัวเอง ส่วนคนไทยถือว่ามีน้อยมาก อาจเป็นเพราะว่า Data Scientists เก่งๆ ในไทยสามารถหางานทำได้ง่ายดายอยู่แล้ว หรือ Supply < Demand นั่นเอง)
นอกจากนี้ยังมีหลายๆ คนต่อยอดนำโปรเจกต์บน Kaggle ไปเป็นงานของตัวเองบน GitHub รวมทั้งสร้าง startup ใหม่ๆ ขึ้นมามากมาย (ที่เห็นเยอะคือ startup ด้านการแพทย์)
นอกจากนี้การแข่งขันบน Kaggle มีรสชาติของความเป็นกีฬาอยู่มากทำให้เราได้ฝึกฝน "จิตใจ" อีกด้วย
2.6 Team-Spirit : ในแต่ละงาน เราสามารถร่วมทีมกับเพื่อนร่วมทีมทั่วโลกได้ ทำให้เราเรียนรู้การทำงานเป็นทีมอย่างมืออาชีพ การต่อสู้ร่วมกันแบบเดียวกับกีฬา เช่น รวมทั้งแลกเปลี่ยนวัฒนธรรมกับเพื่อนทั่วโลกได้ เนื่องจากทีมระดับบนที่เข้าร่วมใน Kaggle จะเข้าร่วมแบบจริงจังมาก เมื่อ join ทีมคุณอาจจะพบว่าคุณและเพื่อนๆ คุยและทำงานแบบไม่ได้หลับนอน ยิ่งกว่างานในชีวิตจริงเสียอีก
โดยการคุยงานมักจะคุยกันผ่าน Slack เนื่องจากแบ่งเป็นหมวดหมู่หัวข้อได้เป็นระเบียบ มีการ Edit ได้ชัดเจน รวมทั้ง share files ขนาดใหญ่ได้
2.7 ฝึกความแข็งแกร่งของจิตใจ บนการแข่งขันที่ยาวนานแบบมาราธอน -- เนื่องจากเป้าหมายของผู้เข้าแข่งระดับบนทุกคนคือเหรียญทอง การแข่งขันระดับบนตารางตลอด 1-3 เดือนนั้นจะว่าไปดุเดือด กดดัน และเครียดมาก ซึ่งมองในมุมกลับก็คือการฝึกฝนจิตใจของเราให้มีความแข็งแกร่งทนรับความกดดันระดับสูงได้นั่นเอง
สำหรับส่วนตัวแล้ว สิ่งที่ได้มากที่สุดคือข้อสุดท้ายนี้ครับ
2.8 Connections รวมทั้งเป็นเพื่อนกับมืออาชีพในต่างประเทศ จากการแข่งขันนี้ถือได้ว่าทำให้มีเพื่อนที่ค่อนข้างสนิท (สู้มาด้วยกันในแต่ละโปรเจกต์) ในหลายๆ ประเทศ อาทิเช่น เยอรมัน ญี่ปุ่น เวียดนาม จีน นิวซีแลนด์ อเมริกา เชก และเบลเยี่ยม รวมทั้งถูกชวนไปทำงานด้วยก็หลายครั้งครับ
กล่าวโดยสรุป ได้ประโยชน์เยอะมากๆๆๆ โดยเฉพาะสำหรับน้องๆ รุ่นใหม่ๆ นับว่าเป็นโอกาสในการก้าวหน้าของสาขาอาชีพ DS/ML เลยครับ
3. เริ่มต้นร่วมแข่ง Kaggle เริ่มต้นอย่างไร
มี 3 ขั้นตอนเริ่มต้นง่ายๆ ดังนี้ครับ
- ดูการแข่งขันบน Domain ที่ถูกใจ - ดูประเภทการแข่งขัน
- อ่านกติกา รายละเอียดข้อมูล การวัดผลให้เข้าใจ
- หา Starter notebook
ก่อนอื่นให้ไปที่ https://www.kaggle.com/c/ ก็จะเจอการแข่งทั้งหมดในปัจจุบัน (รูปแนบ)
จากรูปจะเห็นว่ามีการแข่งขันให้เลือกมากมาย โดยมีรางวัลของการแข่งขันโชว์ด้านขวามือครับ สังเกตการแข่งขันบางชนิดเป็นประเภท "Getting Started" หรือ "Playground" ซึ่งเป็นการฝึกและเรียนรู้เท่านั้น โดยไม่มีเหรียญรางวัลให้ครับ สำหรับผู้ที่อยากได้ประสบการณ์แข่งจริงอันดุเดือดเลือดพล่าน ให้กดเข้าไปดูที่การแข่งขันที่สนใจ และดูด้านล่างจะมีระบุว่ามีการมอบเหรียญรางวัล และคะแนน ranking ให้หรือไม่
ณ ปัจจุบันที่เขียนบทความมีการแข่งที่น่าสนใจมากๆ เช่น
- simulation การแข่งขันฟุตบอล จัดร่วมกับ Manchester City โดยต้องใช้ Reinforcement Learning (Google Research Football)
- การตรวจสอบภาวะ "ลิ่มเลือดอุดตันในปอดจากภาพ CT Scan" (Pulmonary Embolism Detection) ของสมาคมแพทย์ที่อเมริกา
- ทำนายการเคลื่อนไหวของรถบนท้องถนน เพื่อพัฒนาระบบ Self-driving car level-5 (Lyft motion prediction)
- แบ่งประเภทของยาตามปฏิกริยาของโมเลกุลยากับโปรตีนเป้าหมายร่วมกับ MIT (Mechanism of Action Prediction)
- แปลงภาพถ่ายเป็นภาพวาดสไตล์ Monet ด้วย CycleGAN (I'm Something of a Painter myself - งานนี้ไม่มีเหรียญรางวัล แต่มีรางวัล TPU Quota ให้)
จากนั้นเมื่อได้การแข่งขันที่ถูกใจแล้วก็เข้าไปอ่านรายละเอียดของการแข่งขันได้เลยครับ โดยส่วนที่ต้องทำความเข้าใจให้ละเอียดคือ
- Problem Description : ปัญหาคืออะไร มีเป้าหมายอะไร โมเดลไปเพื่ออะไร
- Data Description : ทำความเข้าใจ Data ให้ชัดเจนว่ามีขนาดเท่าใด เป็นประเภทใด (รูปภาพ ข้อความ หรือตาราง หรืออื่นๆ) และเราต้องทำนายอะไร นั่นคือต้องทำความเข้าใจ Input-Output ของโมเดลให้ชัดเจน
- Evaluation : มีการวัดผลด้วยสมการอะไร
- Timeline : ระยะเวลาของการแข่งขันยาวนานเท่าใด
จากนั้นเมื่ออ่านกฎ กติกาชัดเจนแล้วก็สามารถเริ่มต้นได้ง่ายๆ ด้วยการศึกษาจาก Notebooks หรือโค้ดที่ผู้เข้าแข่งขันอื่นๆ แชร์ไว้ให้นั่นเองครับ โดยโน้ตบุคที่ควรจะเริ่มศึกษาก่อนเลยก็คือโน้ตบุคประเภท EDA ที่ทำการทำความเข้าใจและวิเคราะห์ Data และโน้ตบุคที่ทำคะแนนได้ดีที่สุดเพื่อเราอาจจะดัดแปลงต่อยอดได้ง่ายๆ ครับ
4. พัฒนาประสิทธิภาพของโมเดลให้ดีขึ้นระหว่างแข่งอย่างไร
ตรงนี้เป็นความลับของผู้เข้าแข่งขันแต่ละทีมครับ 😀 อย่างไรก็ดีหลักการง่ายๆ ก็คือ
- ติดตาม Public Notebooks - เพื่อศึกษาโค้ดใหม่ๆ ที่ผู้เข้าแข่งขันแต่ละคนจะแชร์เพิ่มตลอดการแข่งขันครับ (ยกเว้นสัปดาห์สุดท้ายที่เป็นธรรมเนียมปฏิบัติที่จะหยุดแชร์โน้ตบุคคะแนนดีๆ) หลายๆ การแข่งขัน เช่น OpenVaccine เพื่อออกแบบ Vaccine Covid-19 ที่เพิ่งจบไป แค่ศึกษาโน้ตบุคเยี่ยมๆ ที่แชร์กันหลายไอเดียมากมาย ก็ต้องทำงานหนักหลายสัปดาห์เลยครับ
- Public Discussions - ที่จะมีการพูดคุย วิเคราะห์มุมมองปัญหา และ data รวมทั้ง metric อยู่ตลอดเวลา หลายๆ ครั้งเราจะได้ไอเดียเจ๋งๆ จาก discussions ของผู้เข้าแข่งระดับบนครับ
- Team Up - เมื่อเราคิดว่าเราได้ลองทุกสิ่งทุกอย่างไปแล้ว ก็อาจจะถึงเวลาที่จะร่วมทีมกับผู้เล่นคนอื่นๆ เพื่อเปิดมุมองไอเดีย และโค้ดใหม่ๆ และพูดคุยหาความคิดสร้างสรรค์ใหม่ๆ ในทีมกันครับ
ข้อห้ามในการแข่งขัน
อย่างไรก็ดีมีข้อห้ามสำคัญสองข้อในการแข่งขัน ซึ่งถ้าคุณฝ่าฝืนอาจจะทำให้เราถูกแบนจากการแข่งขัน หรือถูกแบน account ไปเลยก็ได้ นั่นคือ "Multiple accounts" และ "Private Sharing" ครับ
- Multiple account : เนื่องจากชั่วโมง GPU/TPU ของแต่ละ account ถูกจำกัดที่ราวๆ 30 ชม./ สัปดาห์ หลายๆ คนเลยคิดว่าสมัครหลาย accounts จะได้ชม. เพิ่ม อย่างไรก็ดีทาง Kaggle ไม่อนุญาตและสามารถตรวจเจอกรณีนี้ได้ตลอด และจะแบนจากการแข่งขันทันทีไม่ยกเว้นครับ
- Private Sharing : แชร์ข้อมูล การสร้างโมเดล ฯลฯ ให้กับผู้เข้าแข่งขันคนอื่นที่ไม่ได้อยู่ในทีมเดียวกัน กรณีนี้ทาง Kaggle มักตรวจสอบได้จากการที่อันดับของเราเคลื่อนไหวไปในทิศเดียวกับผู้เล่นคนอื่นที่ไม่ได้อยู่ในทีมตลอดการแข่งขันครับ
5. ความแตกต่างสำคัญของ Kaggle กับ …
5.1 การศึกษาจากตำรา Machine Learning
5.2 การทำ Project จริง
Kaggle อาจถึอได้ว่าเป็นสะพานที่ดีมากๆ ที่จะต่อยอดความรู้ภาคทฤษฎีในตำราเรียนมาสู่ภาคปฏิบัติ อย่างไรก็ดีการแข่งขันบน Kaggle ก็จะขาดรสชาติหลายอย่างในโปรเจกต์จริงๆ ไปเช่นกัน
5.1 สิ่งนอกตำราเรียนใน Kaggle - สำคัญที่สุดที่นึกออกตอนนี้คือเรื่องของ "Assumption" ครับ ในทฤษฎี จะพูดเสมอว่า assumption ที่สำคัญที่สุดของ Machine Learning Model คือ training distribution จะต้องเหมือนหรือคล้ายกับ test distribution มิเช่นนั้นเราจะไม่สามารถการันตีประสิทธิภาพของโมเดลได้
แต่ในชีวิตจริงถ้ามันหลีกเลี่ยงไม่ได้ที่ข้อมูล train และ test มันจะไม่เหมือนกันล่ะ?? ยกตัวอย่างในปัญหา detect ระบบกระแสไฟฟ้าขัดข้อง training data มาจากระบบไฟฟ้าเมืองหนึ่ง ในขณะที่ test data มาจากอีกเมือง ส่วนปัญหา Covid Vaccine ที่เพิ่งจบไป training data คือ RNA ความยาว 91 bases ทั้งหมด ในขณะที่ test data ซึ่งเป็นโมเลกุลอีกกลุ่มนึงและมีกำหนดจะทดลองในเวลาถัดมานั้นมีความยาว 130 bases ทั้งหมด เป็นต้น
การแก้ปัญหาที่ทฤษฎีบอกว่าแก้ไม่ได้นี้ เป็นการฝึกให้เราคิดนอกกรอบ และเฟรมปัญหาใหม่ๆ กลับมาอยู่ในรูปแบบที่เราทำได้ครับ
นอกจากนี้ data บน Kaggle แม้จะผ่านการ process มาระดับนึงแล้ว แต่มักจะไม่ใช่ data ที่มีคุณภาพดีที่สุดที่จะนำไปฝึกสอนโมเดล จึงต้องทำ EDA, Visualization, preprocessing และ transforming ข้อมูลเพื่อให้ได้ข้อมูลที่สมเหตุผลที่สุด ซึ่งไม่เหมือนในตำรามักจะสมมติว่าเรามี data ที่ดีที่สุดอยู่แล้วครับ
5.2 เรื่องที่ Kaggle อาจเน้นน้อยไปสักนิด คือ "การตั้งโจทย์ หรือตั้งคำถามในโจทย์" ครับ เนื่องจากโจทย์ทั้งหมดถูกกำหนดมาแต่แรกแล้ว หน้าที่ของเราคือแก้โจทย์อย่างเดียว โดยไม่ต้องสนใจว่าโจทย์สมเหตุผลหรือไม่ training data นั้นเหมาะสมหรือไม่เป็นต้น รวมทั้งบางทีก็มาเสียเวลา optimize metric ให้ได้คะแนนขึ้นอีกนิดหน่อยเพื่อแย่งชิงเหรียญรางวัล โดยไม่เกี่ยวกับการเอาไปใช้งานจริงๆ เท่าไรครับ
ข้อเสียหลักๆ ของ Kaggle มีเช่นเดียวกันครับ
นั่นคือ บางครั้งการหมกมุ่นกับ Kaggle ทำให้เราจับจ้องภาพเล็กของงานด้าน Data Science / AI มากเกินไป
เนื่องจากยิ่งขึ้นสู่ระดับสูงเท่าไร ยิ่งต้องทุ่มเทเวลามาก ในการเพิ่มประสิทธิภาพในหลัก เสี้ยวเปอร์เซนต์
ยกตัวอย่างเช่น ในหลายๆ การแข่งขัน เพื่อให้ได้เหรียญทอง อาจต้องทุ่มเวลาหลักเดือน เพื่อทำให้ความแม่นยำเพิ่มขึ้นในหลัก 0.1%
ซึ่งประสิทธิภาพที่เพิ่มนี้ แม้จะมีนัยยะในทางสถิติในบางครั้ง ในมักไม่มีนัยยะมากในโลกแห่งความเป็นจริง
การโฟกัสภาพเล็กนี้มีข้อดีตรงที่ ทำให้เราเรียนรู้เทคนิคขั้นสูง รวมทั้งเทคนิคแปลกๆ ได้มากมาย
แต่ก็มีข้อเสียตรงที่ทำให้เราลืมภาพใหญ่ไปว่า Data Science หรือ AI ศาสตร์เหล่านี้นั้นถูกคิดค้นขึ้นมาเพื่อสร้างประโยชน์อะไรให้กับสังคมของเรากันแน่
ดังนั้นเพื่อนๆ ต้องสมดุลย์ระหว่างภาพเล็กกับภาพใหญ่ของ Kaggle ตามความเหมาะสมของแต่ละคนให้ดีครับ
สำหัรบเด็กรุ่นใหม่ๆ การโฟกัสที่ภาพเล็กและเหรียญทองมักเป็นการลงทุนที่คุ้มค่า เพราะเพิ่มเทคนิคมากมายและถ้าได้เหรียญรางวัลก็เป็นชื่อเสียงใน portfolio ซึ่งเอาไปต่อยอดทำงานได้ทั่วโลกเลยครับผม
ใช้งาน GPU T4 x 2 ได้ฟรีบน Kaggle แล้วครับ!!
https://www.kaggle.com/discussions/product-feedback/361104
วันนี้ Kaggle ได้อัพเกรด GPU hardware ให้ users ทุกคนโดยเราสามารถเลือกที่จะใช้ GPU P100 หรือ T4x2 ก็ได้ครับ โดย GPU quota จะใช้ร่วมกัน
การใช้ T4x2 เป็นเวลา 5 ชั่วโมงก็จะยังนับโควต้าที่ 5 ชั่วโมงไม่ใช้ 5x2=10 ชั่วโมงครับ ซึ่งเยี่ยมมากๆ เพราะใน mixed-precision mode, T4 เร็วใกล้เคียงกับ P100 ตัวเดิมครับ (อ่าน mixed-precision ที่นี่ : https://mobile.facebook.com/thaikeras/photos/a.342402360007784/758680485046634/?type=3&paipv=0&eav=AfaYg_-t_KJWaXTfDCQa0gtcYEGtNhzJtkBgYYZHnfkaIzuYbePLU0gUIYbzIp4-tRc&_rdr )
นอกจากนี้ยังได้อัพเกรด hardware ถ้าเราเลือกใช้ CPU (ไม่มี GPU) โดยเพิ่ม RAM เป็น 30GB จากเดิม 16GB อีกด้วยครับ ใกล้เคียงกับ High-Ram mode ของ Colab ซึ่งสามารถใช้ได้ไม่จำกัดโดยไม่มีโควต้า
ก่อนหน้านี้ Kaggle เพิ่ง upgrade running time สูงสุดจาก 9 ชม. เพิ่มเป็น 12 ชม. สำหรับ CPU และ GPU (ยกเว้น TPU ว่ารันได้ไม่เกิน 9 ชั่วโมง) รวมทั้งเพิ่ม Disk Saved Space ของ output เป็น 20GB จาก 5GB
โดยรวมๆ ทำให้ Kaggle Notebook น่าใช้มากขึ้นอีกเยอะเลยครับ เพื่อให้คุ้มค่าที่สุด อ่านวิธีใช้ Kaggle + Colab + Github ร่วมกันได้นี่ครับ https://thaikeras.com/community/%e0%b9%80%e0%b8%81%e0%b8%b5%e0%b9%88%e0%b8%a2%e0%b8%a7%e0%b8%81%e0%b8%b1%e0%b8%9a-kaggle/kaggle-github-colab/#post-408