อดีตผู้อำนวยการ AI ของ Tesla และผู้ร่วมก่อตั้ง OpenAI อย่าง Andrej Karpathy เพิ่งได้กล่าวสุนทรพจน์ที่ Y Combinator โดยแนะนำแนวคิด Software 3.0 ของเขา ซึ่งเป็นกระบวนทัศน์การเขียนโปรแกรมแบบใหม่ที่ large language models (LLMs) ทำหน้าที่เป็นคอมพิวเตอร์ที่สามารถเขียนโปรแกรมได้ผ่านภาษาธรรมชาติแทนการใช้โค้ดแบบดั้งเดิม การพูดครั้งนี้ได้สร้างการอภิปรายอย่างมีนัยสำคัญในชุมชนเทคโนโลยีเกี่ยวกับอนาคตของการพัฒนาซอฟต์แวร์และการผสานรวม AI
วิวัฒนาการจากโค้ดสู่การเขียนโปรแกรมด้วยภาษาธรรมชาติ
Karpathy ได้อธิบายถึงยุคสมัยที่แตกต่างกันสามช่วงของการพัฒนาซอฟต์แวร์ Software 1.0 หมายถึงการเขียนโปรแกรมแบบดั้งเดิมที่มนุษย์เขียนคำสั่งที่ชัดเจนในภาษาโปรแกรมมิ่ง Software 2.0 ซึ่งเขาได้แนะนำไว้ก่อนหน้านี้ในปี 2017 หมายถึงโครงข่ายประสาทเทียมที่โค้ดจริงๆ คือน้ำหนักที่ผ่านการฝึกฝนของโมเดลแทนที่จะเป็นคำสั่งที่เขียนโดยมนุษย์ ตอนนี้ Software 3.0 ได้ขยายแนวคิดนี้ต่อไปโดยทำให้ LLMs สามารถเขียนโปรแกรมได้ผ่าน natural language prompts โดยเปลี่ยนภาษาอังกฤษให้กลายเป็นภาษาโปรแกรมมิ่ง
แนวคิดนี้มาจากประสบการณ์ของ Karpathy ที่ Tesla ที่เขาสังเกตเห็นโครงข่ายประสาทเทียมค่อยๆ แทนที่โค้ด C++ ที่เขียนด้วยมือในระบบ Autopilot เมื่อโครงข่ายประสาทเทียมมีความสามารถมากขึ้น พวกมันก็ดูดซับฟังก์ชันการทำงานที่เคยถูกใช้งานในโค้ดแบบดั้งเดิม ส่งผลให้มีการลบซอฟต์แวร์ที่เขียนโดยมนุษย์หลายพันบรรทัด
ไทม์ไลน์วิวัฒนาการของซอฟต์แวร์ตาม Karpathy :
- Software 1.0: การเขียนโปรแกรมแบบดั้งเดิมด้วยโค้ดที่เขียนโดยมนุษย์ในภาษาโปรแกรมมิ่ง
- Software 2.0 (2017): เครือข่ายประสาทเทียมที่น้ำหนักที่ผ่านการฝึกฝนทำหน้าที่เป็น "โค้ด"
- Software 3.0 (2024): LLMs ที่สามารถเขียนโปรแกรมผ่านภาษาธรรมชาติ ทำให้ภาษาอังกฤษกลายเป็นอินเทอร์เฟซสำหรับการเขียนโปรแกรม
ปฏิกิริยาจากชุมชนมีตั้งแต่ความตื่นเต้นไปจนถึงความสงสัย
การตอบสนองจากชุมชนเทคโนโลยีมีความหลากหลาย โดยบางคนยอมรับวิสัยทัศน์นี้ในขณะที่คนอื่นๆ ตั้งคำถามเกี่ยวกับความเป็นไปได้ในทางปฏิบัติ ผู้สนับสนุนเห็นศักยภาพในการทำให้การพัฒนาซอฟต์แวร์เรียบง่ายขึ้นอย่างมาก ที่ผู้ใช้สามารถโต้ตอบโดยตรงกับระบบ AI แทนที่จะต้องนำทางผ่านอินเทอร์เฟซแบบดั้งเดิมที่ซับซ้อน นักวิจารณ์กังวลเกี่ยวกับความน่าเชื่อถือ ความปลอดภัย และการสูญเสียการคำนวณแบบกำหนดได้
ความกังวลหลักประการหนึ่งที่ถูกยกขึ้นในการอภิปรายมุ่งเน้นไปที่ความท้าทายพื้นฐานของการเปลี่ยนจากระบบที่กำหนดได้ไปสู่ระบบความน่าจะเป็น ซอฟต์แวร์แบบดั้งเดิมสร้างผลลัพธ์ที่คาดเดาได้และทำซ้ำได้ ในขณะที่ระบบที่ใช้ LLM อาจไม่สามารถคาดเดาได้และอาจสร้างผลลัพธ์ที่แตกต่างกันสำหรับข้อมูลนำเข้าที่เหมือนกัน สิ่งนี้ทำให้เกิดคำถามเกี่ยวกับวิธีการสร้างระบบที่เชื่อถือได้และพร้อมใช้งานจริงโดยใช้เทคโนโลยีเหล่านี้
ประเด็นกังวลทางเทคนิคหลักที่ชุมชนนักพัฒนาหยิบยกขึ้นมา:
- ความน่าเชื่อถือ: การเปลี่ยนจากระบบที่กำหนดได้แน่นอนไปสู่ระบบที่อาศัยความน่าจะเป็น
- ความปลอดภัย: LLM มีช่องโหว่ต่อการโจมตีแบบ prompt injection และการรั่วไหลของข้อมูล
- เศรษฐศาสตร์: บริการ LLM ในปัจจุบันดำเนินการขาดทุน ทำให้เกิดคำถามเกี่ยวกับความยั่งยืนในระยะยาว
- การบำรุงรักษา: AI ยังมีปัญหาในการดีบัก การปรับปรุงประสิทธิภาพ และการนำไปใช้งานจริงในระบบ production
- การควบคุมคุณภาพ: ความยากลำบากในการตรวจสอบและทดสอบโซลูชันที่ AI สร้างขึ้น
ความท้าทายด้านโครงสร้างพื้นฐานและความเป็นจริงทางเศรษฐกิจ
การอภิปรายยังเน้นย้ำถึงความกังวลในทางปฏิบัติเกี่ยวกับความยั่งยืนทางเศรษฐกิจของระบบที่ขับเคลื่อนด้วย LLM บริการ LLM ที่มีประโยชน์หลายแห่งในปัจจุบันดำเนินงานขาดทุน โดยได้รับการอุดหนุนจากเงินทุนจาก venture capital สิ่งนี้ทำให้เกิดคำถามเกี่ยวกับความเป็นไปได้ในระยะยาวและว่าโมเดลแบบสาธารณูปโภคที่ Karpathy จินตนาการไว้นั้นสามารถยั่งยืนทางเศรษฐกิจได้จริงหรือไม่
แก้ไขฉันหากฉันผิด แต่ LLM ที่มีประโยชน์ทุกตัวไม่ได้ดำเนินงานขาดทุนหรือ?
ชุมชนสังเกตเห็นความคล้ายคลึงกับรอบเทคโนโลยีก่อนหน้านี้ที่บริษัทต่างๆ เริ่มต้นด้วยการอุดหนุนบริการเพื่อสร้างการพึ่งพาของผู้ใช้ก่อนที่จะเพิ่มราคาเมื่อต้นทุนการเปลี่ยนแปลงกลายเป็นอุปสรรค
การใช้งานจริงและข้อจำกัดในปัจจุบัน
แม้จะมีวิสัยทัศน์ที่ยิ่งใหญ่ นักพัฒนาหลายคนเน้นย้ำถึงช่องว่างระหว่างทฤษฎีและการปฏิบัติ เครื่องมือ AI สำหรับการเขียนโค้ดในปัจจุบันเช่น GitHub Copilot และ Cursor แสดงให้เห็นความหวังสำหรับงานเฉพาะ แต่ยังคงต้องการการดูแลและการแทรกแซงจากมนุษย์อย่างมีนัยสำคัญ 10% สุดท้ายของโปรเจกต์ซอฟต์แวร์ใดๆ - การแก้ไขจุดบกพร่อง การปรับให้เหมาะสม และการนำไปใช้งานจริง - ยังคงเป็นความท้าทายสำหรับระบบ AI
สมาชิกชุมชนหลายคนแบ่งปันประสบการณ์ที่เครื่องมือ AI เก่งในการสร้างโค้ดเริ่มต้น แต่ประสบปัญหากับการแก้ไขจุดบกพร่องที่ซับซ้อน การผสานรวมระบบ และการรักษาคุณภาพโค้ดในระยะยาว สิ่งนี้บ่งชี้ว่าแม้ว่า AI อาจช่วยเสริมเวิร์กโฟลว์การเขียนโปรแกรม แต่ระบบ Software 3.0 ที่ทำงานอัตโนมัติอย่างเต็มรูปแบบอาจยังห่างไกลจากการใช้งานจริงอีกหลายปี
ปัญหาคุณภาพการถอดเสียงจากการพูดครั้งเดิม ซึ่งแดกดันที่ถูกถอดเสียงโดยใช้เทคโนโลยี AI speech-to-text ทำหน้าที่เป็นการเตือนใจโดยไม่ตั้งใจเกี่ยวกับข้อจำกัดของ AI ในปัจจุบัน โดย Karpathy เองก็สังเกตว่ามีข้อผิดพลาดที่ค่อนข้างแย่หลายจุดในการถอดเสียงนี้
แม้ว่าวิสัยทัศน์ Software 3.0 ของ Karpathy จะนำเสนออนาคตที่น่าสนใจสำหรับการเขียนโปรแกรม แต่เส้นทางจากความสามารถของ AI ในปัจจุบันไปสู่การพัฒนาซอฟต์แวร์ที่ขับเคลื่อนด้วยภาษาธรรมชาติอย่างเต็มรูปแบบยังคงไม่ชัดเจน แนวคิดนี้ได้จุดประกายการสนทนาที่สำคัญเกี่ยวกับทิศทางของวิศวกรรมซอฟต์แวร์อย่างแน่นอน แม้ว่าอุตสาหกรรมจะยังคงต่อสู้กับการผสานรวมเครื่องมือ AI ที่มีอยู่เข้ากับเวิร์กโฟลว์การพัฒนาอย่างมีประสิทธิภาพ
อ้างอิง: Andrej Karpathy's YC talk