کاوش در Zephyr 7B: راهنمای جامع برای آخرین مدل زبان بزرگ - KDnuggets

کاوش در Zephyr 7B: راهنمای جامع برای آخرین مدل زبان بزرگ - KDnuggets

گره منبع: 3084992

کاوش در Zephyr 7B: راهنمای جامع برای آخرین مدل زبان بزرگ
عکس Google DeepMind
 

سال 2023 سال مدل های زبان بزرگ و منبع باز بود. بسیاری از استارت‌آپ‌ها و شرکت‌ها، مدل‌ها و وزن‌های خود را به‌منظور مبارزه با LLM‌های اختصاصی مانند ChatGPT و Claude به‌صورت متن‌باز تهیه کردند. برخی از شرکت ها و مدل های مهم (متن باز) برای سال 2023 عبارت بودند از:

  • متا (LLama، LLamav2)
  • TII (Falcon 7B, 40B, 180B)
  • Mistral (Mistral 7B، Mixtral8x7B)

با این حال، یک مدل 7B که استقرار نسبتاً آسان و ارزان‌تری دارد، با مدل‌های بزرگ‌تر مانند 70B برابری نمی‌کند. قوی ترین رقیب منبع باز Mistral 7B بود که از بسیاری از مدل های بزرگتر بهتر بود.

 

کاوش در Zephyr 7B: راهنمای جامع برای آخرین مدل زبان بزرگ
مقایسه Mistral-7B از Mistral.ai
 

با این حال، این مدل‌های کوچک هنوز به خوبی به درخواست‌های طبیعی پاسخ نمی‌دهند و نیاز به مهندسی سریع دارند. 

Zephyr 7B مدلی است که توسط تیم HuggingFace H4 (Helpful, Honest, Harmless, Huggy) ساخته شده است که هدف اصلی آن ایجاد یک مدل زبان کوچکتر است که با هدف کاربر همسو باشد و حتی از مدل های بزرگتر بهتر عمل کند.

Zephyr یک نسخه هم تراز از Mistral-7B است که عمدتاً با قدرت تقطیر ایجاد شده است و در معیارهای آکادمیک و محاوره ای با مدل های 70B قابل مقایسه است.

 

کاوش در Zephyr 7B: راهنمای جامع برای آخرین مدل زبان بزرگمقایسه عملکرد Zephyr-7B | منبع: کاغذ زفیر

ویژگی های کلیدی

دلیل عملکرد فوق العاده Zephyr این 4 تکنیک کلیدی است که تیم H4 از آنها استفاده کرده است.

  1. ایجاد داده های خودآموز و DSFT (تنظیم دقیق تحت نظارت مقطر)
  2. مجموعه بازخورد
  3. DDPO (بهینه سازی ترجیح مستقیم مقطر) مدل DSFT

خودآموزی ایجاد داده و DSFT

به طور سنتی تنظیم دقیق نظارت شده (SFT) بر روی یک مدل زبان بزرگ از طریق یک جفت تکمیل دستورالعمل با کیفیت بالا انجام می شود. ساخت این داده ها پرهزینه است و نیاز به نظارت انسانی دارد (چانگ و همکاران، 2022؛ سان و همکاران، 2021). 

یکی از رویکردهای جالب در اینجا استفاده از مدل معلم (LLM قبلاً آموزش دیده) برای تولید دستورالعمل ها و پاسخ ها است. این روش تقطیر برای اولین بار در آلپاکا مورد استفاده قرار گرفت (Taori et al., 2023) که ثابت کرد یک مدل کوچک می تواند از مدل های بزرگتر با تنظیم دقیق تحت نظارت مقطر.

 

کاوش در Zephyr 7B: راهنمای جامع برای آخرین مدل زبان بزرگ
خط لوله خودآموز | منبع: مقاله خودآموزی
 

تیم H4 از Zephyr برای ساخت مجموعه داده های نظارت شده با کیفیت بالا (دستورالعمل، تکمیل) استفاده کرد که برای انجام DSFT استفاده شد. (آموزش یک مدل در مورد دستورالعمل ها/تکمیل های تولید شده نوعی تقطیر است که به نام DSFT: Distilled Supervised Fine-Tuning شناخته می شود).

مجموعه بازخورد

مدل های زبان بزرگ معمولاً با کمک تراز می شوند یادگیری تقویتی از بازخورد انسانی (RLHF). Zephyr در عوض از بازخورد یک مدل معلم بهتر (مانند GPT-4) استفاده می‌کند تا علایق مدل را مطابق با رویکرد Ultra Feedback انجام دهد. 

 

کاوش در Zephyr 7B: راهنمای جامع برای آخرین مدل زبان بزرگ
فرآیند ساخت UltraFeedback | منبع: مقاله UltraFeedback
 

روش کار به این صورت است که هر فرمان نظارت شده سریع از SFT به 4 مدل (کلود، LLama، فالکون و غیره) ارسال می شود و هر یک از 4 پاسخ در برابر یک فرمان واحد با کمک GPT-4 امتیازدهی می شود. اکنون مجموعه داده‌ای داریم که شامل یک ورودی (x)، تکمیل با بالاترین امتیاز (yw) و یک اعلان تصادفی است که با امتیاز کم (yl) نشان داده می‌شود، یعنی یک سه‌گانه (x، yw، yl) داریم.

بهینه سازی اولویت

هدف این مرحله آخر، به حداکثر رساندن ترجیح مدل از yw (بالاترین امتیاز کامل) بر yl (تکمیل با امتیاز کم) است. این کار با استفاده از DPO (بهینه سازی اولویت مستقیم). استفاده از DPO ساده تر از استفاده از RLHF ساده است و به طور شهودی بهتر از RLHF عمل می کند. رویکرد در این مورد به عنوان شناخته شده است dDPO زیرا از یک مجموعه داده مقطر تولید شده با کمک یک مدل معلم استفاده می کند.

 

کاوش در Zephyr 7B: راهنمای جامع برای آخرین مدل زبان بزرگDPO در مقابل RLHF | منبع: کاغذ زفیر
 

الگوریتم کلی تا حدودی شبیه به این است:

 

کاوش در Zephyr 7B: راهنمای جامع برای آخرین مدل زبان بزرگ
 

و می تواند به مراحل زیر ترجمه شود:

  1. احتمال (x, yw) و (x, yl) را از مدل dSFT (فقط به جلو) محاسبه کنید.
  2. احتمال (x, yw) و (x, yl) را از مدل dDPO محاسبه کنید.
  3. معادله 1 را محاسبه کرده و برای به روز رسانی مجدد منتشر کنید. تکرار

مدل پایه ای که Zephyr استفاده کرد، Mistral-7B است که در زمان عرضه، منبع باز پیشرفته بود. آنها استفاده کردند TRL کتابخانه برای تنظیم دقیق و تراز. Deep-Speed ​​Zero 3 و Flash-Attention 2 برای بهینه سازی و سرعت بخشیدن به آموزش و استفاده کامل از GPU استفاده شد. مدل ها با استفاده از بهینه ساز AdamW آموزش داده شدند و از کاهش وزن استفاده نشد. تمام آزمایش‌ها بر روی 16 A100 با استفاده از دقت 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"])

خروجی:

|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. UltraFeedback: https://arxiv.org/abs/2310.01377

 
 

احمد انیس یک مهندس و محقق پرشور یادگیری ماشین است که در حال حاضر مشغول به کار است redbuffer.ai. احمد فراتر از شغل روزانه خود، فعالانه با جامعه یادگیری ماشینی تعامل دارد. او به عنوان یک رهبر منطقه‌ای برای Cohere for AI، یک سازمان غیرانتفاعی که به علم باز اختصاص دارد، و یک سازنده جامعه AWS است. احمد یک مشارکت کننده فعال در Stackoverflow است که بیش از 2300 امتیاز دارد. او در بسیاری از پروژه های منبع باز معروف، از جمله Shap-E توسط OpenAI مشارکت داشته است.

تمبر زمان:

بیشتر از kdnuggets