สัมภาษณ์
อิทามาร์ ฟรีดแมน ซีอีโอ และผู้ร่วมก่อตั้ง CodiumAI – ซีรีส์สัมภาษณ์

อิทามาร์ ฟรีดแมน เป็นซีอีโอและผู้ร่วมก่อตั้ง CodiumAI Codium มุ่งเน้นไปที่ “ความสมบูรณ์ของโค้ด” ของการสร้างโค้ด — การสร้างการทดสอบอัตโนมัติ การอธิบายโค้ด และการตรวจสอบโค้ด พวกเขาได้เผยแพร่การวิจัยเกี่ยวกับการสร้างโซลูชันโค้ดสำหรับการแข่งขันการเขียนโค้ดที่สามารถเอาชนะ Google DeepMind ได้
เมื่อไหร่และคุณเริ่มสนใจ AI อย่างไร?
ในปี 2009 ฉันทำงานที่ Mellanox (Acq. โดย NVIDIA (NVDA )) และศึกษาวิศวกรรมไฟฟ้า เมื่อฉันรู้ว่ากระบวนการพัฒนาที่น่าเบื่อหลายอย่างใน Mellanox สามารถทำอัตโนมัติได้ด้วยอัลกอริทึมการเรียนรู้ของเครื่อง ฉันเปลี่ยนสาขาวิชาเป็น tối ưu化และ_machine learning และจบการศึกษาระดับ MSc ในสาขานั้น ในปี 2010 ฉันเริ่มทำงานในโครงการ deep-learning (ด้วยเครือข่ายประสาทเทียม 3 ชั้น) ซึ่งเป็นรากฐานสำหรับเวลาของฉันที่ Alibaba ซึ่งฉันนำทีมวิจัยที่เชี่ยวชาญด้านการค้นหาสถาปัตยกรรมประสาทและฝึกอบรมโมเดล และสร้างเครื่องมือ AutoML สำหรับนักพัฒนา ในปี 2021 ฉันไม่อายที่จะเรียกงานของเรา “AI” เนื่องจากโมเดลภาษาที่มีประสิทธิภาพสูงกลายเป็นเครื่องมือที่ทรงพลัง และจินตนาการของฉันเกี่ยวกับสิ่งที่สามารถทำได้ด้วยมันเพิ่มขึ้น
สตาร์ทอัพก่อนหน้านี้ของคุณ Visualead ถูกซื้อโดย Alibaba Group คุณสามารถบอกเราเกี่ยวกับสตาร์ทอัพนี้และข้อคิดที่สำคัญที่คุณได้รับจากประสบการณ์นี้ได้หรือไม่?
Visualead มีเชี่ยวชาญด้านการสแกนโลโก้ โค้ด QR และสิ่งอื่นๆ รวมถึงการรักษาความปลอดภัยและการซ่อนข้อมูลในภาพเพื่ออำนวยความสะดวกในการทำธุรกรรม P2P และการมีส่วนร่วม ใน Visualead เราได้ทำงานอัลกอริทึมบนอุปกรณ์เคลื่อนที่ตั้งแต่ปี 2012 รวมถึงโมเดล มันเป็นเรื่องที่ท้าทายและยากที่จะทำเช่นนั้นในสมัยนั้น และเรียนรู้มากมายเกี่ยวกับการสร้างโมเดลที่มีประสิทธิภาพและรักษาความปลอดภัยให้กับ “สัตว์” สถิติเหล่านี้
จนถึงทุกวันนี้ ฉันยังคงใช้บทเรียนที่ได้จากสมัยนั้นในโครงการปัจจุบันที่ฉันทำ ตัวอย่างเช่น เมื่อเราสร้างเครื่องมือ AlphaCodium ที่เปิด源สำหรับการสร้างโค้ด เราได้แนะนำแนวคิดเรื่อง Flow Engineering และใช้แนวคิดนี้เพื่อสร้างกระบวนการในการรักษาความปลอดภัยของโมเดล LLM
คุณสามารถแบ่งปันเรื่องราวเบื้องหลังการเปิดตัว CodiumAI ได้หรือไม่?
ที่ Alibaba ฉันเห็นด้วยตัวเองว่าบั๊กในโค้ดสามารถนำไปสู่ปัญหาหลายล้านเหรียญสหรัฐ และความท้าทายที่นักพัฒนาต้องเผชิญในการรักษาคุณภาพและความสมบูรณ์ของโค้ดโดยไม่เสียสละคุณภาพหรือความสมบูรณ์ ปัญหานี้ยังคงอยู่ และปัจจุบันโค้ดที่มีคุณภาพต่ำถูกมองว่าเป็นปัญหาที่มีมูลค่าถึง 1 ล้านล้านเหรียญสหรัฐที่ยังคงเติบโต
ทีมงานที่ CodiumAI มีเชี่ยวชาญด้านการสร้างเครื่องมือที่มีพลังด้วย AI และมุ่งมั่นที่จะแก้ไขปัญหาที่นักพัฒนาต้องเผชิญ ด้วยการเกิดขึ้นของ LLM และความสามารถ AI ใหม่ๆ เราเข้าใจว่านี่เป็นโอกาสของเราในการสร้างแพลตฟอร์มความสมบูรณ์ของโค้ดที่ครอบคลุมเพื่อช่วยให้ทีมที่ยุ่งๆ เช่นเราเองลดจำนวนบั๊กและลดปัญหาความสมบูรณ์อื่นๆ เมื่อโค้ดที่ถูกสร้างโดย AI มากขึ้น ปัญหาในการประเมินโค้ดและทำให้แน่ใจว่ามันทำงานตามที่ตั้งใจไว้นั้นกลายเป็นจุดอ่อนที่สำคัญและเป็นปัญหาที่เราตั้งใจที่จะแก้ไข การสร้างเครื่องมือที่มีพลังด้วย AI และดังนั้นการประเมินจึงเป็นแนวคิดที่สำคัญสำหรับเรา
คุณสามารถอธิบายการวิเคราะห์โค้ดที่ไม่ธรรมดาที่ CodiumAI ทำได้หรือไม่ และวิธีการที่มันช่วยให้นักพัฒนาพัฒนาคุณภาพโค้ด?
จนกระทั่งไม่นานมานี้ เครื่องมือที่มีอยู่สำหรับนักพัฒนามีค่าใช้จ่ายน้อย แต่ด้วยการมาถึงของ LLM (ChatGPT, Copilot ฯลฯ) ความสามารถเริ่มที่จะเกินความคาดหวัง และการสนับสนุนที่มีให้กับนักพัฒนาก็ไม่ใช่เรื่องง่ายอีกต่อไป
ตัวแทนการเขียนโค้ด Codiumate ที่พัฒนาโดย CodiumAI มอบเครื่องมือที่ไม่เหมือนใครให้กับนักพัฒนาที่ช่วยปรับปรุงกระบวนการทำงานและเพิ่มการสร้างโค้ด ตัวแทนการเขียนโค้ด Codiumate สตรีมไลน์กระบวนการพัฒนาโดยการให้การช่วยเหลืออัตโนมัติทั้งหมดตลอดกระบวนการเขียนโค้ด โดยใช้โค้ดที่นักพัฒนามีในขณะนั้น ตัวแทนสามารถสร้างแผนการเขียนโค้ดที่ชัดเจนและเป็นไปตามแผน การเขียนโค้ดตามแผน การค้นหาโค้ดที่ซ้ำกันที่นักพัฒนาต้องการใช้หรือลบ การเขียนเอกสาร และการแนะนำการทดสอบเพื่อให้แน่ใจว่าโค้ดทำงานได้ตามที่ตั้งใจไว้ก่อนที่จะนำไปใช้ในสภาพแวดล้อมจริง
Codiumate ให้การวิเคราะห์พฤติกรรมที่ลึกซึ้งแก่นักพัฒนาที่ช่วยให้เห็นพฤติกรรมที่เป็นไปได้และสาขาที่โค้ดที่กำลังทดสอบครอบคลุม นี่ทำให้นักพัฒนาสามารถตรวจสอบโค้ดที่สร้างขึ้นและสร้างการทดสอบที่ครอบคลุมทุกพฤติกรรม ทำให้โค้ดดีขึ้นมากกว่าที่นักพัฒนาจะทำได้ด้วยตนเอง
คุณสามารถอธิบายฟังก์ชันการทำงานของ PR-Agent สำหรับการวิเคราะห์ pull request และวิธีการที่มันสตรีมไลน์กระบวนการตรวจสอบบนแพลตฟอร์ม เช่น GitHub และ GitLab (GTLB ) ได้หรือไม่?
PR-Agent มีฟังก์ชันการทำงานที่หลากหลายที่ออกแบบมาเพื่อเพิ่มและปรับปรุงกระบวนการวิเคราะห์และตรวจสอบ pull request บนแพลตฟอร์มต่างๆ
การสร้างคำอธิบาย pull request อัตโนมัติสร้างคำอธิบายที่ครอบคลุมและละเอียดสำหรับ pull request ฟังก์ชันนี้แก้ไขปัญหาที่พบบ่อยที่นักพัฒนาอาจพลาดคำอธิบายที่ละเอียดเนื่องจากข้อจำกัดของเวลาหรือการละเว้น ด้วยคำอธิบายอัตโนมัติ ทุก pull request จะมีบริบทที่เพียงพอ ทำให้ผู้ตรวจสอบเข้าใจการเปลี่ยนแปลงได้ง่ายขึ้นโดยไม่ต้องวิเคราะห์โค้ด diff อย่างละเอียด
การตรวจสอบ pull request อัตโนมัติให้ข้อมูลที่ครอบคลุมเกี่ยวกับ pull request ซึ่งช่วยให้นักพัฒนาสามารถระบุปัญหา เช่น บั๊ก ความเสี่ยงด้านความปลอดภัย หรือโค้ดที่ไม่ดี ก่อนที่จะส่งไปให้ผู้ตรวจสอบ นี่ช่วยให้นักพัฒนาสามารถแก้ไขปัญหาเหล่านี้ก่อนที่จะส่งไปให้ผู้ตรวจสอบ ทำให้คุณภาพของโค้ดที่ส่งไปให้ผู้ตรวจสอบดีขึ้น
คุณสามารถอธิบายวิธีการที่ CodiumAI สร้างการทดสอบที่มีความหมายได้หรือไม่ และสิ่งที่ทำให้การทดสอบเหล่านี้มีประสิทธิภาพมากกว่าการทดสอบหน่วยมาตรฐาน?
เราทำการทดสอบโดยการสแกนโค้ดที่เกี่ยวข้องใน仓庫โค้ด และใช้คำสั่ง chain-of-thought เพื่อสร้างแผนที่พฤติกรรมโค้ดที่เป็นไปได้ทั้งหมด รวมถึงเส้นทางทั่วไปและกรณีขอบเขต การเข้าถึงแบบบริบทเฉพาะและคำสั่งแบบกำหนดเองที่เหมาะสมกับภาษาโปรแกรมมิ่งต่างๆ และการฝังความรู้จากผู้เชี่ยวชาญในด้านนั้นเพื่อให้ได้ผลลัพธ์ที่เป็นมาตรฐานอุตสาหกรรม นอกจากนี้ CodiumAI ยังตั้งค่าสภาพแวดล้อม runtime ที่เฉพาะเจาะจงเพื่อตรวจจับบั๊กและสร้างการทดสอบที่สามารถซ่อมแซมตัวเองได้ ความสามารถเหล่านี้ทำให้การทดสอบของ CodiumAI มีประสิทธิภาพมากกว่าการทดสอบหน่วยมาตรฐานที่มักจะพลาดพฤติกรรมที่ไม่ได้ตั้งใจเนื่องจากความลำเอียงของนักพัฒนาที่ไม่เห็นภาพทุกสถานการณ์ที่เป็นไปได้
ตามข้อมูลรับจากผู้ใช้ คุณสามารถบอกเราเกี่ยวกับคุณสมบัติที่มีค่าที่สุดของ CodiumAI และวิธีการที่คุณสมบัติเหล่านี้ส่งผลกระทบต่อผลผลิตของนักพัฒนาได้หรือไม่?
ตามข้อมูลรับที่เราได้รับ คุณสมบัติที่นักพัฒนาค้นหามากที่สุดคือฟังก์ชัน /ask with code block context และ /test generation ของตัวแทนการเขียนโค้ด Codiumate
ฟังก์ชัน /ask with code block context (ดูเอกสารที่นี่: /ask) ช่วยให้นักพัฒนาสามารถถามคำถามที่เปิดกว้างเกี่ยวกับโค้ดของตนเอง หรือขอคำแนะนำในการปรับปรุงโค้ดหรือการตรวจสอบโค้ดระหว่างเซสชันแชทฟรี ฟังก์ชันนี้มีประโยชน์มากสำหรับการทำความเข้าใจโค้ดเบสอย่างลึกซึ้ง เนื่องจากโมเดลจะเก็บบริบทของโครงการทั้งหมด ทำให้สามารถตอบคำถามที่มีรายละเอียดและเฉพาะเจาะจงได้
ฟังก์ชัน /test generation (ดูเอกสารที่นี่: /test) ช่วยให้นักพัฒนาสามารถสร้างชุดการทดสอบที่ครอบคลุมสำหรับโค้ดของตนเองได้ด้วยการคลิกเพียงครั้งเดียว การสำรวจพฤติกรรมโค้ด การระบุและแก้ไขบั๊กอย่างรวดเร็ว และการขยายการครอบคลุมโค้ดอย่างรวดเร็วนั้นเป็นทรัพย์สินที่มีค่าสำหรับการเพิ่มผลผลิต
คุณสามารถบอกเราเกี่ยวกับวิธีการที่ CodiumAI ระบุกรณีขอบเขตและพฤติกรรมที่น่าสงสัยในโค้ดได้หรือไม่?
เครื่องมือของเราสแกนโค้ดที่เกี่ยวข้องใน仓庫โค้ดของนักพัฒนา และใช้คำสั่ง chain-of-thought เพื่อสร้างแผนที่พฤติกรรมโค้ดที่เป็นไปได้ทั้งหมด และแสดงให้นักพัฒนาดู CodiumAI สามารถระบุพฤติกรรมที่น่าสงสัยได้โดยตรง (ไม่ว่าจะเป็นการสร้างการทดสอบหรือไม่) โดยการระบุความไม่สอดคล้องกันระหว่างโค้ดที่แตกต่างกัน หรือระหว่างโค้ดและเอกสารที่เกี่ยวข้อง
CodiumAI สนับสนุนภาษาโปรแกรมมิ่งที่สำคัญหลายภาษา คุณสามารถอธิบายวิธีการที่มันจัดการกับลักษณะเฉพาะของภาษาในกระบวนการวิเคราะห์โค้ดและสร้างการทดสอบได้หรือไม่?
สำหรับภาษาโปรแกรมมิ่งที่สำคัญ แพลตฟอร์มของเรามีการสนับสนุนที่มากกว่าพื้นฐานโดยการนำเทคนิคเฉพาะมาใช้ ซึ่งรวมถึงการดึงข้อมูลตามบริบทและคำสั่งแบบกำหนดเองที่เหมาะสมกับภาษาโปรแกรมมิ่งแต่ละภาษา รวมถึงการฝังความรู้จากผู้เชี่ยวชาญในด้านนั้นเพื่อให้ได้ผลลัพธ์ที่เป็นมาตรฐานอุตสาหกรรม นอกจากนี้เรายังมีความสามารถในการตั้งค่าสภาพแวดล้อม runtime ที่เฉพาะเจาะจงสำหรับภาษาเหล่านี้ ซึ่งช่วยให้เครื่องมือของเราสามารถตรวจจับบั๊กและสร้างการทดสอบที่สามารถซ่อมแซมตัวเองได้อย่างมีประสิทธิภาพ
คุณสามารถบอกเราเกี่ยวกับการปรับปรุงในอนาคตที่วางแผนไว้สำหรับ CodiumAI เพื่อสนับสนุนและทำให้งานของนักพัฒนาง่ายขึ้นได้หรือไม่?
กลยุทธ์การพัฒนาของ CodiumAI ในอนาคตเน้นไปที่การปรับปรุงชุดเครื่องมือ AI ที่มีอยู่เพื่อให้ทำงานร่วมกันอย่างราบรื่นทั่วทั้งกระบวนการพัฒนาซอฟต์แวร์ โดยใช้หลักการ Flow Engineering ที่ซับซ้อนเพื่อทำให้กระบวนการทำงานของนักพัฒนาง่ายขึ้น ตัวแทนของเราจะให้คุณค่าอย่างมากในหลายๆ ด้านของการพัฒนา นอกจากนี้ CodiumAI ยังให้ความสำคัญกับการทำให้เครื่องมือเหล่านี้ทำงานได้ดีในโค้ดและสถานการณ์จริงที่ซับซ้อน ทำให้พวกมันจำเป็นสำหรับการทำงานประจำวันของนักพัฒนา วิธีการที่ครอบคลุมนี้มีเป้าหมายที่จะยกระดับข้อเสนอของเราให้เป็นเครื่องมือที่มีประสิทธิภาพสำหรับนักพัฒนา เพิ่มผลผลิตและประสิทธิภาพในกระบวนการพัฒนาซอฟต์แวร์
ขอขอบคุณสำหรับสัมภาษณ์ที่ดี ผู้อ่านสามารถเยี่ยมชม CodiumAI เพื่อเรียนรู้เพิ่มเติม












