SWE-RL – техника обучения LLM для задач разработки программного обеспечения с применением обучения с подкреплением на данных открытых репозиториев Github.
Llama3-SWE-RL наделяет навыкам ризонинга, улучшая результаты на задачах вне общего домена кодинга: функциональное программирование, использование библиотек, планирование кода, математические операции и NLP. В отличие от SFT, SWE-RL позволяет модели улучшать свои общие способности рассуждения.
Пайплайн методики состоит из последовательности этапов:
Oracle patch - это эталонный вариант исправления кода, используемый для обучения и оценки языковых моделей в задачах, связанных с автоматическим решением проблем в программном обеспечении
Тестовая модель Llama3-SWE-RL-70B, обученная на основе Llama-3.3-70B-Instruct с использованием SWE-RL, показала 41.0% solve rate на SWE-bench Verified, это лучший показатель среди моделей среднего размера (<100B) и сопоставимо с результатом GPT-4o.
Прикладная реализация SWE-RL доступна в репозитории проекта, где разработчиками представлены шаблоны промптов и реализация функции вознаграждения на основе сходства последовательностей.
# Install SWE-RL
git clone https://github.com/facebookresearch/swe-rl && cd swe-rl
pip install -e ".[dev]"
pytest
# example on how you can use the reward function in your own project:
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()
context = {"example.py": file}
oracle = {"example.py": oracle_file}
output = """
<think>
...thoughts by LLM
</think>
<solution>
```python
### example.py
<<<<<<< SEARCH
def sort_list(lst):
=======
def sort_list(lst: list[int]) -> list[int]:
>>>>>>> REPLACE
</solution>
""".strip()
reward, metadata = swerl.core.reward.calculate_search_replace_reward(context, oracle, output)
assert reward == 1.0
print(metadata)
@ai_machinelearning_big_data
#AI #ML #LLM #RL #SWERL
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35❤5🔥5