227K subscribers
3.79K photos
632 videos
17 files
4.45K links
Погружаемся в машинное обучение и Data Science

Показываем как запускать любые LLm на пальцах.

По всем вопросам - @haarrp

@itchannels_telegram -🔥best channels

Реестр РКН: clck.ru/3Fmqri
Download Telegram
🌟 Llama3-SWE-RL: Методика обучения LLM для задач разработки ПО с использованием RL.

SWE-RL – техника обучения LLM для задач разработки программного обеспечения с применением обучения с подкреплением на данных открытых репозиториев Github.

Llama3-SWE-RL наделяет навыкам ризонинга, улучшая результаты на задачах вне общего домена кодинга: функциональное программирование, использование библиотек, планирование кода, математические операции и NLP. В отличие от SFT, SWE-RL позволяет модели улучшать свои общие способности рассуждения.

Пайплайн методики состоит из последовательности этапов:

🟢Первый этап - сбор, модерация и агрегирование pull requests из публичных репозиториев Github, разметка и преобразование этого массива в датасет (описание проблемы-контекст кода - "oracle patch")

Oracle patch - это эталонный вариант исправления кода, используемый для обучения и оценки языковых моделей в задачах, связанных с автоматическим решением проблем в программном обеспечении


🟢Второй этап: обучение LLM навыкам генерации кода на основе задачи и контекста, расчет поощрения для RL (тут используют similarity score между инференсом модели и "oracle patch" с использованием difflib.SequenceMatcher. Неверные ответы получают отрицательный reward)

🟢Третий этап: корректировка и оптимизация политики обучения с помощью GPRO.

Тестовая модель 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)


📌Лицензирование: CC-NC-4.0 License.


🟡Arxiv
🖥GitHub


@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
👍355🔥5