การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุด - KDnuggets

การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุด – KDnuggets

โหนดต้นทาง: 3084992

การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุด
ภาพถ่ายโดย Google DeepMind
 

ปี 2023 เป็นปีแห่งโมเดลภาษาขนาดใหญ่และโอเพ่นซอร์ส บริษัทสตาร์ทอัพและบริษัทหลายแห่งใช้โมเดลและน้ำหนักแบบโอเพ่นซอร์สเพื่อต่อสู้กับ LLM ที่เป็นกรรมสิทธิ์ เช่น ChatGPT และ Claude บริษัทและโมเดลที่สำคัญบางส่วน (โอเพ่นซอร์ส) สำหรับปี 2023 ได้แก่:

  • เมตา (LLama, LLamav2)
  • ทีไอ (ฟอลคอน 7B, 40B, 180B)
  • มิสทรัล (มิสทรัล 7B, มิกซ์ทรัล8x7B)

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

 

การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุด
การเปรียบเทียบ Mistral-7B จาก มิสทรัล.ไอ
 

อย่างไรก็ตาม โมเดลขนาดเล็กเหล่านี้ยังคงตอบสนองได้ไม่ดีนักต่อการแจ้งเตือนตามธรรมชาติ และจำเป็นต้องมีวิศวกรรมการตอบสนองที่ดี 

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

Zephyr เป็น Mistral-7B เวอร์ชันที่สอดคล้องกัน ซึ่งสร้างขึ้นด้วยพลังของการกลั่นเป็นหลัก และเทียบได้กับรุ่น 70B ในเกณฑ์มาตรฐานทางวิชาการและการสนทนา

 

การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุดเปรียบเทียบประสิทธิภาพของ Zephyr-7B | แหล่งที่มา: กระดาษเซเฟอร์

Key Features

เหตุผลเบื้องหลังประสิทธิภาพที่โดดเด่นของ Zephyr คือ 4 เทคนิคสำคัญที่ทีม H4 ใช้

  1. การสร้างข้อมูลด้วยตนเองและ DSFT (การปรับแต่งแบบละเอียดภายใต้การดูแลแบบกลั่น)
  2. การรวบรวมข้อเสนอแนะ
  3. DDPO (การเพิ่มประสิทธิภาพการตั้งค่าโดยตรงแบบกลั่น) ของโมเดล DSFT

การสร้างข้อมูลด้วยตนเองและ DSFT

ตามธรรมเนียม การปรับแต่งแบบละเอียดภายใต้การดูแล (SFT) ดำเนินการกับโมเดลภาษาขนาดใหญ่ผ่านคู่คำสั่งที่สมบูรณ์คุณภาพสูง การสร้างข้อมูลนี้มีค่าใช้จ่ายสูงและต้องมีการควบคุมดูแลโดยมนุษย์ (Chung et al., 2022; Sanh et al., 2021) 

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

 

การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุด
ไปป์ไลน์สอนตนเอง | แหล่งที่มา: กระดาษแนะนำตนเอง
 

ทีม H4 ใช้ Zephyr เพื่อสร้างชุดข้อมูลคุณภาพสูงที่ได้รับการดูแล (คำสั่ง การทำให้สมบูรณ์) ซึ่งใช้สำหรับการทำ DSFT (การฝึกอบรมแบบจำลองเกี่ยวกับคำแนะนำ/ความสำเร็จที่สร้างขึ้นเป็นรูปแบบหนึ่งของการกลั่นที่เรียกว่า DSFT: การปรับแต่งแบบละเอียดภายใต้การดูแลแบบกลั่น)

คอลเลกชันข้อเสนอแนะ

โดยทั่วไปโมเดลภาษาขนาดใหญ่จะสอดคล้องกันด้วยความช่วยเหลือของ การเรียนรู้การเสริมแรงจากความคิดเห็นของมนุษย์ (RLHF). Zephyr แทนที่จะใช้ผลตอบรับจากโมเดลครูที่ดีกว่า (เช่น GPT-4) เพื่อจัดความสนใจของโมเดล ตามแนวทางของ Ultra Feedback 

 

การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุด
กระบวนการสร้าง UltraFeedback | แหล่งที่มา: กระดาษ UltraFeedback
 

วิธีการทำงานคือแต่ละพร้อมท์ที่ได้รับการดูแลจาก SFT จะถูกส่งผ่านไปยัง 4 รุ่น (Claude, LLama, Falcon ฯลฯ) และการตอบสนองทั้ง 4 รายการจากพร้อมท์เดียวจะได้รับคะแนนด้วยความช่วยเหลือของ GPT-4 ตอนนี้เรามีชุดข้อมูลของอินพุต (x) การให้คะแนนสูงสุดที่สำเร็จ (yw) และพรอมต์สุ่มแสดงว่าการให้คะแนนที่สำเร็จต่ำ (yl) กล่าวคือ เรามีแฝดสามของ (x, yw, yl)

การเพิ่มประสิทธิภาพการตั้งค่า

เป้าหมายของขั้นตอนสุดท้ายนี้คือการเพิ่มความพึงพอใจของโมเดลให้สูงสุดจาก yw (คะแนนสูงสุดที่ทำได้สำเร็จ) มากกว่า yl (คะแนนที่ต่ำที่สุด) นี้จะเสร็จสิ้นโดยใช้ อ.ส.ค. (การเพิ่มประสิทธิภาพการตั้งค่าโดยตรง). การใช้ DPO นั้นง่ายกว่าการใช้ RLHF ธรรมดา และโดยธรรมชาติแล้วมันทำงานได้ดีกว่า RLHF แนวทางในกรณีนี้เรียกว่า ดี.โอ เนื่องจากใช้ชุดข้อมูลกลั่นที่สร้างขึ้นด้วยความช่วยเหลือของโมเดลครู

 

การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุดอ.ส.ค. กับ RLHF | แหล่งที่มา: กระดาษเซเฟอร์
 

อัลกอริธึมโดยรวมมีลักษณะดังนี้:

 

การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุด
 

และสามารถแปลเป็นขั้นตอนได้ดังนี้

  1. คำนวณความน่าจะเป็นสำหรับ (x, yw) และ (x, yl) จากแบบจำลอง dSFT (ส่งต่อเท่านั้น)
  2. คำนวณความน่าจะเป็นสำหรับ (x, yw) และ (x, yl) จากแบบจำลอง dDPO
  3. คำนวณ Eq 1 และเผยแพร่ย้อนกลับเพื่ออัปเดต ทำซ้ำ

โมเดลพื้นฐานที่ Zephyr ใช้คือ Mistral-7B ซึ่งเป็นโอเพ่นซอร์สที่ล้ำสมัยในขณะที่เปิดตัว พวกเขาใช้ TRL ไลบรารีสำหรับการปรับแต่งและการจัดตำแหน่ง Deep-Speed ​​Zero 3 และ Flash-Attention 2 ถูกนำมาใช้เพื่อเพิ่มประสิทธิภาพและเร่งความเร็วการฝึกอบรม และใช้ GPU ได้อย่างเต็มที่ แบบจำลองเหล่านี้ได้รับการฝึกอบรมโดยใช้เครื่องมือเพิ่มประสิทธิภาพ AdamW และไม่มีการใช้น้ำหนักลดลง การทดลองทั้งหมดดำเนินการบน A16 จำนวน 100 เครื่องโดยใช้ความแม่นยำ bfloat16 และโดยทั่วไปจะใช้เวลา 2–4 ชั่วโมงจึงจะเสร็จสมบูรณ์ คุณสามารถอ้างถึง กระดาษต้นฉบับ สำหรับรายละเอียดเชิงลึกเกี่ยวกับขั้นตอนการฝึกอบรมของ Zephyr

ทีม Zephyr ผสมผสานเทคนิคที่ดีที่สุดในการฝึกอบรมโมเดลภาษาขนาดใหญ่ และจับคู่ประสิทธิภาพของโมเดล 40B ด้วยพารามิเตอร์เพียง 7B และจับคู่ 70B สำหรับโมเดลแชท

 

การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุดการเปรียบเทียบ Zephyr กับ LLM อื่น ๆ | แหล่งที่มา: กระดาษเซเฟอร์
การสำรวจ Zephyr 7B: คู่มือฉบับสมบูรณ์สำหรับโมเดลภาษาขนาดใหญ่ล่าสุดการเปรียบเทียบ Zephyr กับ LLM อื่น ๆ | แหล่งที่มา: กระดาษเซเฟอร์

โมเดล Zephyr เผยแพร่ต่อสาธารณะบน Hugging Face และสามารถใช้ได้เหมือนกับโมเดลภาษาอื่นๆ

import torch
from transformers import pipeline

pipe = pipeline("text-generation",
                model="HuggingFaceH4/zephyr-7b-alpha",  # can also use the beta model
                torch_dtype=torch.bfloat16,
                device_map="auto")

# We use the tokenizer's chat template to format each message - see https://huggingface.co/docs/transformers/main/en/chat_templating
messages = [
   {
       "role": "system",
       "content": "You are a friendly chatbot who always responds in the style of a pirate",
   },
   {"role": "user", "content": "How many helicopters can a human eat in one sitting?"},
]
prompt = pipe.tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipe(prompt, max_new_tokens=256, do_sample=True, temperature=0.7, top_k=50, top_p=0.95)
print(outputs[0]["generated_text"])

Output:

|system|>
You are a friendly chatbot who always responds in the style of a pirate.
|user|>
How many helicopters can a human eat in one sitting?
|assistant|>
Ah, me hearty matey! But yer question be a puzzler! A human cannot eat a helicopter in one sitting, as helicopters are not edible. They be made of metal, plastic, and other materials, not food!

Zephyr-7B เป็นรุ่นขนาดเล็กที่แสดงพลังของการกลั่นจาก LLM ไปสู่รุ่นที่มีขนาดเล็กกว่า ผลลัพธ์ที่ได้คือโมเดล ZEPHYR-7B ซึ่งใช้ MISTRAL-7B ทำให้เกิดความล้ำหน้าใหม่สำหรับโมเดลแชทพารามิเตอร์ 7B และยังมีประสิทธิภาพเหนือกว่า LLAMA2-CHAT-70B บน MT-Bench อีกด้วย

อ้างอิง

  1. Zephyr: การกลั่นโดยตรงของ LM Alignment (https://arxiv.org/abs/2310.16944)
  2. บล็อก HuggingFace Zephyr (https://huggingface.co/blog/Isamu136/understanding-zephyr)  
  3. การสอนด้วยตนเอง: https://arxiv.org/abs/2212.10560
  4. ข้อเสนอแนะพิเศษ: https://arxiv.org/abs/2310.01377

 
 

อาหมัด อานิส เป็นวิศวกรด้านแมชชีนเลิร์นนิงผู้หลงใหลและนักวิจัยที่ทำงานอยู่ในปัจจุบัน redbuffer.ai. นอกเหนือจากงานประจำวันของเขา Ahmad ยังมีส่วนร่วมอย่างแข็งขันกับชุมชนแมชชีนเลิร์นนิง เขาทำหน้าที่เป็นผู้นำระดับภูมิภาคของ Cohere for AI ซึ่งเป็นองค์กรไม่แสวงผลกำไรที่อุทิศตนเพื่อวิทยาศาสตร์แบบเปิด และเป็นผู้สร้างชุมชน AWS Ahmad เป็นผู้มีส่วนร่วมที่ Stackoverflow โดยเขามีคะแนนมากกว่า 2300 คะแนน เขาได้มีส่วนร่วมในโครงการโอเพ่นซอร์สที่มีชื่อเสียงมากมาย รวมถึง Shap-E โดย OpenAI

ประทับเวลา:

เพิ่มเติมจาก KD นักเก็ต