pytorch t5 seq2seq en dataset:algebra_linear_1d transformers text2text-generation
.gitattributes README.md config.json pytorch_model.bin special_tokens_map.json spiece.model tokenizer_config.json
# algebra_linear_1d
---
language: en
datasets:
- algebra_linear_1d
---

This is a [t5-small](https://ai.googleblog.com/2020/02/exploring-transfer-learning-with-t5.html) fine-tuned version on the [math_dataset/algebra_linear_1d](https://www.tensorflow.org/datasets/catalog/math_dataset#mathdatasetalgebra_linear_1d_default_config) for solving **algebra 1d equations** mission.

To load the model:
(necessary packages: !pip install transformers sentencepiece)
```python
from transformers import AutoTokenizer, AutoModelWithLMHead
tokenizer = AutoTokenizer.from_pretrained("dbernsohn/algebra_linear_1d")
model = AutoModelWithLMHead.from_pretrained("dbernsohn/algebra_linear_1d")
```

You can then use this model to solve algebra 1d equations into numbers.

```python
query = "Solve 0 = 1026*x - 2474 + 46592 for x"
input_text = f"{query} </s>"
features = tokenizer([input_text], return_tensors='pt')
model.to('cuda')
output = model.generate(input_ids=features['input_ids'].cuda(), 
                        attention_mask=features['attention_mask'].cuda())

tokenizer.decode(output[0])
# <pad> -41</s>
```

Another examples:

+ Solve 1112*r + 1418*r - 5220 = 587*r - 28536 for r. 
+ Answer:  -12 Pred:  -12
----
+ Solve -119*k + 6*k - 117 - 352 = 322 for k. 
+ Answer:  -7 Pred:  -7
----
+ Solve -547 = -62*t + 437 - 798 for t. 
+ Answer:  3 Pred:  3
----
+ Solve 3*j - 3*j + 0*j - 4802 = 98*j for j. 
+ Answer:  -49 Pred:  -49
----
+ Solve 3047*n - 6130*n - 1700 = -3049*n for n. 
+ Answer:  -50 Pred:  -50
----
+ Solve 121*i + 1690 = 76*i - 128*i + 133 for i. 
+ Answer:  -9 Pred:  -9

The whole training process and hyperparameters are in my [GitHub repo](https://github.com/DorBernsohn/CodeLM/tree/main/MathLM)
> Created by [Dor Bernsohn](https://www.linkedin.com/in/dor-bernsohn-70b2b1146/)
