💡متد Llama3-SWE-RL: یه روش جدید برای آموزش مدلهای هوش مصنوعی در کارهای برنامهنویسی با استفاده از یادگیری تقویتی.
ایده اصلی SWE-RL اینه که از پروژههای اوپن سورس گیتهاب برای آموزش مدل استفاده میکنه تا بتونه تو کارهای مهندسی نرمافزار بهتر عمل کنه.
تفاوت Llama3-SWE-RL با روشهای قدیمی اینه که فقط کدزنی معمولی یاد نمیده! بلکه مهارتهایی مثل:
▪️برنامهنویسی تابعی
▪️کار با کتابخونهها
▪️برنامهریزی برای کدها
▪️عملیات ریاضی
▪️پردازش زبان طبیعی
رو هم تقویت میکنه. این روش باعث میشه مدل بتونه مسائل پیچیدهتر رو هم حل کنه.
🗂 مراحل کار به ترتیب ایناست:
🟢مرحله اول: جمعآوری و آمادهسازی داده از پروژههای گیتهاب
▪️میان PRها رو بررسی میکنن
▪️به صورت دیتاست درمیارنشون (شرح مسئله + کد + وصله استاندارد)
* وصله استاندارد (Oracle Patch) همون کد درستیه که مدل باید بهش برسه
🟢مرحله دوم: آموزش مدل برای تولید کد
▪️به مدل پاداش میدن اگه کدش شبیه وصله استاندارد باشه
▪️از کتابخونه difflib برای مقایسه کدها استفاده میشه
▪️اگه جواب اشتباه بده جریمه میشه!
🟢مرحله سوم: بهینهسازی آموزش با روش GPRO
‼️نتایج جالب:
مدل Llama3-SWE-RL-70B که روی Llama-3.3-70B-Instruct آموزش داده شده، توی آزمون SWE-bench نمره 41.0% گرفته که بین مدلهای متوسط (زیر 100B پارامتر) بهترینه و حتی با GPT-4o رقابت میکنه!
✅اگه خواستی خودت امتحان کنی:
نصب و استفاده:
# نصب کتابخونه
git clone https://github.com/facebookresearch/swe-rl && cd swe-rl
pip install -e ".[dev]"
pytest
مثال کد پایتون برای محاسبه پاداش:
import swerl
file = """
def sort_list(lst):
return sorted(lst)
""".strip()
oracle_file = """
def sort_list(lst: list[int]) -> list[int]:
return sorted(lst)
""".strip()
# محاسبه شباهت کدها
reward, metadata = swerl.core.reward.calculate_search_replace_reward(context, oracle, output)
print(metadata) # پاداش میشه 1.0 چون کدها دقیقاً مطابقت دارن
📌مجوز استفاده: CC-NC-4.0 (غیرتجاری)
ایده اصلی SWE-RL اینه که از پروژههای اوپن سورس گیتهاب برای آموزش مدل استفاده میکنه تا بتونه تو کارهای مهندسی نرمافزار بهتر عمل کنه.
تفاوت Llama3-SWE-RL با روشهای قدیمی اینه که فقط کدزنی معمولی یاد نمیده! بلکه مهارتهایی مثل:
▪️برنامهنویسی تابعی
▪️کار با کتابخونهها
▪️برنامهریزی برای کدها
▪️عملیات ریاضی
▪️پردازش زبان طبیعی
رو هم تقویت میکنه. این روش باعث میشه مدل بتونه مسائل پیچیدهتر رو هم حل کنه.
🗂 مراحل کار به ترتیب ایناست:
🟢مرحله اول: جمعآوری و آمادهسازی داده از پروژههای گیتهاب
▪️میان PRها رو بررسی میکنن
▪️به صورت دیتاست درمیارنشون (شرح مسئله + کد + وصله استاندارد)
* وصله استاندارد (Oracle Patch) همون کد درستیه که مدل باید بهش برسه
🟢مرحله دوم: آموزش مدل برای تولید کد
▪️به مدل پاداش میدن اگه کدش شبیه وصله استاندارد باشه
▪️از کتابخونه difflib برای مقایسه کدها استفاده میشه
▪️اگه جواب اشتباه بده جریمه میشه!
🟢مرحله سوم: بهینهسازی آموزش با روش GPRO
‼️نتایج جالب:
مدل Llama3-SWE-RL-70B که روی Llama-3.3-70B-Instruct آموزش داده شده، توی آزمون SWE-bench نمره 41.0% گرفته که بین مدلهای متوسط (زیر 100B پارامتر) بهترینه و حتی با GPT-4o رقابت میکنه!
✅اگه خواستی خودت امتحان کنی:
نصب و استفاده:
# نصب کتابخونه
git clone https://github.com/facebookresearch/swe-rl && cd swe-rl
pip install -e ".[dev]"
pytest
مثال کد پایتون برای محاسبه پاداش:
import swerl
file = """
def sort_list(lst):
return sorted(lst)
""".strip()
oracle_file = """
def sort_list(lst: list[int]) -> list[int]:
return sorted(lst)
""".strip()
# محاسبه شباهت کدها
reward, metadata = swerl.core.reward.calculate_search_replace_reward(context, oracle, output)
print(metadata) # پاداش میشه 1.0 چون کدها دقیقاً مطابقت دارن
📌مجوز استفاده: CC-NC-4.0 (غیرتجاری)