| | --- |
| | language: ru |
| | tags: |
| | - reinforcement-learning |
| | - grpo |
| | - qwen2.5 |
| | - lis |
| | license: other |
| | base_model: Qwen/Qwen2.5-1.5B-Instruct |
| | --- |
| | |
| | # GRPO LIS agent (Week 2) |
| |
|
| | Это модель, дообученная с помощью GRPO (RL) на среде **Longest Increasing Subsequence (LIS)**: |
| | по заданной последовательности целых чисел нужно вернуть длину LIS. |
| |
|
| | ## Важно про формат ответа |
| |
|
| | Системный промпт (должен совпадать с train/eval): |
| |
|
| | ```text |
| | Отвечай в следующем формате: |
| | <think> |
| | ... |
| | </think> |
| | <answer> |
| | ... |
| | </answer> |
| | ``` |
| |
|
| | ## Датасеты для оценки |
| |
|
| | Фиксированные test/dev наборы, сгенерированные в train-ноутбуке, опубликованы тут: |
| | - `None` |
| |
|
| | ## Быстрый пример инференса (Transformers) |
| |
|
| | ```python |
| | from transformers import AutoTokenizer, AutoModelForCausalLM |
| | import torch |
| | |
| | repo = "elativus/AI-SelectedTopics-W2" |
| | tok = AutoTokenizer.from_pretrained(repo) |
| | model = AutoModelForCausalLM.from_pretrained(repo, torch_dtype=torch.float16, device_map="auto") |
| | |
| | user_prompt = "..." # вопрос из датасета (одна задача) |
| | messages = [ |
| | {"role": "system", "content": 'Отвечай в следующем формате:\n<think>\n...\n</think>\n<answer>\n...\n</answer>'}, |
| | {"role": "user", "content": user_prompt}, |
| | ] |
| | prompt = tok.apply_chat_template(messages, tokenize=False, add_generation_prompt=True) |
| | |
| | inputs = tok(prompt, return_tensors="pt").to(model.device) |
| | out = model.generate(**inputs, max_new_tokens=64, do_sample=False) |
| | print(tok.decode(out[0], skip_special_tokens=True)) |
| | ``` |
| |
|