File size: 4,754 Bytes
ea4f657
 
c86016e
 
 
ea4f657
 
3e6aefa
bfea63e
ea4f657
 
 
 
 
 
340a54f
 
209ef09
340a54f
52f57c6
ea4f657
 
25e1d06
ea43757
bfea63e
ea43757
764a7ec
ea4f657
 
 
 
13ec2df
99ce23b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1097ce5
99ce23b
 
 
ea4f657
 
 
 
 
 
3c58bde
1097ce5
 
 
 
ea4f657
 
 
1097ce5
ea4f657
 
3c58bde
ea4f657
1097ce5
ea4f657
 
 
 
3c58bde
ea4f657
 
 
 
 
 
209ef09
ea4f657
3c58bde
1ca8c20
 
3c58bde
1ca8c20
 
ea4f657
 
 
 
a4597ce
 
 
 
 
ea4f657
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
---
library_name: transformers
language:
- sv
- en
---

# Lynx 2B (micro)
![Mascot](assets/lynx_mascot.png) 


## Model Details

### Model Description

This is the first release of a series of Swedish large language models we call "Lynx". Micro is a small model (2 billion params), but punches way above its weight!

Lynx micro is a fine-tune of Google DeepMind Gemma 2B, scores just below GPT-3.5 Turbo on [Scandeval](https://scandeval.com/swedish-nlg/). In fact, the only non OpenAI model (currently) topping the Swedish NLG board on scandeval is a fine-tune of Llama-3 by AI Sweden based on our data recipe.

We believe that this is a really capable model (for its size), but keep in mind that it is still a small model and hasn't memorized as much as larger models tend to do.


- **Funded, Developed and shared by:** [42 Labs](https://www.42labs.ai)
- **Model type:** Auto-regressive transformer
- **Language(s) (NLP):** Swedish and English
- **License:** Gemma terms of use
- **Finetuned from model:** [Gemma 2B, 1.1 instruct](https://huggingface.co/google/gemma-1.1-2b-it)


## How to Get Started with the Model

```python
import torch
from transformers import pipeline
from transformers import TextStreamer
from transformers import AutoTokenizer
from transformers import AutoModelForCausalLM


model_name = 'four-two-labs/lynx-micro'

tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
    model_name,
    device_map='cuda',
    torch_dtype=torch.bfloat16,
    use_flash_attention_2=True,  # Remove if flash attention isn't available
)

pipe = pipeline(
    'text-generation',    
    model=model,
    tokenizer=tokenizer,
    streamer=TextStreamer(tokenizer=tokenizer)
)

messages = [
    #{'role': 'user', 'content': 'Lös ekvationen 2x^2-5 = 9'},
    #{'role': 'user', 'content': 'Vad är fel med denna mening: "Hej! Jag idag bra mår."'},
    #{'role': 'user', 'content': """Översätt till svenska: Hayashi, the Japanese government spokesperson, said Monday that Tokyo is answering the Chinese presence around the islands with vessels of its own.\n\n“We ensure a comprehensive security system for territorial waters by deploying Coast Guard patrol vessels that are consistently superior to other party’s capacity,” Hayashi said.\n\nAny Japanese-Chinese incident in the Senkakus raises the risk of a wider conflict, analysts note, due to Japan’s mutual defense treaty with the United States.\n\nWashington has made clear on numerous occasions that it considers the Senkakus to be covered by the mutual defense pact."""},
    #{'role': 'user', 'content': """Vad handlar texten om?\n\nHayashi, the Japanese government spokesperson, said Monday that Tokyo is answering the Chinese presence around the islands with vessels of its own.\n\n“We ensure a comprehensive security system for territorial waters by deploying Coast Guard patrol vessels that are consistently superior to other party’s capacity,” Hayashi said.\n\nAny Japanese-Chinese incident in the Senkakus raises the risk of a wider conflict, analysts note, due to Japan’s mutual defense treaty with the United States.\n\nWashington has made clear on numerous occasions that it considers the Senkakus to be covered by the mutual defense pact."""},
    #{'role': 'user', 'content': """Skriv en sci-fi novell som utspelar sig över millenium på en planet runt ett binärt stjärnsystem."""},
    {'role': 'user', 'content': 'Hur många helikoptrar kan en människa äta på en gång?'},
]

r = pipe(
    messages,
    max_length=4096, 
    do_sample=False,     
    eos_token_id=[tokenizer.vocab['<end_of_turn>'], tokenizer.eos_token_id],
)
```



## Training Details

### Training Data

The model has been trained on a proprietary dataset of ~1.35M examples consisting of
 * High quality swedish instruct data
   * Single turn
   * Multi-turn
 * High quality swe <-> eng translations


### Training Procedure
For training we used hugginface Accelerate and TRL.


#### Preprocessing

For efficiency, we packed all the examples into 8K context windows, reducing the number examples to ~12% of their original count. 


#### Training Hyperparameters

- **Training regime:** 


[More Information Needed]

## Evaluation

The model has been evaluated on [Scandeval](https://scandeval.com/swedish-nlg/) swedish subset. 

The result of the individual metrics compared to other top scoring models
![metrics](assets/metrics.png)

The mean score of all metrics compared to other models in the Swedish NLG category.
![mean-score](assets/mean_score.png)



## Environmental Impact

- **Hardware Type:** 8xH100
- **Hours used:** ~96 GPU hours 
- **Cloud Provider:** runpod.io
- **Compute Region:** Canada
- **Carbon Emitted:** Minimal