โมเดล AI ทั่วไปสำหรับผู้ร่วมเขียนโค้ดส่วนใหญ่ได้รับการฝึกฝนเกี่ยวกับซอร์สโค้ดและข้อความภาษาธรรมชาติที่เปิดเผยต่อสาธารณะ แม้ว่าคลังข้อมูลการฝึกอบรมขนาดใหญ่จะทำให้โมเดลสามารถสร้างโค้ดสำหรับฟังก์ชันที่ใช้กันทั่วไปได้ แต่โมเดลเหล่านี้จะไม่ทราบถึงโค้ดในที่เก็บส่วนตัวและรูปแบบการเขียนโค้ดที่เกี่ยวข้องซึ่งจะบังคับใช้เมื่อพัฒนาด้วย ดังนั้น คำแนะนำที่สร้างขึ้นอาจจำเป็นต้องเขียนใหม่ก่อนที่จะเหมาะสมสำหรับการรวมเข้าในที่เก็บข้อมูลภายใน
เราสามารถแก้ไขช่องว่างนี้และลดการแก้ไขด้วยตนเองเพิ่มเติมได้โดยการฝังความรู้เกี่ยวกับโค้ดจากที่เก็บข้อมูลส่วนตัวไว้เหนือโมเดลภาษาที่ได้รับการฝึกด้วยโค้ดสาธารณะ นี่คือเหตุผลที่เราพัฒนาความสามารถในการปรับแต่งสำหรับ Amazon Code Whisperer. ในโพสต์นี้ เราจะแสดงให้คุณเห็นสองวิธีที่เป็นไปได้ในการปรับแต่งสหายการเขียนโค้ดโดยใช้การสร้างเสริมการดึงข้อมูลและการปรับแต่งแบบละเอียด
เป้าหมายของเราในความสามารถในการปรับแต่ง CodeWhisperer คือการทำให้องค์กรต่างๆ สามารถปรับแต่งโมเดล CodeWhisperer โดยใช้พื้นที่เก็บข้อมูลส่วนตัวและไลบรารีเพื่อสร้างคำแนะนำโค้ดเฉพาะองค์กร ซึ่งจะช่วยประหยัดเวลา ปฏิบัติตามรูปแบบและแบบแผนขององค์กร และหลีกเลี่ยงจุดบกพร่องหรือช่องโหว่ด้านความปลอดภัย สิ่งนี้เป็นประโยชน์ต่อการพัฒนาซอฟต์แวร์ระดับองค์กรและช่วยเอาชนะความท้าทายต่อไปนี้:
- เอกสารหรือข้อมูลกระจัดกระจายสำหรับไลบรารีภายในและ API ที่บังคับให้นักพัฒนาใช้เวลาตรวจสอบโค้ดที่เขียนไว้ก่อนหน้านี้เพื่อจำลองการใช้งาน
- ขาดความตระหนักรู้และความสม่ำเสมอในการนำแนวทางปฏิบัติ รูปแบบ และรูปแบบการเขียนโค้ดเฉพาะองค์กรไปใช้
- การใช้โค้ดและ API ที่เลิกใช้แล้วโดยไม่ได้ตั้งใจโดยนักพัฒนา
ด้วยการใช้ที่เก็บโค้ดภายในสำหรับการฝึกอบรมเพิ่มเติมที่ผ่านการตรวจสอบโค้ดแล้ว โมเดลภาษาสามารถแสดงการใช้ API ภายในและบล็อกโค้ดที่เอาชนะรายการปัญหาก่อนหน้านี้ได้ เนื่องจากรหัสอ้างอิงได้รับการตรวจสอบแล้วและเป็นไปตามมาตรฐานระดับสูงของลูกค้า โอกาสที่จะทำให้เกิดจุดบกพร่องหรือช่องโหว่ด้านความปลอดภัยก็ลดลงเช่นกัน และด้วยการเลือกไฟล์ต้นฉบับที่ใช้สำหรับการปรับแต่งอย่างรอบคอบ องค์กรจึงสามารถลดการใช้โค้ดที่เลิกใช้แล้วได้
ความท้าทายในการออกแบบ
การปรับแต่งคำแนะนำโค้ดตามที่เก็บส่วนตัวขององค์กรมีความท้าทายในการออกแบบที่น่าสนใจมากมาย การปรับใช้โมเดลภาษาขนาดใหญ่ (LLM) กับคำแนะนำโค้ดพื้นผิวมีต้นทุนคงที่สำหรับความพร้อมใช้งานและต้นทุนผันแปรเนื่องจากการอนุมานตามจำนวนโทเค็นที่สร้างขึ้น ดังนั้น การปรับแต่งแยกกันสำหรับลูกค้าแต่ละรายและโฮสต์ทีละรายการ ทำให้เกิดต้นทุนคงที่เพิ่มเติม จึงอาจมีค่าใช้จ่ายสูง ในทางกลับกัน การปรับแต่งหลายอย่างพร้อมกันบนระบบเดียวกันจำเป็นต้องมีโครงสร้างพื้นฐานที่มีผู้เช่าหลายรายเพื่อแยกรหัสที่เป็นกรรมสิทธิ์สำหรับลูกค้าแต่ละราย นอกจากนี้ ความสามารถในการปรับแต่งควรปรากฏปุ่มหมุนเพื่อให้สามารถเลือกชุดย่อยการฝึกที่เหมาะสมจากพื้นที่เก็บข้อมูลภายในโดยใช้ตัวชี้วัดที่แตกต่างกัน (เช่น ไฟล์ที่มีประวัติจุดบกพร่องหรือโค้ดน้อยกว่าที่เพิ่งถูกคอมมิตไปยังพื้นที่เก็บข้อมูล) โดยการเลือกโค้ดตามหน่วยวัดเหล่านี้ การปรับแต่งสามารถฝึกได้โดยใช้โค้ดคุณภาพสูงขึ้น ซึ่งสามารถปรับปรุงคุณภาพของคำแนะนำโค้ดได้ สุดท้ายนี้ แม้จะมีพื้นที่เก็บโค้ดที่มีการพัฒนาอย่างต่อเนื่อง ต้นทุนที่เกี่ยวข้องกับการปรับแต่งก็ควรจะต่ำเพื่อช่วยให้องค์กรต่างๆ ตระหนักถึงการประหยัดต้นทุนจากประสิทธิภาพการทำงานของนักพัฒนาที่เพิ่มขึ้น
แนวทางพื้นฐานในการสร้างการปรับแต่งอาจเป็นการฝึกโมเดลล่วงหน้าบนคลังข้อมูลการฝึกอบรมเดียวที่ประกอบด้วยชุดข้อมูลการฝึกอบรมล่วงหน้า (สาธารณะ) ที่มีอยู่พร้อมกับรหัสองค์กร (ส่วนตัว) แม้ว่าวิธีการนี้จะได้ผลในทางปฏิบัติ แต่จำเป็นต้องมีการฝึกอบรมล่วงหน้าแบบรายบุคคล (ซ้ำซ้อน) โดยใช้ชุดข้อมูลสาธารณะสำหรับแต่ละองค์กร นอกจากนี้ยังต้องมีค่าใช้จ่ายในการปรับใช้ซ้ำซ้อนที่เกี่ยวข้องกับการโฮสต์โมเดลที่กำหนดเองสำหรับลูกค้าแต่ละรายที่ตอบสนองเฉพาะคำขอของไคลเอ็นต์ที่มาจากลูกค้ารายนั้นเท่านั้น ด้วยการแยกการฝึกอบรมรหัสสาธารณะและรหัสส่วนตัวออก และปรับใช้การปรับแต่งบนระบบที่มีผู้เช่าหลายราย จึงสามารถหลีกเลี่ยงต้นทุนที่ซ้ำซ้อนเหล่านี้ได้
วิธีปรับแต่ง
ในระดับสูง มีเทคนิคการปรับแต่งที่เป็นไปได้สองประเภท: การดึงข้อมูล-การสร้างเสริม (RAG) และการปรับแต่งแบบละเอียด (FT)
- การสร้างแบบดึงข้อมูลแบบเสริม: RAG ค้นหาส่วนของโค้ดที่ตรงกันภายในพื้นที่เก็บข้อมูลที่คล้ายกับส่วนของโค้ดที่กำหนด (เช่น โค้ดที่อยู่ข้างหน้าเคอร์เซอร์ใน IDE ทันที) และเพิ่มพรอมต์ที่ใช้ในการสืบค้น LLM ด้วยส่วนย่อยของโค้ดที่ตรงกันเหล่านี้ สิ่งนี้จะช่วยปรับปรุงพรอมต์เพื่อช่วยดันโมเดลให้สร้างโค้ดที่เกี่ยวข้องมากขึ้น มีการสำรวจเทคนิคบางประการในวรรณกรรมตามบรรทัดเหล่านี้ ดู การดึงข้อมูล- Augmented Generation สำหรับงาน NLP ที่เน้นความรู้, REALM, kNN-LM และ RETRO.
- การปรับละเอียด: FT ใช้ LLM ที่ได้รับการฝึกอบรมล่วงหน้าและฝึกอบรมเพิ่มเติมบนโค้ดเบสเฉพาะที่มีขนาดเล็กกว่า (เมื่อเทียบกับชุดข้อมูลการฝึกอบรมล่วงหน้า) เพื่อปรับให้เข้ากับพื้นที่เก็บข้อมูลที่เหมาะสม การปรับแต่งอย่างละเอียดจะปรับน้ำหนักของ LLM ตามการฝึกอบรมนี้ ทำให้ปรับให้เหมาะกับความต้องการเฉพาะขององค์กรได้มากขึ้น
ทั้ง RAG และการปรับแต่งอย่างละเอียดเป็นเครื่องมืออันทรงพลังสำหรับการเพิ่มประสิทธิภาพของการปรับแต่งตาม LLM RAG สามารถปรับให้เข้ากับไลบรารีส่วนตัวหรือ API ได้อย่างรวดเร็วโดยมีความซับซ้อนและต้นทุนการฝึกอบรมต่ำกว่า อย่างไรก็ตาม การค้นหาและเพิ่มข้อมูลโค้ดที่ดึงมาในพรอมต์จะเพิ่มเวลาแฝงที่รันไทม์ การปรับแต่งอย่างละเอียดไม่จำเป็นต้องมีบริบทเพิ่มเติม เนื่องจากโมเดลดังกล่าวได้รับการฝึกฝนบนไลบรารีส่วนตัวและ API แล้ว อย่างไรก็ตาม จะนำไปสู่ต้นทุนการฝึกอบรมที่สูงขึ้นและความซับซ้อนในการให้บริการโมเดล เมื่อโมเดลที่กำหนดเองหลายรายการต้องได้รับการสนับสนุนจากลูกค้าองค์กรหลายราย ตามที่เราจะพูดคุยกันในภายหลัง ข้อกังวลเหล่านี้สามารถแก้ไขได้โดยการปรับแนวทางให้เหมาะสมยิ่งขึ้น
การดึงข้อมูลรุ่นเสริม
RAG มีขั้นตอนอยู่สองสามขั้นตอน:
การจัดทำดัชนี
เมื่อให้พื้นที่เก็บข้อมูลส่วนตัวเป็นอินพุตโดยผู้ดูแลระบบ ดัชนีจะถูกสร้างขึ้นโดยการแยกไฟล์ซอร์สโค้ดออกเป็นส่วนๆ พูดง่ายๆ ก็คือ การแบ่งส่วนจะเปลี่ยนส่วนย่อยของโค้ดให้กลายเป็นส่วนที่ย่อยได้ซึ่งน่าจะให้ข้อมูลมากที่สุดสำหรับโมเดลและง่ายต่อการดึงข้อมูลตามบริบท ขนาดของชิ้นและวิธีการแยกออกจากไฟล์เป็นตัวเลือกการออกแบบที่ส่งผลต่อผลลัพธ์สุดท้าย ตัวอย่างเช่น ชิ้นส่วนสามารถแบ่งตามบรรทัดของโค้ดหรือตามบล็อกวากยสัมพันธ์ และอื่นๆ
เวิร์กโฟลว์ของผู้ดูแลระบบ
การค้นหาตามบริบท
ค้นหาชุดข้อมูลโค้ดที่จัดทำดัชนีโดยอิงจากโค้ดสองสามบรรทัดเหนือเคอร์เซอร์ และดึงข้อมูลโค้ดที่เกี่ยวข้อง การดึงข้อมูลนี้อาจเกิดขึ้นได้โดยใช้อัลกอริธึมที่แตกต่างกัน ตัวเลือกเหล่านี้อาจรวมถึง:
- ถุงคำ (บีเอ็ม25) - ฟังก์ชันการดึงข้อมูลแบบถุงคำที่จัดอันดับชุดข้อมูลโค้ดตามความถี่ของคำค้นหาและความยาวของข้อมูลโค้ด
การดึงข้อมูลโดยใช้ BM25
รูปภาพต่อไปนี้แสดงวิธีการทำงานของ BM25 ในการใช้ BM25 จะต้องสร้างดัชนีกลับหัวก่อน นี่คือโครงสร้างข้อมูลที่จับคู่คำต่างๆ กับส่วนย่อยของโค้ดที่มีคำเหล่านั้นเกิดขึ้น ในช่วงเวลาค้นหา เราจะค้นหาส่วนย่อยของโค้ดตามเงื่อนไขที่มีอยู่ในแบบสอบถาม และให้คะแนนตามความถี่
การดึงความหมาย
BM25 มุ่งเน้นไปที่การจับคู่คำศัพท์ ดังนั้นการแทนที่ "เพิ่ม" ด้วย "ลบ" อาจไม่เปลี่ยนคะแนน BM25 ตามเงื่อนไขในการสืบค้น แต่ฟังก์ชันการทำงานที่ดึงข้อมูลมาอาจตรงกันข้ามกับที่จำเป็น ในทางตรงกันข้าม การดึงความหมายมุ่งเน้นไปที่การทำงานของข้อมูลโค้ด แม้ว่าชื่อตัวแปรและ API อาจแตกต่างกันก็ตาม โดยทั่วไปแล้ว การผสมผสานระหว่าง BM25 และการดึงความหมายสามารถทำงานร่วมกันได้ดีเพื่อให้ได้ผลลัพธ์ที่ดีขึ้น
การอนุมานแบบเสริม
เมื่อนักพัฒนาเขียนโค้ด โปรแกรมที่มีอยู่จะถูกนำมาใช้เพื่อกำหนดแบบสอบถามที่ถูกส่งไปยังดัชนีการดึงข้อมูล หลังจากดึงข้อมูลโค้ดหลายรายการโดยใช้เทคนิคใดเทคนิคหนึ่งที่กล่าวถึงข้างต้น เราจะเพิ่มข้อมูลเหล่านั้นไว้ข้างหน้าข้อความแจ้งต้นฉบับ มีตัวเลือกการออกแบบมากมายที่นี่ รวมถึงจำนวนของส่วนย่อยที่จะดึงข้อมูล ตำแหน่งที่สัมพันธ์กันของส่วนย่อยในพร้อมต์ และขนาดของส่วนย่อย ตัวเลือกการออกแบบขั้นสุดท้ายขับเคลื่อนโดยการสังเกตเชิงประจักษ์เป็นหลักโดยการสำรวจแนวทางต่างๆ ด้วยแบบจำลองภาษาพื้นฐาน และมีบทบาทสำคัญในการกำหนดความแม่นยำของแนวทาง เนื้อหาจากชิ้นส่วนที่ส่งคืนและโค้ดต้นฉบับจะรวมกันและส่งไปยังโมเดลเพื่อรับคำแนะนำโค้ดที่กำหนดเอง
ขั้นตอนการทำงานของนักพัฒนา
ปรับจูน:
ปรับจูน แบบจำลองภาษาเสร็จสิ้นแล้ว ถ่ายทอดการเรียนรู้ ซึ่งน้ำหนักของแบบจำลองที่ได้รับการฝึกอบรมล่วงหน้าจะได้รับการฝึกอบรมเกี่ยวกับข้อมูลใหม่ เป้าหมายคือการรักษาความรู้ที่เหมาะสมจากแบบจำลองที่ได้รับการฝึกอบรมแล้วในคลังข้อมูลขนาดใหญ่ และปรับแต่ง แทนที่ หรือเพิ่มความรู้ใหม่จากคลังข้อมูลใหม่ ในกรณีของเราคือโค้ดเบสใหม่ เพียงแค่ฝึกฝนโค้ดเบสใหม่ก็นำไปสู่ โศกนาฏกรรมหลงลืม. ตัวอย่างเช่นโมเดลภาษาอาจ “ลืม” ความรู้เรื่องความปลอดภัย หรือ API ที่ใช้งานอย่างกระจัดกระจายในโค้ดเบสขององค์กรจนถึงปัจจุบัน มีเทคนิคหลากหลายเช่น เล่นซ้ำประสบการณ์, GEMและ พีพี-ทีเอฟ ที่ได้รับการว่าจ้างเพื่อจัดการกับความท้าทายนี้
ปรับจูน
การปรับแบบละเอียดมีสองวิธี แนวทางหนึ่งคือการใช้ข้อมูลเพิ่มเติมโดยไม่ต้องเพิ่มข้อความแจ้งให้ปรับแต่งโมเดลอย่างละเอียด อีกวิธีหนึ่งคือการเพิ่มพรอมต์ระหว่างการปรับแต่งอย่างละเอียดโดยการดึงคำแนะนำโค้ดที่เกี่ยวข้อง ซึ่งช่วยปรับปรุงความสามารถของโมเดลในการให้คำแนะนำที่ดีขึ้นเมื่อมีข้อมูลโค้ดที่ดึงมา จากนั้นแบบจำลองจะได้รับการประเมินตามชุดตัวอย่างที่จัดไว้หลังจากฝึกแล้ว ต่อจากนั้น โมเดลที่กำหนดเองจะถูกปรับใช้และใช้เพื่อสร้างคำแนะนำโค้ด
แม้จะมีข้อดีของการใช้ LLM เฉพาะสำหรับการสร้างโค้ดบนที่เก็บส่วนตัว ค่าใช้จ่ายก็อาจเป็นอุปสรรคสำหรับองค์กรขนาดเล็กและขนาดกลาง เนื่องจากทรัพยากรการประมวลผลเฉพาะมีความจำเป็น แม้ว่าอาจมีการใช้งานน้อยเกินไปตามขนาดของทีมก็ตาม วิธีหนึ่งในการบรรลุประสิทธิภาพด้านต้นทุนคือการให้บริการหลายรุ่นบนคอมพิวเตอร์เครื่องเดียวกัน (เช่น SageMaker มีผู้เช่าหลายราย). อย่างไรก็ตาม โมเดลภาษาจำเป็นต้องมี GPU เฉพาะหนึ่งตัวขึ้นไปในหลายโซนเพื่อจัดการกับข้อจำกัดด้านเวลาแฝงและปริมาณการประมวลผล ดังนั้น การโฮสต์โมเดลเต็มรูปแบบหลายรายการบน GPU แต่ละตัวจึงเป็นไปไม่ได้
เราสามารถเอาชนะปัญหานี้ได้ด้วยการให้บริการลูกค้าหลายรายบนคอมพิวเตอร์เครื่องเดียวกันโดยใช้ขนาดเล็ก อะแดปเตอร์ ถึง LLM เทคนิคการปรับแต่งพารามิเตอร์ที่มีประสิทธิภาพ (PEFT) เช่น ปรับจูนทันที, การปรับคำนำหน้าและการปรับตัวระดับต่ำ (ลอร่า) ใช้เพื่อลดต้นทุนการฝึกอบรมโดยไม่สูญเสียความแม่นยำ โดยเฉพาะอย่างยิ่ง LoRA ประสบความสำเร็จอย่างมากในการบรรลุความแม่นยำที่ใกล้เคียงกัน (หรือดีกว่า) เมื่อเทียบกับการปรับแต่งแบบละเอียดแบบเต็ม แนวคิดพื้นฐานคือการออกแบบเมทริกซ์ระดับต่ำที่จะถูกเพิ่มเข้าไปในเมทริกซ์โดยมีน้ำหนักเมทริกซ์ดั้งเดิมของเลเยอร์เป้าหมายของแบบจำลอง โดยทั่วไป อะแดปเตอร์เหล่านี้จะถูกรวมเข้ากับตุ้มน้ำหนักรุ่นดั้งเดิมเพื่อให้บริการ สิ่งนี้นำไปสู่ขนาดและสถาปัตยกรรมเดียวกันกับโครงข่ายประสาทเทียมดั้งเดิม การแยกอะแดปเตอร์ออกจากกัน เราสามารถให้บริการรุ่นพื้นฐานเดียวกันกับอะแดปเตอร์หลายรุ่นได้ สิ่งนี้ทำให้การประหยัดจากขนาดกลับมาสู่ลูกค้าขนาดเล็กและขนาดกลางของเรา
การปรับตัวระดับต่ำ (LoRA)
การวัดประสิทธิภาพของการปรับแต่ง
เราต้องการตัววัดการประเมินผลเพื่อประเมินประสิทธิภาพของโซลูชันที่ปรับแต่งเอง ตัวชี้วัดการประเมินแบบออฟไลน์ทำหน้าที่เป็นเกราะป้องกันการปรับแต่งการจัดส่งที่ต่ำกว่ามาตรฐานเมื่อเทียบกับรุ่นเริ่มต้น ด้วยการสร้างชุดข้อมูลจากชุดข้อมูลที่เก็บไว้จากภายในพื้นที่เก็บข้อมูลที่ให้มา แนวทางการปรับแต่งสามารถนำไปใช้กับชุดข้อมูลนี้เพื่อวัดประสิทธิภาพได้ การเปรียบเทียบซอร์สโค้ดที่มีอยู่กับคำแนะนำโค้ดที่กำหนดเองจะวัดปริมาณประโยชน์ของการปรับแต่ง การวัดทั่วไปที่ใช้สำหรับการวัดปริมาณนี้รวมถึงการวัดเช่น แก้ไขความคล้ายคลึงกันการทำงานแบบตรงทั้งหมด และ รหัส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.
เกี่ยวกับผู้แต่ง
ชิงซุน เป็นนักวิทยาศาสตร์ประยุกต์อาวุโสใน AWS AI Labs และทำงานกับ AWS CodeWhisperer ซึ่งเป็นผู้ช่วยเขียนโค้ดที่ขับเคลื่อนด้วย AI งานวิจัยของเธอมีความสนใจในด้านการประมวลผลภาษาธรรมชาติ, AI4Code และ AI เชิงสร้างสรรค์ ในอดีต เธอเคยทำงานในบริการที่ใช้ NLP หลายอย่าง เช่น Comprehend Medical ซึ่งเป็นระบบวินิจฉัยทางการแพทย์ที่ Amazon Health AI และระบบการแปลด้วยเครื่องที่ Meta AI เธอได้รับปริญญาเอกจากเวอร์จิเนียเทคในปี 2017
อาราช ฟาราฮานี เป็นนักวิทยาศาสตร์ประยุกต์ของ Amazon CodeWhisperer ความสนใจในปัจจุบันของเขาคือ AI เชิงสร้างสรรค์ การค้นหา และการปรับเปลี่ยนในแบบของคุณ Arash มีความหลงใหลในการสร้างโซลูชันที่ช่วยแก้ไขปัญหาของนักพัฒนา เขาได้ทำงานกับคุณสมบัติต่างๆ ภายใน CodeWhisperer และแนะนำโซลูชัน NLP ให้กับสตรีมงานภายในต่างๆ ที่เข้าถึงนักพัฒนา Amazon ทุกคน เขาได้รับปริญญาเอกจากมหาวิทยาลัยอิลลินอยส์ Urbana-Champaign ในปี 2017
เสี่ยวเฟย หม่า เป็นผู้จัดการวิทยาศาสตร์ประยุกต์ใน AWS AI Labs เขาร่วมงานกับ Amazon ในปี 2016 ในตำแหน่งนักวิทยาศาสตร์ประยุกต์ภายในองค์กร SCOT และต่อมา AWS AI Labs ในปี 2018 โดยทำงานกับ Amazon Kendra Xiaofei ดำรงตำแหน่งผู้จัดการด้านวิทยาศาสตร์สำหรับบริการต่างๆ มากมาย รวมถึง Kendra, Contact Lens และล่าสุด CodeWhisperer และ CodeGuru Security งานวิจัยของเขามีความสนใจในด้าน AI4Code และการประมวลผลภาษาธรรมชาติ เขาได้รับปริญญาเอกจากมหาวิทยาลัยแมรีแลนด์ คอลเลจพาร์คในปี 2010
มูราลี กฤษณะ รามานาธาน เป็นนักวิทยาศาสตร์ประยุกต์หลักใน AWS AI Labs และร่วมเป็นหัวหน้า AWS CodeWhisperer ซึ่งเป็นคู่หูในการเขียนโค้ดที่ขับเคลื่อนด้วย AI เขามีความหลงใหลในการสร้างเครื่องมือซอฟต์แวร์และเวิร์กโฟลว์ที่ช่วยปรับปรุงประสิทธิภาพการทำงานของนักพัฒนา ในอดีต เขาสร้าง Piranha ซึ่งเป็นเครื่องมือปรับโครงสร้างอัตโนมัติเพื่อลบโค้ดเนื่องจากฟีเจอร์แฟล็กเก่า และเป็นผู้นำโครงการริเริ่มด้านคุณภาพโค้ดที่ฝ่ายวิศวกรรมของ Uber เขาเป็นผู้รับรางวัลคณาจารย์ของ Google (2015), ACM SIGSOFT Distinguished Paper Award (ISSTA 2016) และรางวัล Maurice Halstead (Purdue 2006) เขาได้รับปริญญาเอกสาขาวิทยาการคอมพิวเตอร์จากมหาวิทยาลัย Purdue ในปี 2008
ราเมช นัลลปติ เป็นนักวิทยาศาสตร์ประยุกต์อาวุโสใน 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
- เนื้อหาที่ขับเคลื่อนด้วย SEO และการเผยแพร่ประชาสัมพันธ์ รับการขยายวันนี้
- PlatoData.Network Vertical Generative Ai เพิ่มพลังให้กับตัวเอง เข้าถึงได้ที่นี่.
- เพลโตไอสตรีม. Web3 อัจฉริยะ ขยายความรู้ เข้าถึงได้ที่นี่.
- เพลโตESG. คาร์บอน, คลีนเทค, พลังงาน, สิ่งแวดล้อม แสงอาทิตย์, การจัดการของเสีย. เข้าถึงได้ที่นี่.
- เพลโตสุขภาพ เทคโนโลยีชีวภาพและข่าวกรองการทดลองทางคลินิก เข้าถึงได้ที่นี่.
- ที่มา: https://aws.amazon.com/blogs/machine-learning/customizing-coding-companions-for-organizations/
- :มี
- :เป็น
- :ไม่
- $ ขึ้น
- 1
- 10
- 100
- 2006
- 2008
- 2012
- 2015
- 2016
- 2017
- 2018
- 28
- 500
- 7
- a
- ความสามารถ
- เกี่ยวกับเรา
- ข้างบน
- เข้า
- ความถูกต้อง
- บรรลุ
- การบรรลุ
- พลอากาศเอก
- ข้าม
- กระทำ
- ปรับ
- การปรับตัว
- เพิ่ม
- ที่เพิ่ม
- เพิ่มเติม
- ที่อยู่
- ผู้ดูแลระบบ
- ข้อได้เปรียบ
- มีผลต่อ
- หลังจาก
- กับ
- AI
- โมเดล AI
- ขับเคลื่อนด้วย AI
- อัลกอริทึม
- ทั้งหมด
- ตาม
- แล้ว
- ด้วย
- อเมซอน
- Amazon Code Whisperer
- อเมซอน เคนดรา
- Amazon Web Services
- an
- และ
- อื่น
- ใด
- API
- APIs
- การใช้งาน
- ประยุกต์
- เข้าใกล้
- วิธีการ
- เหมาะสม
- สถาปัตยกรรม
- เป็น
- AREA
- พื้นที่
- AS
- ด้าน
- ประเมินผล
- ผู้ช่วย
- ที่เกี่ยวข้อง
- At
- เสริม
- เติม
- การเพิ่ม
- อัตโนมัติ
- ความพร้อมใช้งาน
- ใช้ได้
- เฉลี่ย
- หลีกเลี่ยง
- หลีกเลี่ยง
- รางวัล
- ความตระหนัก
- AWS
- กลับ
- บาร์
- ฐาน
- ตาม
- baseline
- ขั้นพื้นฐาน
- BE
- เพราะ
- รับ
- ก่อน
- เชื่อ
- ประโยชน์ที่ได้รับ
- ดีกว่า
- ระหว่าง
- Blocks
- บล็อก
- การส่งเสริม
- ทั้งสอง
- นำ
- เป็นโรคจิต
- การก่อสร้าง
- สร้าง
- แต่
- by
- CAN
- ความสามารถ
- รอบคอบ
- กรณี
- ท้าทาย
- ความท้าทาย
- เปลี่ยนแปลง
- ทางเลือก
- ทางเลือก
- ไคลเอนต์
- รหัส
- codebase
- การเข้ารหัส
- วิทยาลัย
- การผสมผสาน
- รวม
- มุ่งมั่น
- ร่วมกัน
- อย่างธรรมดา
- สหาย
- สหาย
- เมื่อเทียบกับ
- เปรียบเทียบ
- สมบูรณ์
- เสร็จ
- เสร็จสิ้น
- ความซับซ้อน
- ความซับซ้อน
- สงบ
- เข้าใจ
- คำนวณ
- คอมพิวเตอร์
- วิทยาการคอมพิวเตอร์
- ความกังวลเกี่ยวกับ
- ดำเนินการ
- ดังนั้น
- ข้อ จำกัด
- ติดต่อเรา
- เนื้อหา
- สิ่งแวดล้อม
- อย่างต่อเนื่อง
- ตรงกันข้าม
- การประชุม
- ราคา
- ประหยัดค่าใช้จ่าย
- ค่าใช้จ่าย
- ได้
- คอร์ส
- สร้าง
- ที่สร้างขึ้น
- ปัจจุบัน
- ประเพณี
- ลูกค้า
- ลูกค้า
- การปรับแต่ง
- การปรับแต่ง
- ข้อมูล
- โครงสร้างข้อมูล
- ชุดข้อมูล
- วันที่
- ทุ่มเท
- ค่าเริ่มต้น
- ส่งมอบ
- การส่งมอบ
- นำไปใช้
- ปรับใช้
- การใช้งาน
- เลิก
- ออกแบบ
- ได้รับการออกแบบ
- การกำหนด
- พัฒนา
- ผู้พัฒนา
- นักพัฒนา
- ที่กำลังพัฒนา
- พัฒนาการ
- การวินิจฉัยโรค
- ต่าง
- ย่อยได้
- สนทนา
- กล่าวถึง
- โดดเด่น
- เอกสาร
- ทำ
- ทำ
- ขับเคลื่อน
- สอง
- ในระหว่าง
- แต่ละ
- ง่าย
- เศรษฐกิจ
- การประหยัดจากขนาด
- ประสิทธิผล
- ประสิทธิภาพ
- อย่างมีประสิทธิภาพ
- การฝัง
- การจ้างงาน
- ทำให้สามารถ
- ช่วยให้
- ชั้นเยี่ยม
- การเสริมสร้าง
- Enterprise
- ซอฟต์แวร์ระดับองค์กร
- ผู้ประกอบการ
- โดยเฉพาะอย่างยิ่ง
- ประเมิน
- การประเมินผล
- แม้
- การพัฒนา
- การตรวจสอบ
- ตัวอย่าง
- ตัวอย่าง
- ที่มีอยู่
- แพง
- ประสบการณ์
- สำรวจ
- สำรวจ
- เร็วขึ้น
- ลักษณะ
- คุณสมบัติ
- สองสาม
- น้อยลง
- รูป
- เนื้อไม่มีมัน
- ไฟล์
- สุดท้าย
- ในที่สุด
- พบ
- ชื่อจริง
- การแก้ไข
- ธง
- มุ่งเน้นไปที่
- ปฏิบัติตาม
- ดังต่อไปนี้
- สำหรับ
- กองกำลัง
- เวลา
- ราคาเริ่มต้นที่
- FT
- เต็ม
- ฟังก์ชัน
- ฟังก์ชั่น
- ต่อไป
- นอกจากนี้
- ช่องว่าง
- สร้าง
- สร้าง
- การสร้าง
- รุ่น
- กำเนิด
- กำเนิด AI
- ได้รับ
- ได้รับ
- กำหนด
- ให้
- เป้าหมาย
- GPU
- GPUs
- ยิ่งใหญ่
- มี
- มือ
- จัดการ
- เกิดขึ้น
- มี
- มี
- he
- สุขภาพ
- จัดขึ้น
- ช่วย
- จะช่วยให้
- ด้วยเหตุนี้
- เธอ
- โปรดคลิกที่นี่เพื่ออ่านรายละเอียดเพิ่มเติม
- จุดสูง
- สูงกว่า
- ของเขา
- ประวัติ
- โฮสติ้ง
- ชั่วโมง
- สรุป ความน่าเชื่อถือของ Olymp Trade?
- อย่างไรก็ตาม
- HTML
- HTTPS
- ไอบีเอ็ม
- ความคิด
- อิลลินอยส์
- แสดงให้เห็นถึง
- ทันที
- การดำเนินการ
- สำคัญ
- ปรับปรุง
- in
- ประกอบด้วย
- รวมทั้ง
- เพิ่มขึ้น
- เพิ่มขึ้น
- ดัชนี
- การจัดทำดัชนี
- เป็นรายบุคคล
- เป็นรายบุคคล
- ข้อมูล
- ให้ข้อมูล
- โครงสร้างพื้นฐาน
- ความคิดริเริ่ม
- อินพุต
- แทน
- น่าสนใจ
- ผลประโยชน์
- ภายใน
- เข้าไป
- แนะนำ
- แนะนำ
- เรียก
- ร่วมมือ
- IT
- ITS
- ชวา
- เข้าร่วม
- การเก็บรักษา
- คีย์
- ความรู้
- ที่รู้จักกัน
- ห้องปฏิบัติการ
- ภาษา
- ใหญ่
- ความแอบแฝง
- ต่อมา
- ชั้น
- ความเป็นผู้นำ
- ชั้นนำ
- นำไปสู่
- นำ
- ชั้น
- ห้องสมุด
- โกหก
- กดไลก์
- ความเป็นไปได้
- น่าจะ
- เส้น
- รายการ
- วรรณคดี
- LLM
- ดู
- ปิด
- ลด
- เครื่อง
- ส่วนใหญ่
- การทำ
- ผู้จัดการ
- คู่มือ
- หลาย
- แผนที่
- แมรี่แลนด์
- แมสซาชูเซต
- การจับคู่
- จับคู่
- การจับคู่
- มดลูก
- อาจ..
- วัด
- มาตรการ
- ทางการแพทย์
- มีคุณสมบัติตรงตาม
- Meta
- เมตริก
- ตัวชี้วัด
- อาจ
- ต่ำสุด
- สารผสม
- แบบ
- โมเดล
- ข้อมูลเพิ่มเติม
- มากที่สุด
- ส่วนใหญ่
- หลาย
- ชื่อ
- โดยธรรมชาติ
- ประมวลผลภาษาธรรมชาติ
- จำเป็น
- จำเป็น
- จำเป็นต้อง
- ความต้องการ
- เครือข่าย
- เกี่ยวกับประสาท
- เครือข่ายประสาท
- ใหม่
- NLP
- จำนวน
- การสังเกต
- of
- ออฟไลน์
- มักจะ
- on
- ONE
- เพียง
- ตรงข้าม
- การเพิ่มประสิทธิภาพ
- or
- ใบสั่ง
- organizacja
- องค์กร
- องค์กร
- เป็นต้นฉบับ
- มีต้นกำเนิด
- อื่นๆ
- ของเรา
- ออก
- เอาชนะ
- อาการเจ็บปวด
- กระดาษ
- สวนสาธารณะ
- หลงใหล
- อดีต
- รูปแบบ
- รูปแบบไฟล์ PDF
- เปอร์เซ็นต์
- การปฏิบัติ
- ส่วนบุคคล
- phd
- ชิ้น
- การวาง
- เพลโต
- เพลโตดาต้าอินเทลลิเจนซ์
- เพลโตดาต้า
- เล่น
- เล่น
- จุด
- ตำแหน่ง
- เป็นไปได้
- โพสต์
- ที่มีประสิทธิภาพ
- การปฏิบัติ
- การปฏิบัติ
- การมี
- นำเสนอ
- ก่อนหน้านี้
- ส่วนใหญ่
- หลัก
- ส่วนตัว
- ปัญหา
- ปัญหาที่เกิดขึ้น
- การประมวลผล
- ผลผลิต
- ผลิตภัณฑ์
- โครงการ
- เป็นเจ้าของ
- ให้
- ให้
- สาธารณะ
- สาธารณชน
- ใส่
- คุณภาพ
- ปริมาณ
- วัดปริมาณ
- อย่างรวดเร็ว
- ตั้งแต่
- อันดับ
- ตระหนักถึง
- ที่ได้รับ
- เมื่อเร็ว ๆ นี้
- แนะนำ
- แนะนำ
- ลด
- การอ้างอิง
- ปรับแต่ง
- ญาติ
- ตรงประเด็น
- แทนที่
- กรุ
- การร้องขอ
- ต้องการ
- จำเป็นต้องใช้
- ต้อง
- การวิจัย
- แก้ไข
- แหล่งข้อมูล
- ผล
- ผลสอบ
- รักษา
- สุดท้าย
- รีวิว
- การเขียนใหม่
- ขวา
- บทบาท
- วิ่ง
- เดียวกัน
- ลด
- เงินออม
- ขนาด
- วิทยาศาสตร์
- นักวิทยาศาสตร์
- คะแนน
- ชาวสกอต
- ค้นหา
- ค้นหา
- ที่สอง
- ความปลอดภัย
- เห็น
- เห็น
- การเลือก
- การเลือก
- ระดับอาวุโส
- ส่ง
- แยก
- ให้บริการ
- ให้บริการอาหาร
- บริการ
- การให้บริการ
- ชุด
- หลาย
- เธอ
- การส่งสินค้า
- น่า
- โชว์
- แสดงให้เห็นว่า
- คล้ายคลึงกัน
- ง่ายดาย
- พร้อมกัน
- เดียว
- ขนาด
- เล็ก
- มีขนาดเล็กกว่า
- เศษเล็กเศษน้อย
- So
- ซอฟต์แวร์
- การพัฒนาซอฟต์แวร์
- ทางออก
- โซลูชัน
- แหล่ง
- รหัสแหล่งที่มา
- โดยเฉพาะ
- ใช้จ่าย
- แยก
- Stanford
- ข้อความที่เริ่ม
- ขั้นตอน
- เสถียร
- โครงสร้าง
- การศึกษา
- ศึกษา
- สไตล์
- ต่อจากนั้น
- ความสำเร็จ
- ที่ประสบความสำเร็จ
- อย่างเช่น
- ที่สนับสนุน
- พื้นผิว
- ระบบ
- ระบบ
- ช่างตัดเสื้อ
- ปรับปรุง
- ใช้เวลา
- เป้าหมาย
- งาน
- ทีม
- เทคโนโลยี
- วิชาการ
- เทคนิค
- ระยะ
- เงื่อนไขการใช้บริการ
- ข้อความ
- กว่า
- ที่
- พื้นที่
- พื้นที่
- ที่มา
- ของพวกเขา
- พวกเขา
- แล้วก็
- ที่นั่น
- ดังนั้น
- ดังนั้น
- ล้อยางขัดเหล่านี้ติดตั้งบนแกน XNUMX (มม.) ผลิตภัณฑ์นี้ถูกผลิตในหลายรูปทรง และหลากหลายเบอร์ความแน่นหนาของปริมาณอนุภาคขัดของมัน จะทำให้ท่านได้รับประสิทธิภาพสูงในการขัดและการใช้งานที่ยาวนาน
- พวกเขา
- นี้
- เหล่านั้น
- แต่?
- ปริมาณงาน
- เวลา
- ยักษ์
- ไปยัง
- ร่วมกัน
- ราชสกุล
- เอา
- เครื่องมือ
- เครื่องมือ
- ด้านบน
- แตะ
- ผ่านการฝึกอบรม
- การฝึกอบรม
- รถไฟ
- การแปลภาษา
- จูน
- ผลัดกัน
- สอง
- ชนิด
- เป็นปกติ
- Uber
- ได้รับ
- พื้นฐาน
- เป็นเอกลักษณ์
- มหาวิทยาลัย
- การใช้
- ใช้
- มือสอง
- ผู้ใช้งาน
- ที่ใช้งานง่าย
- การใช้
- ตัวแปร
- ความหลากหลาย
- ต่างๆ
- virginia
- เยี่ยมชมร้านค้า
- ช่องโหว่
- ทาง..
- วิธี
- we
- เว็บ
- บริการเว็บ
- น้ำหนัก
- ดี
- คือ
- อะไร
- ความหมายของ
- เมื่อ
- ที่
- ในขณะที่
- WHO
- ทำไม
- กับ
- ภายใน
- ไม่มี
- คำ
- งาน
- ทำงาน
- ขั้นตอนการทำงาน
- การทำงาน
- โรงงาน
- เขียน
- เขียนโค้ด
- เขียน
- คุณ
- ของคุณ
- ลมทะเล
- โซน