แชร์

Nov 7, 2024

เพิ่มประสิทธิภาพผู้ช่วยเขียนโค้ด AI ด้วยบริบทแบบยาวของโมเดล Gemini

Beyang Liu

Sourcegraph

Paige Bailey

วิศวกรประสบการณ์ของนักพัฒนา AI

Vishal Dharmadhikari

วิศวกรโซลูชันผลิตภัณฑ์

รูปภาพหลักของ Sourcegraph Showcase

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

เราร่วมมือกับ Sourcegraph ซึ่งเป็นผู้สร้างผู้ช่วยเขียนโค้ด AI ชื่อ Cody ที่รองรับ LLM เช่น Gemini 1.5 Pro และ Flash เพื่อสำรวจศักยภาพของหน้าต่างบริบทแบบยาวในสถานการณ์การเขียนโค้ดในโลกแห่งความเป็นจริง การมุ่งเน้นของ Sourcegraph ในการผสานรวมการค้นหาโค้ดและข้อมูลอัจฉริยะเข้ากับการสร้างโค้ด AI รวมถึงการติดตั้งใช้งาน Cody ที่ประสบความสำเร็จในองค์กรที่มีโค้ดเบสขนาดใหญ่และซับซ้อน เช่น Palo Alto Networks และ Leidos ทำให้ Sourcegraph เป็นพาร์ทเนอร์ที่เหมาะสมที่สุดสำหรับการสำรวจนี้

แนวทางและผลลัพธ์ของ Sourcegraph

Sourcegraph เปรียบเทียบประสิทธิภาพของ Cody ที่มีหน้าต่างบริบทขนาด 1 ล้านโทเค็น (ใช้ Gemini 1.5 Flash ของ Google) กับเวอร์ชันที่ใช้งานจริง การเปรียบเทียบโดยตรงนี้ช่วยให้ทีมสามารถแยกแยะประโยชน์ของบริบทที่ขยายออกไปได้ โดยมุ่งเน้นที่การตอบคำถามทางเทคนิค ซึ่งเป็นงานที่สำคัญอย่างยิ่งสำหรับนักพัฒนาแอปที่ทำงานกับโค้ดเบสขนาดใหญ่ โดยใช้ชุดข้อมูลคำถามที่ท้าทายซึ่งต้องมีความเข้าใจโค้ดอย่างลึกซึ้ง

ผลลัพธ์ที่ได้น่าทึ่งมาก เกณฑ์เปรียบเทียบที่สำคัญ 3 รายการของ Sourcegraph ได้แก่ ความสามารถในการเรียกคืนที่จำเป็น ความกระชับที่จำเป็น และความมีประโยชน์ แสดงให้เห็นถึงการปรับปรุงที่สำคัญเมื่อใช้บริบทที่ยาวขึ้น



  • การเรียกคืนที่จำเป็น: สัดส่วนของข้อเท็จจริงที่สำคัญในคำตอบเพิ่มขึ้นอย่างมาก

  • ความกระชับที่จำเป็น: สัดส่วนของข้อเท็จจริงที่จำเป็นซึ่งปรับให้เป็นมาตรฐานตามความยาวของคำตอบก็ดีขึ้นด้วย ซึ่งบ่งบอกถึงคำตอบที่กระชับและเกี่ยวข้องมากขึ้น

  • ความมีประโยชน์: คะแนนความมีประโยชน์โดยรวมที่ปรับตามความยาวของคำตอบเพิ่มขึ้นอย่างมาก ซึ่งบ่งบอกถึงประสบการณ์ที่เป็นมิตรกับผู้ใช้มากขึ้น

ข้อความแสดงแทนสำหรับกราฟแท่งนี้ซึ่งแสดงการปรับปรุงคุณภาพระหว่างโค้ดเบสกับ Cody ที่ใช้ Gemini 1.5 Flash

นอกจากนี้ การใช้โมเดลบริบทขนาดยาวช่วยลดอัตราการหลอนโดยรวม (การสร้างข้อมูลที่ไม่ถูกต้องตามข้อเท็จจริง) ลงได้อย่างมาก อัตราการหลอนลดลงจาก 18.97% เป็น 10.48% ซึ่งเป็นการปรับปรุงความแม่นยำและความน่าเชื่อถืออย่างมาก

กราฟแท่งแสดงความแตกต่างของอัตราการเกิดอาการหลอนระหว่างฐานโค้ดกับ Cody ที่ใช้ Gemini 1.5 Flash

ข้อดีข้อเสียและทิศทางในอนาคต

แม้ว่าบริบทแบบยาวจะมีประโยชน์อย่างมาก แต่ก็มีข้อแลกเปลี่ยนเช่นกัน เวลาในการสร้างโทเค็นแรกจะเพิ่มขึ้นตามความยาวของบริบท Sourcegraph จึงใช้กลไกการดึงข้อมูลล่วงหน้าและสถาปัตยกรรมโมเดลบริบทแบบเลเยอร์เพื่อแคชสถานะการดำเนินการของโมเดล โมเดลบริบทแบบยาวของ Gemini 1.5 Flash และ Pro ช่วยเพิ่มประสิทธิภาพเวลาในการสร้างโทเค็นแรกจาก 30-40 วินาทีเป็นประมาณ 5 วินาทีสำหรับบริบทขนาด 1 MB ซึ่งเป็นการปรับปรุงที่สำคัญสำหรับการสร้างโค้ดแบบเรียลไทม์และความช่วยเหลือด้านเทคนิค

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

หากต้องการเจาะลึกวิธีการประเมินโดยละเอียด เกณฑ์มาตรฐาน และการวิเคราะห์ของ Sourcegraph รวมถึงตัวอย่างประกอบ โปรดอ่านบล็อกโพสต์แบบเจาะลึก