1 คะแนน โดย GN⁺ 2023-08-25 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • ท่ามกลางความต้องการเครื่องมือช่วยเขียนโค้ดที่เพิ่มขึ้น Meta ได้เปิดตัว Code Llama ทำให้มีตัวเลือกสำหรับการสร้างโค้ด การเติมโค้ด และการดีบักบนพื้นฐานของโมเดลเปิดมากขึ้น
  • โมเดลนี้เป็น Llama 2 เวอร์ชันที่นำไปฝึกเพิ่มด้วยข้อมูลโค้ด จึงรองรับงานด้านโค้ดได้ทั้งจากพรอมป์ต์โค้ดและภาษาธรรมชาติ
  • มีให้เลือกขนาด 7B·13B·34B·70B โดย โมเดล 70B ถูกเปิดตัวเพิ่มเติมเมื่อวันที่ 29 มกราคม 2024 ในฐานะโมเดลที่ใหญ่ที่สุดและมีประสิทธิภาพสูงสุดในตระกูล Code Llama
  • แบ่งเป็นโมเดลพื้นฐาน โมเดลเฉพาะทาง Python และ Instruct รุ่นย่อย สำหรับคำสั่งภาษาธรรมชาติ โดยควรเลือกตามความหน่วง ประสิทธิภาพ และวัตถุประสงค์การใช้งาน
  • ใช้ได้ฟรีทั้งเพื่อการวิจัยและเชิงพาณิชย์ แต่ต้องปฏิบัติตามไลเซนส์และนโยบายการใช้งานที่อนุญาต พร้อมประเมินความปลอดภัยของการสร้างโค้ดควบคู่กัน

งานด้านโค้ดที่ Code Llama มุ่งเป้า

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

ฝึก Llama 2 เพิ่มด้วยข้อมูลโค้ด

  • Code Llama คือ Llama 2 เวอร์ชันที่ปรับให้เชี่ยวชาญด้านโค้ดโดยการฝึกเพิ่มเติมด้วยชุดข้อมูลเฉพาะทางโค้ด
  • รับได้ทั้งพรอมป์ต์โค้ดและภาษาธรรมชาติเป็นอินพุต และสามารถสร้างทั้งโค้ดและข้อความภาษาธรรมชาติที่เกี่ยวกับโค้ดได้
    • ตัวอย่างพรอมป์ต์: “เขียนฟังก์ชันที่พิมพ์ลำดับฟีโบนักชีให้หน่อย”
  • ใช้สำหรับการเติมโค้ดและการดีบักได้ด้วย
  • ภาษาที่รองรับรวมถึง Python, C++, Java, PHP, Typescript(JavaScript), C#, Bash

เกณฑ์การเลือกตามขนาดและคอนเท็กซ์

  • Code Llama มีให้ในขนาดพารามิเตอร์ 7B, 13B, 34B, 70B
  • โมเดล 7B, 13B, 34B ถูกฝึกด้วยโค้ดและข้อมูลที่เกี่ยวข้องกับโค้ดจำนวน 500B โทเค็น ส่วนโมเดล 70B ถูกฝึกด้วย 1T โทเค็น
  • โมเดลพื้นฐานและ Instruct ของ 7B และ 13B ยังถูกฝึกความสามารถ fill-in-the-middle(FIM) เพื่อแทรกโค้ดลงกลางโค้ดเดิมได้
    • จึงรองรับงานอย่างการเติมโค้ดได้โดยตรง
  • ขนาดโมเดลควรเลือกตามรูปแบบการให้บริการและข้อกำหนดด้านความหน่วง
    • โมเดล 7B สามารถให้บริการได้บน GPU เดี่ยว
    • โมเดล 34B และ 70B ให้ผลลัพธ์ดีที่สุดและช่วยงานเขียนโค้ดได้ดีกว่า
    • โมเดล 7B และ 13B เร็วกว่า จึงเหมาะกับงานที่ต้องการความหน่วงต่ำ เช่น การเติมโค้ดแบบเรียลไทม์
  • โมเดล Code Llama ให้การสร้างผลลัพธ์ที่เสถียรได้ที่คอนเท็กซ์สูงสุด 100,000 โทเค็น
    • ทุกโมเดลถูกฝึกด้วยลำดับความยาว 16,000 โทเค็น
    • และแสดงการปรับปรุงเมื่อรับอินพุตยาวได้ถึง 100,000 โทเค็น

สามรุ่นย่อย: พื้นฐาน, Python, Instruct

  • ตระกูล Code Llama แบ่งออกเป็นสามรุ่นย่อย
    • Code Llama: โมเดลโค้ดพื้นฐาน
    • Code Llama - Python: โมเดลเฉพาะทาง Python
    • Code Llama - Instruct: โมเดลที่ปรับจูนเพื่อเข้าใจคำสั่งภาษาธรรมชาติ
  • Code Llama - Python ถูกปรับจูนเพิ่มด้วย โค้ด Python 100B โทเค็น
    • Python เป็นภาษาที่ถูกใช้วัดผลในการสร้างโค้ดมากที่สุด
    • Python และ PyTorch มีบทบาทสำคัญในชุมชน AI
  • Code Llama - Instruct เป็นรุ่นย่อยที่ฝึกต่อด้วยอินพุตคำสั่งภาษาธรรมชาติและเอาต์พุตที่คาดหวัง
    • ออกแบบมาเพื่อให้เข้าใจสิ่งที่มนุษย์คาดหวังจากพรอมป์ต์ได้ดียิ่งขึ้น
    • ปรับจูนเพื่อสร้างคำตอบที่เป็นประโยชน์และปลอดภัยในภาษาธรรมชาติ
  • หากใช้ Code Llama สำหรับการสร้างโค้ด แนะนำให้ใช้รุ่นย่อย Code Llama - Instruct
  • ไม่แนะนำให้ใช้ Code Llama และ Code Llama - Python กับงานภาษาธรรมชาติทั่วไป เพราะไม่ได้ออกแบบมาให้ทำตามคำสั่งภาษาธรรมชาติ
  • Code Llama ออกแบบมาสำหรับงานเฉพาะทางด้านโค้ด และไม่เหมาะเป็นโมเดลตั้งต้นสำหรับงานประเภทอื่น

การเปิดตัวเพิ่มเติมของ Code Llama 70B

  • ในอัปเดตวันที่ 29 มกราคม 2024 ได้เปิดตัว Code Llama 70B
  • 70B เป็นโมเดลที่ใหญ่ที่สุดและมีประสิทธิภาพดีที่สุดในตระกูล Code Llama
  • ให้บริการในสามเวอร์ชันเช่นเดียวกับ Code Llama รุ่นก่อนหน้า และทั้งหมดใช้ฟรีทั้งเพื่อการวิจัยและเชิงพาณิชย์
    • CodeLlama - 70B: โมเดลโค้ดพื้นฐาน
    • CodeLlama - 70B - Python: โมเดล 70B เฉพาะทาง Python
    • Code Llama - 70B - Instruct 70B: โมเดลที่ปรับจูนเพื่อเข้าใจคำสั่งภาษาธรรมชาติ

เบนช์มาร์กและการประเมินความปลอดภัย

  • การประเมินประสิทธิภาพทำผ่านเบนช์มาร์กด้านการเขียนโค้ดสองชุด
    • HumanEval: ประเมินความสามารถในการเติมโค้ดจาก docstring
    • MBPP: ประเมินความสามารถในการเขียนโค้ดจากคำอธิบาย
  • ในการทดสอบเบนช์มาร์ก Code Llama ทำผลงานได้ดีกว่า LLM โอเพนซอร์สที่เชี่ยวชาญด้านโค้ดและดีกว่า Llama 2
  • Code Llama 34B ทำได้ 53.7% บน HumanEval และ 56.2% บน MBPP
    • ถือเป็นระดับสูงสุดเมื่อเทียบกับโซลูชันเปิดระดับล้ำสมัยที่เปิดเผยสู่สาธารณะ และอยู่ในระดับใกล้เคียง ChatGPT
  • Meta ได้ดำเนินมาตรการด้านความปลอดภัยหลายอย่างก่อนเปิดตัว และประเมินเชิงปริมาณความเสี่ยงในการสร้างโค้ดอันตรายผ่านกระบวนการเรดทีม
    • สร้างพรอมป์ต์ที่ร้องขอโค้ดอันตรายด้วยเจตนาที่ชัดเจน
    • ให้คะแนนโดยเปรียบเทียบคำตอบของ Code Llama กับคำตอบของ GPT-3.5 Turbo จาก ChatGPT
    • ผลลัพธ์ระบุว่า Code Llama ให้คำตอบที่ปลอดภัยกว่า
  • รายละเอียดของการเรดทีมโดยผู้เชี่ยวชาญด้าน Responsible AI, วิศวกรรมความปลอดภัยเชิงรุก, การพัฒนามัลแวร์ และวิศวกรรมซอฟต์แวร์ รวมอยู่ในงานวิจัย

เอกสารเผยแพร่และการใช้งานอย่างรับผิดชอบ

  • สูตรการฝึกของ Code Llama เปิดเผยใน GitHub repository
  • มี น้ำหนักโมเดล ให้ใช้งานด้วย
  • งานวิจัย ครอบคลุมการพัฒนา Code Llama วิธีทดสอบเบนช์มาร์ก ข้อจำกัด ความท้าทายที่ทราบแล้ว มาตรการบรรเทา และโจทย์สำหรับการศึกษาในอนาคต
  • Responsible Use Guide ก็ได้รับการอัปเดตเช่นกัน
    • นิยามนโยบายด้านเนื้อหาและมาตรการบรรเทา
    • การเตรียมข้อมูล
    • การปรับจูนโมเดล
    • การประเมินและปรับปรุงประสิทธิภาพ
    • การรับมือความเสี่ยงในระดับอินพุตและเอาต์พุต
    • การสร้างความโปร่งใสและกลไกรายงานในการปฏิสัมพันธ์กับผู้ใช้
  • นักพัฒนาควรประเมินโมเดลด้วยเบนช์มาร์กเฉพาะทางด้านโค้ด
  • แนะนำให้ศึกษาความปลอดภัยสำหรับ กรณีการใช้งานเฉพาะทางด้านโค้ด เช่น การสร้างมัลแวร์ ไวรัสคอมพิวเตอร์ และโค้ดประสงค์ร้าย
  • แนะนำให้ใช้ชุดข้อมูลด้านความปลอดภัยสำหรับการประเมินแบบอัตโนมัติและโดยมนุษย์ รวมถึงการเรดทีมด้วย adversarial prompt

บทบาทในระบบนิเวศของโมเดลเขียนโค้ดแบบเปิด

  • Code Llama ถูกออกแบบมาเพื่อสนับสนุนวิศวกรซอฟต์แวร์ในหลายภาคส่วน เช่น งานวิจัย อุตสาหกรรม โครงการโอเพนซอร์ส NGO และองค์กรธุรกิจ
  • ยังมีกรณีใช้งานอีกมากที่เกินกว่าขอบเขตที่โมเดลพื้นฐานและ Instruct รุ่นปัจจุบันรองรับได้
  • Meta คาดหวังว่า Code Llama จะกระตุ้นให้ผู้อื่นนำ Llama 2 ไปใช้สร้างเครื่องมือใหม่สำหรับงานวิจัยและผลิตภัณฑ์เชิงพาณิชย์
  • เอกสารที่เกี่ยวข้อง:

1 ความคิดเห็น

 
GN⁺ 2023-08-25
ความคิดเห็นจาก Hacker News
  • ความคิดเห็นถูกย้ายไปยัง https://news.ycombinator.com/item?id=37248494 ซึ่งโพสต์ขึ้นก่อนเล็กน้อย
    • น่าจะลบโพสต์นี้ได้ มีโพสต์ สองรายการบนหน้าแรก