ทุกสัปดาห์ จะมีเครื่องมือ AI ใหม่ๆ ขึ้นพาดหัวข่าวเสมอ นักเรียนได้ดูการสาธิตเอเจนต์สนทนา (conversational agents), ยานพาหนะไร้คนขับ (autonomous vehicles) และศิลปะที่สร้างโดย AI (generative art) และพวกเขาก็อยากจะเริ่มใช้งานทันที ความต้องการนี้เป็นเรื่องที่เข้าใจได้ ทำไมต้องเสียเวลาหลายเดือนเพื่อเรียนรู้เรื่องลูป (loops) และตัวแปร (variables) ในเมื่อคุณสามารถใช้วิธีลาก วาง และป้อนคำสั่ง (prompt) เพื่อสร้างแชทบอทที่ใช้งานได้จริง? แต่การข้ามพื้นฐานการเขียนโปรแกรมไปอย่างรวดเร็ว จะสร้างเพดานที่คุณจะชนเข้าอย่างรวดเร็วกว่าที่คิด
ทำไมทางลัดถึงดูน่าดึงดูดใจนัก
กระแสการตลาด AI ในปัจจุบันเน้นที่ความเร็ว แพลตฟอร์มแบบ low-code และ API wrappers ช่วยให้คุณสร้างอินเทอร์เฟซการสนทนาได้ภายในบ่ายวันเดียว ชัยชนะที่รวดเร็วนั้นให้ความรู้สึกเหมือนเป็นความก้าวหน้าที่แท้จริง แต่หน้าอินเทอร์เฟซเหล่านั้นวางอยู่บนโครงสร้างพื้นฐานที่คุณไม่ได้เขียนขึ้นเองและไม่สามารถมองเห็นสิ่งที่อยู่ภายในได้ เมื่อ API จำกัดจำนวนการใช้งาน (rate-limits) ของผู้ใช้, เมื่อโมเดลเกิดอาการหลอน (hallucinates) ในขณะใช้งานจริง, หรือเมื่อคุณต้องลดความหน่วงในการประมวลผล (inference latency) เพื่อให้แอปมือถือตอบสนองได้ทันท่วงที ความรู้เพียงผิวเผินจะทำให้คุณไปต่อไม่ได้ คุณจะกลายเป็นผู้ที่ต้องพึ่งพาเครื่องมือที่คนอื่นสร้างขึ้น โดยไม่สามารถซ่อมแซมหรือปรับเปลี่ยนมันได้
สิ่งที่การเขียนโปรแกรมมอบให้คุณจริงๆ
การเขียนโปรแกรมคือการเขียนคำสั่งที่แม่นยำให้กับคอมพิวเตอร์ มันคือวิธีที่เว็บไซต์จัดการกับทราฟฟิกที่เข้ามาพร้อมกัน, วิธีที่แอปมือถือซิงค์ข้อมูลข้ามอุปกรณ์, วิธีที่ฐานข้อมูลจัดเก็บข้อมูลหลายล้านรายการโดยไม่เกิดความเสียหาย, และวิธีที่ซอฟต์แวร์คลาวด์ยังคงใช้งานได้แม้ฮาร์ดแวร์จะขัดข้อง และที่สำคัญที่สุด มันคือวิธีที่ระบบ AI ทุกระบบถูกสร้าง ฝึกฝน และนำไปใช้งาน หากไม่มีสิ่งนี้ คุณไม่ใช่คนทำงานด้านวิศวกรรม แต่คุณเป็นเพียงผู้บริโภคผลงานของคนอื่น
ในทางกลับกัน ปัญญาประดิษฐ์ (Artificial intelligence) เป็นสาขาหนึ่งของวิทยาการคอมพิวเตอร์ที่มุ่งเน้นการทำให้เครื่องจักรทำงานที่ปกติแล้วต้องใช้การตัดสินใจของมนุษย์ มันเป็นการผสมผสานระหว่างโค้ด คณิตศาสตร์ และข้อมูล "ความมหัศจรรย์" นั้นไม่ใช่เรื่องมหัศจรรย์เลยแม้แต่น้อย มันคือสถิติที่ห่อหุ้มด้วย Python, การคูณเมทริกซ์ (matrix multiplication) ที่รันบนชิปเฉพาะทาง และชุดข้อมูลฝึกฝน (training sets) ที่ได้รับการคัดสรรมาอย่างดี เมื่อตัดกระแสการโฆษณาเกินจริงออกไป คุณจะพบกับวิศวกรรมซอฟต์แวร์ที่อยู่เบื้องล่าง
ความแตกต่างที่แท้จริงระหว่างทั้งสองสิ่ง
การเขียนโปรแกรมให้ความสามารถในการสร้างจากศูนย์ AI ให้เทคนิคเฉพาะทางเพื่อเพิ่มการจดจำรูปแบบ (pattern recognition), การทำนาย (prediction) หรือการสร้างสรรค์ (generation) เข้าไปในการสร้างสรรค์นั้น อย่างหนึ่งคือรากฐาน อีกอย่างคือชั้นที่สร้างอยู่บนรากฐานนั้น คุณไม่สามารถติดตั้งชั้นบนได้ก่อนที่จะเทคอนกรีต
เมื่อคุณเขียนโปรแกรมเป็น คุณจะสามารถอ่านซอร์สโค้ดเบื้องหลังโมเดลภาษาขนาดใหญ่ (large language model) หรือโมเดลการแพร่กระจาย (diffusion model) แบบโอเพนซอร์สได้ คุณจะเห็นได้ชัดเจนว่ากลไกความสนใจ (attention mechanisms) ถูกนำมาใช้งานอย่างไร ไม่ใช่แค่สิ่งที่บล็อกโพสต์บอกว่ามันทำได้ คุณสามารถแก้ไขโค้ด AI ได้เมื่อต้องการเปลี่ยน loss function หรือปรับอัตราการเรียนรู้ (learning rate) สำหรับชุดข้อมูลเฉพาะของคุณ คุณสามารถแก้ไขข้อผิดพลาดที่จะเกิดขึ้นอย่างหลีกเลี่ยงไม่ได้ ความผิดพลาดของขนาด (shape mismatch) ระหว่าง tensors, อาการ CUDA out-of-memory crash หรือบั๊กเงียบ (silent bug) ในขั้นตอนการเตรียมข้อมูล (data preprocessing pipeline) จะไม่สามารถแก้ไขได้ด้วยการป้อนคำสั่งแชทบอท คุณจำเป็นต้องไล่สายตัวแปร (trace variables), ตรวจสอบค่าเกรเดียนต์ (inspect gradients) และใช้เหตุผลเกี่ยวกับการจัดสรรหน่วยความจำ (memory allocation)
ธุรกิจส่วนใหญ่ไม่ต้องการแค่ wrapper ทั่วไปที่ครอบ API สาธารณะไว้ พวกเขาต้องการเครื่องมือเฉพาะทางที่ทำงานร่วมกับบันทึกข้อมูลผู้ป่วย, บัญชีการเงิน หรือเซนเซอร์การผลิตที่มีอยู่เดิมได้ พวกเขาต้องการระบบที่เคารพข้อจำกัดด้านความเป็นส่วนตัวที่เข้มงวด และทำงานภายใต้งบประมาณที่ไม่สามารถเรียกใช้งาน endpoint แบบเสียเงินได้หลายล้านครั้งต่อวัน การสร้างสิ่งนั้นจำเป็นต้องเขียนโค้ดขึ้นมาเอง
เริ่มต้นด้วย Python
หากคุณต้องการทำงานในสาย AI ให้เริ่มที่ Python ไวยากรณ์ (syntax) ของมันอ่านง่ายเกือบเหมือนภาษาอังกฤษทั่วไป ซึ่งช่วยลดอุปสรรคสำหรับผู้เริ่มต้น อย่าเข้าใจผิดว่าความเรียบง่ายนั้นคือความอ่อนแอ Python เป็นฐานรองรับเครื่องจักรกลหนักในด้าน machine learning สมัยใหม่ TensorFlow, PyTorch, scikit-learn และ Hugging Face Transformers ทั้งหมดล้วนสร้างขึ้นบน Python เมื่อคุณเรียน Python คุณไม่ได้กำลังเรียนภาษาของเล่น แต่คุณกำลังเรียนรู้เครื่องมือแบบเดียวกับที่นักวิจัย AI ใช้เพื่อผลักดันวงการให้ก้าวหน้า
แผนการเรียนรู้ที่นำไปใช้ได้จริง
ให้มองการเรียนรู้ของคุณเป็นลำดับขั้นตอน ไม่ใช่การเลือกหยิบตามใจชอบเหมือนบุฟเฟต์ นี่คือลำดับที่จะช่วยสร้างแรงขับเคลื่อนในการเรียนรู้ได้อย่างแท้จริง
การเขียนโปรแกรมด้วย Python. ฝึกฝนตัวแปร (variables), ลูป (loops), ฟังก์ชัน (functions), คลาส (classes) และการจัดการไฟล์ (file handling) ให้เชี่ยวชาญ เขียนสคริปต์เพื่อแยกแยะ (parse) บันทึก JSON หรือดึงข้อมูล (scrape) จากหน้าเว็บพื้นฐาน หากคุณยังไม่สามารถเรียงลำดับรายการ (sort a list) หรือจัดการกับข้อผิดพลาด (handle exceptions) ได้อย่างสะอาดเรียบร้อย คุณก็ยังไม่พร้อมสำหรับ gradient descent
โครงสร้างข้อมูลและอัลกอริทึม (Data structures and algorithms). อาร์เรย์ (Arrays), hash maps, ต้นไม้ (trees) และกราฟ (graphs) ไม่ใช่แค่คำถามพื้นฐานในการสัมภาษณ์งานเท่านั้น แต่มันคือวิธีที่คุณใช้จัดเก็บความสัมพันธ์และค้นหาข้อมูลเหล่านั้นได้อย่างมีประสิทธิภาพ หัวใจสำคัญของระบบแนะนำ (recommendation engine) สมัยใหม่ ก็คือปัญหาการท่องไปในกราฟ (graph traversal) ที่ชาญฉลาดนั่นเอง
SQL และฐานข้อมูล โมเดลต้องการข้อมูลที่สะอาด คุณจะต้องดึงชุดข้อมูลสำหรับฝึกสอน (training sets) จากฐานข้อมูล PostgreSQL, ทำการ join ตารางเพื่อประกอบเป็นฟีเจอร์ (features) และจัดเก็บปฏิสัมพันธ์ของผู้ใช้เพื่อนำไปทำ fine-tuning ในภายหลัง การละเลยขั้นตอนนี้หมายถึงการปฏิบัติกับข้อมูลเหมือนเป็นผงวิเศษ แทนที่จะเป็นสินทรัพย์ที่มีโครงสร้างซึ่งคุณสามารถควบคุมได้
คณิตศาสตร์: สถิติและความน่าจะเป็น AI ทำการคาดการณ์ภายใต้ความไม่แน่นอน คุณจำเป็นต้องเข้าใจเรื่องการแจกแจง (distributions), ความน่าจะเป็นแบบมีเงื่อนไข (conditional probability) และการทดสอบสมมติฐาน (hypothesis testing) หากไม่มีสิ่งนี้ คุณจะไม่สามารถประเมินได้ว่าโมเดลของคุณกำลังเรียนรู้จริงๆ หรือแค่กำลังจดจำสัญญาณรบกวน (noise) เท่านั้น
พื้นฐาน Machine Learning ศึกษาเรื่อง supervised และ unsupervised learning ลองสร้างโมเดล linear regression ขึ้นมาเองตั้งแต่ต้นโดยใช้เพียงแค่ NumPy ก่อนที่จะไปแตะไลบรารีสำเร็จรูป เพื่อให้คุณได้สัมผัสถึงคณิตศาสตร์ผ่านการเขียนโค้ด
Deep Learning ก้าวเข้าสู่เรื่อง neural networks ทำความเข้าใจเรื่อง backpropagation ด้วยตัวเองก่อนที่จะปล่อยให้ PyTorch จัดการเรื่อง automatic differentiation เพื่อให้คุณรู้ว่าเกิดอะไรขึ้นภายใต้ระบบ (under the hood)
Generative AI ศึกษาเรื่อง transformers, attention mechanisms และสถาปัตยกรรมของ large language model แล้วเครื่องมือที่ดูล้ำสมัยเหล่านั้นจะเริ่มสมเหตุสมผล เพราะคุณจะมองเห็นกลไกการทำงานของมัน
โปรเจกต์ AI สร้าง pipeline แบบ end-to-end ตั้งแต่การเก็บข้อมูล, ทำความสะอาดข้อมูล, ฝึกสอนโมเดล, เปิดใช้งานผ่าน REST API และ deploy เพื่อให้ผู้อื่นสามารถใช้งานได้ นี่คือจุดที่ทฤษฎีจะกลายเป็นวิศวกรรมที่จับต้องได้
การเขียนโปรแกรมและ AI คือพันธมิตรกัน
การเขียนโปรแกรมและ AI ไม่ใช่คู่แข่งกัน การเขียนโปรแกรมคือการสร้างตัวเรือ ส่วน AI คือการเพิ่มระบบนำทาง โปรแกรมเมอร์สามารถสร้างแอปมือถือที่ถ่ายรูปได้ แต่ถ้าเพิ่ม AI เข้าไป มันจะสามารถจำแนกชนิดของพืชได้ โปรแกรมเมอร์สามารถสร้างฐานข้อมูลธุรกรรมได้ แต่ถ้าเพิ่ม AI เข้าไป มันจะสามารถตรวจจับการทุจริตได้แบบ real time ลำดับขั้นตอนนั้นสำคัญ จงสร้างตัวเรือขึ้นมาก่อน
ข้อผิดพลาดที่ทำให้เสียเวลาเป็นเดือนๆ
การข้ามพื้นฐานจะนำไปสู่การพัฒนาแบบ copy-paste คุณไปก๊อปปี้สคริปต์มาจากฟอรัมออนไลน์ เปลี่ยนแค่พาธไฟล์ (file path) แล้วก็ภาวนาให้มันทำงานได้ เมื่อมันพัง คุณจะไม่มีโมเดลทางความคิด (mental model) เลยว่าทำไม การพึ่งพาเพียงแค่เครื่องมือ AI จะเปลี่ยนคุณให้กลายเป็นเพียงผู้ใช้งาน (operator) แทนที่จะเป็นผู้สร้าง (builder) คุณอาจจะสั่งให้สรุปความหรือสร้างรูปภาพได้ แต่คุณไม่สามารถส่งมอบผลิตภัณฑ์ที่บริษัทอื่นควบคุมได้อย่างเบ็ดเสร็จ การละเลยคณิตศาสตร์จะทำให้คุณเหมือนคนตาบอด คุณจะปรับแต่ง hyperparameters แบบสุ่มๆ เพื่อลุ้นผลลัพธ์ที่โชคดี และคุณจะไม่เข้าใจว่าทำไม classifier ของคุณถึงล้มเหลวในกรณีที่เป็น edge cases การพยายามเรียนรู้ทุกอย่างพร้อมกันจะทำให้สมาธิของคุณกระจัดกระจาย ในช่วงเริ่มต้น ความลึกสำคัญกว่าความกว้าง จงเลือกมาหนึ่งแนวคิดและอยู่กับมันจนกว่าจะเข้าใจอย่างถ่องแท้
สร้างโปรเจกต์ตามลำดับที่ถูกต้อง
เริ่มต้นด้วยแอปพลิเคชันเล็กๆ ที่จับต้องได้ สร้างเครื่องคิดเลขที่มีอินเทอร์เฟซแบบกราฟิก (graphical interface) สร้างแอป to-do ที่บันทึกข้อมูลลงในไฟล์ในเครื่อง เขียนสคริปต์ที่เปลี่ยนชื่อรูปภาพหลายพันรูปตามวันที่สร้าง แบบฝึกหัดเหล่านี้จะสอนให้คุณรู้วิธีจัดการสถานะ (state), จัดการอินพุตของผู้ใช้ และดีบั๊ก (debug) ตรรกะ
หลังจากนั้นเท่านั้นที่คุณควรเริ่มงานเฉพาะทางด้าน AI ลองฝึกสอน image classifier เพื่อแยกรูปแมวออกจากรูปสุนัขโดยใช้ Convolutional Neural Network สร้างแชทบอทอย่างง่ายที่ใช้การเรียก API โดยตรงพร้อมกับมี memory buffer เพื่อให้การสนทนายังคงมีความต่อเนื่อง การก้าวกระโดดนี้จะรู้สึกเป็นธรรมชาติ เพราะคุณรู้วิธีการวางโครงสร้างโค้ด, การจัดการข้อผิดพลาด และการอ่านเอกสารประกอบ (documentation) อยู่แล้ว
บทสรุปที่แท้จริง
เชี่ยวชาญด้านตรรกะก่อน เรียนรู้วิธีที่คอมพิวเตอร์คิดก่อนที่คุณจะพยายามสอนให้มันคิดเหมือนมนุษย์ พื้นฐานการเขียนโปรแกรมที่แข็งแกร่งจะเปลี่ยน AI จากกล่องดำ (black box) ให้กลายเป็นเครื่องมือที่คุณสามารถกำหนดทิศทาง, วิพากษ์วิจารณ์ และปรับปรุงได้ นั่นคือจุดที่อาชีพที่มั่นคงถูกสร้างขึ้น ผู้สร้างที่เข้าใจแบบ full stack จะอยู่รอดได้ยาวนานกว่าผู้ใช้งานที่รู้วิธีแค่การเขียน prompt
ที่มา: Programming vs AI: Which Skill Should You Learn First?
เข้าร่วมชุมชน: GyaanSetu AI on Telegram
