Llama ของ Meta: มากกว่าแค่แบบจำลองภาษา

วิวัฒนาการของ Llama: ท้าทายสถานะเดิม

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

อย่างไรก็ตาม ลักษณะ ‘โอเพนซอร์ส’ ของ Llama เป็นหัวข้อที่ถกเถียงกัน ใบอนุญาต Meta Llama มีข้อจำกัดเฉพาะเกี่ยวกับการใช้งานเชิงพาณิชย์และการใช้งานที่ยอมรับได้ แม้ว่าข้อจำกัดเหล่านี้อาจมีเหตุผล แต่ก็ขัดแย้งกับคำจำกัดความที่เข้มงวดของโอเพนซอร์สของ Open Source Initiative สิ่งนี้นำไปสู่การอภิปรายอย่างต่อเนื่องว่า Llama มีคุณสมบัติเป็นโอเพนซอร์สอย่างแท้จริงหรือไม่

การนำทางความท้าทายทางกฎหมาย: ข้อกังวลด้านลิขสิทธิ์

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

การขยายขีดความสามารถ: กลุ่มแบบจำลองที่กำลังเติบโตของ Llama

ตั้งแต่ปลายปี 2023 Meta AI ได้ขยายกลุ่มผลิตภัณฑ์ Llama อย่างมีนัยสำคัญ แบบจำลองไม่ได้จำกัดอยู่แค่การโต้ตอบแบบข้อความอีกต่อไป ระบบนิเวศ Llama ปัจจุบันประกอบด้วยแบบจำลองหลายรูปแบบที่สามารถประมวลผลได้ทั้งข้อความและข้อมูลภาพ รวมถึงแบบจำลองที่ออกแบบมาสำหรับการตีความโค้ดและการรวมเครื่องมือ นอกจากนี้ Meta ได้แนะนำส่วนประกอบด้านความปลอดภัยที่เรียกว่า Llama Guard เพื่อระบุและลดความเสี่ยงและการโจมตีที่อาจเกิดขึ้น ซึ่งได้รับการออกแบบมาให้เป็นส่วนหนึ่งของเฟรมเวิร์กโดยรวมที่เรียกว่า ‘Llama Stack’

ต่อไปนี้คือการเจาะลึกในบางส่วนของแบบจำลองหลักในกลุ่มผลิตภัณฑ์ Llama (สรุปจากบัตรแบบจำลองของ Meta AI):

Llama Guard 1: การปกป้องการโต้ตอบ

Llama Guard 1 เป็นแบบจำลองพารามิเตอร์ 7 พันล้านตัวที่ใช้ Llama 2 โดยทำหน้าที่เป็นตัวป้องกันอินพุต-เอาต์พุต โดยจัดหมวดหมู่เนื้อหาทั้งในข้อความแจ้งของผู้ใช้ (การจัดหมวดหมู่ข้อความแจ้ง) และการตอบสนองของ LLM (การจัดหมวดหมู่การตอบสนอง) แบบจำลองนี้ช่วยให้มั่นใจได้ถึงการโต้ตอบที่ปลอดภัยและมีความรับผิดชอบมากขึ้นกับระบบที่ใช้ Llama

Llama Guard ใช้การจัดหมวดหมู่หกระดับเพื่อจัดหมวดหมู่อันตรายที่อาจเกิดขึ้น:

  • Violence & Hate (ความรุนแรงและความเกลียดชัง): เนื้อหาที่ส่งเสริมความรุนแรงหรือความเกลียดชังต่อบุคคลหรือกลุ่ม
  • Sexual Content (เนื้อหาเกี่ยวกับเรื่องเพศ): เนื้อหาเกี่ยวกับเรื่องเพศที่โจ่งแจ้ง หรือเนื้อหาที่แสวงหาประโยชน์ ละเมิด หรือเป็นอันตรายต่อเด็ก
  • Guns & Illegal Weapons (ปืนและอาวุธผิดกฎหมาย): เนื้อหาที่เกี่ยวข้องกับการขาย การใช้ หรือการดัดแปลงอาวุธปืนและอาวุธอื่นๆ ที่ผิดกฎหมาย
  • Regulated or Controlled Substances (สารควบคุมหรือสารเสพติด): เนื้อหาที่ส่งเสริมการใช้หรือขายยา แอลกอฮอล์ หรือยาสูบอย่างผิดกฎหมาย
  • Suicide & Self Harm (การฆ่าตัวตายและการทำร้ายตัวเอง): เนื้อหาที่ส่งเสริมหรือให้คำแนะนำในการฆ่าตัวตายหรือทำร้ายตัวเอง
  • Criminal Planning (การวางแผนอาชญากรรม): เนื้อหาที่อำนวยความสะดวกหรือวางแผนกิจกรรมที่ผิดกฎหมาย

Code Llama 70B: ความสามารถในการเขียนโค้ดสามประการ

Code Llama 70B เป็นการขยายขีดความสามารถในการเขียนโค้ดของ Llama อย่างมีนัยสำคัญ แบบจำลองนี้มีให้ใช้งานในสามรูปแบบที่แตกต่างกัน:

  • Code Llama: แบบจำลองพื้นฐานที่ออกแบบมาสำหรับการสังเคราะห์และทำความเข้าใจโค้ดทั่วไป สามารถสร้างโค้ด อธิบายการทำงานของโค้ด และช่วยในการแก้ไขข้อบกพร่อง
  • Code Llama – Python: เวอร์ชันพิเศษที่ปรับแต่งมาสำหรับการเขียนโปรแกรม Python แบบจำลองนี้ได้รับการปรับให้เหมาะสมสำหรับการสร้างและทำความเข้าใจโค้ด Python ทำให้เป็นเครื่องมือที่มีค่าสำหรับนักพัฒนา Python
  • Code Llama – Instruct: ตัวแปรที่เน้นการปฏิบัติตามคำแนะนำและรับรองการปรับใช้ที่ปลอดภัยยิ่งขึ้น แบบจำลองนี้มีประโยชน์อย่างยิ่งสำหรับการสร้างโค้ดที่ยึดตามหลักเกณฑ์และโปรโตคอลความปลอดภัยเฉพาะ

ทั้งสามรูปแบบมีให้ใช้งานในขนาดที่แตกต่างกัน: พารามิเตอร์ 7 พันล้าน, 13 พันล้าน, 34 พันล้าน และ 70 พันล้าน Code Llama และรุ่นต่างๆ ได้รับการออกแบบมาสำหรับการใช้งานทั้งเชิงพาณิชย์และการวิจัย โดยหลักแล้วเป็นภาษาอังกฤษและภาษาโปรแกรมที่เกี่ยวข้อง มีหลักฐานมากมายที่บ่งชี้ว่า Code Llama มีความสามารถในการเขียนโค้ดที่แข็งแกร่ง

Llama Guard 2: การจัดหมวดหมู่ความปลอดภัยขั้นสูง

Llama Guard 2 สร้างขึ้นบนรากฐานของรุ่นก่อน โดยนำเสนอความสามารถในการจัดหมวดหมู่ความปลอดภัยขั้นสูง แบบจำลองพารามิเตอร์ 8 พันล้านตัวนี้ ซึ่งใช้ Llama 3 ได้รับการฝึกฝนเพื่อทำนายป้ายกำกับความปลอดภัยใน 11 หมวดหมู่ ซึ่งสอดคล้องกับการจัดหมวดหมู่อันตรายของ MLCommons

หมวดหมู่อันตรายที่ครอบคลุมโดย Llama Guard 2 ได้แก่:

  • S1: Violent Crimes (อาชญากรรมรุนแรง): เนื้อหาที่เกี่ยวข้องกับการกระทำผิดทางอาญาที่รุนแรง
  • S2: Non-Violent Crimes (อาชญากรรมไม่รุนแรง): เนื้อหาที่เกี่ยวข้องกับการกระทำผิดทางอาญาที่ไม่รุนแรง
  • S3: Sex-Related Crimes (อาชญากรรมทางเพศ): เนื้อหาที่เกี่ยวข้องกับการกระทำผิดทางเพศ
  • S4: Child Sexual Exploitation (การแสวงหาประโยชน์ทางเพศจากเด็ก): เนื้อหาที่แสวงหาประโยชน์ ละเมิด หรือเป็นอันตรายต่อเด็กในทางเพศ
  • S5: Specialized Advice (คำแนะนำเฉพาะทาง): คำแนะนำที่ไม่เหมาะสมหรือทำให้เข้าใจผิดในสาขาเฉพาะ (เช่น การแพทย์ กฎหมาย การเงิน)
  • S6: Privacy (ความเป็นส่วนตัว): เนื้อหาที่ละเมิดความเป็นส่วนตัวหรือเปิดเผยข้อมูลส่วนบุคคลโดยไม่ได้รับความยินยอม
  • S7: Intellectual Property (ทรัพย์สินทางปัญญา): เนื้อหาที่ละเมิดสิทธิ์ในทรัพย์สินทางปัญญา
  • S8: Indiscriminate Weapons (อาวุธไม่เลือกหน้า): เนื้อหาที่เกี่ยวข้องกับอาวุธที่ก่อให้เกิดอันตรายในวงกว้างและไม่เลือกหน้า
  • S9: Hate (ความเกลียดชัง): เนื้อหาที่แสดงความเกลียดชังหรืออคติต่อบุคคลหรือกลุ่ม
  • S10: Suicide & Self-Harm (การฆ่าตัวตายและการทำร้ายตัวเอง): เนื้อหาที่ส่งเสริมหรือให้คำแนะนำในการฆ่าตัวตายหรือทำร้ายตัวเอง
  • S11: Sexual Content (เนื้อหาเกี่ยวกับเรื่องเพศ): เนื้อหาเกี่ยวกับเรื่องเพศที่โจ่งแจ้ง

Meta Llama 3: ความเก่งกาจในการสนทนา

Meta Llama 3 มีให้เลือกสองขนาด คือ พารามิเตอร์ 8 พันล้าน และ 70 พันล้าน โดยมีทั้งรุ่นที่ได้รับการฝึกฝนล่วงหน้าและรุ่นที่ได้รับการปรับแต่งตามคำแนะนำ รุ่นที่ได้รับการปรับแต่งตามคำแนะนำได้รับการปรับให้เหมาะสมเป็นพิเศษสำหรับแอปพลิเคชันที่ใช้การสนทนา ทำให้เหมาะสำหรับแชทบอทและระบบ AI เชิงสนทนา

Prompt Guard: การป้องกันอินพุตที่เป็นอันตราย

Prompt Guard เป็นแบบจำลองตัวแยกประเภทที่ออกแบบมาเพื่อตรวจจับข้อความแจ้งที่เป็นอันตราย รวมถึงการเจลเบรค (ความพยายามที่จะข้ามข้อจำกัดด้านความปลอดภัย) และการแทรกข้อความแจ้ง (ความพยายามที่จะจัดการเอาต์พุตของแบบจำลองผ่านอินพุตที่สร้างขึ้น) Meta AI แนะนำให้ปรับแต่ง Prompt Guard อย่างละเอียดด้วยข้อมูลเฉพาะแอปพลิเคชันเพื่อให้ได้ประสิทธิภาพสูงสุด

Prompt Guard ไม่ต้องการโครงสร้างข้อความแจ้งเฉพาะ ซึ่งแตกต่างจาก Llama Guard โดยจะทำงานบนอินพุตสตริง โดยจัดประเภทเป็นปลอดภัยหรือไม่ปลอดภัย (ที่ระดับความรุนแรงต่างกันสองระดับ) เป็นแบบจำลอง BERT ที่ส่งออกป้ายกำกับเท่านั้น

Llama Guard 3: ความปลอดภัยหลายรูปแบบและหลายภาษา

Llama Guard 3 มีให้ใช้งานในสามเวอร์ชัน: Llama Guard 3 1B, Llama Guard 3 8B และ Llama Guard 3 11B-Vision สองรุ่นแรกเป็นแบบจำลองข้อความเท่านั้น ในขณะที่รุ่นที่สามรวมความสามารถในการทำความเข้าใจการมองเห็นของแบบจำลอง Llama 3.2 11B-Vision ทุกรุ่นเป็นแบบหลายภาษา (สำหรับข้อความแจ้งที่เป็นข้อความเท่านั้น) และเป็นไปตามหมวดหมู่อันตรายที่กำหนดโดยกลุ่ม MLCommons

Llama Guard 3 8B ยังสามารถใช้สำหรับหมวดหมู่ S14, Code Interpreter Abuse เป็นสิ่งสำคัญที่ควรทราบว่าแบบจำลอง Llama Guard 3 1B ไม่ได้รับการปรับให้เหมาะสมสำหรับหมวดหมู่นี้โดยเฉพาะ

หมวดหมู่อันตราย ซึ่งขยายจากหมวดหมู่ของ Llama Guard 2 ได้แก่:

  • S1: Violent Crimes (อาชญากรรมรุนแรง)
  • S2: Non-Violent Crimes (อาชญากรรมไม่รุนแรง)
  • S3: Sex-Related Crimes (อาชญากรรมทางเพศ)
  • S4: Child Sexual Exploitation (การแสวงหาประโยชน์ทางเพศจากเด็ก)
  • S5: Defamation (การหมิ่นประมาท)
  • S6: Specialized Advice (คำแนะนำเฉพาะทาง)
  • S7: Privacy (ความเป็นส่วนตัว)
  • S8: Intellectual Property (ทรัพย์สินทางปัญญา)
  • S9: Indiscriminate Weapons (อาวุธไม่เลือกหน้า)
  • S10: Hate (ความเกลียดชัง)
  • S11: Suicide & Self-Harm (การฆ่าตัวตายและการทำร้ายตัวเอง)
  • S12: Sexual Content (เนื้อหาเกี่ยวกับเรื่องเพศ)
  • S13: Elections (การเลือกตั้ง)
  • S14: Code Interpreter Abuse (การใช้ Code Interpreter ในทางที่ผิด)

Meta Llama 3.1: แบบจำลองกำเนิดหลายภาษา

คอลเลกชัน Meta Llama 3.1 ประกอบด้วยแบบจำลองภาษาขนาดใหญ่หลายภาษา รวมถึงแบบจำลองกำเนิดที่ได้รับการฝึกฝนล่วงหน้าและปรับแต่งตามคำแนะนำในขนาดพารามิเตอร์ 8 พันล้าน, 70 พันล้าน และ 405 พันล้าน (อินพุตข้อความ, เอาต์พุตข้อความ)

ภาษาที่รองรับ ได้แก่: อังกฤษ, เยอรมัน, ฝรั่งเศส, อิตาลี, โปรตุเกส, ฮินดี, สเปน และไทย

Meta Llama 3.2: ความสามารถในการสนทนาที่ได้รับการปรับปรุง

คอลเลกชัน Llama 3.2 มีแบบจำลองภาษาขนาดใหญ่หลายภาษา ซึ่งครอบคลุมแบบจำลองกำเนิดที่ได้รับการฝึกฝนล่วงหน้าและปรับแต่งตามคำแนะนำในขนาดพารามิเตอร์ 1 พันล้าน และ 3 พันล้าน (อินพุตข้อความ, เอาต์พุตข้อความ) นอกจากนี้ยังมีรุ่น quantized ของแบบจำลองเหล่านี้ แบบจำลองข้อความเท่านั้นที่ได้รับการปรับแต่งตามคำแนะนำของ Llama 3.2 ได้รับการปรับให้เหมาะสมสำหรับการสนทนาหลายภาษา ซึ่งมีความเป็นเลิศในงานต่างๆ เช่น การดึงข้อมูลแบบตัวแทนและการสรุป แบบจำลอง 1B และ 3B เป็นอนุพันธ์ขนาดเล็กและมีประสิทธิภาพน้อยกว่าของ Llama 3.1

ภาษาที่รองรับอย่างเป็นทางการคือ: อังกฤษ, เยอรมัน, ฝรั่งเศส, อิตาลี, โปรตุเกส, ฮินดี, สเปน และไทย อย่างไรก็ตาม Llama 3.2 ได้รับการฝึกฝนในภาษาที่หลากหลายกว่าแปดภาษานี้

Llama 3.2-Vision: การให้เหตุผลและการทำความเข้าใจภาพ

คอลเลกชัน Llama 3.2-Vision นำเสนอแบบจำลองภาษาขนาดใหญ่หลายรูปแบบ แบบจำลองเหล่านี้ได้รับการฝึกฝนล่วงหน้าและปรับแต่งตามคำแนะนำสำหรับการให้เหตุผลเกี่ยวกับภาพ โดยมีให้ใช้งานในขนาดพารามิเตอร์ 11 พันล้าน และ 90 พันล้าน (อินพุตข้อความและรูปภาพ, เอาต์พุตข้อความ) แบบจำลองที่ได้รับการปรับแต่งตามคำแนะนำได้รับการปรับให้เหมาะสมสำหรับการจดจำภาพ การให้เหตุผลเกี่ยวกับภาพ การใส่คำบรรยาย และการตอบคำถามทั่วไปเกี่ยวกับรูปภาพ

สำหรับงานที่เป็นข้อความเท่านั้น ภาษาที่รองรับอย่างเป็นทางการคือ อังกฤษ, เยอรมัน, ฝรั่งเศส, อิตาลี, โปรตุเกส, ฮินดี, สเปน และไทย Llama 3.2 ได้รับการฝึกฝนในชุดภาษาที่กว้างขึ้น แต่สำหรับแอปพลิเคชันรูปภาพ+ข้อความ ภาษาอังกฤษเป็นภาษาเดียวที่รองรับ

Meta Llama 3.3: แบบจำลอง 70B อันทรงพลัง

แบบจำลองภาษาขนาดใหญ่หลายภาษา Meta Llama 3.3 เป็นแบบจำลองกำเนิดที่ได้รับการฝึกฝนล่วงหน้าและปรับแต่งตามคำแนะนำด้วยพารามิเตอร์ 70 พันล้าน (อินพุตข้อความ, เอาต์พุตข้อความ)

ภาษาที่รองรับ: อังกฤษ, เยอรมัน, ฝรั่งเศส, อิตาลี, โปรตุเกส, ฮินดี, สเปน และไทย

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

Llama 3.3, แบบจำลองข้อความเท่านั้น Llama 3.2 และ Llama 3.1 มีการสนับสนุนในตัวสำหรับเครื่องมือต่อไปนี้:

  • Brave Search: การเรียกเครื่องมือสำหรับการค้นหาเว็บ
  • Wolfram Alpha: การเรียกเครื่องมือสำหรับการคำนวณทางคณิตศาสตร์ที่ซับซ้อน
  • Code Interpreter: การเรียกเครื่องมือที่เปิดใช้งานแบบจำลองเพื่อส่งออกโค้ด Python

หมายเหตุ: แบบจำลองการมองเห็น Llama 3.2 ไม่ รองรับการเรียกเครื่องมือด้วยอินพุตข้อความ+รูปภาพ

Llama Stack: เฟรมเวิร์กแบบครบวงจร

จำนวนแบบจำลอง Llama ที่มีอยู่มากมายอาจล้นหลาม เพื่อลดความซับซ้อนของกระบวนการคัดเลือกและการรวม Meta ขอเสนอ Llama Stack เฟรมเวิร์กนี้เน้นที่แบบจำลอง Llama แต่ยังให้อะแดปเตอร์สำหรับความสามารถที่เกี่ยวข้อง เช่น ฐานข้อมูลเวกเตอร์สำหรับการสร้างแบบเติมการดึงข้อมูล (RAG)

ปัจจุบัน Llama Stack รองรับ SDK ใน Python, Swift, Node และ Kotlin มีการแจกแจงต่างๆ รวมถึง:

  • Local distribution (การแจกแจงในเครื่อง) (โดยใช้ Ollama): สำหรับการพัฒนาและทดสอบในเครื่อง
  • On-device distributions (การแจกแจงบนอุปกรณ์) (iOS และ Android): สำหรับการปรับใช้แบบจำลอง Llama บนอุปกรณ์มือถือ
  • Distributions for GPUs (การแจกแจงสำหรับ GPU): สำหรับการใช้ประโยชน์จากพลังของ GPU เพื่อการประมวลผลที่เร็วขึ้น
  • Remote-hosted distributions (การแจกแจงที่โฮสต์จากระยะไกล) (Together และ Fireworks): สำหรับการเข้าถึงแบบจำลอง Llama ผ่านบริการบนคลาวด์

แนวคิดหลักเบื้องหลัง Llama Stack คือการช่วยให้นักพัฒนาสามารถสร้างแอปพลิเคชันในเครื่อง จากนั้นจึงเปลี่ยนไปใช้สภาพแวดล้อมการใช้งานจริงได้อย่างง่ายดาย นอกจากนี้ยังมี Llama Stack Playground แบบโต้ตอบสำหรับการพัฒนาในเครื่องกับ Llama Stack ระยะไกล

การเรียกใช้แบบจำลอง Llama: ตัวเลือกการปรับใช้ที่หลากหลาย

แบบจำลอง Llama สามารถปรับใช้บนแพลตฟอร์มต่างๆ รวมถึง Linux, Windows, macOS และคลาวด์ แบบจำลอง Llama แบบ Quantized เช่น Llama 3.2 และ Llama 3.2-Vision สามารถทำงานได้อย่างมีประสิทธิภาพบนฮาร์ดแวร์สมัยใหม่ แม้แต่บนแล็ปท็อป เช่น M4 Pro MacBook Pro โดยใช้เครื่องมืออย่าง Ollama

Meta มีคู่มือวิธีการที่ครอบคลุมสำหรับการปรับใช้และการใช้แบบจำลอง Llama นอกจากนี้ยังมีคู่มือการรวมสำหรับเฟรมเวิร์กยอดนิยม เช่น LangChain และ LlamaIndex

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