File size: 3,853 Bytes
7f9b61a
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
---
license: llama3
language:
- tr
base_model:
- ytu-ce-cosmos/Turkish-Llama-8b-DPO-v0.1
pipeline_tag: text-generation
tags:
- unsloth
- trl
- grpo
---

<img src="https://huggingface.co/Metin/LLaMA-3-8B-GRPO-Finance-Math-TR/resolve/main/a_llamazing_mind.png"
alt="Movie Poster for The Model" width="800"/>

# LLaMA-3-8B-GRPO-Finance-Math-TR

Metin/LLaMA-3-8B-GRPO-Finance-Math-TR is a RL trained version of ytu-ce-cosmos/Turkish-Llama-8b-DPO-v0.1. It is trained on finance math questions using GRPO method.

## Training Info

- **Base Model**: [Turkish-Llama-8b-DPO-v0.1](https://huggingface.co/ytu-ce-cosmos/Turkish-Llama-8b-DPO-v0.1)
- **Training Data**: 442 open-ended finance math word problems. No proprietary data was included.
- **Training Time**: 6 hours on a single L40S

- **LoRA Configs**:
  - lora_r: 32
  - lora_alpha: 32
  - lora_dropout: 0.05
  - lora_target_linear: true

The goal was to train a model that can reason before generating the answer. It uses the below template:

```xml
<matematik>
...
</matematik>
<cevap>
</cevap>
```

It should be noted that the model will still generate **incorrect** or **nonsensical** outputs, so please verify the outputs before using them.

## Output Examples:

Question:

```
Ezgi, biriktirdiği 7.000 lira ile üç yıllık mevduat hesabı açtırmıştır. Faiz oranı %10 ise süre sonunda Ezgi’nin birikimi kaç liraya ulaşır?
```


Output:

```xml
<matematik>
Ezgi'nin başlangıçta 7.000 lira ile 3 yıl boyunca %10 faiz oranıyla biriktirdiği parayı hesaplamak için, ilk olarak faiz oranını ondalık olarak 0,10 olarak yazalım. Daha sonra, faiz formülünü uygulayalım:

Mevcut Bakiye = Başlangıç Bakiyesi + (Başlangıç Bakiyesi * Faiz Oranı * Süre)

Bu formülü kullanarak:

Mevcut Bakiye = 7.000 + (7.000 * 0,10 * 3)

Öncelikle 7.000 ile 0,10'lık çarpımı yapalım:

7.000 * 0,10 = 700

Şimdi bu sonucu 3 ile çarpalım:

700 * 3 = 2.100

Son olarak 7.000 ile 2.100'ü ekleyelim:

7.000 + 2.100 = 9.100

</matematik>

<cevap>9.100</cevap>
```

Question:

```
6000 lira yıllık %5 bileşik faizle bankaya yatırılmıştır. 2. yılın sonunda değeri ne kadar olur?
```


Output:

```xml
<matematik>
1. Yıllık %5 bileşik faizle, ilk yılın sonunda 6000 lira tutarındaki paranın faizini hesaplayalım.
Faiz = Anapara × Oran × Zaman
Faiz = 6000 × 0,05 × 1 = 300 lira

Yani ilk yılın sonunda 6000 + 300 = 6300 lira olur.

2. Şimdi 2. yılın sonunda paranın değerini bulalım. 2. yılda bileşik faizle faiz hesaplanır.
İlk yılın sonunda kalan tutar = 6300 lira
İkinci yıl için faiz = 6300 × 0,05 × 1 = 315 lira
2. yılın sonunda toplam tutar = 6300 + 315 = 6615 lira
</matematik>

<cevap>6615</cevap>
```

## How to use

1. Install vLLM
```bash
pip install vllm
```
2. 
```python
from vllm import LLM, SamplingParams
import json

llm = LLM(model="Metin/LLaMA-3-8B-GRPO-Finance-Math-TR")

sampling_params = SamplingParams(temperature=0.5)

SYSTEM_PROMPT = """
Aşağıdaki formatta cevap ver.
<matematik> etiketlerinin arasında soru için yaptığın akıl yürütme aşamalarına ve işlemlere yer ver.
<cevap> etiketlerinin arasında yalnızca rakam, nokta ve virgül kullanarak cevap ver.
<matematik>
...
</matematik>
<cevap>
...
</cevap>
"""

conversation = [
  {
      "role": "system",
      "content": SYSTEM_PROMPT
  }
  {
      "role": "user",
      "content": "6000 lira yıllık %5 bileşik faizle bankaya yatırılmıştır. 2. yılın sonunda değeri ne kadar olur?"
  }
]

outputs = llm.chat(
  conversation,
  sampling_params=sampling_params,
  use_tqdm=False
)

result = json.loads(outputs[0].outputs[0].text)

print(result)
```

# Citation
```
@article{Metin,
  title={Metin/LLaMA-3-8B-GRPO-Finance-Math-TR},
  author={Metin Usta},
  year={2024},
  url={https://huggingface.co/Metin/LLaMA-3-8B-GRPO-Finance-Math-TR}
}
```