การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | อเมซอนเว็บเซอร์วิส

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | อเมซอนเว็บเซอร์วิส

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

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

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

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

  1. เอกสารหรือข้อมูลกระจัดกระจายสำหรับไลบรารีภายในและ API ที่บังคับให้นักพัฒนาใช้เวลาตรวจสอบโค้ดที่เขียนไว้ก่อนหน้านี้เพื่อจำลองการใช้งาน
  2. ขาดความตระหนักรู้และความสม่ำเสมอในการนำแนวทางปฏิบัติ รูปแบบ และรูปแบบการเขียนโค้ดเฉพาะองค์กรไปใช้
  3. การใช้โค้ดและ API ที่เลิกใช้แล้วโดยไม่ได้ตั้งใจโดยนักพัฒนา

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

ความท้าทายในการออกแบบ

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

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

วิธีปรับแต่ง

ในระดับสูง มีเทคนิคการปรับแต่งที่เป็นไปได้สองประเภท: การดึงข้อมูล-การสร้างเสริม (RAG) และการปรับแต่งแบบละเอียด (FT)

  • การสร้างแบบดึงข้อมูลแบบเสริม: RAG ค้นหาส่วนของโค้ดที่ตรงกันภายในพื้นที่เก็บข้อมูลที่คล้ายกับส่วนของโค้ดที่กำหนด (เช่น โค้ดที่อยู่ข้างหน้าเคอร์เซอร์ใน IDE ทันที) และเพิ่มพรอมต์ที่ใช้ในการสืบค้น LLM ด้วยส่วนย่อยของโค้ดที่ตรงกันเหล่านี้ สิ่งนี้จะช่วยปรับปรุงพรอมต์เพื่อช่วยดันโมเดลให้สร้างโค้ดที่เกี่ยวข้องมากขึ้น มีการสำรวจเทคนิคบางประการในวรรณกรรมตามบรรทัดเหล่านี้ ดู การดึงข้อมูล- Augmented Generation สำหรับงาน NLP ที่เน้นความรู้, REALM, kNN-LM และ RETRO.

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

  • การปรับละเอียด: FT ใช้ LLM ที่ได้รับการฝึกอบรมล่วงหน้าและฝึกอบรมเพิ่มเติมบนโค้ดเบสเฉพาะที่มีขนาดเล็กกว่า (เมื่อเทียบกับชุดข้อมูลการฝึกอบรมล่วงหน้า) เพื่อปรับให้เข้ากับพื้นที่เก็บข้อมูลที่เหมาะสม การปรับแต่งอย่างละเอียดจะปรับน้ำหนักของ LLM ตามการฝึกอบรมนี้ ทำให้ปรับให้เหมาะกับความต้องการเฉพาะขององค์กรได้มากขึ้น

ทั้ง RAG และการปรับแต่งอย่างละเอียดเป็นเครื่องมืออันทรงพลังสำหรับการเพิ่มประสิทธิภาพของการปรับแต่งตาม LLM RAG สามารถปรับให้เข้ากับไลบรารีส่วนตัวหรือ API ได้อย่างรวดเร็วโดยมีความซับซ้อนและต้นทุนการฝึกอบรมต่ำกว่า อย่างไรก็ตาม การค้นหาและเพิ่มข้อมูลโค้ดที่ดึงมาในพรอมต์จะเพิ่มเวลาแฝงที่รันไทม์ การปรับแต่งอย่างละเอียดไม่จำเป็นต้องมีบริบทเพิ่มเติม เนื่องจากโมเดลดังกล่าวได้รับการฝึกฝนบนไลบรารีส่วนตัวและ API แล้ว อย่างไรก็ตาม จะนำไปสู่ต้นทุนการฝึกอบรมที่สูงขึ้นและความซับซ้อนในการให้บริการโมเดล เมื่อโมเดลที่กำหนดเองหลายรายการต้องได้รับการสนับสนุนจากลูกค้าองค์กรหลายราย ตามที่เราจะพูดคุยกันในภายหลัง ข้อกังวลเหล่านี้สามารถแก้ไขได้โดยการปรับแนวทางให้เหมาะสมยิ่งขึ้น

การดึงข้อมูลรุ่นเสริม

RAG มีขั้นตอนอยู่สองสามขั้นตอน:

การจัดทำดัชนี

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

เวิร์กโฟลว์ของผู้ดูแลระบบ

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.
การค้นหาตามบริบท

ค้นหาชุดข้อมูลโค้ดที่จัดทำดัชนีโดยอิงจากโค้ดสองสามบรรทัดเหนือเคอร์เซอร์ และดึงข้อมูลโค้ดที่เกี่ยวข้อง การดึงข้อมูลนี้อาจเกิดขึ้นได้โดยใช้อัลกอริธึมที่แตกต่างกัน ตัวเลือกเหล่านี้อาจรวมถึง:

  • ถุงคำ (บีเอ็ม25) - ฟังก์ชันการดึงข้อมูลแบบถุงคำที่จัดอันดับชุดข้อมูลโค้ดตามความถี่ของคำค้นหาและความยาวของข้อมูลโค้ด

การดึงข้อมูลโดยใช้ BM25

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

รูปภาพต่อไปนี้แสดงวิธีการทำงานของ BM25 ในการใช้ BM25 จะต้องสร้างดัชนีกลับหัวก่อน นี่คือโครงสร้างข้อมูลที่จับคู่คำต่างๆ กับส่วนย่อยของโค้ดที่มีคำเหล่านั้นเกิดขึ้น ในช่วงเวลาค้นหา เราจะค้นหาส่วนย่อยของโค้ดตามเงื่อนไขที่มีอยู่ในแบบสอบถาม และให้คะแนนตามความถี่

การดึงความหมาย

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

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

การอนุมานแบบเสริม

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

ขั้นตอนการทำงานของนักพัฒนา

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

ปรับจูน:

ปรับจูน แบบจำลองภาษาเสร็จสิ้นแล้ว ถ่ายทอดการเรียนรู้ ซึ่งน้ำหนักของแบบจำลองที่ได้รับการฝึกอบรมล่วงหน้าจะได้รับการฝึกอบรมเกี่ยวกับข้อมูลใหม่ เป้าหมายคือการรักษาความรู้ที่เหมาะสมจากแบบจำลองที่ได้รับการฝึกอบรมแล้วในคลังข้อมูลขนาดใหญ่ และปรับแต่ง แทนที่ หรือเพิ่มความรู้ใหม่จากคลังข้อมูลใหม่ ในกรณีของเราคือโค้ดเบสใหม่ เพียงแค่ฝึกฝนโค้ดเบสใหม่ก็นำไปสู่ โศกนาฏกรรมหลงลืม. ตัวอย่างเช่นโมเดลภาษาอาจ “ลืม” ความรู้เรื่องความปลอดภัย หรือ API ที่ใช้งานอย่างกระจัดกระจายในโค้ดเบสขององค์กรจนถึงปัจจุบัน มีเทคนิคหลากหลายเช่น เล่นซ้ำประสบการณ์, GEMและ พีพี-ทีเอฟ ที่ได้รับการว่าจ้างเพื่อจัดการกับความท้าทายนี้

ปรับจูน

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

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

แม้จะมีข้อดีของการใช้ LLM เฉพาะสำหรับการสร้างโค้ดบนที่เก็บส่วนตัว ค่าใช้จ่ายก็อาจเป็นอุปสรรคสำหรับองค์กรขนาดเล็กและขนาดกลาง เนื่องจากทรัพยากรการประมวลผลเฉพาะมีความจำเป็น แม้ว่าอาจมีการใช้งานน้อยเกินไปตามขนาดของทีมก็ตาม วิธีหนึ่งในการบรรลุประสิทธิภาพด้านต้นทุนคือการให้บริการหลายรุ่นบนคอมพิวเตอร์เครื่องเดียวกัน (เช่น SageMaker มีผู้เช่าหลายราย). อย่างไรก็ตาม โมเดลภาษาจำเป็นต้องมี GPU เฉพาะหนึ่งตัวขึ้นไปในหลายโซนเพื่อจัดการกับข้อจำกัดด้านเวลาแฝงและปริมาณการประมวลผล ดังนั้น การโฮสต์โมเดลเต็มรูปแบบหลายรายการบน GPU แต่ละตัวจึงเป็นไปไม่ได้

เราสามารถเอาชนะปัญหานี้ได้ด้วยการให้บริการลูกค้าหลายรายบนคอมพิวเตอร์เครื่องเดียวกันโดยใช้ขนาดเล็ก อะแดปเตอร์ ถึง LLM เทคนิคการปรับแต่งพารามิเตอร์ที่มีประสิทธิภาพ (PEFT) เช่น ปรับจูนทันที, การปรับคำนำหน้าและการปรับตัวระดับต่ำ (ลอร่า) ใช้เพื่อลดต้นทุนการฝึกอบรมโดยไม่สูญเสียความแม่นยำ โดยเฉพาะอย่างยิ่ง LoRA ประสบความสำเร็จอย่างมากในการบรรลุความแม่นยำที่ใกล้เคียงกัน (หรือดีกว่า) เมื่อเทียบกับการปรับแต่งแบบละเอียดแบบเต็ม แนวคิดพื้นฐานคือการออกแบบเมทริกซ์ระดับต่ำที่จะถูกเพิ่มเข้าไปในเมทริกซ์โดยมีน้ำหนักเมทริกซ์ดั้งเดิมของเลเยอร์เป้าหมายของแบบจำลอง โดยทั่วไป อะแดปเตอร์เหล่านี้จะถูกรวมเข้ากับตุ้มน้ำหนักรุ่นดั้งเดิมเพื่อให้บริการ สิ่งนี้นำไปสู่ขนาดและสถาปัตยกรรมเดียวกันกับโครงข่ายประสาทเทียมดั้งเดิม การแยกอะแดปเตอร์ออกจากกัน เราสามารถให้บริการรุ่นพื้นฐานเดียวกันกับอะแดปเตอร์หลายรุ่นได้ สิ่งนี้ทำให้การประหยัดจากขนาดกลับมาสู่ลูกค้าขนาดเล็กและขนาดกลางของเรา

การปรับตัวระดับต่ำ (LoRA)

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.

การวัดประสิทธิภาพของการปรับแต่ง

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

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

สรุป

เราสร้างความสามารถในการปรับแต่ง Amazon CodeWhisperer โดยอิงจากการผสมผสานเทคนิคทางเทคนิคชั้นนำที่กล่าวถึงในโพสต์บนบล็อกนี้ และประเมินด้วยการศึกษาผู้ใช้เกี่ยวกับประสิทธิภาพการทำงานของนักพัฒนา ซึ่งดำเนินการโดย Persistent Systems ในการศึกษาทั้งสองนี้ ซึ่งว่าจ้างโดย AWS นักพัฒนาถูกขอให้สร้างแอปพลิเคชันซอฟต์แวร์ทางการแพทย์ใน Java ที่จำเป็นต้องใช้ไลบรารีภายในของตน ในการศึกษาครั้งแรก นักพัฒนาที่ไม่สามารถเข้าถึง CodeWhisperer ใช้เวลา (โดยเฉลี่ย) ประมาณ 8.2 ชั่วโมงในการทำงานให้เสร็จสิ้น ในขณะที่นักพัฒนาที่ใช้ CodeWhisperer (ไม่มีการปรับแต่ง) ทำงานเสร็จเร็วขึ้น 62 เปอร์เซ็นต์ในเวลา (โดยเฉลี่ย) ~3.1 ชั่วโมง

ในการศึกษาครั้งที่สองกับกลุ่มนักพัฒนากลุ่มต่างๆ นักพัฒนาที่ใช้ CodeWhisperer ซึ่งได้รับการปรับแต่งโดยใช้โค้ดเบสส่วนตัวทำงานเสร็จภายใน 2.5 ชั่วโมงโดยเฉลี่ย ซึ่งเร็วกว่าผู้ที่ใช้ CodeWhisperer โดยไม่ต้องปรับแต่งถึง 28 เปอร์เซ็นต์ และทำงานเสร็จภายในเวลาประมาณ 3.5 ชั่วโมง ชั่วโมงโดยเฉลี่ย เราเชื่อมั่นอย่างยิ่งว่าเครื่องมืออย่าง CodeWhisperer ที่ปรับแต่งให้เหมาะกับโค้ดเบสของคุณมีบทบาทสำคัญในการเพิ่มประสิทธิภาพการทำงานของนักพัฒนา และแนะนำให้ลองใช้ดู สำหรับข้อมูลเพิ่มเติมและเริ่มต้นใช้งาน โปรดไปที่ หน้า Amazon CodeWhisperer.


เกี่ยวกับผู้แต่ง

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.ชิงซุน เป็นนักวิทยาศาสตร์ประยุกต์อาวุโสใน AWS AI Labs และทำงานกับ AWS CodeWhisperer ซึ่งเป็นผู้ช่วยเขียนโค้ดที่ขับเคลื่อนด้วย AI งานวิจัยของเธอมีความสนใจในด้านการประมวลผลภาษาธรรมชาติ, AI4Code และ AI เชิงสร้างสรรค์ ในอดีต เธอเคยทำงานในบริการที่ใช้ NLP หลายอย่าง เช่น Comprehend Medical ซึ่งเป็นระบบวินิจฉัยทางการแพทย์ที่ Amazon Health AI และระบบการแปลด้วยเครื่องที่ Meta AI เธอได้รับปริญญาเอกจากเวอร์จิเนียเทคในปี 2017

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.อาราช ฟาราฮานี เป็นนักวิทยาศาสตร์ประยุกต์ของ Amazon CodeWhisperer ความสนใจในปัจจุบันของเขาคือ AI เชิงสร้างสรรค์ การค้นหา และการปรับเปลี่ยนในแบบของคุณ Arash มีความหลงใหลในการสร้างโซลูชันที่ช่วยแก้ไขปัญหาของนักพัฒนา เขาได้ทำงานกับคุณสมบัติต่างๆ ภายใน CodeWhisperer และแนะนำโซลูชัน NLP ให้กับสตรีมงานภายในต่างๆ ที่เข้าถึงนักพัฒนา Amazon ทุกคน เขาได้รับปริญญาเอกจากมหาวิทยาลัยอิลลินอยส์ Urbana-Champaign ในปี 2017

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.เสี่ยวเฟย หม่า เป็นผู้จัดการวิทยาศาสตร์ประยุกต์ใน AWS AI Labs เขาร่วมงานกับ Amazon ในปี 2016 ในตำแหน่งนักวิทยาศาสตร์ประยุกต์ภายในองค์กร SCOT และต่อมา AWS AI Labs ในปี 2018 โดยทำงานกับ Amazon Kendra Xiaofei ดำรงตำแหน่งผู้จัดการด้านวิทยาศาสตร์สำหรับบริการต่างๆ มากมาย รวมถึง Kendra, Contact Lens และล่าสุด CodeWhisperer และ CodeGuru Security งานวิจัยของเขามีความสนใจในด้าน AI4Code และการประมวลผลภาษาธรรมชาติ เขาได้รับปริญญาเอกจากมหาวิทยาลัยแมรีแลนด์ คอลเลจพาร์คในปี 2010

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.มูราลี กฤษณะ รามานาธาน เป็นนักวิทยาศาสตร์ประยุกต์หลักใน AWS AI Labs และร่วมเป็นหัวหน้า AWS CodeWhisperer ซึ่งเป็นคู่หูในการเขียนโค้ดที่ขับเคลื่อนด้วย AI เขามีความหลงใหลในการสร้างเครื่องมือซอฟต์แวร์และเวิร์กโฟลว์ที่ช่วยปรับปรุงประสิทธิภาพการทำงานของนักพัฒนา ในอดีต เขาสร้าง Piranha ซึ่งเป็นเครื่องมือปรับโครงสร้างอัตโนมัติเพื่อลบโค้ดเนื่องจากฟีเจอร์แฟล็กเก่า และเป็นผู้นำโครงการริเริ่มด้านคุณภาพโค้ดที่ฝ่ายวิศวกรรมของ Uber เขาเป็นผู้รับรางวัลคณาจารย์ของ Google (2015), ACM SIGSOFT Distinguished Paper Award (ISSTA 2016) และรางวัล Maurice Halstead (Purdue 2006) เขาได้รับปริญญาเอกสาขาวิทยาการคอมพิวเตอร์จากมหาวิทยาลัย Purdue ในปี 2008

การปรับแต่งการเข้ารหัสสหายสำหรับองค์กร | Amazon Web Services PlatoBlockchain ข้อมูลอัจฉริยะ ค้นหาแนวตั้ง AI.ราเมช นัลลปติ เป็นนักวิทยาศาสตร์ประยุกต์อาวุโสใน AWS AI Labs และร่วมเป็นหัวหน้า CodeWhisperer ซึ่งเป็นผู้ร่วมเขียนโค้ดที่ขับเคลื่อนด้วย AI และโมเดลภาษาขนาดใหญ่ของ Titan ที่ AWS ความสนใจของเขาส่วนใหญ่อยู่ในขอบเขตของการประมวลผลภาษาธรรมชาติและ AI เชิงสร้างสรรค์ ในอดีต Ramesh ได้มอบความเป็นผู้นำด้านวิทยาศาสตร์ในการส่งมอบผลิตภัณฑ์ AWS ที่ใช้ NLP มากมาย เช่น Kendra, Quicksight Q และ Contact Lens เขาดำรงตำแหน่งวิจัยที่ Stanford, CMU และ IBM Research และได้รับปริญญาเอก สาขาวิทยาการคอมพิวเตอร์จาก University of Massachusetts Amherst ในปี 2006

ประทับเวลา:

เพิ่มเติมจาก AWS Machine Learning AWS