GitHub Copilot ของ Microsoft แสวงหา 'เวลาสู่คุณค่า' ที่สมบูรณ์ของ AI ในการเขียนโปรแกรม
Inbal Shani หัวหน้าเจ้าหน้าที่ฝ่ายผลิตภัณฑ์ของ GitHub กล่าวว่ามันไม่ได้เกี่ยวกับการเขียนโค้ดให้เร็วขึ้น แต่เป็นการทำให้นักพัฒนาใช้เวลาว่างได้ดีขึ้น
ประเด็นที่ว่า AI เชิงสร้างสรรค์สามารถช่วยผู้เขียนโค้ดได้มากเพียงใดนั้นกำลังเป็นที่ถกเถียงกันอย่างดุเดือด David Gewirtz ของ ZDNET ค้นพบจากการทดลองโดยตรงว่า ChatGPT ของ OpenAI "สามารถเขียนโค้ดได้ค่อนข้างดี" ในขณะเดียวกัน การศึกษาบางชิ้นพบว่าโมเดลภาษาขนาดใหญ่ เช่น GPT-4 นั้นต่ำกว่าโมเดลภาษามนุษย์มากในระดับคุณภาพโค้ดโดยรวม
แต่การถกเถียงกันว่า AI ทำหน้าที่หรือไม่ซ้อนกันในฐานะผู้เขียนโค้ดอาจยังขาดประเด็นไป บางคนโต้แย้ง พวกเขากล่าวว่าสาระสำคัญของความช่วยเหลือในการเขียนโค้ดผ่านระบบอัตโนมัติอยู่ที่การเปลี่ยนแปลงลักษณะงานของโปรแกรมเมอร์
"ถ้าคุณถามฉันว่าอะไรคือการเปลี่ยนแปลงครั้งใหญ่ สิ่งที่เกิดขึ้นกับโลกแห่ง generative AI ก็คือเราได้สร้างเลเยอร์นามธรรมขึ้นมาอีกชั้นหนึ่งนอกเหนือจาก AI" Inbal Shani ประธานเจ้าหน้าที่ฝ่ายผลิตภัณฑ์ของ GitHub ซึ่งเป็นไซต์นักพัฒนาที่ Microsoft เป็นเจ้าของ กล่าว ในการให้สัมภาษณ์เมื่อเร็ว ๆ นี้กับ ZDNET
เลเยอร์นามธรรมนั้น ซึ่งก็คือภาษาธรรมชาติ ถูกนำมาใช้ตั้งแต่แรกเพื่อการเติมโค้ดให้สมบูรณ์เท่านั้น “นั่นคือชั้นพื้นฐานที่เราเคยเห็น” เธอกล่าว Shani ให้เหตุผลว่าพลังของเลเยอร์นามธรรมคือสามารถขยายการใช้งาน AI อื่นๆ ได้มากมายนอกเหนือจากการเติมโค้ดให้สมบูรณ์
GitHub เปิดตัว GitHub Copilot เวอร์ชันความช่วยเหลือด้านโค้ดในเดือนมิถุนายน 2021 ปีนี้เป็น "ปีแห่งการเปลี่ยนแปลง" สำหรับ AI ในการเขียนโปรแกรม Shani กล่าว ตามที่ Satya Nadella CEO ของ Microsoft ประกาศในเดือนตุลาคม GitHub มีลูกค้าที่ชำระเงินมากกว่าล้านรายโดยใช้ Copilot และองค์กรมากกว่า 37,000 แห่งใช้งาน
Shani อ้างถึงผู้ใช้ Copilot ที่มีชื่อเสียง เช่น Accenture ซึ่งทำให้นักพัฒนาหลายร้อยคนเข้ามาใช้งาน Copilot "พวกเขาพบว่ามีการใช้งานมากมายเพื่อลดสิ่งที่เราเรียกว่าโค้ดสำเร็จรูป ซึ่งเป็นโค้ดซ้ำๆ ที่นักพัฒนาไม่จำเป็นต้องเขียน แต่จำเป็นต้องเขียนเพราะมันเป็นส่วนหนึ่งของรากฐานของพวกเขา"
Shani กล่าวว่า Accenture ยังคงรักษาโค้ดที่เขียนโดย Copilot ได้ถึง 88.5% “นั่นหมายความว่า Copilot สามารถให้คำตอบที่มีความแม่นยำสูงแก่นักพัฒนาว่าพวกเขาเลือกที่จะเก็บโค้ดนั้นไว้และไม่จำเป็นต้องเขียนใหม่”
ด้วยการวัดประสิทธิภาพหนึ่งหน่วย จำนวนคำขอดึงที่เสร็จสมบูรณ์ตรงเวลา เมื่อมีการรวมโค้ดใหม่เข้ากับแหล่งที่มาหลักสำหรับโปรเจ็กต์ เพิ่มขึ้น 15% อันเป็นผลมาจากการใช้ Copilot ที่ Accenture ยิ่งไปกว่านั้น "พวกเขาเห็นว่านักพัฒนามีแนวโน้มที่จะทำตามขั้นตอนการสร้างมากขึ้น" ซึ่งเป็นภารกิจในการแปลงโค้ดให้เป็นไบนารี่ที่ทำงานอยู่
เธอตั้งข้อสังเกตว่า "บางครั้งนักพัฒนาก็รั้งตัวเองไว้" จากการสร้างงานสร้าง “พวกเขาบอกว่าฉันไม่ไว้ใจ ฉันต้องทดสอบอีกครั้ง แต่การใช้ Copilot จะช่วยสร้างความไว้วางใจนั้นในการปรับใช้โค้ดมากขึ้นในการใช้งานจริง”
โอกาสของการเปลี่ยนแปลงเล็กๆ น้อยๆ เหล่านั้น เช่น คำขอดึงมากขึ้น การสร้างมากขึ้น และการเขียนโค้ดสำเร็จรูปน้อยลง จะมีประโยชน์เชิงคุณภาพทันทีในการเปลี่ยนแปลงของวันของนักพัฒนา
“ถ้าเราสามารถเพิ่มอัตราการสร้างได้อย่างสม่ำเสมอ นั่นก็จะช่วยให้นักพัฒนาใช้เวลารอการสร้างน้อยลง และมีเวลามากขึ้นในการกลับไปมุ่งเน้นไปที่สถาปัตยกรรมและอื่นๆ” Shani กล่าว
"การค้นพบที่น่าตกใจที่เกิดขึ้นสำหรับฉันคือนักพัฒนามีเวลาน้อยกว่าสองชั่วโมงต่อวันในการเขียนโค้ด" โดยเฉลี่ย Shani กล่าว “พวกเขาต้องทำหลายสิ่งหลายอย่างที่เกี่ยวข้องกับวงจรการพัฒนาซอฟต์แวร์ แต่ไม่ใช่เกี่ยวกับการเขียนโค้ด พวกเขาสร้าง เขียนการทดสอบ นั่งในการประชุม พวกเขาต้องมีส่วนร่วมกับคนอื่นๆ พวกเขาจำเป็นต้องเขียน PRs [ดึงคำขอ] ]"
การทำให้งานบางส่วนหรือบางส่วนเป็นไปโดยอัตโนมัติ มีโอกาส "เรากำลังให้แบนด์วิธมากขึ้นสำหรับนักพัฒนาเพื่อลงทุนในด้านอื่น ๆ "
Shani ยอมรับสิ่งใดๆ เหล่านี้อย่างครบถ้วนและเข้มงวดในแง่ของการเพิ่มผลิตภาพ "ฉันคิดว่าเราอยู่ระหว่างนั้น" เธอกล่าวถึงกระบวนการวัดประสิทธิภาพการผลิต Copilot และตระกูลของมัน "ไม่ได้ถูกนำมาใช้เป็นเวลานานพอที่จะทำให้เราได้รับข้อมูลที่แท้จริงและเป็นรูปธรรม ซึ่งเราสามารถพูดได้ นี่คือวิธีที่เราเปลี่ยนแปลงชีวิตไปตลอดกาล"
คำจำกัดความเป็นเรื่องยากสำหรับประสิทธิภาพการทำงาน เธอตั้งข้อสังเกต "คุณสามารถเขียนโค้ดเส็งเคร็งได้เร็วมาก" ดังนั้นการเร่งความเร็วโค้ดด้วยการเติมโค้ดให้สมบูรณ์จึง "ไม่จำเป็นต้องเป็นตัวบ่งชี้ความสำเร็จเสมอไป"
Shani กล่าวว่า "งานที่เราดำเนินการอย่างต่อเนื่องคือ เวลาให้คุณค่าจริงๆ คืออะไร ผลกระทบนั้นคืออะไร เราจะวัดผลกระทบของเครื่องมือเหล่านี้ที่เรานำมาใช้ตลอดเส้นทางได้อย่างไร ซึ่งยังคงดำเนินต่อไป"
องค์ประกอบที่สำคัญอีกประการหนึ่งในการวัดคือ "วิธีการกำหนดความสุขของนักพัฒนา" Shani กล่าว "การได้รับการยอมรับเป็นสิ่งสำคัญมากสำหรับนักพัฒนา และตอนนี้ บางบริษัทได้รับการยอมรับจากการวัดว่าฉันกำลังเขียนโค้ดกี่บรรทัด" แต่คำฟุ่มเฟือยของโปรแกรมเมอร์อาจไม่ใช่ตัวบ่งชี้ที่ดีที่สุดว่าโปรแกรมเมอร์เก่งแค่ไหน เธอชี้ให้เห็น
องค์ประกอบที่ลึกซึ้งอย่างหนึ่งของเลเยอร์นามธรรมใหม่ที่เป็นรูปเป็นร่างใน AI คือการลดความจำเป็นในการสลับระหว่างเครื่องมือต่างๆ
“โดยปกติแล้ว ถ้าฉันกำลังมองหาสิ่งที่ฉันเขียนไม่เป็น ฉันจะไปที่เครื่องมือค้นหาบางประเภท” Shani อธิบาย “โคไพล็อตสามารถนำสิ่งเหล่านั้นทั้งหมดมาไว้ในสภาพแวดล้อมเดียวกันได้” อินเทอร์เฟซ ข้อความแจ้ง "อยู่ใน IDE ของคุณ [สภาพแวดล้อมการพัฒนาแบบรวม]" ดังนั้น "คุณไม่จำเป็นต้องไปที่เครื่องมืออื่น คุณไม่จำเป็นต้องคัดลอกและวาง คุณไม่จำเป็นต้อง ทำทั้งหมดนั้น โดยพื้นฐานแล้วคุณจะอยู่ที่ที่คุณเขียนโค้ด"
ด้วยเหตุนี้ เธอจึงกล่าวว่า "นักพัฒนามีความสุขเพราะพวกเขามีการสลับบริบทระหว่างเครื่องมือน้อยลง"
Copilot กำลังหาทางเข้าสู่ส่วนอื่นๆ ของทีมเขียนโปรแกรม ผู้ใช้ Copilot รายใหญ่รายหนึ่ง ซึ่งเป็นบริษัทอีคอมเมิร์ซ Shopify กำลังใช้ Copilot ในการสัมภาษณ์เขียนโค้ด และประเมินพนักงานใหม่ Shani กล่าว นอกจากนี้ยังใช้ Copilot ในการเริ่มต้นใช้งานโปรแกรมเมอร์หน้าใหม่ ในฐานะ "โปรแกรมเมอร์แบบเพื่อน" หรือนักการศึกษาเพื่อพัฒนาโปรแกรมเมอร์หน้าใหม่ให้เร็วขึ้น
ในกรณีที่ Copilot และเครื่องมือที่คล้ายกันยังไม่ได้ผลลัพธ์ตามที่ต้องการ สาเหตุหลายประการอาจเป็นเพราะการเรียนรู้ด้านวิศวกรรมที่รวดเร็ว Shani กล่าว “คุณยังต้องรู้วิธีถามคำถามที่ถูกต้อง” เธอกล่าว
"ยิ่งคุณถามคำถามที่กว้างขึ้น [ตามพร้อมท์] วิธีแก้ปัญหาที่คุณจะได้รับซึ่งไม่เกี่ยวข้องกับสถานการณ์ของคุณก็จะยิ่งกว้างขึ้นเท่านั้น" ในขณะที่ "ยิ่งคุณรู้วิธีถามคำถามที่ถูกต้องมากเท่าไร คุณก็ยิ่งดีเท่านั้น" รับคำตอบจาก Copilot”
Microsoft กำลังทำงานร่วมกับลูกค้าเช่น Accenture ใน "การจัดการการเปลี่ยนแปลง" เธอกล่าวถึงวิธีเขียน "พรอมต์ที่เหมาะสม" และ "วิธีคิดเกี่ยวกับคำถามที่คุณถาม Copilot เพื่อให้ได้คำตอบที่ถูกต้อง"
Copilot ยังมีส่วนอื่นๆ อีกมากที่อาจส่งผลกระทบอย่างมากต่อประโยชน์ใช้สอยและความแม่นยำของมัน โปรแกรมกำลังค่อยๆ ได้รับความสามารถในการ "ปรับให้เหมาะกับแต่ละบุคคล" สำหรับนักพัฒนาแต่ละคน "แง่มุมที่เรากำลังดำเนินการอยู่คือวิธีที่เราสามารถช่วยให้โมเดลเหล่านี้เข้าใจสไตล์การเขียนโค้ดของคุณ" Shani กล่าว "เพื่อทำความเข้าใจว่าองค์ประกอบใดที่สำคัญสำหรับคุณในฐานะนักพัฒนาซอฟต์แวร์ เพื่อปรับเปลี่ยนคำแนะนำที่เรามอบให้คุณ"
ในเดือนกุมภาพันธ์ GitHub จะเปิดให้ใช้งาน Copilot เวอร์ชันองค์กรโดยทั่วไป “นี่เป็นเรื่องเกี่ยวกับโมเดลที่ได้รับการปรับแต่งเป็นพิเศษสำหรับองค์กรต่างๆ ที่ต้องการมีแนวทางในการนำไปปฏิบัติเป็นของตัวเอง” Shani กล่าว
ภายในรุ่นองค์กร "คุณจะสามารถสรุป PR หรือเพิ่มความคิดเห็นลงในโค้ดโดยใช้ Copilot หรือค้นหาเอกสารของคุณและรับเอกสารที่คุณต้องการ" นอกจากนี้ยังจะมีการเน้นที่มากขึ้นในการจัดการการทดสอบและการทดสอบความเครียดของ Copilot
แนวคิดหลักคือการ "รวมศูนย์ทุกสิ่งด้วยโมเดลโฟลว์ AI แบบเดียวกัน" Shani กล่าว "ทั่วทั้งการพัฒนาซอฟต์แวร์ตั้งแต่เริ่มต้นจนถึงการผลิต"
Advanced Micro Devices ซึ่งเป็นผู้ผลิตชิป เป็นหนึ่งในลูกค้ารุ่นเบต้าสำหรับรุ่นองค์กร โดยเฉพาะสำหรับการปรับแต่งโมเดล AI ภายในของ AMD อย่างละเอียด “เรามีรายชื่อลูกค้าที่ต้องการเข้ามารออีกนาน” เธอกล่าว "เรากำลังผ่านการทดสอบที่เข้มงวดมากมาย และเราต้องการได้รับผลตอบรับมากมายจากลูกค้าที่อยู่ในโปรแกรมเบต้าของเราก่อนที่เราจะรู้สึกมั่นใจที่จะแบ่งปัน"
อาจฟังดูแปลกที่จะพูดถึงความสุขของนักพัฒนา เนื่องจากบางคนแนะนำว่าโค้ดอัตโนมัติผ่าน AI สามารถกำจัดงานเขียนโปรแกรมได้ แต่นั่นไม่ใช่กรณีนี้ Shani ยืนกราน “มันจะไม่เข้ามาแทนที่นักพัฒนา ไม่ใช่ในอีกห้าหรือสิบปีข้างหน้า” เธอกล่าว "ฉันอยู่ในค่ายที่บอกว่า ไม่เคย เพราะเรากำลังจะพัฒนาในฐานะนักพัฒนา"
Shani ซึ่งก่อนที่จะมาที่ GitHub เมื่อปีที่แล้วเป็นผู้ดูแลผลิตภัณฑ์ Elastic Containers ที่ Amazon AWS เขาทำงานร่วมกับ AI มากว่าสองทศวรรษแล้ว เธอนึกถึงการเดินทางส่วนตัวของเธอเองในฐานะนักเขียนโค้ดตั้งแต่ Fortran ไปจนถึง C++ ไปจนถึง Java ไปจนถึง Python "ในทุก ๆ จุด ทุกคนต่างพากันวิตกกังวล โอ้พระเจ้า นี่จะทำให้งานของนักพัฒนาต้องสูญเสียไป"
แต่ "เราเห็นนักพัฒนาเพิ่มมากขึ้น เนื่องจากตอนนี้เราได้ลดอุปสรรคในการเขียนซอฟต์แวร์มากขึ้น"
ในขณะเดียวกัน วิวัฒนาการของ AI Copilots ก็ "เหมือนกับการปฏิวัติอุตสาหกรรมที่นำไปสู่โรงงานที่ปรับขนาดการผลิตอาหารเพื่อตอบสนองความต้องการ" ตามที่ Shani มองเห็น "นั่นคือสิ่งที่เกิดขึ้นในขณะนี้: มีความต้องการซอฟต์แวร์เพิ่มมากขึ้น ดังนั้นนักพัฒนาซอฟต์แวร์จึงมีความต้องการมากขึ้น"
หากการสร้างโค้ดเป็นอัตโนมัติได้อย่างแม่นยำ และหากเลเยอร์นามธรรมสามารถประหยัดการสลับบริบทได้ Copilot และกลุ่มเดียวกันจะช่วยลดระยะเวลาการพัฒนาสำหรับโปรเจ็กต์ได้จริงหรือไม่
ในหนังสือ The Mythical Man-Month โปรแกรมเมอร์ Fred Brooks ตั้งข้อสังเกตว่าการเพิ่มทรัพยากรให้กับโปรเจ็กต์การเขียนโปรแกรมขนาดใหญ่ไม่เพียงแต่ไม่ทำให้โปรเจ็กต์เร็วขึ้นเท่านั้น แต่ยังทำให้สิ่งต่างๆ แย่ลงอีกด้วย
ยังไม่ชัดเจนว่า AI จะช่วยกำหนดการและการจัดการโครงการได้อย่างมาก หรือลดความพยายามทั้งหมดที่จำเป็นสำหรับโครงการการเขียนโปรแกรมขนาดใหญ่
“ฉันไม่รู้ว่าแนวคิดเรื่องเวลาหลายเดือนจะเปลี่ยนเป็นวินาทีหรือเปล่า” ชานีกล่าว “สิ่งต่างๆ ยังคงต้องใช้เวลาพอสมควรในการเติบโต แต่ฉันคิดว่าหนทางที่จะไปถึงจุดนั้นจะราบรื่นและมีประสิทธิภาพมากขึ้นไปตลอดทาง หากเราสามารถบรรลุคุณค่านั้นที่เรากำลังมองหาได้ในระยะเวลาอันสั้นลง”

