จากในบทความก่อนหน้า เรื่อง Visualization Deep Neural Network ด้วย Tensorboard ทั้ง 2 Ep (1, 2) ถ้าสังเกตตรง import จะเห็นว่าต่างกัน เนื่องจากใน Official Library ของ fastai มี Bug ทำให้ไม่แสดง Embedding ในแท็ป Projector เป็นเหตุให้เราต้องหา Library ตัวอื่นมาใช้แทน แต่ถ้าเราไม่อยากใช้ Library ภายนอก

เนื่องจาก Fast.ai เป็น Open Source Software Project เรามีทางเลือก 2 ทาง 1. คือรอให้ทาง Official เค้าแก้ 2. เราเข้าไป Contribute ช่วยเค้าแก้ ในเคสนี้เราจะลองข้อ 2 เพราะไม่อยากรอ แต่ปัญหาคือเราจะเริ่มต้นอย่างไร

1. หาข้อมูล

เราจะเริ่มต้นด้วยการหาข้อมูลว่าทีมเค้าทำงานอย่างไร สื่อสารกันอย่างไร ใช้เครื่องมืออะไรบ้าง เรา google พบว่า fastai มีเว็บบอร์ดสื่อสารกับกลุ่มผู้ใช้ นักเรียน ผู้ที่สนใจ Artificial Intelligence (AI) อยู่แล้ว และมีบอร์ดย่อยสำหรับนักพัฒนาโดยเฉพาะ

https://forums.fast.ai/c/fastai-users/fastai-dev
https://forums.fast.ai/c/fastai-users/fastai-dev

2. สื่อสารกับทีมงาน และ Contributor ที่เกี่ยวข้อง

ก่อนที่เราจะลงมือแก้อะไร เราควรเข้าไปแนะนำตัวกับทีมงาน และ Contributor ที่เกี่ยวข้อง สอบถามความเป็นมาเป็นไปของโมดูลนี้ สอบถามถึงปัญหา Bug ที่พบ ว่ามีใครกำลังทำอะไรเกี่ยวข้องอยู่หรือไม่ ถ้าไม่มีก็สามารถเสนอตัว ช่วย Contribute แก้ไข ส่งโค้ดขึ้นไปให้ Merge ได้

เราพบว่ามีกระทู้เกี่ยวกับเรื่องนี้ Tensorboard Integration Callbacks โดยเฉพาะพอดี อาจจะหลายเดือนแล้วก็ไม่เป็นไร ยังพอมีคนตอบอยู่บ้าง ล่าสุดคือเดือนที่แล้ว

https://forums.fast.ai/t/tensorboard-integration/38023
https://forums.fast.ai/t/tensorboard-integration/38023

เราลอง Reply เสนอตัวช่วย Contribute แก้ไข ปรากฎว่าผ่านไปไม่ถึง 7 ชั่วโมง คุณ jsa169 ที่เป็น Contributor ผู้เขียน Module นั้นเข้ามาตอบว่า ถ้าได้แบบนั้นก็ยอดเยี่ยมไปเลย (That all sounds great) ถือว่าเราได้ไฟเขียวจากทีมงานแล้ว

https://forums.fast.ai/t/tensorboard-integration/38023/12?u=gnoparus
https://forums.fast.ai/t/tensorboard-integration/38023/12?u=gnoparus

3. ศึกษาระเบียบ ข้อบังคับ

ในการทำงานร่วมกับคนหมู่มาก เป็นชุมชนขนาดใหญ่ เช่น fastai ในเคสนี้ contributor ใน github จำนวน 400+ คน และ user ใน forum จำนวน 27,000+ คน ในทุกชุมชนก็มักจะมีกฏระเบียบของตัวเองเพื่อรักษาความสงบเรียบร้อย ให้แน่ใจว่าการทำงานเป็นไปในแนวทางเดียวกัน การแก้ไขอันนึงไม่ไปกระทบผู้อื่น ใน fastai มีบทความแนะนำผู้ที่ต้องการ Contribute ดังนี้

https://github.com/fastai/fastai/blob/master/CONTRIBUTING.md

https://docs.fast.ai/dev/develop.html

https://docs.fast.ai/dev/style.html

อธิบายในเรื่องแนวคิด วิธีการทดสอบโปรแกรม วิธีการส่ง Pull Request (PR) การนำเสนอฟีเจอร์ใหม่ การแก้ไขบั๊คในฟีเจอร์เก่า สไตล์การเขียนโค้ด การตั้งชื่อ เครื่องมือที่ใช้ ข้อจำกัด คำศัพท์คำย่อต่าง ๆ สิ่งที่ควรทำ สิ่งที่ไม่ควรทำ etc.

4. ศึกษาเครื่องมือ

นอกจาก Python และ Jupyter Notebook ที่เราใช้อยู่แล้วใน ep ก่อน ๆ เนื่องจาก Source Code ของ Fastai ทั้งหมดอยู่บน Github การจัดการ Contribution เกือบทั้งหมดจะทำผ่านโปรแกรม Git

Git เป็นระบบจัดการเวอร์ชั่น (Version Control Systems) ที่ได้รับความนิยมมากที่สุดในปัจจุบัน นอกจาก Git ยังมีตัวอื่น ๆ อีก เช่น CVS, SVN, Microsoft Team Foundation Version Control (TFVC)

วิธีการใช้งาน Git เราจะอธิบายต่อไป

5. เรามาเริ่มกันเลย

หลังจากที่เราได้รับไฟเขียวจากทีมงาน และเราศึกษาระเบียบ ข้อบังคับ และเครื่องมือที่เกี่ยวข้อง แล้ว เราจะมาเริ่ม Coding กัน

อ่านต่อใน ep.2 >>

หมายเหตุ

นี่คือเสน่ห์ของ Software แบบ Open Source ที่ให้เราเข้าถึง Source Code ของโปรแกรมได้ เราสามารถแก้ไขโปรแกรมให้เป็นไปตามที่เราต้องการได้อย่างอิสระ รวมถึง Contribute แชร์กลับไปให้ต้นทางได้ประโยชน์ด้วย เกิดเป็นสังคมแห่งการแบ่งปัน ต่างกับ Software แบบ Close Source ที่เราทำได้แต่รายงาน Bug แล้วต้องรอ ๆ ๆ ๆ ๆ ให้ Vendor เป็นผู้แก้ไขอย่างเดียว

แชร์ให้เพื่อน:

Surapong Kanoktipsatharporn on FacebookSurapong Kanoktipsatharporn on LinkedinSurapong Kanoktipsatharporn on Rss
Surapong Kanoktipsatharporn
Solutions Architect at Bua Labs
The ultimate test of your knowledge is your capacity to convey it to another.

Published by Surapong Kanoktipsatharporn

The ultimate test of your knowledge is your capacity to convey it to another.