รีวิวงาน PyCon Thailand 2023 แบบจัดเต็ม — part 2/2

สรุปงาน Pycon Thailand 2023 — ปีนี้มีอะไรที่น่าสนใจบ้าง พร้อมแชร์ resources — part 2/2

PCP
6 min readDec 30, 2023

สวัสดีครับ ผมชื่อพี ปัจจุบันทำงานเป็น Data scientist ที่บริษัท LINE MAN Wongnai ขอเกริ่นก่อนว่าบทความนี้จะไม่เอ่ยถึงชื่อบริษัทก็คงไม่ได้ เพราะทางบริษัทมีสวัสดิการให้เบิกงบเพื่อนำไปเข้าร่วมงาน PyCon แบบนี้เพื่อไปอัพเดตความรู้กันแบบฟรี ๆ และสวัสดิการดี ๆ แบบนี้ ทุกคนก็สามารถมีได้แค่เข้ามาร่วมเป็นส่วนหนึ่งของ LINE MAN Wongnai ได้เหมือนกันนะ ตอนนี้มีตำแหน่งงานให้ทุกคนเลือกไม่ต่ำกว่า 100 ตำแหน่งเลยทีเดียว พลาดแล้วพลาดเลยขอบอกไว้ก่อน

หากใครยังไม่ได้อ่าน ภาคแรกของ รีวิวงาน PyCon Thailand 2023 แบบจัดเต็ม นั้น สามารถไปตามอ่านได้ที่นี่

ส่วนใครที่เพิ่งอ่านบทความแรกจบไปแล้วพลังยังเต็มร้อย ก็มาเริ่มเข้าเนื้อหาของงานในวันสุดท้ายกันเลยดีกว่า

กิจกรรมภายในงาน

ขอทวนกิจกรรมภายในงานอีกครั้ง งานนี้ถูกจัดขึ้นทั้งหมด 3 วันด้วยกัน หากใครสนใจหัวข้อของงาน 2 วันแรก สามารถตามไปดูได้ที่บทความก่อนหน้า แต่ถ้าใครสนใจ sessions ในวันสุดท้ายนี้ ก็สามารถกด link ข้างล่างตามไปอ่านได้เลย

DAY 1

  • Genetic Algorithms in Python: A Step-by-Step Journey from Evolution to Applied Examples
  • Hands-on GenAI via Python LangChain

DAY 2

  • The big leap of Python 3.13
  • When Python Meets Excel for Real
  • Data for Good: Leveraging Data for Immigrant and Farmer Welfare
  • Kick Start Football Analytics Journey in Python
  • Hit the (ML) road(map) Jack
  • Access illimited powers with Python predictive analysis (taipy.core.Scenario)
  • Engineering Velox: the unified execution engine for varied data infrastructures
  • Visualizing Formula 1 Performance based on F1 Telemetry Data
  • Functional Programming in Python
  • Code, Community, Startup: A Founder’s Journey

DAY 3

โดยความหมายของหัวข้อที่มีการทำตัวหนา คือ sessions ที่ผมให้ความสนใจเป็นพิเศษ เพราะได้เปิดมุมมองของตัวเองหรือคิดว่าจะได้ใช้ประโยชน์ในอนาคต

เค้าว่ากันว่า นกที่ตื่นเช้านั้นจะได้กินหนอนก่อนคนอื่น แต่ถ้าผมต้องเป็นนกที่ต้องตื่นในเช้าวันเสาร์เพื่อไปงาน PyCon นั้น ผมยอมให้นกตัวอื่นกินไปก่อนเลยน่าจะดีกว่า (ฮ่า ๆ)

วันที่ 3 — Conferences

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

Python — The second best language for everything? | Anthony Shaw (Microsoft)

แค่พูดถึงชื่อหัวข้อของ session นี้มาก็เหมือนจะเรียกรถทัวร์มาลงได้เลย ก่อนเข้าฟัง session นี้ก็ไม่รู้ว่าเค้าจะอวย Python แบบไม่ลืมหูลืมตา หรือกำลังจะบอกว่า Python ไม่ได้มีคุณค่าเหนือภาษาอื่นเลยอะไรเลยกันแน่นะ

แต่พอได้เข้าฟังแล้วก็รู้ว่า สิ่งที่คุณ Anthony Shaw พูดถึงภายใน session ไม่ได้เป็นการอวยภาษา Python แบบถอดสมอง แต่เป็นการพาทุกคนไปลองคิดว่าภาษา Python สามารถนำไปใช้งานในด้านใดได้บ้าง

อย่างการทำเว็บไซต์ ที่โดยปกติแล้ว แต่ละ layer ก็จะใช้ต่างภาษากันออกไป แน่นอน Python ไม่สามารถสู้ Java Script ได้อยู่แล้ว แต่ Python ก็สามารถทำตั้งแต่ user interface ไปจนถึง API ได้ แต่ก็ใช่อีกแหละว่า Python มันไม่ใช่ภาษาที่ทำมาเพื่อสร้างเว็บไซต์โดยเฉพาะ

หรือจะเป็นการเขียน code ลงไปใน embedded system พวก ICs ชนิดต่าง ๆ ภาษา Python ก็ยังเป็นรองภาษา C หรือ C++ อยู่ดี แม้ว่าทาง Python จะมี microPython ให้ใช้ก็ตาม

จริง ๆ แล้วทางตัว speaker ยังมีแนะนำการใช้งานในอีกหลาย ๆ ด้านที่ Python ของเราก็ยังเป็นรองชาวบ้านเค้าไปซะหมด แต่อย่าเพิ่งน้อยอกน้อยใจ เพราะมันมีอยู่ 2 ด้าน ที่ตอนนี้ภาษา Python ของเรานั้นชนะภาษาอื่นแบบขาดลอย และ 2 ด้านนั้นก็คือด้าน data และด้านการทำ Machine learning นั่นเอง..!

ด้าน data นั้นไล่ไปตั้งแต่ data collection, data processing, data analytics, ตลอดไปจนถึง data presentation เลย และมันเหมาะขนาดที่ว่าโปรเจคขององค์กรขนาดใหญ่อย่าง Nasa ก็ยังใช้

ส่วนด้านการทำ Machine learning นั้นก็จะเห็นว่า libraries ยอดฮิตที่เอาไว้ทำงานกันมา ก็เป็น libraries ที่อยู่ในภาษา Python เช่น Pytorch, Tensorflow, Scikit learn เป็นต้น นอกจากนี้ โมเดลที่กำลังเป็นกระแสอย่าง GPT4 และ Lllama 2 ก็ยังใช้ Python ในการพัฒนาอีกด้วย เอาล่ะ…มาปิดซอยฉลองกันเลยดีกว่า

Behind the Scenes: Engineering a Scalable Data Stack for Thailand’s Streaming Giant | Sakonrat M. (True Digital Group)

Session ต่อมา ทาง TrueID ได้นำ case study ของระบบ infrastructure ของตัวเองที่ต้องรองรับ services ที่มีผู้ใช้งานอยู่มากกว่า 40 ล้านผู้ใช้ต่อวันมาให้เราได้เรียนรู้กัน ยกตัวอย่าง services ที่ว่าก็ได้แก่ Live TV, Video on demand, News & articles เป็นต้น โดยความท้าทายที่ถูกหยิบยกมาจะเป็นเรื่องของ data freshness หรือ data จะต้องมีความใหม่อยู่เสมอ และการที่ระบบนี้จะต้องรองรับทุก devices ที่มีความหลากหลายของฝั่ง users ด้วย

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

Run programmatic trading with Python | Prem C. [LinkedIn | Kaggle]

ใครอยากรวยยกมือขึ้น?!

แน่นอนว่าทุกคนในห้องนี้ต้องอยากรวยอยู่แล้ว เพราะเรากำลังพูดถึง session ที่จะแชร์เกี่ยวกับวิธีการทำระบบ trade หุ้นด้วย Python อยู่แบบครบ loop ซึ่งถึงแม้ว่าสภาพตลาดหุ้นไทยในปีนี้จะค่อนข้างย่ำแย่เมื่อเทียบกับปีก่อน แต่ทางตัว speaker ก็ยังบอกว่าพอร์ตหุ้นของเค้าก็ยังได้กำไรจากระบบที่เค้าทำไว้อยู่ พูดดูเหมือนจะขิงแต่พอเห็นพอร์ตจริงที่ทาง speaker เอามาโชว์แล้วก็ต้องขอคารวะ

ใน session นี้ ทางตัว speaker แนะนำตั้งแต่วิธีการดึง data, การทำ analysis ตลอดไปจนถึงการ backtesting และการนำไปใช้จริงในองค์รวมเลยทีเดียว พร้อมกันนี้ยังบอก insight จากประสบการณ์ต่าง ๆ นา ๆ เป็นต้นว่า การดึง data จากเว็บไซต์ชื่อดังอย่าง TradingView นั้นต้องทำยังไง ซึ่งในตอนนี้ก็มีบทความบน Medium ที่ทางตัว speaker เขียนเองอธิบายเอาไว้แล้วเช่นกัน

ส่วนเนื้อหาอื่น ๆ นอกจากนั้นไปดูที่ presentation เลยน่าจะได้ข้อมูลที่ครบครันมากกว่า

Supercharging Machine Learning Tasks with Ray: An Open-Source Unified Compute Framework | Supasate V.

หากต้องการที่จะทำให้การ train Machine learning เร็วมากขึ้น ก็ไม่ควรที่จะพลาด session นี้ ที่เอาตัวอย่างการใช้งาน Python library ที่ชื่อ Ray มาให้รับชม

ภายใน session นี้จะเล่าถึง Python library ตัวดังกล่าวเป็นสำคัญ พร้อมกันนั้นยังมีอธิบายถึงวิธีการทำงานเบื้องหลัง ที่จะใช้หลักการของ Distributed computing ไปเร่ง speed การทำงานของการ train Machine learning ด้วย อีกทั้ง library ตัวนี้ยังสามารถทำงานร่วมกับ library สุดฮิตอย่าง Pytorch ได้ด้วยนะ

สุดท้าย ทางตัว speaker ก็ได้ทำตัวอย่างการทดสอบการใช้ Ray ในงานจริง ๆ มาให้เรารับชม เช่น ถ้าต้องการ train Machine learning บน MNIST dataset สุดคลาสสิคแล้ว ก็สามารถลดเวลาลงจาก 90 วินาทีเหลือ 8 วินาทีได้เลยทีเดียว (ทดสอบโดยใช้ CPU 16 cores บน 60,000 MNIST examples และมีการ train ทั้งหมด 100 epoches)

Python Observability with OTEL | Jean Jordan

สาบานเลยว่า session นี้ผมไม่ได้ตั้งใจฟังเท่าไหร่ เพราะพอหนังท้องเริ่มตึง หนังตาก็เริ่มหย่อน แต่ก็ยังพอจับใจความได้ประมาณนึงว่า การจะทำ app หรือ service อะไรต่าง ๆ ขึ้นมาซักตัว การเก็บ log ให้มีประสิทธิภาพนั้นก็สำคัญไม่แพ้กัน และสิ่งที่จะมาเป็นตัวช่วยของพวกเรานั้นก็คือ OpenTelemetry ซึ่งวางตัวเองเอาไว้เป็นศูนย์กลางของการเก็บ log ทั้งหมด

ความน่าสนใจมันอยู่ตรงนี้ ตัว OpenTelemetry นี้มี Python library ที่สามารถเอาไปใช้ร่วมกับ framework ที่เราคุ้นเคยในการใช้สร้าง APIs อย่าง Flask หรือ FastAPI ด้วย คิด ๆ ดูแล้วถ้าเกิดมีเวลาก็น่าลองเล่นอยู่เหมือนกัน (ถ้ามีอ่ะนะ ฮ่า ๆ)

Python and Rust: A Dynamic Duo with PyO3 | Kesia Mary Joies

รู้ตัวอีกทีก็ตกอยู่ในวังวนแห่งการขายของไปซะแล้ว session นี้ก็เป็นอีกหนึ่ง session ที่ขน Python library ที่ชื่อ PyO3 มาขาย

ข้อเสียหลัก ๆ ของ Python เลยก็คือมันช้า ทางตัว speaker เลยบอกว่า จริง ๆ แล้วเราสามารถเขียน function ในภาษา Rust แล้วให้ Python มาเรียกใช้ได้นะ และในทางกลับกัน เราก็สามารถเขียน function แบบง่าย ๆ ตามสไตล์ภาษา Python มาใช้ใน Rust ได้ด้วยเช่นกัน เพราะ Rust เป็นภาษาที่เข้าใจยากกว่า Python ประมาณนึง จะเห็นว่าทั้ง 2 ภาษาค่อนข้างที่จะเป็น Duo ที่ช่วยเหลือซึ่งกันและกันเป็นอย่างดี เอาเป็นว่าหากใครสนใจอะไรประมาณนี้สามารถเข้าไปดูเพิ่มได้ที่นี่เลย

Python, Protobuf and MQTT: a robotic communication backbone choice | Nutchanon N. [LinkedIn]

Session นี้พบกับ speaker ที่แต่งกายมาด้วยชุดแสนธรรมดาเป็นที่สุด แต่พอได้เริ่มพูดก็เห็นได้ชัดเลยว่าประสบการณ์ที่สั่งสมมามันไม่ธรรมดาเอาซะเลย

ตัว speaker เป็นเจ้าของ startup ที่ทำโปรเจคเกี่ยวกับด้าน robotic โดยเฉพาะ และตัวงานก็ค่อนข้างเหมาะที่จะใช้ Python เป็นภาษาหลัก โดยในโปรเจคล่าสุดของบริษัทนั้นมีการใช้ภาษา Python ร่วมด้วยถึง 60% ของ code ทั้งหมด

โปรเจคดังกล่าว เป็นการทำระบบควบคุม crane โดยใช้การสั่งการผ่านหน้าจอแบบสัมผัส และคนที่จะทำระบบนี้ได้ ก็ต้องมีความรู้ค่อนข้างรอบด้าน เพราะต้องนำความรู้ตั้งแต่ด้าน hardware ดังเช่น Computer desktop, Raspberry pie, IoT devices ที่ต้องตั้ง server MQTT เองข้างใน ไปจนถึงด้าน software ที่ต้องรู้ตั้งแต่การทำ AI ไปจนถึงการเขียน protobuf ที่ต้องทำให้ hardware หรือ sensor แต่ละตัวส่งข้อมูลหากันได้เลยทีเดียว นอกจากนี้ เมื่อระบบมีปัญหาก็ยังมีการทำ error analysis dashboard เองอีกด้วย เห็นมั้ยว่าพี่เค้าไม่ได้มาเล่น ๆ

หากใครอ่านแล้วรู้สึกสนุกตาม ก็สามารถไปดูรายละเอียดเกี่ยวกับโปรเจคนี้ได้ที่เว็บไซต์หลักของทางตัว speaker ได้เลย

Boosting Efficiency and Kaizen in the Manufacturing Industry with IoT | Denso

อีกหนึ่ง sponsor หลักในงานนี้ของเรา ก็คือบริษัท DENSO ที่มีการใช้ Python ในการเอาไปทำ Machine learning เพื่อไปเพิ่ม utilization หรืออัตราการผลิตชิ้นงานภายในโรงงานเช่นกัน

ภายใน session มีการปู background ให้สำหรับคนที่ไม่เคยอยู่ในสายโรงงานแบบสั้น ๆ ว่าอะไรคือสิ่งที่เราสามารถ monitor ได้ตลอดเวลา เป็นต้นว่า การนำ video ไป process เพื่อหาว่าเครื่องจักรทำงานปกติหรือไม่ หรือจะหาว่าคนที่ต้องทำงานในสายการผลิตนั้นอยู่ standby ในพื้นที่ที่ควรอยู่และทำงานกันจริง ๆ รึป่าว เป็นต้น เพราะทุกอย่างล้วนมีผลกับเวลาในการผลิตชิ้นงานทั้งสิ้น

สิ่งสุดท้ายที่ทาง spearker เล่า ก็หนีไม่พ้นเรื่องเกี่ยวกับ infrastrature ซึ่งเป็นการเชื่อมต่อระบบทั้งหมดภายในโรงงานเข้าด้วยกัน

Training the most important model | Naomi Ceder [LinkedIn]

Session สุดท้ายและท้ายสุดสำหรับปีนี้ เป็น session ของคุณ Naomi Ceder ที่ค่อนข้างคร่ำหวอดในวงการ Python มานานหลายปี ภายใน session มีแอบบอกให้ฟังว่า edition ที่ 4 ของหนังสือที่ชื่อ The Quick Python Book ที่ตัวเองเขียนเองนั้นกำลังจะวางขายในปี 2024 อีกด้วย

อ่านแค่ชื่อ session ใจก็เริ่มหวั่น ๆ ว่าจะพูดถึง Large Language Model (LLM) อีกหรือไม่ เพราะพอได้ฟังเกี่ยวกับเรื่องนี้บ่อยเข้าก็เริ่มเลี่ยน แต่ไม่ใช่เลย เพราะ model ที่สำคัญที่สุดที่เราควรเรียน คือ mental model หรือภาพแบบจำลองที่มีในหัวของคนแต่ละคน

เวลาที่เราเริ่มจะเรียนเรื่องอะไรที่ซับซ้อน แน่นอน มนุษย์เราชอบสร้างแบบจำลองขึ้นมาอยู่เสมอ เหมือนอย่างเช่นแบบจำลองของระบบสุริยะ ที่ทำให้มนุษย์มองเห็นการโคจรของดาวอย่างใกล้ชิดแบบที่ไม่เคยมีมาก่อน แต่หากมีแบบจำลองที่ผิดอย่างที่คนสมัยก่อนสอนว่า โลกคือศูนย์กลางของดวงดาวทั้งหมด การที่จะอธิบายปรากฎการณ์ต่อจากนั้นก็พลอยจะเป็นความเข้าใจที่ผิดพลาดไปด้วย

mental model สมัยก่อนที่ยังเชื่อว่าโลกเราเป็นศูนย์กลางของดวงดาวทั้งหมด

เช่นเดียวกันกับการเขียนโปรแกรม ที่ทาง speaker นั้นชวนตั้งคำถามและสอนว่า variables ในภาษา Python คืออะไร

มันจะเป็นถังน้ำที่รอเอา value มาใส่ หรือตัวมันเองนั่นแหละที่เป็นก้อน object ใด ๆ แล้วรอเอา variables มาแปะป้ายทับ หากสามารถสร้างแบบจำลองอย่างง่ายหรือ mental model แบบกระชับในหัวได้ เพียงแค่นี้เราก็สามารถนำมันไปใช้ต่อได้อย่างมีประสิทธิภาพมากขึ้นแล้ว

โดยส่วนตัวพอฟัง session ดังกล่าวจบก็เหมือนกับตาสว่างและเห็นทางที่จะพัฒนาตัวเองต่อ หากใครคิดว่าอธิบายแค่นี้มันยังไม่พอ ก็อยากขอฝากให้กดติดตาม profile นี้ไว้ได้เลย

และก็จบไปแล้วสำหรับงานวันที่สอง หากใครชอบบทความนี้ ก็ขอขอบคุณที่กด Clap เป็นกำลังใจให้ด้วย และหากใครยังอ่านไม่หนำใจ ก็ยังมีบทความอื่น ๆ ให้รับชมที่

สำหรับรายละเอียดเพิ่มเติมของงาน PyCon Thailand สามารถติดตามได้ที่

--

--

PCP

Data scientist | เขียนไปบ่นไป ความในใจของคนสาย Data | My linktree https://cutt.ly/vwFqTLKu | (╯°□°)╯︵ ┻━┻