معرفی متود RLOO

در سال 2024، تیم‌های مبتکر در Hugging Face یک الگوریتم جدید به نام RLOO (REINFORCE Leave One-Out) را معرفی کردند که جایگزینی ساده‌تر و کم‌حافظه‌تر برای الگوریتم معروف PPO است. این تمرین به‌صورت آنلاین (online) طراحی شده و با کاهش مصرف حافظه گرافیک کارت (GPU) و زمان محاسباتی، به پژوهشگران امکان می‌دهد مدل‌های خود را سریع‌تر و با کمترین منابع آموزش دهند.

مقایسه با PPO و دیگر متودهای RLHF

یک سری مطالعات نشان داده‌اند که متودهای آنلاین مانند RLOO و PPO در مقایسه با متودهای آفلاین مثل DPO، عملکرد بهتری دارند. در حالی که PPO به دلیل نیاز به بارگذاری چندین نسخه از مدل در حافظه، مصرف حافظه بالایی دارد، RLOO با حذف تکثیر مدل و استفاده از Leave-One-Out، مصرف حافظه را تا ۴۰٪ کاهش می‌دهد. همچنین زمان لازم برای همگرایی مدل نیز ۳۰٪ کمتر است.

چگونه RLOO را در TRL استفاده کنیم؟

برای استفاده از RLOO کافی است کتابخانه TRL را نصب کرده و از کلاس RLOOTrainer به‌جای PPOTrainer استفاده کنید. تنظیمات اولیه شامل تعیین نرخ یادگیری، حداکثر تعداد گام و دکمه‌های تنظیم پویا برای متد Leave-One-Out است. مثال ساده:

from trl import RLOOTrainer, AutoModelForCausalLM, AutoTokenizer model = AutoModelForCausalLM.from_pretrained("model-name") tokenizer = AutoTokenizer.from_pretrained("model-name") trainer = RLOOTrainer(model=model, tokenizer=tokenizer, learning_rate=5e-6) trainer.train() # فرآیند همگرایی

در ادامه، ما به برخی مزایای کلیدی RLOO اشاره می‌کنیم:

  • کمترین مصرف حافظه گرافیک کارت نسبت به PPO و DPO
  • سرعت همگرایی ۳۰٪ بیشتر
  • پیاده‌سازی ساده‌تری در محیط‌های توسعه متن‌باز
  • دسترس‌پذیر بودن برای پژوهشگران داخلی و بین‌المللی

پرسش‌های پرتکرار

RLOO در مقایسه با PPO چه مزایایی دارد؟

RLOO مصرف حافظه گرافیک کارت را تا ۴۰٪ کاهش می‌دهد و زمان همگرایی را ۳۰٪ کوتاه‌تر می‌کند. این امر باعث می‌شود که آموزش مدل‌ها سریع‌تر و کم‌هزینه‌تر باشد.

آیا RLOO برای همه‌ی مدل‌های زبان قابل استفاده است؟

خیر، RLOO به‌خصوص برای مدل‌های بزرگ که در محیط‌های متن‌باز آموزش می‌گیرند مناسب است. برای مدل‌های کوچک یا مدل‌های خاص، ممکن است تنظیمات خاصی نیاز باشد.