สำหรับ Blog แรกของเดือนสุดท้ายในปี 2024 ใน Blog ตอนนี้มาจดๆ National Coding Day 2024 ในวัน Conference Day มีอะไรอะไรบ้าง โดยงานปีนี้จะจัดที่ True Digital Park (ชั้น 6 Auditorium และ ชั้น 7 Town Hall) ส่วนของปีที่แล้ว Bitec ครับ
เขียนจบลองมาอ่านอีกทียาวเหมือนกันนะเนี่ย
Opening
มีการแนะนำสมาคม และ Roadmap ของปีหน้า + TPA Roadmap & Career Path สำหรับคนที่สนใจ ใครเขียน blog จะเอามาแปะก็ได้นะครับ
ถ้าสนใจลองตามกลุ่มที่ สมาคมโปรแกรมเมอร์ไทย | Facebook / สมาคมโปรแกรมเมอร์ไทย Thai Programmer Association
Why is coding in English
Speaker: Anthony Shaw
คุณ Anthony Shaw ปัจจุบันทำงานที่ Microsoft และเป็นคนพัฒนา GitHub vscode-pets / หนังสือ cpython และอื่นๆ
เรารู้ภาษาอะไรบ้าง หลังลองสลับไป 4-5 Slide ตอนนี้ทุกคนน่าจะได้คำตอบแล้ว เข้าใจภาษาถิ่น ภาษาไทยนี้แหละ และภาษาอังกฤษ
แล้วแต่ละภาษามีความพิเศษยังไง Australian English ตอนฟังครั้งแรก ผมก็ห๊ะ
ตอนนี้รู้แล้วว่าภาษาอังกฤษมันชัดเจน แล้วตรงมาที่สุด มากกว่าภาษาอื่นๆ
แล้วถ้าเราไปดูว่า Programmer from เห็นว่า 20% มาจาก usa เลยนะ แล้วประเทศที่เหลือส่วนใหญ่ ภาษาอังกฤษ จาก stackoverdlowแต่เราพบว่าข้อดูจาก GitHub ข้อมูลจากจีน และไทย มันย้อนแย้งไปนิดนึง
programming language creator เห็นว่าส่วนใหญ่ใช้ภาษาอังกฤษเป็นหลัก แต่ 2 ใน 3 ไม่ใช่คนที่เป็น Native English นะ
ถ้าเราลองทำ Code ภาษาไทย อันนี้ลองแล้วคิดกันเอง ผมว่าอ่านยากกว่าเดิม
มาในแง่ Technical บ้าง
- ทำไมถึงเริ่มจากภาษาอังกฤษ เพราะตอนยุค 80 90 ยุคนั้นอะไรอะไรก็เล็ก ดังนั้นจริงทำมาตรฐาน ASCII แล้วเอาข้อมูลภาษาอังกฤษลงไป เพราะมันชัดเจน และง่าย มีการเว้นวรรค บางจบด้วย full stop.
- มันเลยเป็นจุดเริ่มต้นหลายๆคนเริ่มเข้าวงการ IT จากภาษาอังกฤษกัน
- ถัดมามี Unicode ที่มาครอบคุลมทุกภาษาได้หมด แต่ภาษาอังกฤษเหมือนเป็น Standard ไปแล้ว
- อีกมุมการสื่อสารด้วย Coding เป็นภาษากลาง คนอาจจะคุยกันไม่รู้เรื่อง แต่อ่าน Code แล้วเข้าใจตรงกันได้
จากเรื่อง Coding งานนี้มัน AI - LLM
- AI มันไม่รู้ภาษาแบบชัดๆ ข้อมูลที่ส่งเข้าไปมันจะผ่านเจ้า Byte Pair Encoding ทำเป็น Token - ซึ่ง Optimize กับ Code + ภาษาอังกฤษ ข้อมูล Training มันเยอะ LLM เลยเก่งกับคำถามที่เป็นภาษาอังกฤษ
- LLM มันมองข้อมูลเป็น Token ถ้าดูจากภาพการนับ Token มัน optimize ให้ชัดเจนใน Code / English และมันทำให้ตจ่ายเงินเยอะด้วย เหมือนขี้ช่องงานวิจัย อารมณ์ลด Token จาก Non-English
- ภาษาไทย ทำไมยังมีข้อจำกัด LLM
- Training Data
- Stop word.
- Space
ถ้าอยากลอง Model ที่คนไทยทำมี Typhoon LLM และบ่ายนี้มีหัวข้อ SLM ด้วย - ในมุมของ End User ถ้าเราใช้ให้ AI มันแปลภาษาให้ Key ของ Context ให้ชัดเจน แปลงจากภาษา a > b เพื่อทำอะไร อย่างเช่น ส่งเมล์
พอฟังตรงนี้ผมก็ถึงบางอ้อเลย ปกติใช้ Claude ช่วยแปลจากไทย > อังกฤษ มันจะได้ข้อมูลมาสองชุดนะ ตัวที่แปล กับที่ AI มันเข้าใจ แล้วแปลมาบอกเรา
นอกจากนี้เราช่วยให้ Coding มันง่าย กระจายได้ไว้ยังไง ช่วยกันทำ Resource สำหรับ Non-English Tools / Learning Resource และ SLM / LLM เน้นให้เอาภาษาอื่นเข้ามาเทรนกันมาขึ้น หรือ ช่วยหา Idea ลด Cost ตอนทำ Token
หลังจากนี้มี 2 ห้องจัดงานพร้อมกันครับ ผมเลือกจดตามสนใจครับ
Data is not SEXY anymore
Speaker: Kasidis Satangmongkol
ก่อนจะบอกว่าทำไม Data is not SEXY เจ้า Data มันอยู่กับเรามานานแค่ไหนแล้ว โดยคุณทอยได้มี Recap ว่าเรามันจุดเปลี่ยนแต่ละยุค (ERA) ตามนี้
- 2000 ปีก่อน Herculaneum scrolls มันเริ่มมีการจดบันทึกแล้ว เพราะมีกระดาษปาปิรุส มันทำให้เกิดการจดบันทึก แต่มีข้อจำกัด ถ้าพลาดเขียนใหม่หมด
- ค.ศ 1440 Johannes Gutenberg สร้างแท่นพิมพ์ ทำให้ Data แจกจ่ายได้ไว้ขึ้น จากเดิมที่ต้องเขียนๆ
- ค.ศ 183x Analytical engine เครื่องคำนวณยุคแรกๆ แสดงว่าเราต้อง Process Data ให้มันไวขึ้น
- ค.ศ 195x Computational Engine / Alan Turing เข้าสู้ยุคของเครื่องคอมพิวเตอร์ที่ใช้กันแล้ว
- ค.ศ 1989 WWW (Tim Berner Lee) เป็นช่วยให้ Data มันแจกจ่ายได้ไวขึ้นอีก เหมือนตอน สร้างแท่นพิมพ์
- ค.ศ. 1992 Simon Personal Communicator (SPC) smart phone ของ IBM
- ค.ศ. 1998 Google เข้ามาแล้ว ตอนนี้จะเห็นว่าว Data มันจะค่อยปรับจาก physical > digital
- ค.ศ. 2007 Geoffrey Hinton เอา GPU มาใช้การประมวลข้อมูล ทำ backpropagation
- ค.ศ. 2012 coursera เปิดตัวนะ Platform สอน
ปี 2012 ทีมีคำกล่าวว่า Data Scientist: The Sexiest Job of the 21st Century
- ค.ศ. 2012 AlexNet (Alex Krizhevsky / Ilya Sutskever / Geoffrey Hinton) ที่มองเห็นรูปภาพ ทำงานได้เหมือนคนมากขึ้น
- ค.ศ. 2022 Ilya Sutskever Open AI Co-founder คุณทอย เล่าว่า
- คุณ Ilya เห็นข้อจำกัดของ backpropagation และเสนอแนวทางทำให้ดีขึ้น
- จากเดิมงาน AI มันไปทาง Matlab คุณ Ilya ทำตัวแปลงจากภาษาอื่นมาให้ และต่อยอดมาเป็น Lib ภาษาอื่นๆในปัจจุบัน
ที่ผมเขียนยาวๆ ชอบสุดท้ายตัวละคร Geoffrey Hinton Alex Krizhevsky / Ilya Sutskevermodel 3 มันมีความเชื่อมโยงกัน เห็นแบบถึงการต่อยอดได้เลย ปี 2012 มันจุดเปลี่ยนอีกทีนึง เราจะเห็นช่วงการเปลี่ยนแปลง มันไว้ขึ้นจากพัน ร้อย หลักสิบปี
ปี 2012 เราจะยุ่งกับ Small Data / Big Data //ย้อนไปยุคนั้นตอนเรียนงงเหมือนกัน ว่าเอาทำไม สมัยนััน Pentaho มั้งที่เรียน
จาก 2012 เค้าว่ากันว่า Data Scientist: The Sexiest Job แล้วปี 2022 Big Tech เริ่มมองแล้ว เช่นของคุณ Satya Nadella จากเดิมเป็น asset ตอนนี้กลายเป็น liability ถ้าเราไม่ปรับตัว
แล้วทำไม Data is not SEXY anymore
- Data is not SEXY anymore, Data is “Not sexy but mundane” มันเป็นของสามัญที่เราต้องจัดการกับมัน
- Data Analyst เป็นสิ่งที่ทุกองค์กรต้องมี มากกว่า Data Scientist เพราะอะไรเหรอ Data มันกองรอบตัวเราเต็มไปหมด มันต้องมีคนเข้ามาจัดการและวิคราะห์ หาประโยชน์ จากมันให้ได้ โดยที่ตัวเราเอง อาจจะเป็น Dev หรือ Role อื่น แต่มี Skill Data Analyst นิดนึง SQL ก็หนึ่งแล้ว
- Goal การทำ data
- ไม่ใช้ output ว่า model accuracy เท่าไหร่
- แต่เป็น impact กับ business หรือ พวก outcome - AI ไม่ได้มาแย่งงานมนุษย์ แต่คนเรากันเองนี้แหละที่ปรับตัวตามระบบทุนนิยม มี Session ของพี่คริสตอนบ่ายมีพูดเหมือนกันครับ
- AI is the new SEXY เพราะ Data ที่เก็บๆกันเอาไป Train AI
- AI is the new electricity (Andrew ng) มัน AI มันเป็นส่วนนึงที่ช่วย Driveให้เกิดสิ่งใหม่ๆ ในแต่ Biz
- Living in this world is Multifaceted
- AI เข้าร่วมดีกว่าต่อต้านครับ
- เราควรรู้หลายภาษา หรือทักษะ จะได้เห็นมุมมอง หลายมุม และใช้เครื่องมือเหมาะกับงานได้นะ - 5 skills ที่จำเป็นในการ survival ส่งท้าย
1. Thinking - Problem Solving
2. Data
3. Software (AI)
4. Human - Soft skilling ต่างๆ
5. Creativity
มี Guide แจกด้วยนะ 20 Dec 2024 Survival Guide คู่มือเอาตัวรอดอีก 100 ปีข้างหน้า - 21 Dec 2024 มีงาน What the duck ด้วยน้าา
Enjoy Coding in the Age of Gen AI: Tips for Programmers
Speaker: Sirasit Boonklang - Thanawat Kemwatcharalert
ความสุขการเขียน program ไม่เหมือนกัน เช่น
- Idea ใหม่ๆ จากสิ่งตัว
- แก้ไขปัญหา หรือ Code เขียนออกมาแล้วใช้งานได้จริง เช่น
- ฟัง Idea การออมเงิน แล้วเอาเราทำ App ขึ้นมาเลย
- จัดการ bug ยากๆ สุดยอดติดมาสามวัน จบแล้วโว้ยยยย
แล้ว Dev อย่างเรา เอา AI มาช่วยตรงยังไงบ้าง ?
อย่างแรกเลย ง่ายสุด ก็พิมพ์ถามมัน Prompts ไปเลย ว่าอยากได้อะไร
ใช้ Tools มาช่วยในด้านต่างๆ เช่น
- Planning วางแผน จัดการ Task ตอนฟังนึงถึงพวก Copilot Workspace
- Requirement ค้นหาข้อผิดพลาด ใน Requirement หรือช่วยคิดคำถามเพิ่มเติม ที่เราไม่เห็น
- Analysis แปลง word มาเป็น diagram แนะนำ Design เป็นต้น
- Coding
- Cursor AI เป็น IDE ด้วยมาแรง //ผมที่ฟังไม่ได้ใช้รอให้หมด Subscription ของตัวถัดไป
- GitHub Copilot - ตัวแรกที่เปิดมาเลย และมี Solution สำหรับองค์กรด้วย ผมเองเน้นถามมันเหมือนกัน
- Codium ตัวฟรี สำหรับผมเองเคยใช้ก่อนจะมา GitHub Copilot
- Tabnine AI จดไว้ เดวต้องลอง
- เฉพาะทาง - neurelo - ทำ API ตาม DB Query - Test - gen test / test data
- Maintenance - เอา AI มาช่วยวิเคราะห์ APP ที่รันอยู่ต้่องปรับจูนอย่างไร
สมัยมี Tools เยอะมากเลย มีคนรวมไว้ใน The 2024 MAD (Machine Learning, AI and Data) Landscape หนึ่งในแนวคิดที่น่าสนใจ ทำ AI as a Service -Azure AI Foundry หรือ KBTG ที่ทำ Agentic Platform เค้ามี Model THaLLE (LLM) อยู่ด้วยนะ
ตอนนี้ AI สำหรับสาย Dev ช่วยเขียน Code เก่งกันระดับไหน ทาง Speaker ได้เล่าว่าตอน 2024 GitHub / GitLab / Google Cloud / AWS เก่งเรียงตามลำดับ
นอกจาก Tools ที่เรารู้แล้ว มีเทคนิคอะไรอีกบ้างที่ช่วย
- ทำ Tools จัดการกับ Prompts Patter เช่น อยากทำหน้าจอ xxxx ด้วยภาษา yyy โดยมี input aaa output bbb ในบริบท บราๆ ถ้าเราได้ Prompt ที่ดีเราทำ Tools Replace คำนี่แหละ
- ตอนนี้ ChatGPT มันมี plugin in เฉพาะทาง ถ้าเรารู้ว่าต้องใช้ด้านไหนบ่อยๆ ลงเพิ่ม
- ลองใช้ Preview Feature ใน Claude มี feature artifact มันลอง render code page ให้เห็นได้ ถ้า OK แล้ว Export เอาไปปรับ Deploy ได้เลย
ถ้าเราอยากรู้ว่า Trend หลังจากนี้มันจะมีอะไรอีกสามารถไปลองดูจากงานวิจัยได้จาก platform SciSpace Chat - AI for scientific
เทคนิคอื่นทาง Speaker แนะนำให้ไปดูจาก Course ของทางทีมงาน Born2Dev ได้เลยครับ ChatGPT for Developers | borntoDev School
ปิดท้าย AI เหมือนดาบ 2 คมนะ
- บางทีงานเร็ว แต่แก้ยาก หรือ มันเอาอะไรมาให้ไม่รู้เราไม่เข้าใจ
- Fundamental สำคัญที่สุดนะ บางทีการที่เราพลาด หรือ เจอปัญหา เราอาจจะหลุด step ที่สำคัญไป ควรเข้าใจ พื้นฐาน ขยับขึ้นจนระดับกลาง สูง จนไปถึวเฉพาะด้าน เมื่อถึงจุดนั้นแล้วมันสุดจริงๆ วิจัยและพัฒนานะ
- สุดท้ายแล้ว ai เป็น tools ใช้ให้เหมาะกับงาน ใช้ model / tools หลายๆตัวให้เหมาะ
และมีความรู้หลายอย่างติดตามได้เพจ Facebook: Born2Dev ได้เลยครับผมเพิ่งฟังคุยกับ 9arm ไปตอนล่าสุด Dev สดยอดครับ
Full Stack Testing from Basic to Basic!
Speaker: Somkiat Puisungnoen
เริ่มต้นด้วยคำถามของพี่ปุ่ย
- ปกติเราทำงานจริงๆ มี Quality กันไหม ?
- ที่เอาแนวคิด DDD มาใช้ มันทำอะไร เน้น Deadline Driven Development แล้วจากนั้นส่งต่อมรดก หรือป่าว ?
- การเติบโตของ Software เราได้คิดถึงเรื่อง Quality / คิดถึง Code บ้างไหม จากเดิมเป็นก้อนเดียว ถัดมาแยก Front / Back และสุดท้ายแตก Microservice เลย
แนวคิดว่าที่ช่วย keyword Technical Excellence โดยส่วนที่สำคัญที่สุด
- Think about test ก่อน เราจะทำสอบอะไร
- แล้ว Feature นั้นๆ มี Spec + Sample ตัวอย่างไหม มี Acceptance Criteria ที่ชัดไหม
- จากนั้นค่อยมามองถึงการทำซ้ำได้ Automation/ TDD / CI+CD เดี๋ยวมันตามาเอง
When to Test?
- Test first คิดก่อนทำ ดีสุด แต่ต้องฝึกคนให้พร้อมด้วย
- Test last ทำไป คิดไป อันนี้ Test ไม่ทัน
- Test Later ทำเยอะๆ แล้วคิดที่หลัง แบบนี้คิดนานคนออกไปแล้ว / PM อาจจะบอกหมด Project แล้วไม่ทำช่วงอื่น ...
แล้ว ถ้าของเดิมมี 50 Feature เราเพิ่มไปอีก 2 Feature เราทดสอบอะไรบ้าง ไม่ทำเลย / ทำแค่ 2 / 2 + สิ่งที่กระทบ หรือ ลองทั้ง 52 Feature เป็นคำถามที่ชวนคิด
Age of Bugs - อันนี้ทำให้เห็นภาพเลยนะ ว่า Bug บางตัวส่วนใหญ่ในรูป อยู่นานๆ เฉลี่ยๆ 400 กว่าวัน กว่าจะแก้ไข แต่ยิ่งนานมันก็มีผลกับ trust
แล้ว Bug มาจากไหน ?
- ตั้งแต่เราใส่ Code แล้วแหละ บางทีมันอาจจะอยู่รอดได้
- 2 ปีที่ผ่านมาไม่มี bug เพราะเข้าไม่ถึงเงื่อนไข
- ไม่มีคนใช้
เสริมของ บ ผม อันนี้เจอมานานและ ใช้มา 20 ปีไม่เจอปัญหา พอเปลี่ยน Tech Stack มาครอบหน่อยรวนทั้งระบบ
- การทำให้มั่นใจ เราต้องเอา Bug ออก เริ่มด้วย
- ทำ Unit Test
- Code Review
- Component Test / API Test
- UI Test
- Manual Test - ทำเยอะขนาดนี้ยังรอดไปหาลูกค้า User
- User Acceptance Test
- หรือ You Acceptance Test ทำเองทดสอบเองแทนลูกค้าไป
What to Test
การทดสอบมันอยู่ทุกช่วงของ SDLC ตั้งแต่ Requirement / Architecture / Design / Code ตามรูปเลย
Resource: Slide
Domain-Driven Design in Action: Lessons Learned from Developing Thailand's Lottery Platform
Speaker: Piyaphan Pongpradit
ตอนนี้ Product ที่ขายใน เป๋าตังค์ มี 2 แบบ L6 (เลข 6 ตัว) และ N3 (เลข 3 ตัว)
ก่อนทำ DDD > ทำไงให้ทีมซื้อ ต้องเลือกคน lead session ให้ดี และต้องสื่อว่า เราให้ได้อะไรออกมา เพื่ออะไร มี Goal อะไร
ใครเกี่ยวข้องกับสลากบ้าง 4 party
DDD แบ่งทีมตาม Feature 8-9 คน BA 2 PO และทีม Dev/QA โดยใช้ scrum of scrum มาใล้งาน เพาาะจัดการคนเยอะ และมีใช้ flight level (LV1 คุยกันภายใน / LV2 คุยระหว่าง Feature Team / LV3 คุยกับ Sponsor)
ก่อนจะทำเราต้องเข้าใจ Business ก่อน ศัพท์ในวงการนี้มันเยอะครับ ตรง โต๊ดบราๆ โดยเอามาสรุปให้เป็น Ubiquitous Language ก่อนทำตัว Architecture Design > UX UI Flow จาก User journey จริงๆในการซื้อ
จากนั้นมาทำ User Story mapping ทำให้เห็น Flow รวม และจับความสัมพันธ์ ให้ได้ Domain และ Boundary ของมันหาได้ว่า อะไรขาดไป เช่น การคำนวณเลขอั้น
หา Bound Context แบ่ง team จัดการมัน โดยที่ key ให้มีจุดที่แตะกันน้อยที่สุด จะได้ focus การจัดการภายในทีมตัวเองได้ ลดการสื่อสารข้ามกัน
พอได้ Draft ขึ้นมาแล้ว ต้องมาดู Domain นั้นต้อง
- Spilt ให้เล็กลงไป ถ้ามันใหญ่ไป
- Sub Domain เพิ่มลง
- คงไว้ก่อน จนกว่าจะมีข้อมูลเพิ่มเติม
ตอนนี้ได้ตำแหน่งของแต่ละ microservice
จากนั้นเริ่มจัดกลุ่มของงาน จะได้ทุ่ม Resource ได้ถูก
- Core Build Before Buy ทุ่มคนลงไป Lotto
- Generic Buy before Build ได้ ไม่จำเป็นต้องทำเองหมด หาตัวช่วย หรือ tools
- Support ระบบข้างเคียง เช่น payment เราไปหาที่มี เข้า customer profile ดึงจาก core bank
Existing Gap Analysis - ดูว่าที่ทำหลังจากจัดกลุ่มแล้ว เรามีของเดิมให้ Reuse ในองค์กรไหม หรือจาก Product ที่ใกล้กัน เช่น ตอนทำ N3 มาดูของ L6 พอรู้ข้อมูลหมด มาจัด Priority อีกที
Data Model เริ่มจากเล็กๆ ER-Diagram ระบบใหญ่ขนาดนี้เริ่มจริงๆ 8-9 Table เองนะ หลังจาก Refine ด้วย Tactical Design with Aggregate ไปเรื่อยๆ จากการที่เราเห็น Domain ใหม่ๆ ค่อยแตกออกมา
ทำ High Level Design - เห็นภาพของระบบที่เป็นรูปร่าง ในการเชื่อมแต่ละ Domain
- อย่าลืม Non-Function Requirement (Volume / Load / Security) ตั้งแต่แรกนะ เช่น การประเมินคนใช้งาน จำนวนขั้นต่ำ ทำให้เป็นหน่วยเดียวกัน TPS (Tx Per Sec) จะได้ตัดสินใจได้}
- ว่าควร Scale เพิ่ม
- แยก Domain ออกมาอีก แตก Microservice ออก จะได้ Scale ส่วนที่คนใช้จริงๆ
- นอกจาก Scale แล้วต้องดู Solution อื่นๆ เช่น Cache
Stack ที่ใช้ Golang+ react / multi-cloud / CI CD ตัว GitLab + Argo / Collaboration discord
Lesson Learn
- Supporting Domain อาจยะขยับมาเป็น core ของ biz อื่นได้นะ
- สร้างลำบาก แต่ดูแลยากยิ่งกว่า ดังนั้นทำอะไรแล้วควรมีการจดบันทึก ทำ Doc ไว้ ว่าทำไมถือแบ่ง Domain แบบนี้ / Architectural decision record (ADR)
- แบ่ง Domain นอกจากตาม Business แล้วให้ดู Non-Function Requirement
- เรียนรู้จากอดีต และปรับใช้ในปัจจบัน speaker บอกว่าตอนแรก ยังมืนๆ จากที่เรียนไป พอลองทำไป อ๋อมันใช่เลย และปรับใช้
- หนังสือแนะนำ Books Kinokuniya: Learning Domain-Driven Design : Aligning Software Architecture and Business Strategy / Khononov, Vladik (9781098100131)
AI Safety 101
Speaker: Chakrit Riddhagni
สำหรับ Session นี้ พี่คริสลองยกตัวอย่างก่อน ถ้าเราทำ Agentic AI บอกให้มันทำงานสักอย่าง Stamp Collector ทีนี้ AI มันทำงานของมัน แต่มันไม่สนวิธีการ
- แบบดี ถามดีๆ หาในระบบ แล้วซื้อมาให้
- แบบที่ไม่น่าดี ไป hack ระบบแล้วซื้อมาให้ หรือ ไปจัดการเจ้า่ของ Stamp แล้วชิงมันมา
ตอนนี้ Goal ของ AI ที่ทำอยู่อยากให้มันเป็น Artificial general intelligence (AGI) เพื่อให้ทำงาน และคิดแทนเราได้ แต่มันมีความที่แปลกๆ แต่เราต้องกันให้มันทำอะไรที่แปลก โดยมี Sandbox มาครอบสิ่งย้อนแย้ง
- AI ให้ฉลาด
- Sandbox ที่ป้องกันต้องฉลาดกว่า แต่ตอนนี้มันเหมือนจะเป็นทาง Control หรือป่าวนะ
แต่ตอนนี้ AI Safety เราไปป้องกันที่จุดนั้นที่อาจจะผิด Concept หรือ ป่าว ?
Idea solution ทำให้ AI มันมีความคิดที่ alignment กับคนเรา
AI Safety ตอนนี้ มันใช้ได้กับตัว AGI หรือป่าว ? ถึงตอนนี้พี่คริสเค้าเลยมาแชร์ ว่ามันประเด็นอะไรบ้าง
- Avoid Negative Side Effect ให้ทำบางอย่าง มันทำได้นะ แต่ไม่สนวิธีการ เราจะจัดการมันยังไง
✨ Maximizer กำหนดเป้าหมาย ให้ชัดเจน แต่อาจจะมีปัญหา
> AI อาจจะเผื่อไว้ เช่น stamp collector เรากำหนดจำนวน 100 ดวง อาจจะเจอปัญหา logistic เหมือนคนคิดเลย
> แล้ววิธีการที่ AI คิดยังปลอดภัย หรือป่าว อารมณ์เหมือนเลี้ยงลูกเลย แต่เราคุมได้ระดับนึง จากตัว Training Data ของเรา
✨ Satisfier -ได้เท่านี้พอแล้ว และไม่ให้ AI แก้ปัญหาที่คนทำไมได้
✨ Quantifier เอา Solution Space ของ AI มา ดูว่าเกินกว่า Solution Space ที่คนเราคิดไหม มองว่าที่คนเราทำ Safe แต่วิธีนี้ AI มันก้าวข้ามเราไม่ได้ - Avoiding Reward Hacking ทำอะไรที่ตรงตาม Reward Function (ทำได้ตรงตามผลลัพธ์ Output) แต่ผลลัพธ์มันใช้ไหมนะ
ตัวอย่าง gen code ขึ้นมาสิ่งที่ AI ทำ ไปเขียนเฉลยใหม่ เช่นใน wiki / Stack overflow แล้วเอาคำตอบมาให้เรา พอเราขอ Reference มันที่มันแอบสร้างมาให้เราดู ยิ่ง AI มี Power เราต้องเอ๊ะๆ
เราจะจัดการมันยังไง
🪵 RLHF วิธี train LLM ตอนนี้ ให้ human ตรวจ LLM เหมือนพวก ChatGPT ที่มีให้ Thumb Up/Down กับคำตอบ แต่วิธีก็ยากนะ เพราะมันไม่มี reword function ชัดเจน มันขึ้นกับคนล้วนๆ ในการตรวจ
บางทีจะเจอเคสบอกอ้อมๆ Asian Parent ไม่ได้บอกตรงๆว่าอยากให้เป็นหมอ แต่การกระทำ คำตอบเรื่องอื่นๆมันพาไปทางนั้น
🪵 KL-Divergent อย่าให้ ai ตอบอะไรที่ต่างจากเดิม อ้าวเปลี่ยนจากคนเอา ai ที่มนุษย์เชื่อใจมาตรวจ มันมีสูตรคำนวณ KL Formular บอกว่าต่างจากเดิมไหม - Instrumental Convergent มัน คือ กำหนด Goal ระยะยาว (Terminal Goal) และ ระยะสั้น หรือจริงมองเป็น task เล็กๆ (Instrument goal) ให้ AI มัน mission เล็กให้มันทำตาม เช่น
- Terminal Goal - อยากสุขสบายตอนแก่
- Instrument goal - ต้องมีเงิน แล้วต้องมีเงินทำยังไง มันจะแตก Instrument goal ย่อยลงไปอีก
ไปๆมา เราอยากให้ AI ไปเร็วๆ แต่แบบว่ามันมี Safety AI เลยต้องขยับที่ละนิด แต่ทว่าทุกคนพอใจไหม อย่าง Investor
AGI ถ้ามันฉลาดมาก มันอาจจะมีแนวคิดให้การป้องกันการขัดขวาง Terminal Goal อารมณ์แบบในหนังทำลายโลกก 555 โดยการป้องกันตอนนี้
- Self-Preservation - ห้ามปิดเครื่อง
- Goal Content Integrity - ห้ามแก้คำสั่ง
- Resource Acquistion - เอา Resource มา Compute Powert
- Cognitive Enhancement - ตัว AI เอง มันไปเรียน ทำให้ฉลาดขึ้น มันก็ดีนะ และแย่
ประเด็นปิดท้าย ปี 2025 จาก Open AI จะเปิดตัว AGI มา แล้วสิ่งที่เปิดตัวมาให้ใช้ ในระหว่างที่เรายังถกเรื่อง AI Safety / alignment มันเป้นอย่างไร ?
โดยที่ alignment เป็นส่วนนึงตัว แต่อีกครึ่งเป็นความต้องการของเราเอง AI มันอาจจะต้องเรียน Skill เพิ่ม 1 2 3 4 แต่เราต้อง Awareness กับความต้องการของเราให้ชัดเจนด้วยนะ
Resource: 1606.06565
Scalability Unlocked: Exploring Multiple Dimensions of Growth
Speaker: Predee Kajonpai
ต่อไป Session ของ TiDB ปัจจุบันเราอยู่กับ Data ถ้า Data เล็กๆทำอะไรก็ไม่มีปัญหาหรอก โดยแต่ละ pattern เรามีวิธีการจัดการกับมันตามนี้ ผมยุบ Size / Record เข้าด้วยกันเลยนะ
Size | 1GB | 100 GB | 1 -100 TB | 1 PB |
Solution | -ของเดิม | เดิมๆ อาจจะเอาอยู่ | -RDMS-Sharding -NoSQL | -ทำยังไง ? ต้องเป็น Case By Case ของแต่ละที |
Analytic/ Report | -ของเดิม | -เดิมๆ อาจจะเอาอยู่ รอได้ -หรือ ต้องไป OLAP | Big Data | -ทำยังไง ? ต้องเป็น Case By Case ของแต่ละที |
เราเห็นได้ว่าพอ Data มันโตขึ้น ต้ว Architecture ต้องขยับตามมาด้วย แต่มันแลกมาด้วยกับการปรับแก้ App / DB / Infra ให้ล้อกัน แล้วถ้ามีเวลาไม่พอ TiDB จะมาช่วยตรงนี้ ปรับ App น้อย ให้ DB จัดการแทน
สำหรับ TiDB คืออะไร มี Architecture ยังไงลองดู Blog เก่าที่จดจากงาน Meetup นี่แหละ สรุป DevClub#2: Databases @AWS Session 3 -Large Scale with TiDB
ต่อจากนั้นจะเป็น Demi TiDB Serverless ครับ โดยมี
- Tier ฟรี 5 GB ยัง scale ไม่ได้นะ
แต่ถ้าจ่ายเงินจะมี scalable node ให้ใช้ และเราสามารถกำหนด spend limit ได้ - มี tools diagnosis เหมือนกันกับค่ายอื่นๆ นะ เช่น slow query และพวก metric ต่างๆ
จาก DEMO ของเค้า เราจะเห็น Tools นึงที่เค้าให้จำลอง Load Test ให้ DB ของเรา เครื่องมือนั้น คือ เจ้า GitHub - akopytov/sysbench: Scriptable database and system performance benchmark จดๆเก็บไว้ เผื่อได้ใช้
- TiDB ยังรองรับ AI ด้วยนะ มีส่วน Vector Database ที่ AI ช่วงนี้นิยมใช้เก็บข้อมูลด้วยนะ จริงๆตัวที่เรา serverless มี feature vector dB นะ และ function VEC_COSINE_DISTANCE ลองไปดูใน Doc ได้ หรือ chat to queryก็ได้นะ
- TiDB ถ้าอยากลองใช้เองมีตัว Open Source เป็น Container ให้ลองเล่นนะ แสดงว่า Model เค้าน่าจะเน้น Consult + Support
ถ้าจะเริ่มเขียน Code บน ตัว TiDB Serverless มีคำแนะนำอยู่นะ อย่างของผมเองเคยลองเล่นไปเมื่อหลายเดือนก่อน สามารถลองไปอ่าน Blog กันได้ครับ [DOTNET] GraphQL บน NET8 ด้วย HotChocolate Library (Mutation) + TiDB
หลังจากนี้ผมนั่งช้้น 6 ยาวๆแล้ว เพราะวิ่งไปมาระหว่างชั้นไม่ทันครับ Auditorium ชั้น 6-7 / Town Hall ชั้น 7 อีกมุม ถ้ามีเวลาให้ Switch ระหว่างห้องสัก 5 นาทีก็ดี
Code Fast, Stay Secure
Speaker: Saritrat Jirakulphondchai
สำหรับ Session นี้คุณโจโจ้จะมาแชร์แนวทางการพัฒนา App ในปัจจุบันที่เราจะไป Cloud ปกติมันมีขั้นตอนยังไง
- Recep 4C Cloud Native Security ได้แก่ Code > Container > Cluster > Cloud
- อะไร คือ Cloud จริงๆ มันมีวิธีการวัดนะ Security / Scalable (Elasticity) / Unlimited Storage เป็นต้น
แล้วที่นี้ส่วนสำคัญของธุรกิจ App มันมีมาจากไหน มีลักษณะอย่างไร โดยคุณโจโจ้ได้บอก Characteristic
- Application Process - Programming + Problem-Solving ได้ Code ที่ตอบสนองกับ Biz
- Application Building มี 2 แบบ
- OS Executable (เล็ก / เร็ว / platform specific)
- App Runtime ต้องมาลงเพิ่ม ถึงใช้ได้ เช่น dotnet / node / go / rust
** ภาษาไหน เหมาะกับทุกงานนะขึ้นกับ use case และ knowhow ความพร้อม team - Application Output ที่แน่นๆ
- ออกมาเป็น result biz ที่เราต้องการ
- ส่วนอื่นๆ เราจะเรียกว่าเป็น Telemetry Data โดยมี 3 แบบ Log / Trace / Metric ซึ่งตอนนี้มี Tools หลายตัวมาช่วยอย่าง LGMT Stack / ELK Stack - Application Package Manager ตัวที่จัดการ Lib ที่จำเป็นตอน Build
นอกจากนี้การเอาเปลี่ยนจาก Code ไปเป็นมูลค่าทางธุรกิจ มันมีหลายวิธีทั้งการทำมือ หรือเอา Automation อย่าง CI/CD ยังไง? ซึ่งใน CI/CD เรามี Gate ย่อยๆ
Lint > Unit Test > Build > Pack Container > Deploy
แต่ยุคนี้ Security มันเป็นหนึ่งของ Quality นะถ้าจะตรวจทุก Step เราต้องทำท่าอะไรบ้าง เพื่อให้มันมีปัญหาน้อยที่สุดทั้งจาก Chain ของการพัฒนา และ Chain การใช้งานจริงๆ
ของมันต้องทำเยอะ เรามี Tools ต่างๆมาใช้แหละ แต่ถ้าลงเยอะๆ มันแบบว่า ดูแลลำบาก คุณโจโจ้เลยแนะนำลองมาดูเจ้า Black Duck ฟังครั้งแรกงงนะ สรุปชื่อเดิม Synopsys มีประสบการณฺ์อยู่แล้ว โดยมี Tools ที่ทำ CNAPP โดยช่วยในด้านต่างๆ เช่น
- มุมของ Dev มีเจ้า Code Sight ตรวจ Code
- รวมพวก Infra docker ของเราได้ ว่ามีอะไรที่ควรปรับ เช่น hardcode secret หรือ ยังไม่ทำตาม practice default config ไว้
ถ้าสนใจเจ้า Black Duck ติดต่อกับทาง JumpBox ครับ
สำหรับช่วงต่อจากนี้เป็น Lighting Talk สั้นๆ 10-15 นาทีครับ
Open-source Small AI Models for a Greener Future
Speaker: Charunthon (Boat) Limseelo
ใน Lighting Talk เรียกว่าเป็นการ Recap ว่าทำไมเราถึงใช้ Small Model Language สามารถดูที่ผมจดสรุปเต็มๆ ได้จาก สรุปงาน .NET Conf TH 2024 หัวข้อ Developing Local AI Models with .NET and AutoGen
ส่วนเพิ่มเติมจากงาน .NET Conf TH 2024
นอกจากทำไมต้องใช้ SLM แทน LLM แล้ว เพราะมัน Run Local ได้ เล็ก / No Internet / Privacy
หากฟังจาก Session ของ Born2Dev แล้ว ใน Session นี้มีแนะนำ SLM สำหรับช่วย Coding ด้วยนะ แนะนำ Continue open-source AI code assistant inside your editor · Ollama Blog เป็น Model ที่ปรับมาจาก LLama3 เน้น Domain ด้าน Coding มากขึ้น
ถ้าทำ AI App มี Architecture แบบไหนบ้าง มีภาพใหญ่ๆตามนี้ OLLAMA
แต่มีประเด็นที่น้องโบ๊ทเปิดไว้ บางยังไม่กล้าใช้ SLM เพราะ ?
- Hallucination (มโน) & Performance
- Limited Resources - มันอาจจะยังไม่ได้ใช้ได้ทุก Device ช่วงนี้ อาจะมีตัว NPU / GPU
- Languages Barrier - ถ้า Model ของคนอื่น การถามที่มันจะตอบดีที่ก็ภาษาอังกฤษ
- Low Engagement
จากปัญหาน้องเลยลองทำ Side Project SLM boatchrnthn/PoonrooSLMPrototype_3B · Hugging Face หากเราฟังจาก Session Keynote อีกปัญหานึงของ LLM เรื่องของภาษา เน้นให้ Local มากขึ้น Support ภาษาไทย
และมีแนะนำด้วยนะ ถ้าจะลองพัฒนา Model ภาษาไทยมี Data Set ที่แนะนำตัว airesearch/WangchanThaiInstruct · Datasets at Hugging Face รองรับ 4 Domain Medical / Legal / Finance / Retail โดย Data Set จะเน้นไปทาง Summarization / Q&A / Classicfiction / Brainstorming เป็นต้น
Resource: Slide
Getting Data from Cloud to Kubernetes using SQL Query
Speaker: Sirinat Paphatsirinatthi
Why Steampipe
- ปัญหาตอนนี้ มันมีหลาย kube cluster และ namespace การจัดการมันยาก
- อยากเห็นภาพรวมของ metadata ใน kube ชัดเจน
- ใช้ภาษาเดียวจัดการ SQL น่าจะเบื้องหลังเป็น Postgres เห็นตอน demo มี jsonb_array_elements
- นอกจากจัดการ kube เรายังสามารถขียน go plugin จัดการ resource อื่นๆ อย่าง kafka / rabbit mqได้
Install https://steampipe.io/downloads
Demo ถ้าอยากรู้ว่า pod ที่สนใจใน namespace ใน image อะไร ปกติ ต้อว kubectl describe เข้าไป
- ลอง select มี hint
- Select / Join ได้
นอกจาก Query จาก Kube ไปใช้ select cloud resource ด้วยนะ พวก Azure AWS GCP แต่ที่ลองถามคุณโอมมาตอนนี้ เจ้า Steampipe เน้นการดึงข้อมูล ถ้าอยากแก้ Config เช่น การ update replica ใน deployment ยังไม่ Support น้า
Sharing: How’s QA involved with DevSecOps
Speaker: Tan Kanteera Kongyuen
QA process ที่บอกว่า SW ที่เราพัฒนา ตรงความต้องการ? / Security? / Reliability?
การเข้ามาของ DevOps จนไปถึง DevSecOps แล้ว QA อยู่ตรงไหน ? ต้องมี DevQaSecOps ไหม ?
คำตอบ งานด้าน Quality มันอยู่ตั่งแต่ Dev แล้ว โดยเริ่มจาก Day1 ตั้งแต่ที่ได้ Requirement แล้วนะ โดย Security เป็นแกนนึงใน Quality Attribute นะ นอกจากพวก Functionality โดยกระบวนการ Testing มันช่วย นทำให้เราทราบสถานะของ Software นะ โดยมีหลายจุดที่ช่วยเลย
- Plan test case ที่คิด ให้ dev ลอง/ test basic หรือ เอ๊ะ business req
- Coding เราลองไป pair กับ dev ลอง code หรือเขียนเทส
- Test - Test Script เพื่อเอาไป run ใน ci/cd pipeline
เห็นได้ทักษะ programming ยังจำเป็นสำหรับ QA อยู่นะ นอกจากนี้ manual testing ยังจำเป็นอยู่ Smoke testing/ Sanity testing หรือแม้การตรวจงานด้าน Cosmetic อย่างสี font ยังจำเป็นต้องใช้คนอยู่
QA != SW Tester
- ไม่เท่ากันนะ เพราะ ถ้าดูจาก Quality Attribute พบว่ามีหลายมุม ซึงทำด้วยตัวคนเดียว หรือ QA ไม่ได้
- ถ้าดูแต่ 2 มุม Functional / NFT เยอะมาก อย่าง security หาคนที่เชี่ยวชาญมาใช้ โดย QA อาจจะช่วยแนะนำ business data ให้ทางทีม Sec ให้มี Domain Knowledge และคิด Test Case ได้
Automate Testing != UI Test
เออจริง คนเข้าใจผิดกันเยอะมาก ที่ บ ผมเองเคยบอกว่าทำ Automate Unit Test แล้วทำไมยังผิดเหมือนกัน Coverage ยังไม่ถึง 20% เลย ตัวคนถามเอง ยังไม่เริ่มทำ Automate Test เลย
Back to Basic จริงๆ Testing มันมีหลาย Level สำหรับ Automate
- Unit - แล้วแต่ภาษาเลย xunit (dotnet) / junit (java)
- Integrate - ตรวจภาพรวมแบบ API / Component
- UI playwright / cypress
Contribute ยังไง จะได้เกิด Quality
- เรียนรู้ ในสิ่งที่เราไม่รู้
- วางแผนลงมือทำกับทีม
- แชร์ แบ่งปันความรู้ และอย่าลืมเติทความรู้ให้ตัวเราเองด้วย
- ลงมือทำไปพร้อมๆกัน รับทราบ และต้องลงมือทำด้วย
- เลือก Feature เล็กๆ + วัดผล
- ขยายผลไปทำในส่วนอื่นๅ
สุดท้ายเริ่มต้นที่ตัวเราเอง ลองทำ Test ก่อน
ถ้าอยากอ่านเต็ม ทาง Speaker มีเขียน Blog สรุป Session ของตัวเองด้วยครับ [บันทึก] แบ่งปัน : How’s QA involved with DevSecOps งาน National Coding Days 2024 | by Tan Kanteera Kongyuen | Nov, 2024 | Tanjai
Strategies for black box testability
Speaker: Thai Pangsakulyanont
Recap BKK.js 17
คุณไท ได้ไปแชร์เกี่ยวกับการทำ Black Box Testing ด้วยตัว Playwright มี Lesson Learn ไว้ตามนี้
- Code ให้ง่ายกับ Test
- ถ้าเจอ Bug ให้เติม Test คุมเข้าไป
- หรือ จริงๆแล้ว เราควรทำ Test Trophy เน้น Integration Test
มาถึง ปี 2024 คุณไท มาแชร์มุมมองที่เพิ่มขึ้นจากการลองทำ black box
- จริงๆแล้วมุมหนึ่งที่ทำให้ App ที่มันซับซ้อน และทดสอบยาก เกิดจากการที่เราไม่เอาใจเข้า มาใส่ใจเรา หรือ สลับกันสวมหมวก Dev / QA
- เคสที่ชัดสุด การทำ End to End Test มันจะ Require Id ถ้า Dev ไม่ได้ทำมาให้ก่อน แล้ว QA ไปหาท่ายากทำ Test กันเอง ความลุ้นระทึกตอน Version ใหม่มันจะใช้งานได้ไหม Test เดิมจะแตกไหม
- อะไรที่ช่วยบ้าง
- Strong Quality Culture + technical excellence จาก Session ของพี่ปุ้ย
- Session ก่อนหน้าของคุณแทน Sharing: How’s QA involved with DevSecOps
ควรมีทีม QA ไหม ?
ไม่มีคำตอบที่แน่นอนนะขึ้นกับปัจจัย เห็นอีกมุมมอง หรืออีกอันบอก บ tech ใหญ่ Dev ทำเองเลย ซึง คุณไทยสรุปไว้ตามนี้
Testing in Eventpop
- ตัว Codebase ที่นี้ดีมาก อาจจะเป็นผลจากภาษา Ruby on Rail ที่มันบังคับให้ทำ Test ตั้งแต่ต้น เลยมี Test อยู่แต่แรก
- การทำ Manual Test ก็จำเป็น แต่ขั้นตอนมันเยอะ มันจะดีกว่าไหม ถ้ามี Script ที่มีช่วยทำให้ Scenario นั้นให้ พอทำให้ Automate อย่างที่นี้ใช้ playwright Dev สามารถ Run Test ใน localhost หรือ CI/CD ได้
Strategies for black box testability
1.Tester API for Scenario Set up
เอาไว้จำลองสถานการณ์ พวก test setup KeyPoint ต้องให้ data มัน isolate กัน และไม่รบกวนกัน จะได้ regression test ได้
- เปิดเฉพาะใน dev / test นะ เพราะบางอัน อาจจะต้องใช้สิทธิสูง
- ทำ Open Api spec และนำมาแปลงเป็น typescript sdk พอมันเป็น code มันเขียน Compile ตรวจอะไรที่มันพังได้ และต่อยยอดไปทำ cli tools
- พอมี Api พวกนี้ ช่วยให้เรา generate test data ได้เรื่อยๆ ไม่เสียดาย db //เออจริง ส่วนตัวเคยทำแบบต่อ DB พอ DB หายท้อเลย
- ทำไมถึง Generate Data ตาม Scenario ไม่ทำตามแต่ละ Entity ไปเลย
- ทำ Api generic ตาม Entity gen test data ที่คุณไทเคยลองมา พบว่านานๆเข้า มัน complex เลยแยกตาม scenario ดีกว่า
- แต่ทำตัวช่วยมาแทน Scenario Util เอาไว้ให้เรียกใช้ สร้าง Test ใน Scenario ต่างๆ
2.Tester API for trigger event - เคส concurrent เข้ามาพร้อมกัน หรือ โดนจองที่นั่งตัดหน้าไป
3.Convenience Feature Helper & Test Id - ช่วย Gem ข้อมูล เชน Data-Test-Id ทำยังไงก็ได้ให้ Test มันทำง่าย
4.Test Page หน้าที่ช่วยให้ จำลองสถานการณ์ การกด
5.Testing Tools - ทำให้ Flow ต่างๆง่ายขึ้น เช่นให้ app การจ่ายเงิน เรามีตัวช่วยบอกว่า Flow ผ่านการจ่ายเงินแล้วนะ
6. Test Double - เอา Tools มาช่วยแทน External Service
- ใช้ 3rd party sandbox
- หา Software Tools เช่น maildev จำลองการส่งเมล์เลย
- ใช้ Emulator ที่แต่ละเจ้าเตรียมไว้ให้ เช่น Firebase
- หรือ ถ้าไม่มีจริงๆ ทำของตัวเองขึ้นมาเลย
สรุป Recommend ยังเหมือนเดิมครับ
- Code ให้ง่ายกับ Test
- ถ้าเจอ Bug ให้เติม Test คุมเข้าไป
- ถ้าเราเข้าไปใหม่ แล้วอยาก Test ของบางขึ้นเร็วเผา แล้วสุดท้ายไม่ได้ Test แล้วมาอยู่หลายๆปี Idea นี้เป็นอีกอันที่มาช่วยให้เรามั่นใจได้ ก่อนที่จะลงมือรื้อมันออก
แอบเห็นคุณไท ใช้ Allure Report — Open-source HTML test automation report tool เดี๋ยวต้องไปลองดูว่าตัว dotnet มัน support ไหมนะ ตอนนี้ใช้ของ default ที่ dotnet test มันทำให้ ไม่สวยเท่าไหร่
Blog ท่านอื่นๆ + Resource Section อื่นๆ
- [บันทึก] แบ่งปัน : How’s QA involved with DevSecOps งาน National Coding Days 2024 | by Tan Kanteera Kongyuen | Nov, 2024 | Tanjai
- National Coding Day 2024. Why is Coding in English | by Aphichan Chaiyutthasart | Dec, 2024 | Medium
- Slide Session: Crafting The Developer Workflow For Better Developer Experience
- ได้ไปฟังอะไรที่งาน National Coding Day 2024: Workshop Day บ้าง? | mikkipastel
- วันนี้ได้มีโอกาสไปงาน NCD หรือ... - Chadchayut Pipatkajornsak | Facebook
สุดท้ายของคุณทางสมาคมโปรแกรมเมอร์ที่จัดงานดีๆ ให้เราได้มา Update Trend Idea ใหม่ๆครับผม
Reference
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.