โมเดลและแพลตฟอร์ม AI

ลามา 2: การสำรวจลึกเกี่ยวกับโมเดลภาษาขนาดใหญ่แบบโอเพ่นซอร์สที่ท้าทาย ChatGPT

mm
เพิ่ม Unite.AI ลงในแหล่งข้อมูลที่คุณต้องการบน Google

โมเดลภาษาขนาดใหญ่ (LLMs) ที่สามารถทำหน้าที่การให้เหตุผลที่ซับซ้อนได้แสดงให้เห็นถึงความมุ่งมั่นในโดเมนสpecialized เช่น การเขียนโปรแกรมและงานเขียนเชิงสร้างสรรค์ อย่างไรก็ตาม โลกของ LLMs ไม่ใช่แค่天堂ของการเสียบปลั๊กและเล่นเท่านั้น มี挑战ในการใช้งาน ความปลอดภัย และความต้องการการคำนวณ ในบทความนี้ เราจะสำรวจความสามารถของ Llama 2 โดยให้คำแนะนำทีละขั้นตอนในการตั้งค่าโมเดล LLM ที่มีประสิทธิภาพสูงนี้ผ่าน Hugging Face และ T4 GPUs บน Google Colab

พัฒนาโดย Meta ร่วมกับ Microsoft (MSFT ) โมเดลภาษาขนาดใหญ่แบบโอเพ่นซอร์สนี้มีเป้าหมายที่จะเปลี่ยนแปลงพื้นที่ของ AI ที่สร้างและเข้าใจภาษาธรรมชาติ Llama 2 ไม่ใช่แค่โมเดลทางสถิติที่ฝึกฝนจากเทราบایتของข้อมูล แต่เป็นตัวแทนของปรัชญาหนึ่ง ที่เน้นย้ำถึงแนวทางโอเพ่นซอร์สเป็นกระดูกสันหลังของพัฒนา AI โดยเฉพาะในพื้นที่ AI ที่สร้าง

Llama 2 และรูปแบบที่ปรับให้เหมาะสมสำหรับการสนทนา Llama 2-Chat มาพร้อมกับตัวแปรสูงสุด 70 พันล้านตัวแปร พวกมันผ่านกระบวนการปรับให้เหมาะสมที่ออกแบบมาเพื่อให้เข้ากับความชอบของมนุษย์ ทำให้พวกมันทั้งปลอดภัยและมีประสิทธิภาพมากกว่าโมเดลที่มีอยู่อื่นๆ ที่สามารถเข้าถึงได้โดยทั่วไป การปรับให้เหมาะสมในระดับนี้มักสงวนไว้สำหรับ LLMs ที่ปิด “ผลิตภัณฑ์” เช่น ChatGPT และ BARD ซึ่งไม่ค่อยเปิดให้ตรวจสอบหรือปรับแต่งโดยสาธารณะ

การสำรวจลึกเกี่ยวกับ Llama 2

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

Meta Llama 2 สถาปัตยกรรมการฝึกอบรม

Meta Llama 2 สถาปัตยกรรมการฝึกอบรม

การฝึกอบรมล่วงหน้าและประสิทธิภาพของข้อมูล

นวัตกรรมพื้นฐานของ Llama 2 อยู่ในกระบวนการฝึกอบรมล่วงหน้า โมเดลนี้ได้รับคำแนะนำจากบรรพบุรุษ Llama 1 แต่แนะนำการปรับปรุงหลายอย่างที่สำคัญเพื่อเพิ่มประสิทธิภาพ ไม่น้อยกว่าการเพิ่มขึ้น 40% ในจำนวนโทเค็นที่ฝึกอบรมทั้งหมดและขยายความยาวบริบทเป็นสองเท่า นอกจากนี้ โมเดลยังใช้การดูแลกลุ่ม (GQA) เพื่อเพิ่มความสามารถในการอนุมาน

การปรับให้เหมาะสมแบบมีการกำกับ (SFT) และการเรียนรู้แบบเสริมกำลังด้วยการให้ข้อมูลจากมนุษย์ (RLHF)

Llama-2-Chat ได้รับการปรับให้เหมาะสมอย่างเข้มงวดโดยใช้ทั้ง SFT และ RLHF ในบริบทนี้ SFT เป็นส่วนประกอบสำคัญของโครงสร้าง RLHF โดยปรับให้เหมาะสมกับการตอบสนองของโมเดลให้เข้ากับความชอบและความคาดหวังของมนุษย์มากขึ้น

OpenAI ได้ให้คำอธิบายที่มีประโยชน์เกี่ยวกับวิธีการ SFT และ RLHF ที่ใช้ใน InstructGPT เช่นเดียวกับ LLaMa 2 โมเดลเหล่านี้ใช้เทคนิคการฝึกอบรมที่ซับซ้อนเพื่อปรับปรุงประสิทธิภาพ

ขั้นตอนที่ 1 ในรูปด้านล่างเน้นถึงการปรับให้เหมาะสมแบบมีการกำกับ (SFT) ในขณะที่ขั้นตอนต่อไปจะเสร็จสิ้นกระบวนการ RLHF

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

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

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

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

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

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

Llama 2-Chat ใช้โพรโทคอลการเปรียบเทียบแบบทวินามเพื่อรวบรวมข้อมูลความชอบของมนุษย์ ซึ่งเป็นแนวโน้มที่มุ่งไปสู่แนวทางที่มีคุณภาพมากขึ้น โพรโทคอลนี้ให้ข้อมูลแก่โมเดลรางวัล ซึ่งจะใช้ในการปรับให้เหมาะสมโมเดล AI สำหรับการสนทนา

การดูแลแบบ Ghost: การสนทนาหลายรอบ

Meta ได้แนะนำคุณลักษณะใหม่ เรียกว่า Ghost Attention (GAtt) ซึ่งออกแบบมาเพื่อปรับปรุงประสิทธิภาพของ Llama 2 ในการสนทนาหลายรอบ คุณลักษณะนี้ช่วยแก้ปัญหาเรื่องการสูญเสียบริบทในระหว่างการสนทนา GAtt ทำหน้าที่เหมือน锚ที่เชื่อมคำสั่งเริ่มต้นกับข้อความของผู้ใช้ทั้งหมดที่ตามมา เมื่อรวมกับเทคนิคการเรียนรู้แบบเสริมกำลัง ช่วยให้ผลลัพธ์ที่สอดคล้องกันและเกี่ยวข้องกับผู้ใช้ในระหว่างการสนทนาหลายรอบ

การดาวน์โหลดจาก Meta Git Repository โดยใช้ download.sh

  1. เยี่ยมชมเว็บไซต์ Meta: ไปที่ เว็บไซต์ Llama 2 ของ Meta และคลิก ‘ดาวน์โหลดโมเดล’
  2. กรอกข้อมูล: อ่านและยอมรับข้อกำหนดและเงื่อนไขเพื่อดำเนินการต่อ
  3. ยืนยันทางอีเมล: เมื่อแบบฟอร์มถูกส่งแล้ว คุณจะได้รับอีเมลจาก Meta ที่มีลิงก์สำหรับการดาวน์โหลดโมเดลจากที่เก็บของ Git
  4. เรียกใช้ download.sh: โคลนที่เก็บ Git และเรียกใช้สคริปต์ download.sh สคริปต์นี้จะขอให้คุณยืนยันตัวตนโดยใช้ URL จาก Meta ที่หมดอายุใน 24 ชั่วโมง คุณจะเลือกขนาดของโมเดล – 7B, 13B หรือ 70B

การดาวน์โหลดจาก Hugging

  1. รับอีเมลยืนยัน: หลังจากได้รับการอนุมัติจาก Meta ไปที่ Hugging Face
  2. ขออนุมัติ: เลือกโมเดลที่คุณต้องการและส่งคำขอเพื่อให้ได้รับการอนุมัติ
  3. ยืนยัน: คาดว่าจะได้รับอีเมล ‘ได้รับการอนุมัติ’ ใน 1-2 วัน
  4. สร้างโทเค็นการเข้าถึง: ไปที่ ‘การตั้งค่า’ ในบัญชี Hugging Face ของคุณเพื่อสร้างโทเค็นการเข้าถึง

การเปิดตัว Transformers 4.31 เป็นที่เข้ากันได้กับ LLaMa 2 และเปิดใช้งานเครื่องมือและฟังก์ชันหลายอย่างภายในระบบ Hugging Face ตั้งแต่สคริปต์การฝึกอบรมและการอนุมานไปจนถึงการปรับให้เหมาะสมแบบ 4 บิตด้วย bitsandbytes และการปรับให้เหมาะสมแบบ Parameter Efficient Fine-tuning (PEFT) ชุดเครื่องมือนี้มีความครอบคลุม เพื่อเริ่มต้น คุณต้องแน่ใจว่าคุณใช้การเปิดตัว Transformers ล่าสุดและเข้าสู่ระบบบัญชี Hugging Face ของคุณ

นี่คือคำแนะนำที่กระชับสำหรับการรันการอนุมานโมเดล LLaMa 2 ในสภาพแวดล้อม Google Colab โดยใช้การทำงาน GPU:

Google Colab Model - T4 GPU

Google Colab Model – T4 GPU

 

 

 

 

 

 

การติดตั้งแพ็คเกจ


<p>!pip install transformers
!huggingface-cli login

การนำเข้าไลบรารี Python ที่จำเป็น

from transformers import AutoTokenizer
import transformers
import torch

การเริ่มต้นโมเดลและโทเคไนเซอร์

ในขั้นตอนนี้ ระบุว่าคุณจะใช้โมเดล Llama 2 ใด สำหรับคำแนะนำนี้ เราใช้ meta-llama/Llama-2-7b-chat-hf

model = "meta-llama/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)

การตั้งค่าพายพ์ไลน์

ใช้พายพ์ไลน์ของ Hugging Face สำหรับการสร้างข้อความด้วยการตั้งค่าเฉพาะ:

pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto")

การสร้างลำดับข้อความ

สุดท้าย รันพายพ์ไลน์และสร้างลำดับข้อความตามข้อมูลเข้า:

sequences = pipeline(
'ใครคือผู้ร่วมให้ข้อมูลหลักในด้านปัญญาประดิษฐ์?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200)
for seq in sequences:
print(f"ผลลัพธ์: {seq['generated_text']}")

อินเทอร์เฟซ A16Z สำหรับ LLaMa 2

Andreessen Horowitz (A16Z) ได้เปิดตัวอินเทอร์เฟซแบบ Streamlit สำหรับ Llama 2 ซึ่งจัดเก็บไว้บน GitHub อินเทอร์เฟซนี้รักษาประวัติการสนทนาและให้ความยืดหยุ่นในการเลือกจุดสิ้นสุด API ของ Llama 2 หลายจุดบน Replicate อินเทอร์เฟซที่มุ่งเน้นผู้ใช้นี้มีจุดมุ่งหมายเพื่อทำให้การโต้ตอบกับ Llama 2 ง่ายขึ้น ทั้งสำหรับนักพัฒนาและผู้ใช้สุดท้าย สำหรับผู้ที่สนใจ มีการแสดงตัวอย่างสดที่ Llama2.ai

Llama 2: สิ่งที่ทำให้มันแตกต่างจากโมเดล GPT และรุ่นก่อน Llama 1

ความหลากหลายในขนาด

ไม่เหมือนกับโมเดลภาษาที่ให้ความสามารถในการปรับขนาดที่จำกัด Llama 2 มีตัวเลือกหลายแบบสำหรับโมเดลที่มีพารามิเตอร์ต่างๆ ตั้งแต่ 7 พันล้านไปจนถึง 70 พันล้านพารามิเตอร์ ให้การกำหนดค่าที่หลากหลายเพื่อตอบสนองความต้องการการคำนวณที่แตกต่างกัน

ความยาวบริบทที่เพิ่มขึ้น

โมเดลนี้มีความยาวบริบทที่เพิ่มขึ้นถึง 4K โทเค็น เมื่อเปรียบเทียบกับ Llama 1 ทำให้สามารถรักษาข้อมูลได้มากขึ้น และเพิ่มความสามารถในการเข้าใจและสร้างเนื้อหาที่ซับซ้อนและกว้างขึ้น

การดูแลแบบกลุ่ม (GQA)

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

มาตรฐานการแสดงผล

การวิเคราะห์ประสิทธิภาพเปรียบเทียบของโมเดล Llama 2-Chat กับ ChatGPT และคู่แข่งอื่นๆ

การวิเคราะห์ประสิทธิภาพเปรียบเทียบของโมเดล Llama 2-Chat กับ ChatGPT และคู่แข่งอื่นๆ

Llama 2 ได้ตั้งมาตรฐานใหม่ในด้านการวัดประสิทธิภาพ ไม่เพียงแต่เอาชนะรุ่นก่อนของมันเอง Llama 1 แต่ยังเป็นคู่แข่งที่สำคัญกับโมเดลอื่นๆ เช่น Falcon และ GPT-3.5

โมเดล Llama 2-Chat ที่ใหญ่ที่สุด คือ 70B ยังเอาชนะ ChatGPT ใน 36% ของกรณีและเทียบเท่ากันใน 31.5% ของกรณี อ้างอิงจาก เอกสาร

โอเพ่นซอร์ส: พลังของชุมชน

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

แม้ว่าเงื่อนไขการให้ใบอนุญาตของ LLaMa 2 จะมีความยืดหยุ่นโดยทั่วไป แต่ก็มีข้อยกเว้นที่ มีอยู่ บริษัทขนาดใหญ่ที่มีผู้ใช้มากกว่า 700 ล้านคนต่อเดือน เช่น Google ต้องการการอนุมัติจาก Meta เพื่อใช้งาน ใบอนุญาตยังห้ามการใช้ LLaMa 2 เพื่อปรับปรุงโมเดลภาษาอื่นๆ

ความท้าทายในปัจจุบันกับ Llama 2

  1. การสร้างแบบจำลองข้อมูล: ทั้ง Llama 2 และ GPT-4 บางครั้งอาจไม่แสดงผลลัพธ์ที่สูงและสม่ำเสมอในงานที่หลากหลาย คุณภาพและความหลากหลายของข้อมูลมีความสำคัญไม่แพ้ปริมาณในสถานการณ์เหล่านี้
  2. ความโปร่งใสของโมเดล: เมื่อพิจารณาจากปัญหาในอดีตเกี่ยวกับ AI ที่สร้างผลลัพธ์ที่ทำให้เข้าใจผิด การสำรวจเหตุผลเบื้องหลังการตัดสินใจของโมเดลที่ซับซ้อนเหล่านี้จึงมีความสำคัญ

Code Llama – การเปิดตัวล่าสุดของ Meta

Meta ได้ประกาศ Code Llama ซึ่งเป็นโมเดลภาษาขนาดใหญ่ที่เชี่ยวชาญด้านการเขียนโปรแกรม โดยมีขนาดพารามิเตอร์ตั้งแต่ 7B ถึง 34B เช่นเดียวกับ ChatGPT Code Interpreter Code Llama สามารถทำให้กระบวนการทำงานของนักพัฒนาเร็วขึ้นและทำให้การเขียนโปรแกรมเป็นมิตรมากขึ้น มันรองรับหลายภาษาโปรแกรมมิ่งและมีรูปแบบเฉพาะสำหรับงานเฉพาะ เช่น Code Llama–Python สำหรับงานที่เกี่ยวข้องกับ Python โมเดลนี้ยังมีระดับการทำงานที่แตกต่างกันเพื่อตอบสนองความต้องการความหน่วงต่างๆ โมเดลที่เปิดกว้างนี้ช่วยให้ชุมชนสามารถมีส่วนร่วมในการปรับปรุงอย่างต่อเนื่อง

https://about.fb.com/news/2023/08/code-llama-ai-for-coding/

สรุป

บทความนี้ได้นำคุณผ่านขั้นตอนการตั้งค่าโมเดล Llama 2 สำหรับการสร้างข้อความบน Google Colab โดยใช้ Hugging Face Llama 2 มีประสิทธิภาพที่ขับเคลื่อนด้วยเทคนิคที่ซับซ้อน ตั้งแต่สถาปัตยกรรมทรานส์ฟอร์เมอร์แบบอัตโนมัติไปจนถึงการเรียนรู้แบบเสริมกำลังด้วยการให้ข้อมูลจากมนุษย์ (RLHF) โดยมีพารามิเตอร์สูงสุด 70 พันล้านและคุณลักษณะเช่น Ghost Attention โมเดลนี้สามารถเอาชนะมาตรฐานอุตสาหกรรมในปัจจุบันในบางด้าน และด้วยธรรมชาติที่เปิดกว้าง มันจะเปิดทางให้เกิดยุคใหม่ในด้านการเข้าใจและสร้างภาษาธรรมชาติ

ฉันใช้เวลาที่ผ่านมา 5 ปีในการศึกษาสิ่งที่น่าสนใจเกี่ยวกับ Machine Learning และ Deep Learning ความเชี่ยวชาญและความหลงใหลของฉันทำให้ฉันเข้าร่วมในโครงการพัฒนาซอฟต์แวร์มากกว่า 50 โครงการที่มีความหลากหลาย โดยมุ่งเน้นไปที่ AI/ML ความอยากรู้อยากเห็นของฉันยังทำให้ฉันสนใจในด้าน Natural Language Processing ซึ่งเป็นสาขาที่ฉันต้องการสำรวจต่อไป