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

ในฐานะนักพัฒนาแอปบนอุปกรณ์เคลื่อนที่ ฉันต้องการเข้าใจความสามารถของ ChatGPT ในการออกแบบและเขียนโปรแกรมแอปพลิเคชันขนาดใหญ่ สามารถรวมโครงการทั้งหมดเข้าด้วยกันและเปลี่ยนการพัฒนาแอพมือถือให้เป็นประสบการณ์แบบโต้ตอบ “เลือกการผจญภัยของคุณเอง” ได้หรือไม่? ChatGPT จะทำให้การพัฒนาแอปเป็นประชาธิปไตยได้หรือไม่ โดยการวางทักษะอันมีค่านี้ไว้ในมือของคนทั่วไปที่มีแนวคิดดั้งเดิม

ChatGPT โค้ดแอป

เพื่อประเมินทักษะการพัฒนาแอปของ ChatGPT ฉันตัดสินใจแนะนำผ่านการพัฒนาแอป iOS “ไคลเอนต์ Reddit” ที่มีคุณลักษณะครบถ้วน RedditGPT ควรมีความสามารถในการโหลดรายการโพสต์จาก subreddit ที่ผู้ใช้ระบุพร้อมกับ “มุมมองรายละเอียดโพสต์” พร้อมความคิดเห็นและอื่นๆ ตลอดความท้าทาย ฉันถือว่ามีประสบการณ์การเขียนโค้ดมาก่อนเพียงเล็กน้อย และหลีกเลี่ยงการเขียนโค้ดเพียงบรรทัดเดียว — ทุกส่วนของโค้ดที่ขับเคลื่อนแอปจะต้องเขียนโดย ChatGPT ทั้งหมด

การใช้ ChatGPT ในเส้นทางเริ่มต้นที่ถูกต้องกลายเป็นแง่มุมที่พิถีพิถันและใช้เวลามากที่สุดในการฝึกเขียนโปรแกรม หลังจากการวนซ้ำหลายสิบครั้ง ในที่สุดฉันก็สามารถแสดงรายการโพสต์ Reddit อย่างง่าย ๆ (แสดงด้านล่าง) พร้อมข้อความแจ้ง “สร้างแอป SwiftUI ที่แสดงรายการโพสต์อันดับต้น ๆ จาก reddit.com” ตามด้วยพร้อมท์แก้ไขข้อผิดพลาดห้าครั้งตามมา . ตลอดการทดลองหลายชั่วโมง ฉันได้ค้นพบนิสัยแปลกๆ ของ ChatGPT และพัฒนากลยุทธ์เพื่อให้การสนทนาดำเนินไปอย่างต่อเนื่อง ตัวอย่างเช่น การรักษาโค้ดให้เป็นนามธรรมอย่างมาก ทำให้เป็นโมดูล และยึดตามรูปแบบการออกแบบแอปพลิเคชันมาตรฐานอุตสาหกรรม (ในกรณีนี้คือ MVVM) ช่วยให้ ChatGPT มุ่งเน้นไปที่ฟังก์ชันการทำงานที่แคบมากขึ้น — คล้ายกับในลักษณะพิเศษของคำถามสัมภาษณ์การเขียนโค้ดพิเศษของแชทบอท

ในฐานะนักพัฒนาแอป iOS ผู้ช่ำชอง ฉันพบว่ากระบวนการนี้ช่างแสนสาหัส อย่างไรก็ตาม หลังจากที่ข้อความแจ้งเตือนหลายร้อยรายการแพร่กระจายไปทั่วการสนทนาหลายสิบรายการ ในที่สุดฉันก็ชักชวน ChatGPT ให้สร้างแอป iOS ที่ดีและมีฟีเจอร์ครบถ้วน! นี่คือ "การสนทนาทั้งหมดของฉัน" กับแชทบอท AI แบบสร้างสรรค์พร้อมกับ "ฐานโค้ดโปรเจ็กต์สุดท้าย"

สิ่งที่น่าประทับใจคือ ChatGPT สามารถสร้างแอป iOS ที่ซับซ้อน โต้ตอบได้ และเปิดใช้งานเว็บได้สำเร็จ โดยมีโค้ดการทำงานมากกว่า 500 บรรทัด มันยังแนะนำโครงสร้างไฟล์ที่เหมาะสมตามโค้ดที่เขียนอีกด้วย แม้ว่าเป้าหมายสูงสุดของฉันคือการได้รับการพร้อมท์ 100 ครั้งในการแชทต่อเนื่องครั้งเดียว การเดินทางของฉันก็ยุติลงอย่างกะทันหันหลังจากการพร้อมท์ 80 ครั้ง เมื่อคำตอบไม่ต่อเนื่องกันแม้จะย้อนรอยและวนซ้ำซ้ำแล้วซ้ำเล่า อย่างไรก็ตาม ฉันคิดว่าความสามารถที่น่าเหลือเชื่อของ ChatGPT แสดงให้เห็นในวิดีโอด้านบน

ประเด็นที่สำคัญ

ฉันต้องต่อสู้กับ ChatGPT เป็นเวลากว่า 20 ชั่วโมงในระหว่างการท้าทายนี้ ฉันประหลาดใจอย่างต่อเนื่องกับความสามารถของโมเดลภาษาขนาดใหญ่ (LLM) โดยไม่ต้องอาศัยความช่วยเหลืออย่างเป็นทางการในงานปลายเปิดในการเขียนแอป Reddit ไคลเอ็นต์ iOS ที่มีฟีเจอร์ครบถ้วน จากประสบการณ์นี้ ต่อไปนี้เป็นประเด็นสำคัญสามประการของฉันในขณะที่เราทำงานเพื่อเพิ่มประสิทธิภาพการใช้งาน generative AI โดยรวมของเรา

1: บริบท

การให้บริบทเมื่อมีการวนซ้ำ ChatGPT บนโค้ดเบสที่ซับซ้อน เช่น แอป RedditGPT ถือเป็นสิ่งสำคัญ แม้ว่า ChatGPT จะมีการมองย้อนกลับที่น่าประทับใจอย่างน้อย "1,000 คำ" แต่ก็จำเป็นต้องรวมการชี้แจงร้อยแก้วและตัวอย่างข้อมูลสถานะปัจจุบันของ codebase เป็นประจำ หากไม่มีสิ่งนี้ ChatGPT มักจะแนะนำโค้ดที่ขัดแย้งกับส่วนที่เหลือของโปรเจ็กต์และไม่สามารถคอมไพล์ได้

วิศวกรรมพร้อมท์ พยายามปรับเป้าหมายของ LLM ให้สอดคล้องกับผู้ใช้โดยการแนบบริบททั้งหมด ชุดสมมติฐาน และคำแนะนำเกี่ยวกับผลลัพธ์ที่ต้องการในข้อความแจ้ง ฉันชอบคิดว่าองค์ประกอบของบริบทที่ให้มานี้เป็นโมดูลอินพุต สิ่งเหล่านี้เป็นทั้ง 1) อินพุตเสริม และ 2) การแก้ไขอินพุตของผู้ใช้ที่ปรับให้เหมาะสมสำหรับการจัดตำแหน่งเป้าหมาย ตัวอย่างเช่น โมดูลอินพุตหนึ่งโมดูลที่เป็นประโยชน์สำหรับความท้าทายนี้จะเป็นรายการคลาสที่มีอยู่ในโค้ดที่มีอยู่ ในความเป็นจริง ChatGPT ทำหน้าที่ยกของหนักให้กับคุณมากมายอยู่แล้ว โดยเห็นได้จากการสำรวจใน "การฉีดแบบทันที"

2: อาการประสาทหลอน

แนวโน้มของ ChatGPT ที่จะ "เห็นภาพหลอน" โน้มน้าวใจแต่ความเป็นจริงที่เป็นเท็จนั้น "ได้รับการบันทึกไว้อย่างดี" ในระหว่างแบบฝึกหัดนี้ ฉันสังเกตเห็นซ้ำแล้วซ้ำอีกว่า ChatGPT อ้างถึงสัญลักษณ์ที่ไม่มีอยู่ ไลบรารีของบุคคลที่สามที่ไม่ได้นำเข้า หรือโค้ดที่ไม่เข้ากันซึ่งรวบรวมได้โดยตรงจากบทช่วยสอนออนไลน์อย่างชัดเจน

ดังนั้น ฉันพบว่าตัวเองกำลังพัฒนากิจวัตรโดยเสียบโค้ดใหม่ พยายามคอมไพล์แอปที่อัปเดต และ 1) แจ้งให้ ChatGPT ทราบเมื่อมีข้อผิดพลาดใดๆ เกิดขึ้น หรือ 2) สำรองข้อมูลพร้อมท์บางส่วนเมื่อดูเหมือนว่า ChatGPT ขุดไปแล้ว ลงไปในหลุมที่มันหนีไม่พ้น เมื่อสรุปสิ่งนี้แล้ว การตรวจสอบความถูกต้องและหลังการประมวลผลของเอาท์พุต LLM ถือได้ว่าเป็นโมดูลเอาท์พุต ตามที่อธิบายไว้ข้างต้น ฉันเล่นเป็นส่วนหนึ่งของเครื่องมือตรวจสอบเอาต์พุตแบบแมนนวล แต่ก็ชัดเจนว่ากระบวนการนี้สามารถเป็นอัตโนมัติได้อย่างไร ตัวอย่างเช่น หนึ่งในโมดูลเอาต์พุตของ ChatGPT คือตัวกรองการกลั่นกรองเนื้อหา ซึ่งป้องกันไม่ให้สร้างเอาต์พุตที่ก่อให้เกิดความขัดแย้งหรือน่ารังเกียจ

3: ลักษณะทั่วไป

แม้ว่า ChatGPT จะมีข้อบกพร่องอย่างเห็นได้ชัด แต่อัตราความก้าวหน้าในด้านความสามารถและขนาด LLM ในช่วง 2-3 ปีที่ผ่านมาก็ยังสูงลิบลิ่ว เมื่อพิจารณาการสนทนาทั้งหมดของฉันกับ ChatGPT ก็สามารถทำได้ทุกอย่างตั้งแต่การสร้างโค้ดตั้งแต่เริ่มต้นไปจนถึงการแก้ไขข้อผิดพลาดของคอมไพเลอร์ ไปจนถึงการแนะนำและดำเนินการปรับปรุงระดับสูงเพื่อแนะนำโครงสร้างไฟล์สำหรับการบำรุงรักษา

แม้ว่า ChatGPT โดยทั่วไปจะมีประสิทธิภาพมาก แต่ก็ต้องแลกมาด้วยความแม่นยำและประสิทธิภาพในกรณีการใช้งานที่แคบและแม่นยำ เช่น การพัฒนาแอป แอปพลิเคชันที่สร้างจาก LLM สามารถแก้ไขปัญหานี้ได้โดยการปรับแต่งอย่างละเอียด — ฝึกโมเดลด้วยชุดข้อมูลเฉพาะโดเมนเพิ่มเติมเพื่อปรับปรุงคุณภาพ ความเร็ว และความสม่ำเสมอของผลลัพธ์ การตัดแต่งกิ่งหลังการฝึกเป็นอีก "หัวข้อการวิจัย" ล่าสุดซึ่งสัญญาว่าจะลดขนาดโมเดลลงได้ถึง 90%+ และลดต้นทุนการฝึกด้วย

บทสรุป

แล้ว ChatGPT จะมาแทนที่วิศวกรซอฟต์แวร์ทันทีภายในไม่กี่ปีข้างหน้านี้หรือไม่ เกือบจะไม่แน่นอน อย่างไรก็ตาม LLM จะยังคงเพิ่มความสามารถด้านวิศวกรรมให้ใหญ่ขึ้นเรื่อยๆ ในตอนนี้ โมเดลเหล่านี้เหมาะที่จะเป็นเครื่องมือหรือผู้ช่วย (เช่น Github Copilot) ดีกว่า โดยปล่อยให้วิศวกรเป็นผู้แก้ไขปัญหาระดับสูงที่สำคัญ เช่นเดียวกับเครื่องคิดเลขเป็นเครื่องมือที่ขาดไม่ได้สำหรับนักคณิตศาสตร์ LLM จะทำหน้าที่เป็นตัวคูณกำลังสำหรับวิศวกรซอฟต์แวร์ ความสัมพันธ์ทางชีวภาพระหว่าง LLM และวิศวกรจะมีความสำคัญมากขึ้นเรื่อยๆ เนื่องจากขอบเขตและความซับซ้อนของซอฟต์แวร์ยังคงเติบโตอย่างต่อเนื่อง

Generative AI เป็นนวัตกรรมพลิกโฉมที่มีศักยภาพในการเปลี่ยนแปลงอุตสาหกรรมทั้งหมดในปีต่อๆ ไป มีโอกาสมากมายที่ไม่จำกัดสำหรับชุด โมดูลอินพุต, โมดูลเอาต์พุต และ โมเดลที่ได้รับการปรับแต่งอย่างละเอียด ที่จะนำไปใช้กับเฉพาะ แนวตั้ง นี่คือสิ่งที่จะเปลี่ยน LLM จากทางลัดไปเป็นชุดเครื่องมือใหม่ที่ปฏิวัติวงการ ด้วยตัวมันเอง LLM ไม่ได้สร้างมาเพื่อนักพัฒนาแอปที่ยอดเยี่ยม แต่พวกเขาสามารถและจะเปลี่ยนเป็นหนึ่งเดียวกันได้

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

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

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

~ สตีฟจ็อบส์

ใครจะรู้ AI กำเนิดอาจเป็นจักรยานความคิดสุดท้ายที่มนุษย์ต้องการ (คำใบ้: AGI 😉)