File size: 2,090 Bytes
95fc605
 
6f71931
 
 
 
 
 
 
 
95fc605
0d52394
6f71931
 
 
 
 
 
 
 
95fc605
6f71931
 
95fc605
6f71931
95fc605
6f71931
95fc605
6f71931
95fc605
6f71931
 
 
95fc605
6f71931
95fc605
6f71931
 
 
 
 
95fc605
6f71931
95fc605
6f71931
 
 
 
95fc605
6f71931
 
95fc605
6f71931
 
 
95fc605
6f71931
 
95fc605
6f71931
95fc605
6f71931
 
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
---
library_name: transformers
base_model:
- HuggingFaceTB/SmolLM2-1.7B-Instruct
license: apache-2.0
language:
- en
- it
tags:
- translation
---
# SmolMaestra - A tiny model tuned for text translation
```html
   _____                 _ __  __                 _             
  / ____|               | |  \/  |               | |            
 | (___  _ __ ___   ___ | | \  / | __ _  ___  ___| |_ _ __ __ _ 
  \___ \| '_ ` _ \ / _ \| | |\/| |/ _` |/ _ \/ __| __| '__/ _` |
  ____) | | | | | | (_) | | |  | | (_| |  __/\__ \ |_| | | (_| |
 |_____/|_| |_| |_|\___/|_|_|  |_|\__,_|\___||___/\__|_|  \__,_|
```

## Model Card 
This model was finetuned with roughly 300.000 examples of translations from English to Italian and Italian to English. The model was finetuned in a way to more directly provide a translation without much explanation.

Finetuning took about 10 hours on an A10G Nvidia GPU.

Due to its size, the model runs very well on CPUs. 

## Usage 

```python
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "LeonardPuettmann/SmolMaestra-1.7b-Instruct-v0.1"

model = AutoModelForCausalLM.from_pretrained(
    model_id, 
    device_map="auto",
    trust_remote_code=True,
)

tokenizer = AutoTokenizer.from_pretrained(model_id, add_bos_token=True, trust_remote_code=True)

row_json = [
    {"role": "system", "content": "Your job is to return translations for sentences or words from either Italian to English or English to Italian."},
    {"role": "user", "content": "Do you sell tickets for the bus?"},
]

prompt =  tokenizer.apply_chat_template(row_json, tokenize=False)
model_input = tokenizer(prompt, return_tensors="pt").to("cuda")

with torch.no_grad():
    print(tokenizer.decode(model.generate(**model_input, max_new_tokens=1024)[0]))
```

## Data used 
The source for the data were sentence pairs from tatoeba.com. The data can be downloaded from here: https://tatoeba.org/downloads

## Credits

Base model: `HuggingFaceTB/SmolLM2-1.7B-Instruct`
Finetuned by: Leonard Püttmann https://www.linkedin.com/in/leonard-p%C3%BCttmann-4648231a9/