File size: 1,727 Bytes
6f081f8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
---
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))
```