สัมภาษณ์
ศาสตราจารย์ Eran Yahav, ผู้ร่วมก่อตั้งและผู้ร่วมบริหารของ Tabnine – ซีรีส์สัมภาษณ์

ศาสตราจารย์ Eran Yahav ผู้ร่วมก่อตั้งและผู้ร่วมบริหารของ Tabnine เป็นศาสตราจารย์ด้านวิทยาการคอมพิวเตอร์ที่ Technion – Israel Institute of Technology โดยมีการวิจัยที่เน้นไปที่ภาษาโปรแกรม มachine learning และวิศวกรรมซอฟต์แวร์ โดยเฉพาะการสร้างโปรแกรมและการวิเคราะห์โค้ดขนาดใหญ่ นอกเหนือจากงานวิชาการแล้ว เขายังร่วมก่อตั้ง Tabnine (เดิมคือ Codota) เพื่อนำการวิจัยมาใช้ในการพัฒนาตัวช่วยพัฒนาซอฟต์แวร์ โดยช่วยให้การเขียนโค้ดและอัตโนมัติเป็นไปอย่างมีประสิทธิภาพมากขึ้น โดยการทำงานของเขามีจุดมุ่งหมายเพื่อทำให้โค้ดที่สร้างโดย AI มีความน่าเชื่อถือ มีความปลอดภัย และมีความเข้าใจในบริบทมากขึ้นสำหรับสภาพแวดล้อมขององค์กรในโลกแห่งความเป็นจริง
Tabnine เป็นแพลตฟอร์มการเขียนโค้ดที่ใช้ AI เพื่อช่วยเหลือผู้พัฒนาทั่วทั้งวงจรชีวิตของการพัฒนาซอฟต์แวร์ ตั้งแต่การเขียนและแก้บั๊กโค้ด ไปจนถึงการสร้างการทดสอบและเอกสาร ระบบนี้เริ่มต้นจากการเป็นตัวช่วยเสร็จสิ้นโค้ด แต่ปัจจุบันได้พัฒนาเป็นแพลตฟอร์มที่กว้างขึ้นสำหรับองค์กร โดยรวมเอา AI ที่สร้างขึ้นและกระบวนการทำงานอัตโนมัติเข้าด้วยกัน ทำให้ทีมสามารถอัตโนมัติงานพัฒนาที่ซับซ้อนได้ ในขณะเดียวกันก็รักษาความควบคุมที่เข้มงวดเหนือความเป็นส่วนตัว ความปลอดภัย และการปฏิบัติตามกฎระเบียบ โดยมีการสนับสนุนภาษาโปรแกรมหลายสิบภาษาและรวมเข้ากับ IDE หลักๆ ที่ใช้กันอย่างแพร่หลาย Tabnine มีเป้าหมายที่จะปรับปรุงประสิทธิภาพการทำงานของผู้พัฒนาในขณะเดียวกันก็รับรองว่าโค้ดที่สร้างโดย AI จะยังคงเชื่อถือได้และสอดคล้องกับมาตรฐานขององค์กร
คุณใช้เวลาหลายปีในการวิจัยการวิเคราะห์และสังเคราะห์โปรแกรมที่ Technion และเคยทำงานที่ IBM Research มีปัญหาใดในพัฒนาซอฟต์แวร์ที่ทำให้คุณตัดสินใจร่วมก่อตั้ง Tabnine และการวิจัยเชิงวิชาการของคุณมีอิทธิพลต่อวิสัยทัศน์แรกเริ่มของบริษัทอย่างไร
การวิจัยเชิงวิชาการของฉันเน้นไปที่การวิเคราะห์และสังเคราะห์โปรแกรม ซึ่งเกี่ยวกับการสอนเครื่องจักรให้เข้าใจและสร้างโค้ด ฉันทำปริญญาเอกเกี่ยวกับการวิเคราะห์โปรแกรม และนี่คือที่ที่ฉันใช้เวลาหลายปีในการทำงานวิจัยที่ใช้การประยุกต์ การแก้ปัญหาเกี่ยวกับคุณภาพซอฟต์แวร์ด้วยการวิเคราะห์โปรแกรมทำให้ฉันเข้าใจว่าปัญหาบางอย่างยากที่จะแก้ไขหลังจากที่โปรแกรมถูกเขียนผิดแล้ว การป้องกันไว้ก่อนหน้านั้นคุ้มกว่าการแก้ไขภายหลัง หากคุณพูดได้เช่นนั้น
ฉันเริ่มต้นด้วยการทำงานเกี่ยวกับการสังเคราะห์โปรแกรมสำหรับโปรแกรมแบบพร้อมกัน โดยพยายามอัตโนมัติในการสร้างโปรแกรมพร้อมกันจากโปรแกรมแบบลำดับ จากนั้นฉันก็เปลี่ยนไปใช้การสังเคราะห์โปรแกรมโดยใช้ machine learning ที่มีการใช้งานได้กว้างขึ้น
การสังเคราะห์โปรแกรมโดยใช้ machine learning เป็นแนวคิดพื้นฐานที่ขับเคลื่อน Tabnine ด้วย แนวคิดซึ่งดูเหมือนจะชัดเจนในขณะนี้คือว่าโมเดลสามารถเรียนรู้รูปแบบการเขียนโค้ดโดยตรงจากโค้ดขนาดใหญ่และช่วยเหลือผู้พัฒนาในเวลาจริง แนวคิดนี้ใช้ได้กับทุกขั้นตอนของวงจรชีวิตการพัฒนาซอฟต์แวร์ ตั้งแต่การสร้างโค้ดไปจนถึงการตรวจสอบโค้ด การ_deploy_ และอื่นๆ
วิสัยทัศน์เสมอมาคือการเพิ่มประสิทธิภาพการทำงานของผู้พัฒนาโดยให้เครื่องมือที่เร่งการทำงานและลดการเสียเวลา การพัฒนาซอฟต์แวร์เป็นวิชาชีพที่ต้องใช้ความคิดสร้างสรรค์และการแก้ปัญหา เป้าหมายคือให้ AI ลดการเสียเวลาในกระบวนการโดยจัดการกับงานที่ซ้ำๆ และช่วยให้ผู้พัฒนายังคงอยู่ในสถานะที่ดี วิสัยทัศน์นั้นยังคงนำทางเราอยู่แม้ว่าเทคโนโลยีจะพัฒนาไปมากแล้ว
Tabnine เป็นผู้บุกเบิกเครื่องมือช่วยเขียนโค้ด AI หลายปีก่อนที่ AI ที่สร้างขึ้นจะกลายเป็นที่นิยมด้วยเครื่องมืออย่าง OpenAI เมื่อมองย้อนกลับไป การใช้ AI ในการพัฒนาซอฟต์แวร์เปลี่ยนแปลงไปอย่างไรตั้งแต่ช่วงแรกๆ และสิ่งใดที่อุตสาหกรรมได้เรียนรู้จากคลื่นแรกของเครื่องมือช่วยเขียนโค้ด
เครื่องมือช่วยเขียนโค้ด AI รุ่นแรกๆ มุ่งเน้นไปที่การคาดเดาเป็นหลัก พวกมันเหมือนระบบเสร็จสิ้นโค้ดที่ซับซ้อนซึ่งช่วยให้ผู้พัฒนาเขียนโค้ดได้เร็วขึ้นโดยการคาดเดาบรรทัดหรือฟังก์ชันต่อไป
สิ่งที่เปลี่ยนแปลงไปพร้อมกับวงจรอัตโนมัติคือ AI สามารถจัดการกับงานที่มีอิสระมากขึ้น จนถึงจุดที่เราสามารถพิจารณาให้เอเย่นต์ (ด้วยคำแนะนำที่เหมาะสม) เป็นผู้พัฒนาจูเนียร์ที่ทำงานอิสระ
แต่นี่ก็สอนอุตสาหกรรมให้เรียนรู้เรื่องสำคัญด้วย ความสามารถของโมเดลโดยตรงไม่เพียงพอสำหรับการพัฒนาซอฟต์แวร์ในองค์กร โมเดลที่ฝึกจากข้อมูลสาธารณะสามารถผลิตผลลัพธ์ที่น่าประทับใจได้ แต่พวกมันบ่อยครั้งไม่มีความเข้าใจในโครงสร้าง องค์กร ความสัมพันธ์ และข้อกำหนดขององค์กร
ดังนั้นขั้นตอนต่อไปของการพัฒนาจึงไม่ใช่แค่โมเดลที่ใหญ่ขึ้นหรือหน้าต่างบริบทที่ใหญ่ขึ้น แต่เป็นการเชื่อมโมเดลเหล่านั้นเข้ากับบริบทที่แท้จริงที่ซอฟต์แวร์ถูกสร้างขึ้น
หลายองค์กรค้นพบว่าการขยายขนาดเอเย่นต์ AI ต้องใช้มากกว่าโมเดลที่ใหญ่ขึ้น – มันต้องใช้บริบทขององค์กรที่ลึกขึ้น คุณเชื่อว่าทำไมบริบทจึงกลายเป็นแนวหน้าใหม่สำหรับการพัฒนาซอฟต์แวร์ที่ขับเคลื่อนด้วย AI ที่น่าเชื่อถือ
ระบบซอฟต์แวร์เป็นเครือข่ายความสัมพันธ์ที่ซับซ้อน การเปลี่ยนแปลงใดๆ อาจส่งผลกระทบต่อหลายบริการ API หรือส่วนประกอบที่อยู่ด้านล่าง
โมเดล AI ในปัจจุบันสามารถสร้างโค้ดที่น่าเชื่อถือได้ แต่บ่อยครั้งทำงานโดยไม่มีความเข้าใจที่มีโครงสร้างเกี่ยวกับความสัมพันธ์เหล่านั้น โดยไม่มีความเข้าใจนั้น AI ไม่สามารถให้เหตุผลเกี่ยวกับผลที่ตามมาของการเปลี่ยนแปลงได้อย่างน่าเชื่อถือ
สิ่งที่องค์กรกำลังค้นพบคือความน่าเชื่อถือของระบบ AI ขึ้นอยู่กับคุณภาพของบริบทที่พวกมันทำงาน หากระบบ AI เข้าใจโครงสร้างของระบบ ความสัมพันธ์ระหว่างบริการ และมาตรฐานการเขียนโค้ดขององค์กร มันจะสามารถสร้างโค้ดที่สอดคล้องกับวิธีการทำงานของระบบได้มากขึ้น
ในความหมายนั้น บริบทกลายเป็นแนวหน้าใหม่สำหรับการพัฒนาซอฟต์แวร์ AI ในองค์กร
เครื่องยนต์บริบทองค์กรใหม่ของคุณมีจุดมุ่งหมายเพื่อให้เอเย่นต์ AI มีความเข้าใจที่มีโครงสร้างเกี่ยวกับโครงสร้าง องค์กร ความสัมพันธ์ และแนวปฏิบัติด้านวิศวกรรมขององค์กร วิธีการนี้แตกต่างจากวิธีการทั่วไป เช่น การสร้างข้อความที่ช่วยการสร้างข้อความที่หลายบริษัทใช้อยู่ในปัจจุบันอย่างไร
การสร้างข้อความที่ช่วยการสร้างข้อความเป็นเทคนิคที่มีประโยชน์ มันช่วยให้โมเดลสามารถดึงเอกสารหรือโค้ดที่เกี่ยวข้องมาใช้เมื่อสร้างคำตอบ
แต่การดึงข้อมูลเพียงอย่างเดียวไม่ได้สร้างความเข้าใจ มันให้การเข้าถึงข้อมูล ไม่ใช่โครงสร้าง
เครื่องยนต์บริบทองค์กรได้รับการออกแบบมาเพื่อไปไกลกว่านั้นโดยการสร้างการแสดงโครงสร้างของสภาพแวดล้อมซอฟต์แวร์ มันจะวิเคราะห์ห้องจัดเก็บ โครงสร้าง บริการ ความสัมพันธ์ และความสัมพันธ์ทางโครงสร้าง และจัดระเบียบให้เป็นแบบจำลองของวิธีการทำงานของระบบ
สิ่งนี้ช่วยให้ระบบ AI สามารถให้เหตุผลเกี่ยวกับความสัมพันธ์ระหว่างส่วนประกอบได้ ไม่ใช่แค่ดึงข้อความเท่านั้น สำหรับสภาพแวดล้อมองค์กรที่ซับซ้อน ความแตกต่างนี้มีความสำคัญมาก
เครื่องมือช่วยเขียนโค้ด AI กำลังพัฒนาจากการแนะนำการเสร็จสิ้นโค้ดไปสู่เอเย่นต์ที่สามารถทำงานอัตโนมัติได้หลายขั้นตอน คุณเห็นความสมดุลระหว่างผู้พัฒนาซอฟต์แวร์มนุษย์และระบบอัตโนมัติเปลี่ยนแปลงไปอย่างไรในอีก 5 ปีข้างหน้า
เอเย่นต์ AI จะรับหน้าที่ในการพัฒนาที่ซ้ำๆ มากขึ้น พวกมันสามารถดำเนินการฟีเจอร์จากจุดเริ่มต้นจนถึงการทดสอบและเอกสารได้แล้ว ทุกๆ ผู้พัฒนาจะกลายเป็นผู้นำทีมของเอเย่นต์ AI ที่พัฒนาโดย AI ความท้าทายหลักคือการสื่อสารความต้องการไปยังทีมนี้และตรวจสอบว่าผลลัพธ์ที่สร้างขึ้นตรงกับความต้องการที่กำหนดไว้
อย่างไรก็ตาม การพัฒนาซอฟต์แวร์เป็นเรื่องของการแก้ปัญหาและออกแบบโดยพื้นฐาน ผู้พัฒนาซอฟต์แวร์มนุษย์จะยังคงกำหนดสถาปัตยกรรม ตัดสินใจ และชี้นำทิศทางของระบบ
สิ่งที่จะเปลี่ยนแปลงคือระดับของการ trừอย่างที่ผู้พัฒนาทำงาน ผู้พัฒนาจะไม่เน้นไปที่โค้ด แต่จะจัดระเบียบการทำงานในระดับที่สูงขึ้นและร่วมมือกับระบบ AI ที่ดำเนินการบางส่วนของการทำงานเหล่านั้น
ในอีกคำหนึ่ง บทบาทของผู้พัฒนาจะกลายเป็นเชิงกลยุทธ์มากขึ้นเมื่อ AI จัดการงานเชิงกลยุทธ์
Tabnine ระบุว่าผู้ใช้ในองค์กรมองเห็นอัตราการยอมรับโค้ดที่สร้างโดย AI ถึง 80% ในบางสภาพแวดล้อม องค์กรควรใช้เมตริกใดเพื่อกำหนดว่าเครื่องมือช่วยเขียนโค้ด AI จริงๆ แล้วช่วยเพิ่มประสิทธิภาพการทำงานของผู้พัฒนาหรือไม่
คำถามหลักไม่ใช่ว่า AI สร้างโค้ดได้มากเพียงใด แต่เป็นงานที่มีประโยชน์จริงๆ ที่ AI สร้างขึ้น
มีหลายเมตริกที่องค์กรควรติดตาม หนึ่งในนั้นคืออัตราการยอมรับครั้งแรก ซึ่งวัดว่าโค้ดที่สร้างโดย AI สามารถใช้ได้โดยไม่ต้องแก้ไข อีกเมตริกหนึ่งคือเวลาในการทบทวน – กี่รอบที่ต้องการก่อนที่จะรวมการเปลี่ยนแปลง
องค์กรควรตรวจสอบเวลาในการทำงานซ้ำของนักพัฒนาและเวลาในการนำการเปลี่ยนแปลงจากพัฒนาสู่การผลิตด้วย
หากเครื่องมือ AI จริงๆ แล้วช่วยเพิ่มประสิทธิภาพการทำงาน คุณควรเห็นการปรับปรุงในเมตริกเหล่านั้น ผู้พัฒนาจะใช้เวลาในการแก้ไขโค้ดที่สร้างโดย AI น้อยลงและใช้เวลาในการทำงานที่มีคุณค่ามากขึ้น
องค์กรหลายแห่งยังคงระมัดระวังในการเปิดเผยโค้ดที่เป็นกรรมสิทธิ์ให้กับโมเดลภายนอก คอนเซปต์ของ “Trusted AI Coding” จัดการกับข้อกังวลเรื่องการกำกับดูแล ความเป็นส่วนตัว และการปฏิบัติตามกฎระเบียบที่ชะลอการนำ AI ไปใช้ในองค์กรอย่างไร
ความไว้วางใจเป็นปัจจัยที่สำคัญที่สุดในการนำ AI ไปใช้ในองค์กร
ความไว้วางใจคือความท้าทายสูงสุดในการสร้าง AI ที่น่าเชื่อถือ คุณจะไว้วางใจ AI ที่จะทำงานอิสระเพื่อทำงานวิศวกรรมซอฟต์แวร์ที่สำคัญได้อย่างไร คุณจะรับรองได้อย่างไรว่าการกระทำของ AI สอดคล้องกับความคาดหวังของคุณในเรื่องคุณภาพ ความปลอดภัย และการปฏิบัติตามนโยบายของคุณ หาก AI จะเป็นส่วนหนึ่งของทีมวิศวกรของคุณ มันจะต้องได้รับการยอมรับในระดับเดียวกับทีมงานของคุณ
การแก้ไขความท้าทายนี้ขึ้นอยู่กับสองเสาหลัก:
- การปรับแต่ง: การให้ AI เข้าใจองค์กรของคุณ โค้ด และแนวปฏิบัติที่ดีที่สุดอย่างลึกซึ้ง
- การควบคุม: การใช้ระบบที่เข้มงวดเพื่อให้แน่ใจว่าโค้ดทั้งหมด ทั้งที่สร้างโดย AI และเขียนโดยมนุษย์ ต้องตรงตามมาตรฐานคุณภาพ ความปลอดภัย ประสิทธิภาพ และความน่าเชื่อถือขององค์กรของคุณ
นอกจากนี้ การเขียนโค้ด AI ที่น่าเชื่อถือหมายถึงการให้องค์กรควบคุมวิธีการใช้ AI และรับประกันการกำกับดูแลและการควบคุมที่มีศูนย์กลาง
คุณแนะนำว่าบริบทขององค์กรอาจกลายเป็นชั้นพื้นฐานในกลุ่ม AI ขององค์กร – คล้ายกับฐานข้อมูลหรือโครงสร้างพื้นฐานบนคลาวด์ในยุคการคำนวณก่อนหน้า สถาปัตยกรรมในอนาคตดูเหมือนอย่างไร
หากคุณมองย้อนกลับไปที่ว่าเทคโนโลยีขององค์กรพัฒนาไปอย่างไร เรามักจะเห็นชั้นโครงสร้างใหม่ๆ เกิดขึ้น
ฐานข้อมูลกลายเป็นพื้นฐานสำหรับการจัดการข้อมูล โครงสร้างบนคลาวด์กลายเป็นพื้นฐานสำหรับการทำงานของแอปพลิเคชันในระดับใหญ่
ในยุค AI องค์กรจะต้องมีโครงสร้างพื้นฐานที่ช่วยให้ระบบ AI เข้าใจโครงสร้างภายในขององค์กร – ระบบ บริการ ความสัมพันธ์ และข้อจำกัดในการดำเนินงาน
โครงสร้างพื้นฐานนั้นจะให้บริบทที่มีโครงสร้างซึ่งระบบ AI หลายๆ ระบบสามารถใช้ได้ ไม่ว่าจะเป็นตัวช่วยเขียนโค้ด ตัวช่วยสนับสนุน หรือเครื่องมืออัตโนมัติในการดำเนินงาน
ในความหมายนั้น บริบทกลายเป็นพื้นฐานที่ใช้ร่วมกันสำหรับ AI ขององค์กร
หลายบริษัทกำลังสร้างตัวช่วยเขียนโค้ดที่เชื่อมโยงกับโมเดลพื้นฐานเพียงตัวเดียว ในขณะที่ Tabnine ช่วยให้องค์กรสามารถเชื่อมต่อโมเดลที่แตกต่างกันตามความต้องการได้ ทำไมความยืดหยุ่นของโมเดลจึงสำคัญสำหรับการพัฒนาซอฟต์แวร์ AI ขององค์กรในระยะยาว
ระบบ AI กำลังพัฒนาไปอย่างรวดเร็ว โมเดลใหม่ๆ ถูกปล่อยออกมาอย่างสม่ำเสมอ และโมเดลต่างๆ มักจะมีจุดแข็งในด้านที่แตกต่างกัน
องค์กรไม่ควรต้องออกแบบกระบวนการทำงานใหม่ทุกครั้งที่ภูมิทัศน์ของโมเดลเปลี่ยนแปลง ด้วยการอนุญาตให้องค์กรเลือกและเปลี่ยนโมเดลตามความต้องการ เราให้ความยืดหยุ่นที่ช่วยให้องค์กรสามารถวางแผน AI ของตนเองได้ในระยะยาว
ความยืดหยุ่นของโมเดลยังช่วยให้องค์กรสามารถสร้างสมดุลระหว่างประสิทธิภาพ ต้นทุน ความต้องการความเป็นส่วนตัว และข้อจำกัดในการใช้งาน
ในระยะยาว องค์กรจะทำงานในสภาพแวดล้อมที่มีหลายโมเดล และแพลตฟอร์มการพัฒนาควรได้รับการออกแบบโดยคำนึงถึงความเป็นจริงนั้น
สำหรับ CTO และผู้นำด้านวิศวกรรมที่กำลังประเมินแพลตฟอร์มการพัฒนาซอฟต์แวร์ AI ในปัจจุบัน ข้อผิดพลาดที่ใหญ่ที่สุดคืออะไรที่องค์กรทำเมื่อใช้เครื่องมือช่วยเขียนโค้ด AI และพวกเขาสามารถหลีกเลี่ยงข้อผิดพลาดเหล่านั้นได้อย่างไร
ข้อผิดพลาดที่พบบ่อยคือการเน้นไปที่ความสามารถของโมเดลเพียงอย่างเดียว โมเดลที่ใหญ่ขึ้นเป็นส่วนประกอบที่สำคัญ แต่ความน่าเชื่อถือในสถานการณ์จริงขึ้นอยู่กับว่า AI เข้าใจระบบที่ทำงานอยู่ภายในได้ดีเพียงใด
ข้อผิดพลาดอีกอย่างหนึ่งคือการนำเครื่องมือ AI ไปใช้โดยไม่พิจารณาถึงความต้องการด้านการกำกับดูแลและความปลอดภัย องค์กรต้องมีนโยบายที่ชัดเจนเกี่ยวกับวิธีการเข้าถึงโค้ด การใช้งานโมเดล และการตรวจสอบผลลัพธ์
สุดท้าย องค์กรบางแห่งคาดหวังว่า AI จะให้ผลผลิตทันทีโดยไม่ต้องปรับกระบวนการทำงานหรือให้บริบทที่เพียงพอ การใช้งานที่ประสบความสำเร็จมักเกี่ยวข้องกับการรวม AI เข้ากับกระบวนการทำงานที่มีอยู่แล้วและเชื่อมต่อกับโค้ดและโครงสร้างขององค์กร
เมื่อองค์ประกอบเหล่านั้นมารวมกัน AI จะกลายเป็นตัวเร่งการทำงานซอฟต์แวร์ที่มีประสิทธิภาพมากกว่าเครื่องมืออื่นๆ
ขอขอบคุณสำหรับการสัมภาษณ์ที่ยอดเยี่ยม ผู้อ่านสามารถเรียนรู้เพิ่มเติมได้ที่ Tabnine












